Composing applications from pre-built, highly coherent and loosely-coupled software components presents numerous advantages given the cost and time inefficiency of traditional approaches to building software from scratch. However, component-based software engineering (CBSE) does not eliminate the complexity of building composite applications but rather shifts it to the border of each distinct component. Namely, the focus is transferred from the design and implementation of a software system conceived as a single deployable module, to the design and implementation of the inter-component interaction processes. Getting the integration right is fundamental for establishing a proper system interoperation, thereby making component integration a primary concern when applying CBSE. Common integration approaches are based on provisioning of well-defined application programming interfaces (API) composed of discrete communication channels or endpoints. Consequently, the strict composition contracts defined as collections of function signatures require bridging code to be written to eliminate interface mismatches between the various components participating in the integration. This requires significant effort as well as programming expertise and may restrict component composition opportunities. In this thesis, we focus on user interface components and propose a flexible approach that facilitates their integration at a more fine-grained level than that of a conventional API, allowing developers to integrate components without having extensive knowledge of the internal structure or interface. We build the approach on a special abstraction that enables one to escape the complex integration process imposed by conventional component composition contracts. The proposed solution eliminates the necessity of writing ad-hoc, almost throw-away glue code, that is not reusable neither documented. Instead, we introduce a code-free component assembly process performed utilizing solely visual tools supplied by the developed component framework, thus encouraging a wider group of users to develop composite applications that meet their requirements. The proposed approach is founded on a novel composition model and the relative component model, which together enable one to assemble distinct components into a single client-side application and to synchronize their behavior exploring the provided data-based programming interfaces while utilizing common UI controls and navigation patterns. The presented composition model takes advantage of the expressive, extensible and flexible characteristics of the data integration approach enabling the user to establish relations between disparate component data-based APIs in a declarative manner. The developed data-driven component framework is validated on a real-world use case scenario. The results show that the problem of integration on the presentation layer can be effectively reduced to that of data integration with data-based component APIs representing the disparate data-sources, integration of which enables synchronization of the corresponding UI fragments to provide a unified and seamless experience to the end-user. These results motivate further research of the challenging issues introduced by the data integration approach and how they can be effectively solved on the presentation layer to further drive the UI component integration process.

La composizione di applicazioni da componenti software predefiniti, altamente coerenti e debolmente accoppiati presenta numerosi vantaggi data l’inefficienza di costo e di tempo degli approcci tradizionali nella creazione di software da zero. Tuttavia, il component-based software engineering (CBSE) non elimina la complessità di creare applicazioni composite, ma piuttosto la sposta ai confini di ogni singolo componente. Vale a dire, l'attenzione è rivolta alla progettazione e all'implementazione del processo di interazione tra componenti. Ottenere la giusta integrazione è fondamentale per stabilire un sistema di interoperabilità adeguato, rendendo l'integrazione dei componenti la preoccupazione principale nell’applicazione di un approccio CBSE. Gli approcci di integrazione comuni sono basati sul approvvigionamento di Application Programming Interfaces (APIs) ben definiti e corredati di canali di comunicazione o endpoint discreti. Di conseguenza, i rigorosi contratti di composizione definiti come raccolte di funzioni richiedono la scrittura di un codice di connessione per eliminare i disallineamenti di interfaccia tra i vari componenti che partecipano all'integrazione. Questo può limitare le opportunità di composizione di componenti. In questa tesi, ci concentriamo su componenti con interfaccia utente propria e proponiamo un approccio flessibile che facilita la loro integrazione a una granularità più fine di quella di un’API convenzionale, permettendo agli sviluppatori di integrare componenti senza avere bisogno di una conoscenza approfondita della struttura interna o dell’interfaccia programmatica di un componente. Costruiamo l'approccio su un'astrazione speciale che consente di sfuggire al complesso processo di integrazione. La soluzione proposta elimina la necessità di scrivere glue code ad-hoc che non è riutilizzabile né documentato. Invece, si introduce un processo di assemblaggio di componenti privo di codice ottenuto utilizzando strumenti esclusivamente visivi forniti dal framework dei componenti sviluppati, permettendo così a un gruppo più ampio di sviluppatori (anche utenti semplici) di sviluppare applicazioni composite in grado di soddisfare le loro esigenze. L'approccio proposto si basa su un modello composizione nuovo e un relativo modello di componente, che insieme consentono l’assemblaggio di componenti distinti in un'unica applicazione client e la sincronizzazione del loro comportamento tramite l’esplorazione di interfacce di programmazione basate su dati utilizzando controlli comuni UI e schemi di navigazione comuni. Il modello di composizione presentato sfrutta le caratteristiche espressive, estensibili e flessibili dell'approccio di integrazione di dati che consente all'utilizzatore di stabilire relazioni tra componenti usando API basate su dati in maniera dichiarativa. L’approccio di sviluppo proposto è validato tramite uno studio di caso di utilizzo dello stesso nel mondo reale. I risultati mostrano che il problema dell'integrazione al livello di presentazione può essere ridotto efficacemente a quello di integrazione di componenti a livello dei dati. L’integrazione effettivamente permette la sincronizzazione dei frammenti UI corrispondenti ai singoli componenti e di fornire un’esperienza d’uso unificata e integrata. Questi risultati motivano ulteriori ricerche sulle sfide del processo di integrazione dei componenti a livello dell’interfaccia utente.

Interactive, data-driven integration of presentational components

SHABUNIN, GEORGY
2017/2018

Abstract

