Title: ModelDriven Aspect Adaptation To Support Modular Software Evolution
1Model-Driven Aspect AdaptationTo Support Modular
Software Evolution
March 30th, 2009
- Ph.D. Defense
- Jing Zhang
- zhangj_at_cis.uab.edu
- http//www.cis.uab.edu/zhangj
-
Committee Members Dr. Jeff Gray (Academic
Advisor) Dr. Barrett Bryant Dr. Aniruddha
Gokhale Dr. Marjan Mernik Dr. Chengcui
Zhang
2Overview of Presentation
Motivation
Challenges
Research Goals
Approaches
Evaluation
3First Law of Software Evolution
-
- Software that is being used must be
continually adapted or it becomes progressively
less satisfactory. -
- -- Manny M. Lehman
-
- Manny M. Lehman, Laws of Software
Evolution Revisited, In Proceedings of the 5th
European Workshop on Software Process Technology
(EWSPT), Nancy, France, October 1996, pages
108124.
4Challenges in Software Evolution1. Model
Evolution
5Challenges in Software Evolution2. Legacy
Evolution
6Challenges in Software Evolution3. Model/Code
Co-Evolution
7Criteria for Software Evolution
- Modularization
- Dividing a complex system into a set of
manageable building blocks, or modules - Modular software evolution
- Changeability
- Individual modules should be able to change
without radical impact to the rest of the system - Comprehensibility
- High-level evolutionary requirements need to be
well-understoodand thus systematically
translated into the low-level change adaptation - Independent Development
- Evolution tasks need to be divided into
individual modules that can be implemented and
maintained by different groups
8Research Objectives
Model Evolution
Aspect- Orientation
Model-Driven Aspect Adaptation
Model/Code Co-Evolution
Legacy Evolution
Changeability
Comprehensibility
Independent Development
9Thesis Statement
- This dissertation research is devoted to
approaches uniting Model-Driven Engineering (MDE)
with Aspect-Oriented Software Development (AOSD)
techniques to support modular software evolution.
The ultimate goal is to improve changeability,
comprehensibility and independent development of
the evolutionary task implementation. - First, the Aspect-Oriented Activity Modeling
(AOAM) approach is investigated to support
evolution of UML activity models. - Second, the Model-Driven Aspect Adaptation (MDAA)
approach is investigated to facilitate model/code
co-evolution and legacy evolution.
10Outline
- Motivation and Challenges
- Research Objectives
- Background
- Aspect-Oriented Activity Modeling
- Model-Driven Aspect Adaptation
- DSM-Based MDAA
- UML Activity-Based MDAA
- Future Work and Conclusion
11Two Types of Software Restructuring
- Horizontal transformation
- Transformation within the same level of
abstraction - Model Transformation, Aspect-Oriented Modeling
(AOM), Program Transformation, Aspect-Oriented
Programming (AOP) - Vertical translation
- Translation, or synthesis, between layers of
abstraction - Reverse Engineering, Model-Driven Engineering
(MDE)
ComputePositionC
ComputePositionwith LockingC
NavDisplayC
12Model-Driven Engineering
- OMG UML-based generic modeling
- Rational Rose
- Telelogic TAU
-
- Domain-specific modeling (DSM)
- GME
- Microsoft software factories
-
13Unified Modeling Language (UML)
- Structural modeling
- Class diagram
- Component diagram
- Deployment diagram
- Behavioral modeling
- State machine diagram
- Activity diagram
- Use case diagram
- Interaction diagram
14Telelogic TAU A UML-based MDE Tool
15Domain-Specific Modeling (DSM) in Generic
Modeling Environment (GME)
Metaprogramming Interface
Application Domain
Application Evolution
Environment Evolution
App 1
App 2
App 3
Modeling Environment
Model Builder
16Crosscutting Concerns
- Problems
- Reusability
- Maintainability
- Evolvability
17Aspect-Oriented Software Development (AOSD)
- Advanced separation of concerns
- Modularize crosscutting concerns
- Aspect
- Encapsulates each crosscutting concern in an
individual module - Aspect weaver
- Composes aspects with the base modules
18AOSD Terminology
- Join Point
- A point of interest through which two or more
concerns may be composed - Pointcut
- A collection of join points
- Advice
- The adaptation to be applied at each join point
specified in a pointcut
Aspect
Aspect applicability
Pointcut
Aspect functionality
Advice
19AOSD Technologies
- Aspect-Oriented Programming (AOP)
- AspectJ
- The most widely used AOP language
- Tailored for Java
- Aspect-Oriented Modeling (AOM)
- Constraint-Specification Aspect Weaver (C-SAW)
- Aspect model weaver for domain-specific models
- Embedded Constraint Language (ECL) to support
model weaving - A plug-in for GME
- Motorola WEAVR
- Aspect model weaver for UML state machines
- A plug-in for Telelogic TAU
20Outline
- Motivation and Challenges
- Research Objectives
- Background
- Aspect-Oriented Activity Modeling
- Model-Driven Aspect Adaptation
- DSM-Based MDAA
- UML Activity-Based MDAA
- Future Work and Conclusion
21Aspect-Oriented Activity Modeling
22Order Processing Activity Model
Operation Action
Send Signal Action
Receive Event Action
Fork
23Aspect-Activity Metamodel (Profile)
24Tracing Aspect, Pointcuts and Advice
25Order Processing Model with Tracing Aspect
26Pointcut Composition in AOAM
- Operators
- and ()
- or ()
- not (!)
- cflow
- cflowbelow
- within
27Advice Composition in AOAM
- Operators
- binds
- follows
- Advice are ordered based on the precedence
relationships (e.g., ltltfollowsgtgt) - Advice1 has precedence over Advice2 at the shared
join point - Interference between the advice is reduced by
declaring the advice precedence explicitly
28Aspect Composition in AOAM
- Operators
- crosscuts
- follows
- hidden_by
- dependent_on
- Interference between the aspects is reduced by
declaring the aspect precedence explicitly
- TracingAspect follows ExceptionAspect
- ExceptionAspect has higher precedence than
TracingAspect - LoggingAspect is hidden by TracingAspect
- The presence of TracingAspect inactivates
LoggingAspect - LoggingAspect is dependent on EncryptionAspect
- LoggingAspect can only be applied in the presence
of the EncryptionAspect
29Summary of AOAM
- Contributions
- AOAM supports modular evolution in activity
modeling - Evolutionary requirements are encapsulated in
aspect models - Aspect models allow specific concerns to be
maintained, comprehended and developed
independently - Aspect models are woven into the base model via
the AOAM weaver - AOAM allows precedence relationships to be
specified at the modeling level to prevent
undesirable interferences between aspects - AOAM weaver is implemented in Telelogic TAU, as
an extension of the Motorola state machine weaver
30Outline
- Motivation and Challenges
- Research Objectives
- Background
- Aspect-Oriented Activity Modeling
- Model-Driven Aspect Adaptation
- DSM-Based MDAA
- UML Activity-Based MDAA
- Future Work and Conclusion
31Model-Driven Aspect Adaptation Framework
Meta- metamodel
Conforms To
Aspect Metamodel
Metamodel
Model Extractor
Model
Model Composer
Aspect Model
Enhanced Model
Aspect Code Generator
Simulation/Testing
Source Code
Enhanced Code
Aspect Code
Program Composer
32Roles in MDAA Process
33MDAA Component Model Extractor
34MDAA Component Model Composer
- AOM Weaver
- C-SAW
- AOAM Weaver
35MDAA Component Aspect Code Generator
36MDAA Component Program Composer
- Program transformation engine
- Design Maintenance System (DMS)
- ASF SDF
-
- AOP weaver
- AspectJ
- AspectC
37Outline
- Motivation and Challenges
- Research Objectives
- Background
- Aspect-Oriented Activity Modeling
- Model-Driven Aspect Adaptation
- DSM-Based MDAA
- UML Activity-Based MDAA
- Future Work and Conclusion
38DSM-Based MDAA Instantiation
- Evolutionary requirements are captured as higher
level policy strategies and weaved into models - Ensures causal connection between model changes
and the underlying source code of the legacy
system - Large-scale adaptation across multiple source
files that are driven by minimal changes to the
model properties - Domain experts are shielded from lower-level
transformation rules
39Metamodel Composer
Metamodel Composer
- Why metamodel composer?
- C-SAW provides no support for transformation
BETWEEN two different metamodels - Need a means to compose base metamodel and aspect
metamodel
40Experimental Case StudyBold Stroke Product Line
- Background context
- Mission-control software for Boeing military
aircraft under development since 1995 - CORBA event-based systems
- Thousands of components implemented in over three
million lines of C code - Embedded System Modeling Language (ESML)
- Key challenges
- Difficult to evolve the underlying source
representation to address new requirements - Impossible to determine, a priori, all of the
future adaptation requests
41ESML Base Metamodel
42Case Study A Black Box Data Recorder
- Requirement Record the state information of the
aircraft according to polices defined in a model - Under different stages of development, a concern
may need to be adjusted based on different
contexts, e.g., testing on the ground vs.
in-flight recording - Ability to rapidly explore design alternatives
that represent different policies
43Composed ESML Metamodel with Logging Aspect
44Apply C-SAW to Insert Logging Aspect to ESML Base
Model
45ESML Component with Logging Aspect
46Generated DMS Transformation Rules to Insert
LogOnMethodExit Aspect
47Transformed C Source Code
log.add("data1_" data1_)
log.add("data1_" data1_)
log.add("data1_" data1_)
log.add("data1_" data1_)
log.add("data1_" data1_)
48Experimental Results
49MDAA Interpreters for Different Aspect Models
50Outline
- Motivation and Challenges
- Research Objectives
- Background
- Aspect-Oriented Activity Modeling
- Model-Driven Aspect Adaptation
- DSM-Based MDAA
- UML Activity-Based MDAA
- Future Work and Conclusion
51Activity-Based MDAA Instantiation
52Experimental Case StudyIntelligence Network
Fault Management (INFM)
- Background context
- A fault management software developed by
Motorola Labs for CDMA cellular network - Alarm correlation by patterndiscovery algorithms
- Implemented in over 50K lines of Java code
- Key challenges
- Increasing computational complexity would cause
various software failures (e.g., timeout failure
and pattern failure) - Different strategies are needed to resolve
software failures - Failure management strategies are subject to
change with evolving system requirements
53INFM Alarm Correlation Activity Base Model
54Case Study A Pattern Failure Handler Aspect
55Composed INFM Model by AOAM Weaver
56Generated AspectJ Code for the Pattern Failure
Handler Aspect
57Summary of MDAA
- MDAA provides modular evolution for legacy
systems by uniting MDE and AOSD technologies - Evolutionary changes are encapsulated in
high-level abstract aspect models - Aspect models allow specific evolutionary
requirements to be maintained, comprehended and
developed independently - Aspect models are translated into the low-level
aspect code by aspect code generators - The legacy system is transformed by weaving the
generated aspect code into the base source code
58Comparison of DSM-based and UML-based MDAA
Instantiation
59Outline
- Motivation and Challenges
- Research Objectives
- Background
- Aspect-Oriented Activity Modeling
- Model-Driven Aspect Adaptation
- DSM-Based MDAA
- UML Activity-Based MDAA
- Future Work and Conclusion
60Future Work
- AOM
- More types of join points support in AOAM
- Aspect mining and refactoring at the model level
- Extend initial experimental work on aspect
identification to support aspect extraction and
refactoring - Aspect interference analysis
- Extend preference-based approach for reducing
aspect interference - Perform formal evaluation and analysis for
detecting aspect interference - MDAA
- System validation through model simulation
- Version control support
- MDA (Model-Driven Architecture) and ADM
(Architecture-Driven Modernization) alignment
61Conclusion
- Software evolution challenges
- Activity model evolution
- Solution AOAM weaver
- Model/Code co-evolution, legacy evolution
- Solution MDAA framework
- Contribution
- Modular software evolution by combining MDE and
AOSD - Changeability aspect models are able to change
without radical impact to the rest of the system - Comprehensibility evolutionary requirements are
captured in high-level aspect models and
systematically translated into the low-level
change adaptation - Independent Development evolution tasks are
divided into individual aspect modules that can
be developed and maintained by different groups
62Representative Publications
- Book chapters (3)
- Jeff Gray, Sandeep Neema, Jing Zhang, Yuehua Lin,
Ted Bapty, Aniruddha Gokhale, and Douglas C.
Schmidt, Concern Separation for Adaptive QoS
Modeling in Distributed Real-Time Embedded
Systems, in Behavioral Modeling for Embedded
Systems and Technologies Applications for Design
and Implementation, Idea Group, 2009. - Jing Zhang, Yuehua Lin, and Jeff Gray, "Generic
and Domain-Specific Model Refactoring using a
Model Transformation Engine," Model-driven
Software Development - Research and Practice in
Software Engineering, Springer, ISBN
3-540-25613-X, 2005, Chapter 9, pp. 199-218. - Yuehua Lin, Jing Zhang, and Jeff Gray, "A
Framework for Testing Model Transformations,"
Model-driven Software Development - Research and
Practice in Software Engineering, Springer, ISBN
3-540-25613-X, 2005, Chapter 10, pp. 219-236.
63Representative Publications (Cont)
- Journal papers (7)
- Suman Roychoudhury, Jeff Gray, Jing Zhang,
Purushotham Bangalore, and Anthony Skjellum,
Modularizing Scientific Libraries With
Aspect-Oriented And Generative Programming
Techniques, Acta Electrotechnica et Informatica
Journal, 2009. - Yuehua Lin, Jeff Gray, Jing Zhang, Steve
Nordstrom, Aniruddha Gokhale, and Sandeep Neema,
Replicators Transformations to Address Model
Scalability, Software Practice and Experience,
vol. 38, no. 14, November 2008, pp. 1475-1497. - Jing Zhang, Jeff Gray, Yuehua Lin, and Robert
Tairas, Aspect Mining from a Modeling
Perspective, International Journal of Computer
Applications in Technology, Volume 31, Number
1-2, March 2008, pp. 74-82. - Faizan Javed, Marjan Mernik, Jeff Gray, Jing
Zhang, Barrett Bryant, and Suman Roychoudhury,
Using A Program Transformation Engine to Infer
Types in A Metamodel Recovery System, Acta
Electrotechnica et Informatica, vol. 8, no. 1,
January-March 2008, pp. 3-10. - Jing Zhang, Thomas Cottenier, Aswin van den Berg,
and Jeff Gray, Aspect Composition in the
Motorola Aspect-Oriented Modeling Weaver, JOT
special issue on AOM, August 2007, pp. 89-108. - Krishnakumar Balasubramanian, Aniruddha Gokhale,
Yuehua Lin, Jing Zhang, and Jeff Gray, Weaving
Deployment Aspects into Domain-Specific Models,
International Journal on Software Engineering
and Knowledge Engineering, vol. 16, no. 3, June
2006, pp. 403-424. - Jeff Gray, Yuehua Lin and Jing Zhang, Automating
Change Evolution in Model-Driven Engineering,
IEEE Computer (Special Issue on Model-Driven
Engineering), vol. 39, no. 2, February 2006, pp.
51-58.
64Representative Publications (Cont)
- Conference papers (11)
- Michael Jiang, Jing Zhang, Hong Zhao, and
Yuanyuan Zhou, Enhancing Software Product Line
Maintenance with Source Code Mining,
International Conference on Wireless Algorithms,
Systems and Applications (WASA), Dallas, TX,
October 2008, pp. 538-547. - Yan Liu, Jing Zhang, Xin Meng, and John
Strassner, Sequential Proximity-based Clustering
for Telecommunication Network Alarm Correlation,
The Fifth International Symposium on Neural
Networks (ISNN), Beijing, China, September 2008,
pp. 30-39. - Michael Jiang, Jing Zhang, Hong Zhao, and
Yuanyuan Zhou, Maintaining Software Product
Lines an Industrial Practice, International
Conference on Software Maintenance (ICSM),
Beijing, China, September 2008, pp. 444-447. - John Strassner, Srini Samudrala, Greg Cox, Yan
Liu, Michael Jiang, Jing Zhang, Sven van der
Meer, Micheal Ó Foghlu and Willie Donnellu, The
Design of a New Context-Aware Policy Model for
Autonomic Networking, The 5th IEEE International
Conference on Autonomic Computing (ICAC),
Chicago, IL, June 2008, pp. 119-128. - Yan Liu, Jing Zhang, Michael Jiang, Dave Raymer,
and John Strassner, A Model-based Approach to
Adding Autonomic Capabilities to Network Fault
Management System, IEEE/IFIP Network Operations
and Management Symposium (NOMS 2008), Salvador,
Brazil, April 2008, pp. 859-862. - Yan Liu, Jing Zhang, Michael Jiang, Dave Raymer,
and John Strassner, A Case Study A Model-Based
Approach to Retrofit a Network Fault Management
System with Self-Healing Functionality, 5th IEEE
International Conference on Engineering of
Autonomic and Autonomous Systems (EASe), Belfast,
Northern Ireland, March/April 2008, pp. 9-18. - Jing Zhang, Yan Liu, Michael Jiang and John
Strassner, An Aspect-Oriented Approach to
Handling Crosscutting Concerns in Activity
Modeling, IAENG International Conference on
Software Engineering, Hong Kong, March 2008, pp.
885-890. - Best Paper Award Jeff Gray, Yuehua Lin, Jing
Zhang, Steve Nordstrom, Aniruddha Gokhale,
Sandeep Neema, and Swapna Gokhale, Replicators
Transformations to Address Model Scalability,
Model Driven Engineering Languages and Systems
(MoDELS) (formerly the UML series of
conferences), Springer-Verlag LNCS 3713, Montego
Bay, Jamaica, October 2005, pp. 295-308. - Jeff Gray, Jing Zhang, Yuehua Lin, Hui Wu, Suman
Roychoudhury, Rajesh Sudarsan, Sandeep Neema,
Feng Shi, and Ted Bapty, Model-Driven Program
Transformation of a Large Avionics Application,
Generative Programming and Component Engineering
(GPCE 2004), Springer-Verlag LNCS, Vancouver, BC,
October 2004, pp. 361-378. - Song Zhou, Chuanxi Xu, Hui Wu, Jing Zhang, Yuehua
Lin, Juanqin Wang, Jeff Gray, and Barrett Bryant,
E-R Modeler A Database Modeling Toolkit for
Eclipse, 42nd Annual ACM SE Conference,
Huntsville, AL, April 2004,pp. 160-165. - Suman Roychoudhury, Jeff Gray, Hui Wu, Jing
Zhang, and Yuehua Lin, A Comparative Analysis of
Meta-programming and Aspect-Orientation, 41st
Annual ACM SE Conference, Savannah, GA, March
7-8, 2003, pp. 196-201.
65Representative Publications (Cont)
- Workshop papers (10)
- Yan Liu, Jing Zhang, and John Strassner,
Model-Driven Adaptive Self-Healing for Autonomic
Computing, The 3rd IEEE International Workshop
on Modeling Autonomic Communication Environments
(MACE 2008), Samos Island, Greece, September
22-26, 2008. - John Strassner, Yan Liu and Jing Zhang, A
Context-Aware Policy Model to Support Autonomic
Networking, The First IEEE International
Workshop on Model-Driven Development of Autonomic
Systems (MDDAS) - A Workshop held at COMPSAC,
Turku, Finland, July-August 2008. - Michael Jiang, Jing Zhang, David Raymer and John
Strassner, A Modeling Framework for Self-Healing
Software Systems, Models_at_run.time - A Workshop
held at MoDELS Conference, Nashville, TN, October
2007. - Jing Zhang, Thomas Cottenier, Aswin van den Berg,
and Jeff Gray, Aspect Interference and
Composition in the Motorola Aspect-Oriented
Modeling Weaver, MoDELS Workshop on
Aspect-Oriented Modeling, Genova, Italy, October
2006. - Arundhati Kogekar, Dimple Kaul, Aniruddha
Gokhale, Paul Vandal, Upsorn Praphamontripong,
Swapna Gokhale, Jing Zhang, Yuehua Lin, Jeff
Gray, Model-driven Generative Techniques for
Scalable Performabality Analysis of Distributed
Systems, IPDPS Workshop on Next Generation
Systems, Rhodes Island, Greece, April 2006. - Jing Zhang, Jeff Gray, and Yuehua Lin, A
Model-Driven Approach to Enforce Crosscutting
Assertion Checking, 27th ICSE Workshop on the
Modeling and Analysis of Concerns in Software
(MACS), St. Louis, MO, May 2005. - Jing Zhang, Jeff Gray, and Yuehua Lin, A
Generative Approach to Model Interpreter
Evolution, 4th OOPSLA Workshop on
Domain-Specific Modeling, Vancouver, BC, Canada,
October 2004, pp. 121-129. - Yuehua Lin, Jing Zhang, and Jeff Gray, Model
Comparison A Key Challenge for Transformation
Testing and Version Control in Model Driven
Software Development, OOPSLA Workshop on Best
Practices for Model-Driven Software Development,
Vancouver, BC, Canada, October 2004. - Jing Zhang and Jeff Gray, Legacy System
Evolution through Model-Driven Program
Transformation, 8th IEEE International
Enterprise Distributed Object Computing
Conference (EDOC 2004) Workshop on Model-Driven
Evolution of Legacy Systems (MELS), Monterey, CA,
September 2004. - Jeff Gray, Yuehua Lin, and Jing Zhang, Aspect
Model Weavers Levels of Supported Independence,
Middleware 2003 Workshop on Model-driven
Approaches to Middleware Applications
Development, Rio de Janeiro, Brazil, June 2003.
66Thank You !!
Questions ??
Publication, Software and Video demos available
at http//www.cis.uab.edu/gray/Research/C-SAW/
67Backup
68Evolution Scenario 1 Application Evolution
Application Evolution
- Changes are made to the domain models
- Model interpretation re-synthesizes the whole
application system
69Evolution Scenario 2 Environment Evolution
Environment Evolution
- Changes are made to the metamodel
- Model migration to support domain model evolution
70Comparison of DSM to Programming Language and
Database Definition