1 |
Multi-dimensional architecture description language for forward and reverse evolution of component-based software / Un langage de description d'architectures multi-dimensionnel pour l'évolution directe et la rétro-évolution de logiciels à base de composantsZhang, Huaxi Yulin 07 April 2010 (has links)
Les approches basées sur les composants permettent de développer des logiciels en réutilisant des composants existant dans des bibliothèques. La structure d'un tel logiciel produit par assemblage de composants est définie à l'aide d'un langage de description d'architectures (ADL). Les processus de développement sont encore peu adaptés à ce paradigme. Ainsi, les ADL existants ne fournissent pas de véritable support au développement et à l'évolution des architectures logicielles à composants. Cette thèse propose Dedal, un ADL permettant de définir une architecture logicielle à différents niveaux d'abstraction qui correspondent aux étapes du cycle de vie du logiciel : sa spécification, son implémentation et son déploiement. La définition de l'architecture est complétée par un modèle du logiciel à l'exécution. La cohérence entre les différentes définitions d'une architecture doit être assurée : sa définition à un niveau d'abstraction doit être conforme à sa définition à un niveau supérieur. Ce principe permet de contrôler l'évolution d'une architecture, en validant les modifications réalisées à un certain niveau d'abstraction ou en motivant la création d'une nouvelle version pour propager les modifications entre niveaux d'abstraction et rétablir la cohérence. Ces mécanismes préviennent les problèmes d'érosion ou de dérive qui surviennent lors des évolutions entre les différents niveaux de définition des architectures. Un environnement couvrant le cycle de vie complet d'un logiciel à base de composants a été prototypé. Il comporte un atelier, permettant de décrire des architectures avec Dedal, puis un environnement d'exécution, extension des outils Fractal, capable de contrôler l'évolution des architectures déployées. L'évolution à l'exécution est réalisée de façon graduelle, de manière à faire fonctionner et à instrumenter les nouvelles versions pendant une phase de transition, avant de valider définitivement une modification. / Component-based approaches promote software development by reuse of existing components from a repository. The structure of such software is described as an assembly of software components using an architecture description language (ADL). Software development processes often do not comply with this paradigm yet. Consequently, existing ADLs do not fully support component-based software architecture development and evolution. This thesis proposes Dedal, an ADL to describe software architectures at several abstraction levels that correspond to the steps of software lifecycle: its specification, its implementation and its deployment. The architecture definition is completed with a runtime model of the software. Consistency between the various definitions of a given architecture must be maintained: its definition at some abstraction level must conform to its definition at a higher abstraction level. This consistency principle enables to control the evolution of architectures either validating changes performed at an abstraction level or motivating the creation of a new version, to propagate changes from an abstraction level to the other and restore their consistency. These mechanisms prevent from architecture erosion or drift which might occur between two different description levels after evolution. An environment that covers the whole lifecycle of component-based software has been prototyped. It includes a CASE tool that supports the Dedal-based description of architectures and a runtime environment that extends Fractal tools to control the evolution of the deployed software. Runtime evolution is performed gradually in order to have new versions run and instrumented during a transition phase before committing changes.
|
2 |
A prática de seleção de frameworks web cliente de código aberto : fundamentos para a construção de uma base de conhecimentoMakiyama, Daniel Souza, Braga, Juliana C. (Braga, Juliana Cristina) January 2015 (has links)
Orientadora: Profa. Dra. Gordana Manic / Dissertação (mestrado) - Universidade Federal do ABC, Programa de Pós-Graduação em Ciência da Computação, 2015. / A tecnologia dos navegadores de internet evolui rapidamente. Hoje, o padrão
HTML51 provê uma gama enorme de recursos gráficos e de interação. Com um navegador
mais poderoso e uma clientela mais exigente, demanda-se mais complexidade da camada do
cliente. Esta complexidade demanda maior preocupação com a arquitetura de soluções nesta
camada. Há uma infinidade de frameworks2 atualmente, para organizar e potencializar a
camada cliente da web3, e consequente dificuldade em lidar com este volume de informações.
A escolha de frameworks por parte do desenvolvedor pode ser pragmática, a negação da
escolha ou a criação de uma nova opção específica para o seu problema. A falta de um corpo
de conhecimento acessível dificulta o processo de aprendizagem e engajamento dos
profissionais no reuso das melhores práticas disponíveis em seus projetos.
A partir da análise de arquiteturas web na plataforma do cliente, revisão
sistemática do estado da arte nos métodos empíricos de seleção de componentes de software, esta dissertação apresenta os resultados de uma pesquisa realizada com 26 profissionais de tecnologia e 3 especialistas de usabilidade, que utilizaram um protótipo construído para esta pesquisa, para a experimentação e composição de soluções a partir de fragmentos de código empregando diferentes frameworks. O experimento objetivou mapear as necessidades de umsistema que se aproxime à prática de seleção de frameworks, e mapear como um grupo de profissionais envolvidos com computação utilizariam este tipo de ferramenta. Segundo o estudo, demonstrações de código são a fonte de informação que mais auxilia na adoção de um framework e fragmentos de código exercem comprovada influência no resultado final de implementação deste tipo de aplicação. Os diferenciais da base de conhecimento proposta é capacidade de integrar códigos, avaliações e análise de desempenho objetivando criar padrões de código para aprendizado ou uso imediato. O uso de um protótipo funcional e o envolvimento precoce dos usuários em testes de usabilidade foi muito positivo à elicitação de uma lista completa de requisitos funcionais e não funcionais para esta ferramenta. / The browser¿s technologies rapidly evolve. Today, the HTML5 standard provides
a huge range of graphic and interaction resources. With a more powerful browser and
customers that demands more, more complexity in the client tier is required. This complexity
demands greater concern with architecture solutions in this layer. There are plenty of
frameworks lately, to organize and potencialize the web client tier, and consequently,
difficulty in dealing with all of this information. The framework selection process, from a
developer¿s perspective, can be pragmactic, a denial of choice, or the creation of a new
option, specific to his problem. The lack of an accessible body of knowledge hinders the
learning process and the engagement of the profissionals on reusing the best practices in their projects.
Based on the analysis of web architectures on the client side and systematic
review of the state of art on the empirical methods of software component¿s selection, this
dissertation presents the results of a research conducted with 26 technology professionals and 3 usability specialists. They used a prototype of an application built for this research, for
experimentation and solutions composition from code fragments, employing different
frameworks. The objective of this experiment was to map the needs of a system that
approaches the practical frameworks selection process, and map how a group of professionals involved with computing would use this kind of tool. According to the study, code demonstrations are the most helpful information source for framework adoption and code fragments exert proven influence in the final code of this kind of application. The diferential of the proposed knowledge base is its capacity to integrate codes, assessments and performance analysis, aiming to create code patterns for learning or immediate usage. The use of a functional prototype and the precocious evolvement of end users in usability tests was very positive for eliciting a complete list of functional and non-functional requirements for this tool.
|
Page generated in 0.0233 seconds