Aspect Oriented Software 
     Development

By:
Maryam Malekzad
M.Tech II ­ 11301
Birth of AOSD ;)
           AOSD describes a number of approaches to software 
           AOSD
            modularization and composition including, in order of 
            publication:
           reflection and metaobject protocols, Composition 
             Filters, developed at the University of Twente in the 
             Netherlands, 
              Netherlands
          Subject­Oriented Programming (later extended as 
            Multidimensional Separation of Concerns) at IBM
          Feature Oriented Programming at University of Texas 
             at Austin

AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   2
Birth of AOSD    ­ continue ­

                 Adaptive Programming at Northeastern University, 
                   USA
                 and Aspect­Oriented Programming (AOP) at Palo 
                    Alto Research Center.
                 The term aspect­oriented was introduced by 
                   Gregor Kiczales and his team at Palo Alto 
                   Gregor Kiczales 
                   Research Center



AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   3
What is the main Idea?
           Aspect­oriented 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   4
AOSD's target?
                  Aspect­Oriented Software Development focuses on
                  Aspect­Oriented Software Development
                                   the identification,
                                   specification and 
                                   representation of cross­cutting 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   5
AOSD's target?    ­ continue ­


                 The focus of Aspect­Oriented Software 
                   Development (AOSD) is in the investigation 
                   and implementation of new structures for 
                   software modularity that provide support 
                   software modularity
                   for explicit abstractions to modularize 
                   concerns.


AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   6
What is ”Aspect” ?                                                                                                                  (1)
              An aspect is a module that encapsulates a concern. 
              An aspect is composed of pointcuts, advice bodies 
                and inter­type declarations.
               In some approaches, and aspect may also contain 
                 classes and methods.
              Inter­type 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   7
What is ”Aspect” ?                                                                                                                  (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 object­oriented 
                   techniques. 



AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   8
What is ”Pointcut” ?
                  In aspect­oriented 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   9
What is ”Pointcut” ?         ­continue ­


                Pointcut  permits the addition of aspects to existing 
                 Pointcut 
                  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   10
AOP ?!
                  Aspect­oriented programming (AOP) is a 
                  Aspect­oriented programming (AOP)
                   programming paradigm that aims to:
                                    increase modularity
                                   by allowing the separation of cross­cutting 
                                     concerns. 
                 AOP forms a basis for aspect­oriented software 
                   development.



AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   11
Cross­cutting Concerns Vs. Core Concern
                 cross­cutting concerns are :
                 cross­cutting concerns
                                   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   12
Do you know ?
                The implementation of a concern is scattered if its 
                                                    scattered
                  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 tangled if its 
                                                     tangled
                  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.

AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   13
What is ”Concern” ?
                a concern :
                  concern
               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   14
 AO Requirement Engineering
                  "Early Aspects" focuses on the
                  "Early Aspects"
                 identification, specification and representation of 
                    crosscutting properties at the requirement level.
                  Examples of such properties include:
                                   security, mobility, availability and real­time 
                                      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   15
AO 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.
                  Aspect­oriented system architecture languages 
                    propose explicit mechanisms to identify, specify 
                    and evaluate aspects at the architecture design 
                    level.

AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   16
AO System Architecture
                 Aspect­oriented 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   17
Specific Areas of Excellence are:
                     the aspect­oriented architecture process itself,
                     the aspect­oriented architecture notations,
                     aspect­oriented architecture tool support,
                     adoption and integration of aspect­oriented 
                     architecture, and
                     assessment/evaluation of aspect­oriented 
                     architecture.



AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   18
Modeling 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   19
Aspect­oriented languages
                     AspectC++
                     AspectJ
                     AspectLua (a Lua extension)
                     CaesarJ
                     Compose*
                     ObjectTeams
                     e (verification language)


AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   20
?
AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   21
Thank you
                          for
                    your attention

AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD   22

Aspect oriented software development

  • 1.
    Aspect Oriented Software  Development By: Maryam Malekzad M.Tech II ­ 11301
  • 2.
    Birth of AOSD ;) AOSD describes a number of approaches to software  AOSD modularization and composition including, in order of  publication:   reflection and metaobject protocols, Composition  Filters, developed at the University of Twente in the  Netherlands,  Netherlands  Subject­Oriented Programming (later extended as  Multidimensional Separation of Concerns) at IBM  Feature Oriented Programming at University of Texas  at Austin AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 2
  • 3.
    Birth of AOSD    ­ continue ­  Adaptive Programming at Northeastern University,  USA  and Aspect­Oriented Programming (AOP) at Palo  Alto Research Center.  The term aspect­oriented was introduced by  Gregor Kiczales and his team at Palo Alto  Gregor Kiczales  Research Center AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 3
  • 4.
    What is the main Idea? Aspect­oriented 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 4
  • 5.
    AOSD's target? Aspect­Oriented Software Development focuses on Aspect­Oriented Software Development  the identification,  specification and   representation of cross­cutting 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 5
  • 6.
    AOSD's target?    ­ continue ­  The focus of Aspect­Oriented Software  Development (AOSD) is in the investigation  and implementation of new structures for  software modularity that provide support  software modularity for explicit abstractions to modularize  concerns. AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 6
  • 7.
    What is ”Aspect” ? (1)  An aspect is a module that encapsulates a concern.   An aspect is composed of pointcuts, advice bodies  and inter­type declarations.   In some approaches, and aspect may also contain  classes and methods.  Inter­type 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 7
  • 8.
    What is ”Aspect” ?  (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 object­oriented  techniques.  AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 8
  • 9.
    What is ”Pointcut” ? In aspect­oriented 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 9
  • 10.
    What is ”Pointcut” ?         ­continue ­  Pointcut  permits the addition of aspects to existing  Pointcut  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 10
  • 11.
    AOP ?! Aspect­oriented programming (AOP) is a  Aspect­oriented programming (AOP) programming paradigm that aims to:   increase modularity  by allowing the separation of cross­cutting  concerns.   AOP forms a basis for aspect­oriented software  development. AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 11
  • 12.
    Cross­cutting Concerns Vs. Core Concern cross­cutting concerns are : cross­cutting concerns  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 12
  • 13.
    Do you know ?  The implementation of a concern is scattered if its  scattered 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 tangled if its  tangled 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. AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 13
  • 14.
    What is ”Concern” ? a concern : concern  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 14
  • 15.
     AO Requirement Engineering "Early Aspects" focuses on the "Early Aspects"  identification, specification and representation of  crosscutting properties at the requirement level.   Examples of such properties include:  security, mobility, availability and real­time  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 15
  • 16.
    AO 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.   Aspect­oriented system architecture languages  propose explicit mechanisms to identify, specify  and evaluate aspects at the architecture design  level. AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 16
  • 17.
    AO System Architecture  Aspect­oriented 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 17
  • 18.
    Specific Areas of Excellence are:      the aspect­oriented architecture process itself,      the aspect­oriented architecture notations,      aspect­oriented architecture tool support,      adoption and integration of aspect­oriented  architecture, and      assessment/evaluation of aspect­oriented  architecture. AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 18
  • 19.
    Modeling 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 19
  • 20.
    Aspect­oriented languages      AspectC++      AspectJ      AspectLua (a Lua extension)      CaesarJ      Compose*      ObjectTeams      e (verification language) AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 20
  • 21.
  • 22.
    Thank you  for  your attention AOSD                        Maryam Malekzad                    M.Tech. ­ 11301                                                                                 PUCSD 22