A Case Study on Improving Changeability of COTS-Based System Using Aspect-Oriented Programming
نویسندگان
چکیده
More and more software projects are using COTS (commercial-off-the-shelf) components. One of the most challenging problems in COTS-based development is to evolve a system to follow changes in the customer requirements. It is therefore important to increase the changeability of the COTS-based system, so that new component can easily replace the problematic COTS components. Aspect-Oriented Programming (AOP) claims to make it easier to develop and maintain certain kinds of application. We performed a case study to investigate whether AOP can help to build an easy-to-change COTS-based system. This compared the changes when adding and replacing components between a COTS system implemented using Object-Oriented Programming (OOP) and the same system implemented using AOP. The results show that integrating COTS components using AOP may help to increase the changeability of the COTS-based system if the cross-cutting concerns in the code used to glue the COTS component are homogeneous (i.e., have a consistent application of the same or very similar policy in multiple places). Extracting heterogeneous or partially homogeneous cross-cutting concerns in glue-code as aspects does not give any benefits. This study also discovered some limitations in the AOP tool that makes it difficult or even impossible to integrate COTS components with AOP.
منابع مشابه
A Case Stud on Improving Changeability of COTS-Based System Using Aspect-Oriented Programming
More and more software projects are using COTS (commercial-off-the-shelf) components. One of the most challenging problems in COTS-based development is to evolve a system to follow changes in the customer requirements. It is therefore important to increase the changeability of the COTS-based system, so that new component can easily replace the problematic COTS components. Aspect-Oriented Progra...
متن کاملImpact of Aspect Oriented Programming on Software Maintainability - A Descriptive Study
Software maintenance is a term of major interest and it is a valuable part of software development cycle. One of the main aspects of software quality in software products is maintainability. Further, there are four sub categories of maintainability: analyzability, changeability, stability, and testability. Maintainability plays a vital role in improving software quality as software changes/upda...
متن کاملAn Evaluation of Maintainability of Aspect-Oriented Systems: a Practical Approach
Maintenance of software systems is becoming major concern for software developers and users. In software projects/products, where software changes/updates are frequently required to improve software quality, maintainability is an important characteristic of ISO 9126 quality standard to evaluate. Analyzability, changeability, stability, and testability are sub attributes/characteristics of maint...
متن کاملCorrelation between Various Quality Characteristics for Aspect-Oriented Systems
Aspect-oriented system is a new emerging technique of software development that provides mechanism for implementing cross-cutting concerns. Quality assessment of important characteristics like cohesion, coupling, complexity, reusability, maintaibility, etc. is fairly unexplored for Aspect-oriented systems. Through this research work we have tried to find out the correlation between some of the ...
متن کاملCohesion and coupling measures for aspect oriented systems
Software metrics aim to measure the inherent complexity of software systems with a view toward predicting the overall project cost and evaluating the quality and effectiveness of the design. Aspect Oriented Software design is an emerging paradigm that provides new mechanisms to support the modularization of concerns, which otherwise would crosscut the OO system decomposition. There are various ...
متن کامل