Top PDF A Component-Based and Aspect-Oriented Model for Software Evolution

A Component-Based and Aspect-Oriented Model for Software Evolution

A Component-Based and Aspect-Oriented Model for Software Evolution

On the other hand the application of CBSD concepts to AOSD is less investigated. Most AOSD approaches such as AspectJ, use an asymmetric representation of an aspect. In other words, aspects and components are two different types of entities. It appears that the weaving of an aspect on a set of components uses different composition rules than the composition of components together. The weaving of an aspect uses pointcut declarations, which are tied to the structure of the base components. Consequently, when the system evolves, namely the structure of those components, the efforts to maintain the whole system are multiplied. In addition, the implicit relationships created between the piece of advice code (which compose an aspect) and the advised components, are never explicitly discernible and can surely not be individually manipulated at runtime. In brief, state of the art AOSD approaches fails in making the aspect-component composition evolvable (Tourwé et al., 2003).
Show more

13 Read more

A component-based approach to online software evolution

A component-based approach to online software evolution

There are also many systematic approaches for component-based software evolution, including software architecture based approaches, and agent-based approaches. Plasil, F. et al. [43] presented SOFA (SOFtware Appliances) architecture, the SOFA component model and its extension, DCUP (Dynamic Component UPdating), which provided a small set of well scaling orthogonal abstractions (easily mapped to Java and CORBA) to support dynamic component updating in running applications. Postma et al. [44] described an approach called 3RDBA to facilitate replacing a key component in a long-living architecture, with an architecture systematically gathering all information needed to make well-founded decisions regarding evolution. The approach consisted of exploration, consolidation, and migration cycles, and each cycle contained four steps: Requirements, Design, Build, and Analyze. Martin L. Griss and Robert R. Kessler [45] treated software agents as next generation flexible components that support dynamic evolution of features and autonomic self-managing.
Show more

25 Read more

A pattern language for evolution in component-based software architectures

A pattern language for evolution in component-based software architectures

Abstract –– Modern software systems are prone to a continuous evolution under frequently varying requirements. Architecture- centric software evolution enables change in system structure and behavior while maintaining a global view of software to address evolution-centric tradeoffs. The Lehman’s law of continuing change demands for long-living and continuously evolving architectures to prolong the productive life and economic value of deployed software. However, the existing solutions for architectural maintenance and evolution fall short of exploiting generic and reusable expertise to address recurring evolution problems. We argue that architectural evolution process requires an explicit evolution-centric knowledge – that can be discovered, shared and reused – to anticipate and guide change management. Therefore, we propose a pattern language (PatEvol) as a collection of interconnected change patterns that enable reuse-driven and consistent evolution in component-based software architectures (CBSAs). Pattern interconnections represent possible relationships among patterns (such as variants or related patterns) in the language. In component-based architectures, hierarchal configurations of atomic and composite elements express computational components and their connectors to develop and evolve software. More specifically, component-based architecture models and their evolution define the target domain of proposed pattern language. In general, we integrate architecture change mining (PatEvol development) as a complementary and integrated phase to facilitate reuse-driven architecture change execution (PatEvol application). Reuse-knowledge in the proposed pattern language is expressed as a formalised collection of interconnected-patterns. Individual patterns in the language build on each other to facilitate a generic, first-class abstraction – that can be operationalised and parameterisaed – to address recurring evolution tasks. The pattern language itself continuously evolves with an incremental acquisition of new patterns from architecture change logs.
Show more

15 Read more

PROCESS QUALITY ANALYSIS OF PERFECTIVE MAINTAINABILITY FOR COMPONENT-BASED SOFTWARE SYSTEMS USING ASPECT-ORIENTED PROGRAMMING TECHNIQUES

PROCESS QUALITY ANALYSIS OF PERFECTIVE MAINTAINABILITY FOR COMPONENT-BASED SOFTWARE SYSTEMS USING ASPECT-ORIENTED PROGRAMMING TECHNIQUES

