2. 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.
3. 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.
5. AOA Case Study
• Capella online learning system
• Increase workflow processes
• Efficient distribution of information
• Provide positive customer experience
6. 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.
8. 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).
9. Risks
Potential risks that can be mitigated to support
enterprise architecture processes.
• Lack of tools support
• Maintenance
• Changes to Aspects
10. 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.
11. 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).
12. AOA Advantages
• Allows for effective review of programming
mechanism.
• Better understanding of project crosscutting
concerns.
• Shorter project completion, reuse and
scalability.
13. 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.
14. Concluding
In conclusion the AOA development process
could prove beneficial in software development.
Developers are able to communicate requirements,
and understand concern mitigation needed during
the development life cycle. Advantages of AOA
enables team members to approach agile
development through tailoring projects for future
implementations.
15. References
Gorton, I. (2006). Essential Software architecture. New York; Springer.
IBM.com (2008). A Look at Aspect oriented Programming. Retrieved
November 2, 2008 from
http://www.ibm.com/developerworks/rational/library/2782.html
O’Regan, G (2004). O’Reilly Media: Introduction to Aspect Oriented
Programming. Retrieved November 2, 2008 from
http://www.onjava.com/pub/a/onjava/2004/01/14/aop.html
Manzalawy, Y. (n.d.) Developer.com:Aspect oriented Programming.
Retrieved November 3, 2008 from
http://www.developer.com/design/article.php/3308941
Notas del editor
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.