View
219
Download
0
Category
Preview:
Citation preview
Aspect Oriented Software Aspect Oriented Software DevelopmentDevelopment
By:
Maryam Malekzad
M.Tech II 11301
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 2
Birth of AOSD ;)Birth of AOSD ;)AOSDAOSD describes a number of approaches to software
modularization and composition including, in order of publication:
reflection and metaobject protocols, Composition Filters, developed at the University of Twente in the University of Twente in the NetherlandsNetherlands,
SubjectOriented Programming (later extended as Multidimensional Separation of Concerns) at IBMIBM
Feature Oriented Programming at University of Texas University of Texas at Austinat Austin
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 3
Birth of AOSD continue Birth of AOSD continue
Adaptive Programming at Northeastern University, Northeastern University, USAUSA
and AspectOriented Programming (AOP) at Palo Palo Alto Research Center.Alto Research Center.
The term aspectorientedaspectoriented was introduced by was introduced by Gregor Kiczales Gregor Kiczales and his team at Palo Alto Research Center
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 4
What is the main Idea?What is the main Idea?Aspectoriented software development (AOSD):Aspectoriented software development (AOSD):
is an emerging software development technology that seeks
new modularizations of software systems in order to isolate secondary or supporting functions from the main program's business
logic.
AOSD allows multiple concerns to be expressed separately and automatically unified into working systems.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 5
AOSD's target?AOSD's target?
AspectOriented Software DevelopmentAspectOriented Software Development focuses on
the identification, specification and representation of crosscutting concerns and their modularization into separate functional
units as well as their automated composition into a
working system.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 6
AOSD's target? continue AOSD's target? continue
The focus of AspectOriented Software Development (AOSD) is in the investigation and implementation of new structures for software modularitysoftware modularity that provide support for explicit abstractions to modularize concerns.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 7
What is ”Aspect” ?What is ”Aspect” ? (1)(1) An aspect is a module that encapsulates a concern. An aspect is composed of pointcuts, advice bodies
and intertype declarations. In some approaches, and aspect may also contain
classes and methods. Intertype declarations allow the programmer to
modify a program's static structure, such as class members and classes hierarchy. New members can be inserted and classes can be pushed down the class hierarchy.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 8
What is ”Aspect” ? What is ”Aspect” ? (2)(2)
An aspect is a common feature that's typically scattered across methods, classes, object hierarchies, or even entire object models. It is behavior that looks and smells like it should have structure, but you can't find a way to express this structure in code with traditional objectoriented techniques.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 9
What is ”Pointcut” ?What is ”Pointcut” ?
In aspectoriented computer programming:aspectoriented computer programming: a pointcut is a set of join points.
Whenever the program execution reaches one of the join points described in the pointcut, a piece of code associated with the pointcut (called advice) is executed.
This allows a programmer to describe where and when additional code should be executed in addition to an already defined behavior.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 10
What is ”Pointcut” ? continue What is ”Pointcut” ? continue
Pointcut Pointcut permits the addition of aspects to existing software, or the design of software with a clear separation of concerns, wherein the programmer weaves (merges) different aspects into a complete application.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 11
AOP ?!AOP ?!
Aspectoriented programming (AOP)Aspectoriented programming (AOP) is a programming paradigm that aims to:
increase modularity by allowing the separation of crosscutting
concerns. AOP forms a basis for aspectoriented software
development.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 12
Crosscutting Concerns Vs. Core ConcernCrosscutting Concerns Vs. Core Concerncrosscutting concernscrosscutting concerns are :
aspects of a program that affect other concerns.
These concerns often cannot be cleanly decomposed from the rest of the
system in both the design and implementation, and
can result in either scattering (code duplication), tangling (significant dependencies between systems), or both.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 13
The implementation of a concern is scatteredscattered if its code is spread out over multiple modules. The concern affects the implementation of multiple modules. Its implementation is not modular.
The implementation of a concern is tangledtangled if its code is intermixed with code that implements other concerns. The module in which tangling occurs is not cohesive.
Scattering and tangling often go together, even though they are different concepts.
Do you know ?Do you know ?
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 14
What is ”Concern” ?What is ”Concern” ?a concernconcern :
is a particular set of information that has an effect on the code of a computer program.
It can be as general as the details of database interaction or
as specific as performing a primitive calculation, depending on the level of conversation between
developers and the program being discussed.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 15
AO Requirement EngineeringAO Requirement Engineering"Early Aspects""Early Aspects" focuses on the
identification, specification and representation of crosscutting properties at the requirement level.
Examples of such properties include: security, mobility, availability and realtime
constraints.
Crosscutting properties are: requirements, use cases or features that have a
broadly scoped effect on other requirements or architecture components.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 16
AO System ArchitectureAO System Architecture focuses on the localization and specification of
crosscutting concerns in architectural designs. Crosscutting concerns that appear at the
architectural level cannot be modularized by redefining the software architecture using conventional architectural abstractions.
Aspectoriented system architecture languages propose explicit mechanisms to identify, specify and evaluate aspects at the architecture design level.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 17
AO System ArchitectureAO System Architecture
Aspectoriented architecture starts from the observation that we need to identify, specify and evaluate aspects explicitly at the architecture design level.
Aspectual architecture approaches describe steps for identifying architectural aspects.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 18
Specific Areas of Excellence are:Specific Areas of Excellence are:
the aspectoriented architecture process itself, the aspectoriented architecture notations, aspectoriented architecture tool support, adoption and integration of aspectoriented
architecture, and assessment/evaluation of aspectoriented
architecture.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 19
Modeling and DesignModeling and Design It has the same objectives as any software design
activity, i.e. characterising and specifying the behavior and structure of the software system.
Its unique contribution to software design lies in the fact that concerns that are necessarily scattered and tangled in more traditional approaches can be modularized.
Typically, such an approach includes both a process and a language.
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 20
Aspectoriented languagesAspectoriented languages
AspectC++ AspectJ AspectLua (a Lua extension) CaesarJ Compose* ObjectTeams e (verification language)
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 21
??
AOSD Maryam Malekzad M.Tech. 11301 PUCSD 22
Thank youThank you forfor
your attentionyour attention
Recommended