Quality of perfective maintainability is the extent to which software system possesses desirable characteristics. Quality analysis is performed through qualitative and quantitative approaches [5]. The qualitative approach is based on the identification of critical programming errors that may encountered whenever any enhancement/modification request has been fulfilled. This approach involves proper analysis for correcting the errors in each of the aspects or components affected by that request. This also includes identification of aspects of all affected components. Identification of aspects is done by the concepts of separation of concerns. Design consists of redesigning the system based on the understanding of the
Show more

6 Read more

Component Oriented Reliability Analysis Based on Hierarchical Bayesian Model for an Open Source Software

Component Oriented Reliability Analysis Based on Hierarchical Bayesian Model for an Open Source Software

The successful experience of adopting distributed development models in such open source projects includes GNU/Linux operating system, Apache HTTP server, Android, BusyBox, and so on. The open source project contains special features so-called software composition by which several geographically-dispersed compo- nents are developed in all parts of the world. We propose a method of component-oriented reliability as- sessment based on hierarchical Bayesian model and Markov chain Monte Carlo methods. Especially, we fo- cus on the fault-detection rate for each component reported to the bug tracking system. We can assess the reliability for the whole open source software system by using the confidence interval for each component. Also, we analyze actual software fault-count data to show numerical examples of reliability assessment for OSS.
Show more

8 Read more

Aspect-Oriented Software Development with Java Aspect Components

Aspect-Oriented Software Development with Java Aspect Components

 methodExpression is either a fully-dened method prototype (e.g. get():int ), or a partially-dened one with GNU-like regular expressions (e.g. get.*(.*):int mat hes all methods whose name starts with get, return an integer, and take any parameters), or an expression based on the keyword dened in table 2. For instan e, GETTERS(a,b) mat hes the getter methods for elds a and b. Like in omponent frame- works su h as Java Beans, naming onventions are assumed on method names: getter/setter should be name get/set followed by the eld name (starting in upper ase). Adders/removers should be named add/remove and take an obje t as an unique parameter. Ea h time a new lass is loaded in the JAC framework, some introspe tion and byte ode analysis are performed. A meta-model of the lass is on- stru ted on the y (in a dedi ated aspe t alled RTTI for RunTime Type Information) with annotations that enable to a hieve the semanti s dened in table 2. For instan e, ea h method byte ode is parsed to determine whether some elds are modied or not. If so, the method is tagged as a MODIFIER in the R TTI aspe t. As the pro ess of analyzing the byte ode of many lasses an be time onsuming, the lasses whi h are never extended by an aspe t (i.e. that are simply used by base obje ts or aspe t omponents), an be ex luded from this analysis phase.
Show more

20 Read more

Evolution in Feature-Oriented Model-Based Software Product Line Engineering

Evolution in Feature-Oriented Model-Based Software Product Line Engineering

the topic. For example, in [AGM + 06], Alves et al. introduce a number of different modifications that can be applied to the feature model in the problem space of a software product line. The described steps of modification are very fine grained, which makes it hard to employ them as use- ful practical evolutions directly. However, their general idea can be used to build more complex evolutions. In the concrete case, the described steps inspired the creation of the Insert Feature (see Section 3.1.1.2) and Pull Up Feature (see Section 3.1.1.6) evolutions. Furthermore, Svahn- berg and Bosch [SB99] present the findings of a case study of the evolution of software product lines in two companies. As part of their work, they identified concrete steps of modification that are commonly used in software product line evolution. These findings inspired the Split Feature evolution of the thesis (see Section 3.1.1.4). Finally, Czarnecki et al. [CHE05] describe the so called specialization of feature models by reducing their configuration options. As part of their work, the authors define the steps for a modification that has been implemented as Remove Feature in this thesis (see Section 3.1.1.7). In addition, Botterweck et al. have done significant work in the area of software product line evolution. For example, in [BPD + 10], the authors introduce a system for planning the evolution of software product lines in terms of changes to features. Unfortunately, the general focus of the paper and other work by the authors such as [BPPK09, EBLSP10] is on planning evolution and not on performing it so that their work can not serve as basis for the thesis. However, a short catalogue of problem space evolutions is presented as part of the paper [BPD + 10], which contains modifications similar to the evolutions
Show more

