Spelling suggestions: "subject:"aspectoriented development"" "subject:"affectoriented development""
1 |
An aspect-oriented model-driven engineering approach for distributed embedded real-time systems / Uma abordagem de engenharia guiada por modelos para o projeto de sistemas tempo-real embarcados e distribuídosWehrmeister, Marco Aurélio January 2009 (has links)
Atualmente, o projeto de sistemas tempo-real embarcados e distribuídos está crescendo em complexidade devido à sua natureza heterogênea e ao crescente número e diversidade de funções que um único sistema desempenha. Sistemas de automação industrial, sistemas eletrônicos em automóveis e veículos aéreos, equipamentos médicos, entre outros, são exemplos de tais sistemas. Tais sistemas são compostos por componentes distintos (blocos de hardware e software), os quais geralmente são projetados concorrentemente utilizando modelos, ferramentas e linguagens de especificação e implementação diferentes. Além disso, estes sistemas tem requisitos específicos e importantes, os quais não representam (por si só) as funcionalidades esperadas do sistema, mas podem afetar a forma como o sistema executa suas funcionalidades e são muito importantes para a realização do projeto com sucesso. Os chamados requisitos não-funcionais são difíceis de tratar durante todo o ciclo de projeto porque normalmente um único requisito não-funcional afeta vários componentes diferentes. A presente tese de doutorado propõe a integração automatizada das fases de projeto de sistemas tempo-real embarcados e distribuídos focando em aplicações na área da automação. A abordagem proposta usa técnicas de engenharia guiada por modelos (do inglês Model Driven Engineering ou MDE) e projeto orientado a aspectos (do inglês Aspect-Oriented Design ou AOD) juntamente com o uso de plataformas previamente desenvolvidas (ou desenvolvida por terceiros) para projetar os componentes de sistemas tempo-real embarcados e distribuídos. Adicionalmente, os conceitos de AOD permitem a separação no tratamento dos requisitos de naturezas diferentes (i.e. requisitos funcionais e não-funcionais), melhorando a modularização dos artefatos produzidos (e.g. modelos de especificação, código fonte, etc.). Além disso, esta tese propõe uma ferramenta de geração de código, que suporta a transição automática das fases iniciais de especificação para as fases seguintes de implementação. Esta ferramenta usa um conjunto de regras de mapeamento, que descrevem como elementos nos níveis mais altos de abstração são mapeados (ou transformados) em elementos dos níveis mais baixos de abstração. Em outras palavras, tais regras de mapeamento permitem a transformação automática da especificação inicial, as quais estão mais próximo do domínio da aplicação, em código fonte para os componentes de hardware e software, os quais podem ser compilados e sintetizados por outras ferramentas para se obter a realização/implementação do sistema tempo-real embarcado e distribuído. / Currently, the design of distributed embedded real-time systems is growing in complexity due to the increasing amount of distinct functionalities that a single system must perform, and also to concerns related to designing different kinds of components. Industrial automation systems, embedded electronics systems in automobiles or aerial vehicles, medical equipments and others are examples of such systems, which includes distinct components (e.g. hardware and software ones) that are usually designed concurrently using distinct models, tools, specification, and implementation languages. Moreover, these systems have domain specific and important requirements, which do not represent by themselves the expected functionalities, but can affect both the way that the system performs its functionalities as well as the overall design success. The so-called nonfunctional requirements are difficult to deal with during the whole design because usually a single non-functional requirement affects several distinct components. This thesis proposes an automated integration of distributed embedded real-time systems design phases focusing on automation systems. The proposed approach uses Model- Driven Engineering (MDE) techniques together with Aspect-Oriented Design (AOD) and previously developed (or third party) hardware and software platforms to design the components of distributed embedded real-time systems. Additionally, AOD concepts allow a separate handling of requirement with distinct natures (i.e. functional and non-functional requirements), improving the produced artifacts modularization (e.g. specification model, source code, etc.). In addition, this thesis proposes a code generation tool, which supports an automatic transition from the initial specification phases to the following implementation phases. This tool uses a set of mapping rules, describing how elements at higher abstraction levels are mapped (or transformed) into lower abstraction level elements. In other words, suchmapping rules allow an automatic transformation of the initial specification, which is closer to the application domain, in source code for software and hardware components that can be compiled or synthesized by other tools, obtaining the realization/ implementation of the distributed embedded real-time system.
|
2 |
An aspect-oriented model-driven engineering approach for distributed embedded real-time systems / Uma abordagem de engenharia guiada por modelos para o projeto de sistemas tempo-real embarcados e distribuídosWehrmeister, Marco Aurélio January 2009 (has links)
Atualmente, o projeto de sistemas tempo-real embarcados e distribuídos está crescendo em complexidade devido à sua natureza heterogênea e ao crescente número e diversidade de funções que um único sistema desempenha. Sistemas de automação industrial, sistemas eletrônicos em automóveis e veículos aéreos, equipamentos médicos, entre outros, são exemplos de tais sistemas. Tais sistemas são compostos por componentes distintos (blocos de hardware e software), os quais geralmente são projetados concorrentemente utilizando modelos, ferramentas e linguagens de especificação e implementação diferentes. Além disso, estes sistemas tem requisitos específicos e importantes, os quais não representam (por si só) as funcionalidades esperadas do sistema, mas podem afetar a forma como o sistema executa suas funcionalidades e são muito importantes para a realização do projeto com sucesso. Os chamados requisitos não-funcionais são difíceis de tratar durante todo o ciclo de projeto porque normalmente um único requisito não-funcional afeta vários componentes diferentes. A presente tese de doutorado propõe a integração automatizada das fases de projeto de sistemas tempo-real embarcados e distribuídos focando em aplicações na área da automação. A abordagem proposta usa técnicas de engenharia guiada por modelos (do inglês Model Driven Engineering ou MDE) e projeto orientado a aspectos (do inglês Aspect-Oriented Design ou AOD) juntamente com o uso de plataformas previamente desenvolvidas (ou desenvolvida por terceiros) para projetar os componentes de sistemas tempo-real embarcados e distribuídos. Adicionalmente, os conceitos de AOD permitem a separação no tratamento dos requisitos de naturezas diferentes (i.e. requisitos funcionais e não-funcionais), melhorando a modularização dos artefatos produzidos (e.g. modelos de especificação, código fonte, etc.). Além disso, esta tese propõe uma ferramenta de geração de código, que suporta a transição automática das fases iniciais de especificação para as fases seguintes de implementação. Esta ferramenta usa um conjunto de regras de mapeamento, que descrevem como elementos nos níveis mais altos de abstração são mapeados (ou transformados) em elementos dos níveis mais baixos de abstração. Em outras palavras, tais regras de mapeamento permitem a transformação automática da especificação inicial, as quais estão mais próximo do domínio da aplicação, em código fonte para os componentes de hardware e software, os quais podem ser compilados e sintetizados por outras ferramentas para se obter a realização/implementação do sistema tempo-real embarcado e distribuído. / Currently, the design of distributed embedded real-time systems is growing in complexity due to the increasing amount of distinct functionalities that a single system must perform, and also to concerns related to designing different kinds of components. Industrial automation systems, embedded electronics systems in automobiles or aerial vehicles, medical equipments and others are examples of such systems, which includes distinct components (e.g. hardware and software ones) that are usually designed concurrently using distinct models, tools, specification, and implementation languages. Moreover, these systems have domain specific and important requirements, which do not represent by themselves the expected functionalities, but can affect both the way that the system performs its functionalities as well as the overall design success. The so-called nonfunctional requirements are difficult to deal with during the whole design because usually a single non-functional requirement affects several distinct components. This thesis proposes an automated integration of distributed embedded real-time systems design phases focusing on automation systems. The proposed approach uses Model- Driven Engineering (MDE) techniques together with Aspect-Oriented Design (AOD) and previously developed (or third party) hardware and software platforms to design the components of distributed embedded real-time systems. Additionally, AOD concepts allow a separate handling of requirement with distinct natures (i.e. functional and non-functional requirements), improving the produced artifacts modularization (e.g. specification model, source code, etc.). In addition, this thesis proposes a code generation tool, which supports an automatic transition from the initial specification phases to the following implementation phases. This tool uses a set of mapping rules, describing how elements at higher abstraction levels are mapped (or transformed) into lower abstraction level elements. In other words, suchmapping rules allow an automatic transformation of the initial specification, which is closer to the application domain, in source code for software and hardware components that can be compiled or synthesized by other tools, obtaining the realization/ implementation of the distributed embedded real-time system.
|
3 |
An aspect-oriented model-driven engineering approach for distributed embedded real-time systems / Uma abordagem de engenharia guiada por modelos para o projeto de sistemas tempo-real embarcados e distribuídosWehrmeister, Marco Aurélio January 2009 (has links)
Atualmente, o projeto de sistemas tempo-real embarcados e distribuídos está crescendo em complexidade devido à sua natureza heterogênea e ao crescente número e diversidade de funções que um único sistema desempenha. Sistemas de automação industrial, sistemas eletrônicos em automóveis e veículos aéreos, equipamentos médicos, entre outros, são exemplos de tais sistemas. Tais sistemas são compostos por componentes distintos (blocos de hardware e software), os quais geralmente são projetados concorrentemente utilizando modelos, ferramentas e linguagens de especificação e implementação diferentes. Além disso, estes sistemas tem requisitos específicos e importantes, os quais não representam (por si só) as funcionalidades esperadas do sistema, mas podem afetar a forma como o sistema executa suas funcionalidades e são muito importantes para a realização do projeto com sucesso. Os chamados requisitos não-funcionais são difíceis de tratar durante todo o ciclo de projeto porque normalmente um único requisito não-funcional afeta vários componentes diferentes. A presente tese de doutorado propõe a integração automatizada das fases de projeto de sistemas tempo-real embarcados e distribuídos focando em aplicações na área da automação. A abordagem proposta usa técnicas de engenharia guiada por modelos (do inglês Model Driven Engineering ou MDE) e projeto orientado a aspectos (do inglês Aspect-Oriented Design ou AOD) juntamente com o uso de plataformas previamente desenvolvidas (ou desenvolvida por terceiros) para projetar os componentes de sistemas tempo-real embarcados e distribuídos. Adicionalmente, os conceitos de AOD permitem a separação no tratamento dos requisitos de naturezas diferentes (i.e. requisitos funcionais e não-funcionais), melhorando a modularização dos artefatos produzidos (e.g. modelos de especificação, código fonte, etc.). Além disso, esta tese propõe uma ferramenta de geração de código, que suporta a transição automática das fases iniciais de especificação para as fases seguintes de implementação. Esta ferramenta usa um conjunto de regras de mapeamento, que descrevem como elementos nos níveis mais altos de abstração são mapeados (ou transformados) em elementos dos níveis mais baixos de abstração. Em outras palavras, tais regras de mapeamento permitem a transformação automática da especificação inicial, as quais estão mais próximo do domínio da aplicação, em código fonte para os componentes de hardware e software, os quais podem ser compilados e sintetizados por outras ferramentas para se obter a realização/implementação do sistema tempo-real embarcado e distribuído. / Currently, the design of distributed embedded real-time systems is growing in complexity due to the increasing amount of distinct functionalities that a single system must perform, and also to concerns related to designing different kinds of components. Industrial automation systems, embedded electronics systems in automobiles or aerial vehicles, medical equipments and others are examples of such systems, which includes distinct components (e.g. hardware and software ones) that are usually designed concurrently using distinct models, tools, specification, and implementation languages. Moreover, these systems have domain specific and important requirements, which do not represent by themselves the expected functionalities, but can affect both the way that the system performs its functionalities as well as the overall design success. The so-called nonfunctional requirements are difficult to deal with during the whole design because usually a single non-functional requirement affects several distinct components. This thesis proposes an automated integration of distributed embedded real-time systems design phases focusing on automation systems. The proposed approach uses Model- Driven Engineering (MDE) techniques together with Aspect-Oriented Design (AOD) and previously developed (or third party) hardware and software platforms to design the components of distributed embedded real-time systems. Additionally, AOD concepts allow a separate handling of requirement with distinct natures (i.e. functional and non-functional requirements), improving the produced artifacts modularization (e.g. specification model, source code, etc.). In addition, this thesis proposes a code generation tool, which supports an automatic transition from the initial specification phases to the following implementation phases. This tool uses a set of mapping rules, describing how elements at higher abstraction levels are mapped (or transformed) into lower abstraction level elements. In other words, suchmapping rules allow an automatic transformation of the initial specification, which is closer to the application domain, in source code for software and hardware components that can be compiled or synthesized by other tools, obtaining the realization/ implementation of the distributed embedded real-time system.
|
4 |
Frameworks transversais: definições, classificações, arquitetura e utilização em um processo de desenvolvimento de software / Crosscutting framweorks: definitions, classifications, architecture and using in a software development processCamargo, Valter Vieira de 25 September 2006 (has links)
O paradigma orientado a objetos não dispõe de abstrações adequadas à modularização de interesses transversais - interesses cuja implementação encontra-se entrelaçada e espalhada por todos os módulos de um sistema. Com o surgimento da Programação Orientada a Aspectos e a disponibilidade de abstrações adequadas à modularização de interesses transversais, o reúso desses interesses foi facilitado. Nesta tese são apresentados alguns resultados de esforços de pesquisa que visam a tornar o reúso de interesses transversais mais efetivo. Definições e classificações para frameworks desenvolvidos no contexto da POA - frameworks transversais - são apresentadas com o objetivo de facilitar a comunicação entre usuários e pesquisadores. Uma arquitetura de referência para o projeto e implementação de frameworks transversais, que torna sua estrutura mais clara e facilita a integração de vários frameworks quando a intenção é criar um repositório de aspectos reusáveis, é proposta. Três famílias de frameworks transversais: de persistência, de segurança e de regras de negócio foram desenvolvidas. Cada família de frameworks transversais constitui uma linha de produtos de software, em que membros podem ser configurados com características (features) distintas. Um processo de desenvolvimento, denominado ProFT/PU, baseado no Processo Unificado (PU), que considera as famílias de frameworks ao longo de todo o processo é apresentado, juntamente com um exemplo de sua utilização para uma aplicação típica. Um estudo de caso para comparar o tempo requerido para reusar um framework transversal de persistência e um framework orientado a objetos de persistência é também apresentado e discutido. / The object-oriented paradigm does not provide adequate abstractions to modularize crosscutting concerns - concerns whose implementation end up tangling and spreading throughout the modules of a system. With the emerging of Aspect-Oriented Programming (AOP) and the availability of abstractions suitable to modularize crosscutting concerns, the reuse of such concerns is facilitated. In this thesis, some results of research efforts to make the reuse of crosscutting concerns more effective are presented. Definitions and classifications for frameworks developed in the context of AOP - crosscutting frameworks - with the objective of improving understanding and communication among users and researchers are presented. An architecture specifically to design and implement this type of framework, which makes its structure clearer and facilitates the integration of several frameworks, is proposed. Three families of crosscutting frameworks for persistence, security and business rules, were developed. Each crosscutting framework family is a software product line, in which members can be instantiated with distinct characteristics. A development process, named ProFT/PU, based on Unifed Process (UP), which takes into account the families during the process, is presented, along with an example of its use for a typical application. A case study to compare the time required to reuse a persistence crosscutting framework and a persistence object-oriented framework is also presented and discussed.
|
5 |
Uma estrat?gia dirigida a modelos e baseada em linguagem de descri??o arquitetural para linhas de produtos de softwareMedeiros, Ana Luisa Ferreira de 30 July 2012 (has links)
Made available in DSpace on 2014-12-17T15:47:00Z (GMT). No. of bitstreams: 1
AnaLFM_TESE.pdf: 3970701 bytes, checksum: 513ce9d2a22c9323df778dcf23fb1033 (MD5)
Previous issue date: 2012-07-30 / Model-oriented strategies have been used to facilitate products customization in the
software products lines (SPL) context and to generate the source code of these
derived products through variability management. Most of these strategies use an
UML (Unified Modeling Language)-based model specification. Despite its wide
application, the UML-based model specification has some limitations such as the fact
that it is essentially graphic, presents deficiencies regarding the precise description of
the system architecture semantic representation, and generates a large model, thus
hampering the visualization and comprehension of the system elements. In contrast,
architecture description languages (ADLs) provide graphic and textual support for
the structural representation of architectural elements, their constraints and
interactions. This thesis introduces ArchSPL-MDD, a model-driven strategy in which
models are specified and configured by using the LightPL-ACME ADL. Such
strategy is associated to a generic process with systematic activities that enable to
automatically generate customized source code from the product model. ArchSPLMDD
strategy integrates aspect-oriented software development (AOSD), modeldriven
development (MDD) and SPL, thus enabling the explicit modeling as well as
the modularization of variabilities and crosscutting concerns. The process is
instantiated by the ArchSPL-MDD tool, which supports the specification of domain
models (the focus of the development) in LightPL-ACME. The ArchSPL-MDD uses
the Ginga Digital TV middleware as case study. In order to evaluate the efficiency,
applicability, expressiveness, and complexity of the ArchSPL-MDD strategy, a
controlled experiment was carried out in order to evaluate and compare the
ArchSPL-MDD tool with the GingaForAll tool, which instantiates the process that is
part of the GingaForAll UML-based strategy. Both tools were used for configuring
the products of Ginga SPL and generating the product source code / Estrat?gias dirigidas a modelos t?m sido usadas para facilitar a customiza??o de
produtos no contexto de Linhas de Produtos de Software (LPS) e gera??o de c?digo
fonte desses produtos derivados atrav?s do gerenciamento de variabilidades. A
maioria dessas estrat?gias faz uso da especifica??o de modelos baseados em UML
(Unified Modeling Language), que apesar de ser amplamente aplicada, possui algumas
limita??es por ser essencialmente gr?fica, apresentar defici?ncia em descrever
precisamente a sem?ntica da representa??o da arquitetura do sistema e gerar um
modelo extenso, o que dificulta a visualiza??o e compreens?o dos elementos do
sistema. J? as linguagens de descri??o arquiteturais (ADLs) oferecem suporte textual
e gr?fico para representa??o estrutural dos elementos arquiteturais, suas restri??es e
intera??es. Essa tese apresenta ArchSPL-MDD, uma estrat?gia dirigida a modelos
especificados e configurados usando a ADL LightPL-ACME. Tal estrat?gia est?
associada a um processo gen?rico com atividades sistem?ticas que permitem a
gera??o autom?tica do c?digo fonte customizados a partir do modelo do produto. A
estrat?gia ArchSPL-MDD integra o desenvolvimento orientado a aspectos (DSOA),
desenvolvimento dirigido a modelos (DDM), e LPS, o que permite a modelagem
expl?cita e modulariza??o de variabilidades e caracter?sticas transversais. O processo
? instanciado pela ferramenta ArchSPL-MDD, que oferece suporte para a
especifica??o, em LightPL-ACME dos modelos de dom?nio que s?o o foco do
desenvolvimento. O ArchSPL-MDD usa como estudo de caso o middleware de TV
Digital Ginga. De forma a avaliar a efici?ncia, aplicabilidade, expressividade e
complexidade da estrat?gia ArchSPL-MDD, foi realizado um experimento controlado
que avalia e compara a ferramenta ArchSPL-MDD, com a ferramenta GingaForAll,
que instancia o processo que faz parte da estrat?gia GingaForAll, baseada em UML.
Ambas as ferramentas foram usadas para configura??o do produto da LPS do do
middlelare Ginga e gera??o de c?digo fonte do produto
|
6 |
Frameworks transversais: definições, classificações, arquitetura e utilização em um processo de desenvolvimento de software / Crosscutting framweorks: definitions, classifications, architecture and using in a software development processValter Vieira de Camargo 25 September 2006 (has links)
O paradigma orientado a objetos não dispõe de abstrações adequadas à modularização de interesses transversais - interesses cuja implementação encontra-se entrelaçada e espalhada por todos os módulos de um sistema. Com o surgimento da Programação Orientada a Aspectos e a disponibilidade de abstrações adequadas à modularização de interesses transversais, o reúso desses interesses foi facilitado. Nesta tese são apresentados alguns resultados de esforços de pesquisa que visam a tornar o reúso de interesses transversais mais efetivo. Definições e classificações para frameworks desenvolvidos no contexto da POA - frameworks transversais - são apresentadas com o objetivo de facilitar a comunicação entre usuários e pesquisadores. Uma arquitetura de referência para o projeto e implementação de frameworks transversais, que torna sua estrutura mais clara e facilita a integração de vários frameworks quando a intenção é criar um repositório de aspectos reusáveis, é proposta. Três famílias de frameworks transversais: de persistência, de segurança e de regras de negócio foram desenvolvidas. Cada família de frameworks transversais constitui uma linha de produtos de software, em que membros podem ser configurados com características (features) distintas. Um processo de desenvolvimento, denominado ProFT/PU, baseado no Processo Unificado (PU), que considera as famílias de frameworks ao longo de todo o processo é apresentado, juntamente com um exemplo de sua utilização para uma aplicação típica. Um estudo de caso para comparar o tempo requerido para reusar um framework transversal de persistência e um framework orientado a objetos de persistência é também apresentado e discutido. / The object-oriented paradigm does not provide adequate abstractions to modularize crosscutting concerns - concerns whose implementation end up tangling and spreading throughout the modules of a system. With the emerging of Aspect-Oriented Programming (AOP) and the availability of abstractions suitable to modularize crosscutting concerns, the reuse of such concerns is facilitated. In this thesis, some results of research efforts to make the reuse of crosscutting concerns more effective are presented. Definitions and classifications for frameworks developed in the context of AOP - crosscutting frameworks - with the objective of improving understanding and communication among users and researchers are presented. An architecture specifically to design and implement this type of framework, which makes its structure clearer and facilitates the integration of several frameworks, is proposed. Three families of crosscutting frameworks for persistence, security and business rules, were developed. Each crosscutting framework family is a software product line, in which members can be instantiated with distinct characteristics. A development process, named ProFT/PU, based on Unifed Process (UP), which takes into account the families during the process, is presented, along with an example of its use for a typical application. A case study to compare the time required to reuse a persistence crosscutting framework and a persistence object-oriented framework is also presented and discussed.
|
7 |
A Categorical Framework for the Specification and the Verification of Aspect Oriented SystemsSabas, Arsène 07 1900 (has links)
Un objectif principal du génie logiciel est de pouvoir produire des logiciels complexes,
de grande taille et fiables en un temps raisonnable. La technologie orientée objet (OO) a fourni de bons concepts et des techniques de modélisation et de programmation qui ont
permis de développer des applications complexes tant dans le monde académique que
dans le monde industriel. Cette expérience a cependant permis de découvrir les faiblesses
du paradigme objet (par exemples, la dispersion de code et le problème de traçabilité).
La programmation orientée aspect (OA) apporte une solution simple aux limitations
de la programmation OO, telle que le problème des préoccupations transversales.
Ces préoccupations transversales se traduisent par la dispersion du même code dans plusieurs modules du système ou l’emmêlement de plusieurs morceaux de code dans un même module. Cette nouvelle méthode de programmer permet d’implémenter chaque
problématique indépendamment des autres, puis de les assembler selon des règles bien
définies. La programmation OA promet donc une meilleure productivité, une meilleure
réutilisation du code et une meilleure adaptation du code aux changements. Très vite, cette nouvelle façon de faire s’est vue s’étendre sur tout le processus de développement de logiciel en ayant pour but de préserver la modularité et la traçabilité, qui sont deux propriétés importantes des logiciels de bonne qualité.
Cependant, la technologie OA présente de nombreux défis. Le raisonnement, la spécification, et la vérification des programmes OA présentent des difficultés d’autant plus que ces programmes évoluent dans le temps. Par conséquent, le raisonnement modulaire de ces programmes est requis sinon ils nécessiteraient d’être réexaminés au complet chaque fois qu’un composant est changé ou ajouté. Il est cependant bien connu dans la littérature que le raisonnement modulaire sur les programmes OA est difficile vu que les aspects appliqués changent souvent le comportement de leurs composantes de base [47]. Ces mêmes difficultés sont présentes au niveau des phases de spécification et de vérification du processus de développement des logiciels. Au meilleur de nos connaissances,
la spécification modulaire et la vérification modulaire sont faiblement couvertes et constituent un champ de recherche très intéressant. De même, les interactions entre aspects est un sérieux problème dans la communauté des aspects. Pour faire face à ces problèmes, nous avons choisi d’utiliser la théorie des catégories et les techniques des spécifications algébriques.
Pour apporter une solution aux problèmes ci-dessus cités, nous avons utilisé les travaux de Wiels [110] et d’autres contributions telles que celles décrites dans le livre [25]. Nous supposons que le système en développement est déjà décomposé en aspects et classes. La première contribution de notre thèse est l’extension des techniques des spécifications algébriques à la notion d’aspect. Deuxièmement, nous avons défini
une logique, LA , qui est utilisée dans le corps des spécifications pour décrire le comportement de ces composantes. La troisième contribution consiste en la définition de l’opérateur de tissage qui correspond à la relation d’interconnexion entre les modules d’aspect et les modules de classe. La quatrième contribution concerne le développement d’un mécanisme de prévention qui permet de prévenir les interactions indésirables dans les systèmes orientés aspect. / One of the main goals of software engineering is to enable the construction of large, complex and reliable software in timely fashion. Object-oriented (OO) technology has provided modeling and programming principles and techniques that allow developing complex software systems both in academic and industrial areas. In return, experience gained in OO system development has allowed discovering some limitations of object technology (e.g., code scattering and poor traceability problems). Aspect Oriented (AO) Technology is a post-object-oriented technology emerged to overcome limitations of Object Oriented (OO) Technology, such as the crosscutting concern problem. Crosscutting concerns are scattered and tangled concerns. Major goals of Aspect Oriented Programming (AOP) include improving modularity, cohesion, and overall software quality.
Aspect Oriented Programming results in the evolution of programming activities to fullblown software engineering processes, to preserve modularity and traceability, which
are two important properties of high-quality software.
Yet, there are also many challenges in AO Technology. Reasoning, specification,
and verification of AO programs present unique challenges especially as such programs
evolve over time. Consequently, modular reasoning of such programs is highly attractive as it enables tractable evolution, otherwise necessitating that the entire program be reexamined each time a component is changed or is added. It is well known in the literature, however, that modular reasoning about AO programs is difficult due to the fact that the aspects applied often alter the behavior of the base components [47]. The same modular
reasoning difficulties are also present in the specification and verification phases of
software development process. To the best of our knowledge, AO modular specification
and verification is a weakly covered subject and constitutes an interesting open research
field. Also, aspect interaction is a major concern in the aspect-oriented community. To
deal with these problems, we choose to use category theory and algebraic specification
techniques.
To achieve the above thesis goals, we use the work of Wiels [110] and other contributions such as the one described in [25]. We assume at the beginning that the system under development is already decomposed into aspect and class components. The first contribution of our thesis is the extension of the algebraic specification technique to the notion of aspect. Secondly, we define a logic, LA that is used in specification bodies to describe the behavior of these components. The third contribution concerns the defini tion of the weaving operator corresponding to the weaving interconnection relationship
between aspect modules and class modules. The fourth contribution consists of the design of a prevention policy that is used to prevent or avoid undesirable aspect interactions in aspect-oriented systems.
|
8 |
A Categorical Framework for the Specification and the Verification of Aspect Oriented SystemsSabas, Arsène 07 1900 (has links)
Un objectif principal du génie logiciel est de pouvoir produire des logiciels complexes,
de grande taille et fiables en un temps raisonnable. La technologie orientée objet (OO) a fourni de bons concepts et des techniques de modélisation et de programmation qui ont
permis de développer des applications complexes tant dans le monde académique que
dans le monde industriel. Cette expérience a cependant permis de découvrir les faiblesses
du paradigme objet (par exemples, la dispersion de code et le problème de traçabilité).
La programmation orientée aspect (OA) apporte une solution simple aux limitations
de la programmation OO, telle que le problème des préoccupations transversales.
Ces préoccupations transversales se traduisent par la dispersion du même code dans plusieurs modules du système ou l’emmêlement de plusieurs morceaux de code dans un même module. Cette nouvelle méthode de programmer permet d’implémenter chaque
problématique indépendamment des autres, puis de les assembler selon des règles bien
définies. La programmation OA promet donc une meilleure productivité, une meilleure
réutilisation du code et une meilleure adaptation du code aux changements. Très vite, cette nouvelle façon de faire s’est vue s’étendre sur tout le processus de développement de logiciel en ayant pour but de préserver la modularité et la traçabilité, qui sont deux propriétés importantes des logiciels de bonne qualité.
Cependant, la technologie OA présente de nombreux défis. Le raisonnement, la spécification, et la vérification des programmes OA présentent des difficultés d’autant plus que ces programmes évoluent dans le temps. Par conséquent, le raisonnement modulaire de ces programmes est requis sinon ils nécessiteraient d’être réexaminés au complet chaque fois qu’un composant est changé ou ajouté. Il est cependant bien connu dans la littérature que le raisonnement modulaire sur les programmes OA est difficile vu que les aspects appliqués changent souvent le comportement de leurs composantes de base [47]. Ces mêmes difficultés sont présentes au niveau des phases de spécification et de vérification du processus de développement des logiciels. Au meilleur de nos connaissances,
la spécification modulaire et la vérification modulaire sont faiblement couvertes et constituent un champ de recherche très intéressant. De même, les interactions entre aspects est un sérieux problème dans la communauté des aspects. Pour faire face à ces problèmes, nous avons choisi d’utiliser la théorie des catégories et les techniques des spécifications algébriques.
Pour apporter une solution aux problèmes ci-dessus cités, nous avons utilisé les travaux de Wiels [110] et d’autres contributions telles que celles décrites dans le livre [25]. Nous supposons que le système en développement est déjà décomposé en aspects et classes. La première contribution de notre thèse est l’extension des techniques des spécifications algébriques à la notion d’aspect. Deuxièmement, nous avons défini
une logique, LA , qui est utilisée dans le corps des spécifications pour décrire le comportement de ces composantes. La troisième contribution consiste en la définition de l’opérateur de tissage qui correspond à la relation d’interconnexion entre les modules d’aspect et les modules de classe. La quatrième contribution concerne le développement d’un mécanisme de prévention qui permet de prévenir les interactions indésirables dans les systèmes orientés aspect. / One of the main goals of software engineering is to enable the construction of large, complex and reliable software in timely fashion. Object-oriented (OO) technology has provided modeling and programming principles and techniques that allow developing complex software systems both in academic and industrial areas. In return, experience gained in OO system development has allowed discovering some limitations of object technology (e.g., code scattering and poor traceability problems). Aspect Oriented (AO) Technology is a post-object-oriented technology emerged to overcome limitations of Object Oriented (OO) Technology, such as the crosscutting concern problem. Crosscutting concerns are scattered and tangled concerns. Major goals of Aspect Oriented Programming (AOP) include improving modularity, cohesion, and overall software quality.
Aspect Oriented Programming results in the evolution of programming activities to fullblown software engineering processes, to preserve modularity and traceability, which
are two important properties of high-quality software.
Yet, there are also many challenges in AO Technology. Reasoning, specification,
and verification of AO programs present unique challenges especially as such programs
evolve over time. Consequently, modular reasoning of such programs is highly attractive as it enables tractable evolution, otherwise necessitating that the entire program be reexamined each time a component is changed or is added. It is well known in the literature, however, that modular reasoning about AO programs is difficult due to the fact that the aspects applied often alter the behavior of the base components [47]. The same modular
reasoning difficulties are also present in the specification and verification phases of
software development process. To the best of our knowledge, AO modular specification
and verification is a weakly covered subject and constitutes an interesting open research
field. Also, aspect interaction is a major concern in the aspect-oriented community. To
deal with these problems, we choose to use category theory and algebraic specification
techniques.
To achieve the above thesis goals, we use the work of Wiels [110] and other contributions such as the one described in [25]. We assume at the beginning that the system under development is already decomposed into aspect and class components. The first contribution of our thesis is the extension of the algebraic specification technique to the notion of aspect. Secondly, we define a logic, LA that is used in specification bodies to describe the behavior of these components. The third contribution concerns the defini tion of the weaving operator corresponding to the weaving interconnection relationship
between aspect modules and class modules. The fourth contribution consists of the design of a prevention policy that is used to prevent or avoid undesirable aspect interactions in aspect-oriented systems.
|
Page generated in 0.0912 seconds