Composing applications from pre-built, highly coherent and loosely-coupled software components presents numerous advantages given the cost and time inefficiency of traditional approaches to building software from scratch. However, component-based software engineering (CBSE) does not eliminate the complexity of building composite applications but rather shifts it to the border of each distinct component. Namely, the focus is transferred from the design and implementation of a software system conceived as a single deployable module, to the design and implementation of the inter-component interaction processes. Getting the integration right is fundamental for establishing a proper system interoperation, thereby making component integration a primary concern when applying CBSE. Common integration approaches are based on provisioning of well-defined application programming interfaces (API) composed of discrete communication channels or endpoints. Consequently, the strict composition contracts defined as collections of function signatures require bridging code to be written to eliminate interface mismatches between the various components participating in the integration. This requires significant effort as well as programming expertise and may restrict component composition opportunities. In this thesis, we focus on user interface components and propose a flexible approach that facilitates their integration at a more fine-grained level than that of a conventional API, allowing developers to integrate components without having extensive knowledge of the internal structure or interface. We build the approach on a special abstraction that enables one to escape the complex integration process imposed by conventional component composition contracts. The proposed solution eliminates the necessity of writing ad-hoc, almost throw-away glue code, that is not reusable neither documented. Instead, we introduce a code-free component assembly process performed utilizing solely visual tools supplied by the developed component framework, thus encouraging a wider group of users to develop composite applications that meet their requirements. The proposed approach is founded on a novel composition model and the relative component model, which together enable one to assemble distinct components into a single client-side application and to synchronize their behavior exploring the provided data-based programming interfaces while utilizing common UI controls and navigation patterns. The presented composition model takes advantage of the expressive, extensible and flexible characteristics of the data integration approach enabling the user to establish relations between disparate component data-based APIs in a declarative manner. The developed data-driven component framework is validated on a real-world use case scenario. The results show that the problem of integration on the presentation layer can be effectively reduced to that of data integration with data-based component APIs representing the disparate data-sources, integration of which enables synchronization of the corresponding UI fragments to provide a unified and seamless experience to the end-user. These results motivate further research of the challenging issues introduced by the data integration approach and how they can be effectively solved on the presentation layer to further drive the UI component integration process.
ING - Scuola di Ingegneria Industriale e dell'Informazione
25-lug-2018
2017/2018
La composizione di applicazioni da componenti software predefiniti, altamente coerenti e debolmente accoppiati presenta numerosi vantaggi data l’inefficienza di costo e di tempo degli approcci tradizionali nella creazione di software da zero. Tuttavia, il component-based software engineering (CBSE) non elimina la complessità di creare applicazioni composite, ma piuttosto la sposta ai confini di ogni singolo componente. Vale a dire, l'attenzione è rivolta alla progettazione e all'implementazione del processo di interazione tra componenti. Ottenere la giusta integrazione è fondamentale per stabilire un sistema di interoperabilità adeguato, rendendo l'integrazione dei componenti la preoccupazione principale nell’applicazione di un approccio CBSE. Gli approcci di integrazione comuni sono basati sul approvvigionamento di Application Programming Interfaces (APIs) ben definiti e corredati di canali di comunicazione o endpoint discreti. Di conseguenza, i rigorosi contratti di composizione definiti come raccolte di funzioni richiedono la scrittura di un codice di connessione per eliminare i disallineamenti di interfaccia tra i vari componenti che partecipano all'integrazione. Questo può limitare le opportunità di composizione di componenti. In questa tesi, ci concentriamo su componenti con interfaccia utente propria e proponiamo un approccio flessibile che facilita la loro integrazione a una granularità più fine di quella di un’API convenzionale, permettendo agli sviluppatori di integrare componenti senza avere bisogno di una conoscenza approfondita della struttura interna o dell’interfaccia programmatica di un componente. Costruiamo l'approccio su un'astrazione speciale che consente di sfuggire al complesso processo di integrazione. La soluzione proposta elimina la necessità di scrivere glue code ad-hoc che non è riutilizzabile né documentato. Invece, si introduce un processo di assemblaggio di componenti privo di codice ottenuto utilizzando strumenti esclusivamente visivi forniti dal framework dei componenti sviluppati, permettendo così a un gruppo più ampio di sviluppatori (anche utenti semplici) di sviluppare applicazioni composite in grado di soddisfare le loro esigenze. L'approccio proposto si basa su un modello composizione nuovo e un relativo modello di componente, che insieme consentono l’assemblaggio di componenti distinti in un'unica applicazione client e la sincronizzazione del loro comportamento tramite l’esplorazione di interfacce di programmazione basate su dati utilizzando controlli comuni UI e schemi di navigazione comuni. Il modello di composizione presentato sfrutta le caratteristiche espressive, estensibili e flessibili dell'approccio di integrazione di dati che consente all'utilizzatore di stabilire relazioni tra componenti usando API basate su dati in maniera dichiarativa. L’approccio di sviluppo proposto è validato tramite uno studio di caso di utilizzo dello stesso nel mondo reale. I risultati mostrano che il problema dell'integrazione al livello di presentazione può essere ridotto efficacemente a quello di integrazione di componenti a livello dei dati. L’integrazione effettivamente permette la sincronizzazione dei frammenti UI corrispondenti ai singoli componenti e di fornire un’esperienza d’uso unificata e integrata. Questi risultati motivano ulteriori ricerche sulle sfide del processo di integrazione dei componenti a livello dell’interfaccia utente.
Tesi di laurea Magistrale
File allegati
File Dimensione Formato  
2018_07_Shabunin.pdf

non accessibile

Descrizione: Thesis text
Dimensione 2.75 MB
Formato Adobe PDF
2.75 MB Adobe PDF   Visualizza/Apri

I documenti in POLITesi sono protetti da copyright e tutti i diritti sono riservati, salvo diversa indicazione.

Utilizza questo identificativo per citare o creare un link a questo documento: https://hdl.handle.net/10589/141801