180 Read more

Aspect oriented design model

Aspect oriented design model

The Object-oriented software development paradigm is based upon this principle. Each concern or functionality of system is encapsulated in objects and they only perform their own specified functions without accessing other object’s private elements. This is an example of “separation of concerns”. Though this property is achieved in object-oriented programming (OOP), over time developers started to feel that OOP does not separate all the concerns in from of classes (Kiczales et al (1997)). There are some concerns such as tracing, logging, fault-tolerance, synchronization, to name a few, which cannot be implemented in distinct classes, rather their code is present in more than one class, usually referred to as the scattered code problem, and such concerns are called cross-cutting concerns. To separate such crosscutting concerns from being scattered, new separation or modularization techniques are required. Two different methods have been used by software developers to handle crosscutting concerns: Interception based approaches, in which event or subroutines to implement crosscutting concerns are intercepted in the execution, and Code Weaving approaches, in which code is woven into the base code with the help of a tool. Based on the later solution, many programming paradigms have been suggested, such as aspect-oriented programming (Kiczales et al (1997)), adaptive programming (Lieberherr (1996)), role-modelling (Reenskaug, World and Lehne (1995)), composition filters (Aksit, Bergman and Vural (1992)) and subject-oriented programming (Aspect team (2001)). These approaches decompose each concern in an individual way.
Show more

6 Read more

Product Line Implementation using Aspect-Oriented and Model-Driven Software Development

Product Line Implementation using Aspect-Oriented and Model-Driven Software Development

Software product line engineering aims to reduce development time, effort, cost, and complexity by tak- ing advantage of the commonality within a portfolio of similar products. The effectiveness of a software prod- uct line approach directly depends on how well feature variability within the portfolio is implemented and managed throughout the development lifecycle, from early analysis through maintenance and evolution. This paper presents an approach that facilitates variability implementation, management and tracing by integrat- ing model-driven and aspect-oriented software devel- opment. Features are separated in models and com- posed by aspect-oriented composition techniques on model level. Model transformations support the transi- tion from problem to solution domain. Aspect-oriented techniques enable the explicit expression and modu- larization of variability on model, code, and template level. The presented concepts are illustrated with a case study of a home automation system.
Show more

10 Read more

An Aspect-Oriented Programming Language for Agile Software Development

An Aspect-Oriented Programming Language for Agile Software Development

Several general-purpose AOP languages, tools, and systems have been proposed and developed before. AspectJ [38] is a simple and practi- cal AOP based extension to Java. Adaptive Programming provides a special-purpose language, called DemeterJ [58], for writing class structure traversal specifications. DemeterJ prevents knowledge of the complete class structure from becoming tangled throughout the code. Composi- tion filters object model [20] provides control over messages received and sent by an object. The composition filters mechanism provides an aspect language that can beused to control a number of aspects inlcuding syn- chronization and communication. ComposeJ [81] is an extension of the Java language that adds composition filters to Java classes through in- lining. Multi-dimensional separation of concerns (Subject-Oriented Pro- gramming) [76] provides for composing and integration disparate class hi- erarchies, each of which might represent different concerns. Hyper/J [59] supports separation and integration of concerns along multi-dimensional in standard Java software. JAC [62, 60, 61, 57] is a Java framework for dynamic AOP. Unlike other lanugages such as AspectJ, JAC does not require any langugae extensions to Java.
Show more

163 Read more

Aspect Oriented Requirement Engineering: A Theme Based Vector Orientation Model

