Aspect oriented architecture helps to identify key concerns in the area of software development. The Aspect approach involved breaking down parts of functional components into parts in order to identify areas of concern in software architecture.
Manzalawy writer for Developer.com explains, “AOP is a new technology for separating crosscutting concerns into single units called aspects” (Developer.com, 2008). AspectJ-AOA technology used for class expressions, and description in the development environment Join Point-connects concerns to aspects Advice-described as behavior Pointcut- validates advice according join point.
The Capella online learning system is used in a case study to illustrate how aspect oriented architecture could provide for Increase productivity Efficiency Competitive advantage Positive user experiences
The scope and project requirements will include functional and non-functional requirements that will helped to provide a smooth and efficient system for customers. The AOA method will help to encapsulate aspects of the software architecture that will help to identify areas of concern, risks, and strategies to make changes to the requirements specifications in this case study.
The benefits of using the AOA method in this case study will prove the most cost effective available during the design, development and testing phase of project life cycle. The use of AOA will help in reduced cost in testing, validation and maintenance.
Potential risks of AOA is the limited availability of tools used for build, debugging, and maintenance. This risk will be mitigated through the capturing of project requirements and specifications prior to the design phase of the project life cycle. Changes can be made in the design phase prior to development in order to capture Aspects and appropriate bahaviors in the AOA modeling process.
Quality processes can be greatly enhance through the use of AOA aspect components which enable projects like the Capella case study to ensure functionality, performance, scalability, and security of enterprise aspects in the development process. Quality initiative will create shareholder value for enterprise operations and future development projects. The AOA model will greatly influence quality in the design and development process of software architecture.
The AOA process involved changes that can be made to address key concern areas I order to meet functional and non-functional requirements. There is a great deal of complexity in the various aspects of software architecture and in the build of a learning system that would allow for the AOA to provide modularization, and project organization in addressing key issues. It is important for the development team to understand and produce processes that are in line with software engineering practices to meet performance measures.
Advantages of the AOA method include improved processes for review and identification of programming mechanisms. Beneficial for understanding software bottlenecks and crosscutting concerns. Provides for reuse of aspects on future projects. The advantages will benefit to the commitment of success on future projects.
AOA disadvantages include: Developing aspects from scratch for reuse Variation of models used between developers Redevelopment of existing AOP aspects Additional research and development needed on new AOP technologies Revised performance measures for build and runtime. AOP models only provide implementation to a specific aspects limited to certain model types.
History of AOA• Gregor Kiczales from Xerox PARC created the AOP approach to software development.• Developers today use AOP in models for accounting, order fulfillment, web services, and general programming applications.
AOA Overview• The AOA process is an effective agile development method, which involves the breaking down of functional components into parts of the software architecture.
AOA ToolsTechnologies used to address concerns include:• AspectJ• Join Point• Advice• Pointcut
AOA Case Study• Capella online learning system• Increase workflow processes• Efficient distribution of information• Provide positive customer experience
Scope and Requirements• AOA can be applied to the Capella enterprise during the design and development phase of enterprise project life cycles.• AOA tools will be used encapsulate aspects of component mechanisms, in order to identify areas of concern and integrate into new architecture.
Benefits• The benefit of using the AOA method is most cost-effective compared to the total cost of maintenance post project.• IBM explains, “AOP is designed to handle cross- cutting concerns by providing a mechanism, the aspect, for expressing these concerns and automatically incorporating them into a system” (IBM.com, 2008).
RisksPotential risks that can be mitigated to support enterprise architecture processes.• Lack of tools support• Maintenance• Changes to Aspects
Quality• The AOA architecture model can enhance the enterprise case study through providing benchmarks for addressing key concerns.• Defining metrics and AOA evaluations of enterprise performance, marketability, and growth to ensure share holder value.
AOA Process• AOA methods change functional requirements and weave process indicators to better understand software architecture.• According to a Gorton, “AOP has demonstrated a great deal of promise in reducing software complexity through providing clear separation and modularization of Concerns”(Gorton, 2006).
AOA Advantages• Allows for effective review of programming mechanism.• Better understanding of project crosscutting concerns.• Shorter project completion, reuse and scalability.
AOA Disadvantages• Modifications-Development inconsistencies in language, and tools used in the creation of aspects. O’Regan explains, “Modification to the language increases the learning curve for teams looking to introduce AOP into existing projects” (O’Regan, 2004).• Performance- Improvement is needed with the use of various applications with AOA tools.• Integration-Reuse of aspects limited to specific AOP mechanisms.
Concluding In conclusion the AOA development processcould prove beneficial in software development.Developers are able to communicate requirements,and understand concern mitigation needed duringthe development life cycle. Advantages of AOAenables team members to approach agiledevelopment through tailoring projects for futureimplementations.
ReferencesGorton, I. (2006). Essential Software architecture. New York; Springer.IBM.com (2008). A Look at Aspect oriented Programming. RetrievedNovember 2, 2008 fromhttp://www.ibm.com/developerworks/rational/library/2782.htmlO’Regan, G (2004). O’Reilly Media: Introduction to Aspect OrientedProgramming. Retrieved November 2, 2008 fromhttp://www.onjava.com/pub/a/onjava/2004/01/14/aop.htmlManzalawy, Y. (n.d.) Developer.com:Aspect oriented Programming.Retrieved November 3, 2008 fromhttp://www.developer.com/design/article.php/3308941