Aspect Oriented Requirement Engineering: A Theme Based Vector Orientation Model

Abstract. Separation of Concerns, in the field of Software Engineering has been an important issue for quite some time. And this issue is very much related to Aspect Oriented Software Development. This is so because Aspects happen to be certain concerns that get interleaved with the Core-Functionalities in such a way that they become nearly inseparable. As a result of which both the designer as well as the programmer, who are supposed to be concerned only with the Core-Functionalities, is bound to take extra burden or botheration regarding the proper and accurate handling of Aspects. The Theme approach is an already established approach for Aspect identification in the requirements-engineering phase. Our approach is a diversification of the Theme approach where we look for Aspectual Requirements instead of Aspectual Themes. This paper proposes a purely mathematical model for Requirements-Engineering for Aspect Identification. The concept is based on N-Dimensional-Vector-Orientation Model, which is used to serve the purpose.
Show more

9 Read more

Aspect-Oriented Software Development based Solution for Intervention Concerns Problems:Case Study

Aspect-Oriented Software Development based Solution for Intervention Concerns Problems:Case Study

Volume 63– No.4, February 2013 17 some solutions, one of which is in the System Development in a component and the Requirements Encapsulates in the form object and service, but there are some requirements that have not inherently capable of being encapsulated in a component, and always are involved with various systems and Are scattered in the whole system, which ultimately led to the scattering problem and the Complexity of the system [5]. The Requirements which have such a feature called Interference Concerns. By Using Object-oriented Programming, Intervention Concerns are scattered throughout the code and prevent the achievement of this method by producing software is useless because we need to enter codes related to Concern Intervention in various parts of the System Components to reach to related Requirements of this Concerns and communicated between them [6].
Show more

10 Read more

A Three-level Component Model in Component Based Software Development

A Three-level Component Model in Component Based Software Development

7. CONCLUSION This paper proposes a three step component-based devel- opment process to ease the reuse of components and archi- tectures. To support component-reuse centric development, a three level component model is proposed by explicitly sep- arating different level information on components into com- ponent roles, component classes and component instances. Based on the proposed component model, component de- sign decisions can thus be precisely captured and traced throughout the development process. A three-level architec- ture is also proposed based on the component model. The three-level syntax of Dedal supports the expression of re- quirements by the means of abstract and partial component roles that are used as the main conceptual support for the search of reusable components to be included in configura- tions. The model of the runtime system (the instantiated component assembly) is rich enough to serve as the basis of a full evolution process [25].
Show more

11 Read more

ASPECT ORIENTED SOFTWARE TESTING TECHNIQUES: A REVIEW

ASPECT ORIENTED SOFTWARE TESTING TECHNIQUES: A REVIEW

W. Xu [9] proposed a testing approach based upon finite state machine to test aspect oriented program. Moreover, this approach was applied to various AOP problems to detect various faults in AOP. This approach identifies both kinds of faults; traditional faults and new faults which occur in AOP. C. H. Liu et.al.[10] also proposed a testing technique for aspect-oriented program which was based on object state diagram and constructed a weaving model of crosscutting concerns D . Xu et.al.[11] proposed a framework to test aspect oriented program. This framework also helps to detect many aspects fault. P. Wang [12] develop a tool to select test cases automatically. This approach applies to the basics of standard testing technology to select test cases.
Show more

6 Read more

History-based Approach for Detecting Modularity Defects in Aspect Oriented Software

History-based Approach for Detecting Modularity Defects in Aspect Oriented Software

To resume up, just how well does the AO software system evolution justify its best modularity? The existence of modularity defects (external logical couplings) in an AO system shows that the separation of crosscutting concerns (modularity) into that system is violated. The coupled crosscutting concerns are candidates for restructuring or refactoring. Here, the detected modularity defects are used to guide improvement efforts; in order to get a more stable decomposition with very little dependencies i.e. an ideal situation would allow changing each crosscutting concern independently of the others. This is very useful to reconstruct a best modularization for the AO software system and a good reusability of their crosscutting concerns.
Show more

8 Read more

Dynamic Software Evolution and The K Component Model

Dynamic Software Evolution and The K Component Model

Software architecture concepts , such as inter-object dependencies, have always been present in object- oriented software, but their importance has increased with the advent of dynamically evolvable software. In this paper, we have presented the K-Component model as a framework for explicitly reifying the software architecture in object-based component systems as an architecture meta-model. We provide support for safely reconfiguring the architecture using reflective programs , called adaptation contracts, that perform conditional graph transformations on the architecture. We also provide the adaptation contract description language for a clean separation of adaptation-specific code from functional code. The K-Component model can be used to build adaptive applications.
Show more

6 Read more

Generative aspect-oriented component adaptation

Generative aspect-oriented component adaptation

 JavaBeans / Enterprise JavaBeans (EJB) [63] are the components model developed by SUN. JavaBeans are classes written in the Java programming language conforming to a particular convention. They are used to encapsulate many objects into a single object (the bean), so that the bean can be passed around rather than the individual objects. The EJB specification is one of the several Java APIs on the Java Platform Enterprise Edition (J2EE). EJB is a server-side component that encapsulates the business logic of an application. The EJB specification intends to provide a standard way to implement the back-end business logic code typically found in enterprise applications (as opposed to front-end user-interface code). Such code was frequently found to solve the same problems, and it was found that solutions to these problems are often repeatedly re-implemented by software developers. Enterprise Java Beans were intended to handle such common concerns such as persistence, transactional integrity, and security in a standard way, leaving programmers free to concentrate on the business logic.
Show more

226 Read more

A comparative study of agile, component-based, aspect-oriented and mashup software development methods

A comparative study of agile, component-based, aspect-oriented and mashup software development methods

However, by virtue of newly released drag-and-drop Mashup tools such as Microsoft Popfly [31] and Yahoo! Pipes [32], these steps have been summed to and (as shown in Figure 6 on the right hand side) which eased Mashup programming into the realm of non-programmers. For ease of access to data and fast computation, transformation from the specific to the generic and vice versa is necessary when handling data in a multi-mode service-oriented environment. We can add data from specific legacy systems, such as old databases or old versions of software, and them to be generic such that they can be readily used by all applications without further conversion. The opposite is also true. This reduces data access and computation time.
Show more

15 Read more

A Model Curriculum for Aspect-Oriented Software Development

A Model Curriculum for Aspect-Oriented Software Development

So, AOSD techniques offer abstraction, modularity, and composition support to reason about crosscutting concerns throughout the software life cycle—that is, from requirements engineering to architecture and detailed design to implementation, testing, and evolution. Their benefits include im- proved ability to reason about the problem domain and the corresponding solution; reduction in application code size, development costs, and mainte- nance time; improved code reuse; and many others. We can see AOSD’s increasing popularity and industrial application in the involvement of major corporations such as Siemens, IBM, Xerox, and Boeing and in MIT’s inclu- sion of AOSD on its 10 most promising technologies list. 4 For more indus-
Show more

10 Read more

A model curriculum for aspect oriented software development

A model curriculum for aspect oriented software development

Trinity College Dublin’s concrete instantia- tion of the AOSD curriculum, which has been ongoing for several years, was designed to be incorporated into an MSc module on Software Engineering for Concurrent and Distributed Systems (NDS104). NDS104 is one of six modules in the MSc in Computer Science (Networks and Distributed Systems). We ex- pect students to complete a research disserta- tion after the teaching terms. NDS104’s phi- losophy is based on combining research-led teaching with learning through practical appli- cation. In the second term, we dedicate four weeks to AOSD topics, with a series of lec- tures and research readings. We expect stu- dents to further research and apply AOSD practices in a large group project.
Show more

9 Read more

Show all 10000 documents...