Model-Driven Aspect Adaptation To Support Modular Software Evolution Ph.D. Defense Jing Zhang Committee.

Slides:



Advertisements
Similar presentations
Awais Rashid, Steffen Zschaler
Advertisements

Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Francisco Hernandez, Purushotham Bangalore, Jeff Gray, and Kevin Reilly Department of Computer and Information Sciences University of Alabama at Birmingham.
Amit, Keyur, Sabhay and Saleh Model Driven Architecture in the Enterprise.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
Whole Platform Tesi di Dottorato di: RICCARDO SOLMI Università degli Studi di Bologna Facoltà di scienze matematiche, fisiche e naturali Corso di Dottorato.
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
Mining Metamodels From Instance Models: The MARS System Faizan Javed Department of Computer & Information Sciences, University of Alabama at Birmingham.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
GReAT: Graph Rewriting And Transformation Presenter: Yuehua Lin 2/17/04, Tuesday Slides help from Aditya Agrawal
1 Legacy System Evolution through Model-Driven Program Transformation Funded by the DARPA Information Exploitation Office (DARPA/IXO), under the Program.
1 Thomas Cottenier 1,2, Aswin van den Berg 1, Tzilla Elrad 2 1 Software and System Engineering Research Lab, Motorola Labs 2 Concurrent Programming Research.
Levels of Independence in Aspect-Oriented Modeling Workshop on Model-driven Approaches to Middleware Applications Development June 17, 2003 Jeff Gray,
Robert Tairas, Marjan Mernik, Jeff Gray Using Ontologies in the Domain Analysis of Domain-Specific Languages Workshop on Transformation and Weaving Ontologies.
Model-Driven Program Transformation of a Large Avionics Application Jeff Gray, Jing Zhang, Yuehua Lin, Suman Roychoudhury, Hui Wu, Rajesh Sudarsan, Aniruddha.
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
POSAML: A Visual Language for Middleware Provisioning Dimple Kaul, Arundhati Kogekar, Aniruddha Gokhale ISIS, Dept.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Change Impact Analysis for AspectJ Programs Sai Zhang, Zhongxian Gu, Yu Lin and Jianjun Zhao Shanghai Jiao Tong University.
VERIFICATION OF ASPECT ORIENTED MODELS BY DON MARTIN JAYASHREE VENKIPURAM PATHANGI PIYUSH SRIVASTAVA REFERENCES F. Mostefaoui and J. Vachon,” Design level.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
E-R Modeler: A Database Modeling Toolkit for Eclipse Hui Wu wuh -at- cis.uab.edu Academic Advisor : Dr. Jeff Gray gray -at-
Alignment of ATL and QVT © 2006 ATLAS Nantes Alignment of ATL and QVT Ivan Kurtev ATLAS group, INRIA & University of Nantes, France
A Semantic Framework for DSLs Zekai Demirezen Advisor: Dr. Jeff Gray Doctoral Symposium OOPSLA 2009 Software Composition and Modeling Lab This work funded.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Reviewing Recent ICSE Proceedings For:.  Defining and Continuous Checking of Structural Program Dependencies  Automatic Inference of Structural Changes.
MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton February 28th, 2003 Advisor: David G. Hannay Client:
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Replicators: Transformations to Address Model Scalability Jeff Gray, Yuehua Lin, Jing Zhang, Steve Nordstrom, Aniruddha Gokhale, Sandeep Neema, and Swapna.
VERIFICATION OF ASPECT-ORIENTED MODELS Review of Aspect-Oriented Definitions aspect – crosscutting concern that may involve multiple classes pointcut –
Generative Programming. Automated Assembly Lines.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
Dr. Douglas C. Schmidt, Dr. Aniruddha S. Gokhale, Bala Natarajan, Jeff Parsons, Tao Lu, Boris Kolpackov, Krishnakumar Balasubramanian, Arvind Krishna,
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
A Generative Approach to Model Interpreter Evolution Jing Zhang, Jeff Gray, and Yuehua Lin {zhangj, gray, cis.uab.edu Dept. of Computer & Information.
Weaving a Debugging Aspect into Domain-Specific Language Grammars SAC ’05 PSC Track Santa Fe, New Mexico USA March 17, 2005 Hui Wu, Jeff Gray, Marjan Mernik,
1 Model-based Aspect Weaver Construction Suman Roychoudhury Frédéric Jouault Jeff Gray {roychous, jouault, cis.uab.edu This project is supported.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Aniruddha Gokhale and Jeff Gray Institute for Software Integrated Systems (ISIS) Vanderbilt University Software Composition and Modeling Laboratory University.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Oct. 2 nd 2007 A Modeling Framework for Self-Healing Software Systems Michael Jiang, Jing Zhang*, David Raymer and John Strassner Motorola.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Automating Software Evolution through Model-Driven Engineering Troy University 8 th Annual Computer Science Colloquium on Information Technology April.
Model Transformations Require Formal Semantics Yu Sun 1, Zekai Demirezen 1, Tomaz Lukman 2, Marjan Mernik 3, Jeff Gray 1 1 Department of Computer and Information.
Model Transformation for End-Users
Applying Aspect-Orientation in Designing Security Systems Shu Gao Florida International University Center for Advanced Distributed Systems Engineering.
A Model Transformation Approach to Automated Model Construction and Evolution Yuehua Lin Jeff Gray Department of.
Towards A QoS Modeling and Modularization Framework for Component-based Systems Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale Amogh Kavimandan (Presenter)
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
Maikel Leemans Wil M.P. van der Aalst. Process Mining in Software Systems 2 System under Study (SUS) Functional perspective Focus: User requests Functional.
MDD-Kurs / MDA Cortex Brainware Consulting & Training GmbH Copyright © 2007 Cortex Brainware GmbH Bild 1Ver.: 1.0 How does intelligent functionality implemented.
Sumant Tambe* Akshay Dabholkar Aniruddha Gokhale
A Graphical Modeling Environment for the
Designing Software for Ease of Extension and Contraction
Model-Driven Analysis Frameworks for Embedded Systems
Jing Zhang Thomas Cottenier Aswin van den Berg Jeff Gray
Automated Analysis and Code Generation for Domain-Specific Models
Presentation transcript:

Model-Driven Aspect Adaptation To Support Modular Software Evolution Ph.D. Defense Jing Zhang Committee Members: Dr. Jeff Gray (Academic Advisor) Dr. Barrett Bryant Dr. Aniruddha Gokhale Dr. Marjan Mernik Dr. Chengcui Zhang March 30th, 2009

2 Overview of Presentation Research Goals Motivation Challenges Approaches Evaluation Model-Driven Aspect Adaptation Aspect-Oriented Activity Modeling Bold Stroke Model Evolution Legacy Evolution Co-Evolution Inevitable Software Evolution Modular Evolution Modular Evolution ChangeabilityComprehensibility Independent Development INFM

3 First 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 108–124.

4 Challenges in Software Evolution: 1. Model Evolution ∆ M : The changes made to the models As the size of system models grows, techniques and tools are needed to automate complex change evolution

5 Challenges in Software Evolution: 2. Legacy Evolution ∆ S : The changes made to the legacy source A small modification in the high-level requirements may trigger drastic manual changes in large portions of the low-level legacy source code

6 Challenges in Software Evolution: 3. Model/Code Co-Evolution ∆ M : The changes made to the models ∆ S : The changes reflected in the source code Conformity between the models and underlying source code needs to be established in order to maintain the fidelity of the whole system

7 Criteria 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-understood and 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

8 Research Objectives Model Evolution Model/Code Co-Evolution Model/Code Co-Evolution Legacy Evolution Legacy Evolution ChangeabilityComprehensibility Independent Development Aspect- Orientation Model-Driven Aspect Adaptation

9 Thesis 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.

10 Outline 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

11 Two 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) ComputePosition C++ ComputePosition with Locking C++ NavDisplay C++

12 Model-Driven Engineering OMG UML-based generic modeling  Rational Rose  Telelogic TAU  … Domain-specific modeling (DSM)  GME  Microsoft software factories  …

13 Unified Modeling Language (UML) Structural modeling  Class diagram  Component diagram  Deployment diagram Behavioral modeling  State machine diagram  Activity diagram  Use case diagram  Interaction diagram

14 Telelogic TAU: A UML-based MDE Tool Design Code Generation Testing Simulation

15 Model Interpretation Model Interpreters Models Modeling Environment Application Domain App 1 App 2 App 3 Application Evolution Environment Evolution Metaprogramming Interface Formal Specifications Meta-Level Translation Model Builder Domain-Specific Modeling (DSM) in Generic Modeling Environment (GME) MetamodelMetamodel ModelModel InterpreterInterpreter void CComponent::InvokeEx(CBuilder &buil der,CBuilderObject *focus, CBui lderObjectList &selected, long param) { CString DMSRoot = ""; DMSRoot = SelectFolder("Please Select DMS Root Folder:"); if (DMSRoot != "") { DMSRulePath = DMSRoot + RULESPATH + "Rules\\"; MSRuleApplierPath = DMSRoot + RULESPATH + "RuleApplier\\"; AfxMessageBox("DMSRulePath = " + DMSRulePath, MB_OK); CString OEPRoot = ""; OEPRoot = SelectFolder("Please Selec DEFINE INTERPRET

16 Crosscutting Concerns Problems  Reusability  Maintainability  Evolvability Profiling in Apache Tomcat Server

17 Aspect-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

18 AOSD 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 applicability Aspect functionality Where What Aspect Pointcut Advice

19 AOSD 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

20 Outline 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

21 Aspect-Oriented Activity Modeling

22 Order Processing Activity Model Operation Action Send Signal Action Receive Event Action Fork

23 Aspect-Activity Metamodel (Profile)

24 Tracing Aspect, Pointcuts and Advice

25 Order Processing Model with Tracing Aspect

26 Pointcut Composition in AOAM Operators  and (&&)  or (||)  not (!)  cflow  cflowbelow  within

27 Advice Composition in AOAM Operators  binds  follows Advice are ordered based on the precedence relationships (e.g., >)  Advice1 has precedence over Advice2 at the shared join point  Interference between the advice is reduced by declaring the advice precedence explicitly Advice1 Advice2 Shared Join Point

28 Aspect 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 Exception Aspect Tracing Aspect Logging Aspect Encryption Aspect

29 Summary 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

30 Outline 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

31 Model-Driven Aspect Adaptation Framework Meta- metamodel Metamodel Source Code Conforms To Model ExtractorModel Composer Enhanced Model Enhanced Code Program Composer Aspect Code Generator Aspect Code Aspect Model Aspect Metamodel Conforms To Simulation/Testing

32 Roles in MDAA Process

33 MDAA Component: Model Extractor DSM Metamodel UML Metamodel

34 MDAA Component: Model Composer AOM Weaver  C-SAW  AOAM Weaver

35 MDAA Component: Aspect Code Generator

36 MDAA Component: Program Composer Program transformation engine  Design Maintenance System (DMS)  ASF + SDF …… AOP weaver  AspectJ  AspectC++ ……

37 Outline 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

38 DSM-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

39 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 Metamodel Composer

40 Experimental Case Study: Bold 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

41 ESML Base Metamodel

42 Case 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

43 Composed ESML Metamodel with Logging Aspect

44 Apply C-SAW to Insert Logging Aspect to ESML Base Model defines Start, logDataAtoms, AddLog; strategy logDataAtoms() { atoms()->select(a | a.kindOf() == "Data")->AddLog(); } strategy AddLog() { declare parentModel : model; declare dataAtom, logAtom : atom; dataAtom := self; parentModel := parent(); logAtom := parentModel.addAtom("Log", "LogOnMethodExit"); logAtom.setAttribute("Kind", "On Method Exit"); logAtom.setAttribute("MethodList", "Update"); parentModel.addConnection("AddLog", logAtom, dataAtom); } aspect Start() { rootFolder().findFolder("ComponentTypes").models(). select(m|m.name().endWith("Impl"))->logDataAtoms(); }

45 ESML Component with Logging Aspect

46 Generated DMS Transformation Rules to Insert “LogOnMethodExit” Aspect default base domain Cpp~VisualCpp6. pattern LogStmt(): statement = "log.add(\"data1_=\" + data1_);". pattern LogOnMethodExitAspect(s: statement_seq): statement_seq = "\s \LogStmt\(\)". pattern JoinPoint(id:identifier): qualified_id = "\id :: Update". rule insert_log_on_method_exit(id:identifier, s:statement_seq, p:parameter_declaration_clause): function_definition -> function_definition = "void \JoinPoint\(\id\)(\p) {\s} " -> "void \JoinPoint\(\id\)(\p) {\LogOnMethodExitAspect\(\s\)}" if ~[modsList:statement_seq. s matches "\:statement_seq \LogOnMethodExitAspect\(\modsList\)"]. public ruleset applyrules={insert_log_on_method_exit}.

47 Transformed C++ Source Code 1 unsigned int BM__ClosedEDComponentImpl::getData1_ () const 2 { UM__GUARD_INTERNAL_REGION; 6 BM__ComponentInstrumentation::ReceiveDirectCall(GetId(), "GetData1"); return data1_; 10 } void BM__ClosedEDComponentImpl::Update (const UUEventSet& events) 13 { UM__GUARD_EXTERNAL_REGION(GetExternalPushLock()); 17 BM__ComponentInstrumentation::EventConsumer(GetId(), "Update", events); 18 unsigned int tempData1 = GetId().GetGroupId(); 19 unsigned int tempData2 = GetId().GetItemId(); //*** REMOVED: code for implementing Real-time Event Channel data1_ = tempData1; //*** REMOVED: actual variable names (proprietary) 25 data2_ = tempData2; } log.add("data1_=" + data1_); Log on getData1_() method entry Log on reading data1_ Log on Update() method entry Log on writing data1_ Log on Update() method exit

48 Experimental Results Manual Changes (No. Of Places) Aspect Model Interpreter (LOC) ECL (LOC) Generated RSL (LOC) Concurrency50 (in 25 different cpp files) Logging200 (in 25 different cpp files) Assertion100 (in 25 different cpp files)

49 MDAA Interpreters for Different Aspect Models

50 Outline 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

51 Activity-Based MDAA Instantiation

52 Experimental Case Study: Intelligence Network Fault Management (INFM) Background context  A fault management software developed by Motorola Labs for CDMA cellular network  Alarm correlation by pattern discovery 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

53 INFM Alarm Correlation Activity Base Model

54 Case Study: A Pattern Failure Handler Aspect

55 Composed INFM Model by AOAM Weaver

56 Generated AspectJ Code for the Pattern Failure Handler Aspect aspect PatternFailureHandlerAspect { int N = 10; int counter = 0; boolean hasFailure; Param deltaParam; pointcut pct() : call(ExecuteAlgo(...)); around() : pct() { while (counter < N) { proceed(); hasFailure = IdentifyPatternFailure(); if (hasFailure) { hasFailure = RecheckPatterns(); if (hasFailure) { deltaParam = AnalyzePatternFailure(); ReconfigureAlgo(deltaParam); counter ++; } else { break; } } else { break; } }

57 Summary 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

58 Comparison of DSM-based and UML-based MDAA Instantiation DSM-based MDAAUML-based MDAA Base MetamodelDomain-specificDomain-generic ModelClose to the domain concepts Close to the implementation concepts Aspect MetamodelMultiple for one base metamodel Only one for one base metamodel Aspect Code Generator Multiple for one base metamodel Only one for one base metamodel

59 Outline 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

60 Future 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

61 Conclusion 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

62 Representative 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,  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: X, 2005, Chapter 9, pp  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: X, 2005, Chapter 10, pp

63 Representative 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,  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  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  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  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  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  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

64 Representative 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  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  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  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  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  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  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  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  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  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  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

65 Representative 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,  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  Michael Jiang, Jing Zhang, David Raymer and John Strassner, “A Modeling Framework for Self-Healing Software Systems,” - A Workshop held at MoDELS Conference, Nashville, TN, October  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  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  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  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  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  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  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.

66 Publication, Software and Video demos available at:

67 Backup

68 Application Evolution Evolution Scenario 1: Application Evolution Model Interpretatio n Model Interpreters Models Modeling Environment Application Domain App 1 App 2 App 3 Environment Evolution Metaprogramming Interface Formal Specifications Meta-Level Translation Model Builder  Changes are made to the domain models  Model interpretation re-synthesizes the whole application system Application Evolution Complete regeneration is not always a plausible solution when applied to existing large legacy systems

69 Environment Evolution Evolution Scenario 2: Environment Evolution Environment Evolution  Changes are made to the metamodel  Model migration to support domain model evolution Model Interpretatio n Model Interpreters Models Modeling Environment Application Domain App 1 App 2 App 3 Metaprogramming Interface Formal Specifications Meta-Level Translation Model Builder Application Evolution Advanced mechanism is needed to support crosscutting evolutionary concerns

70 Comparison of DSM to Programming Language and Database Definition Domain-Specific Modeling Programming Language Definition Database Schema Definition Schema definition Metamodel for a specific domain (e.g., Petri Net) Grammar for a specific language (e.g., Java) Table, constraint, and stored procedure definitions for a specific domain (e.g., payroll database) Schema instance Domain model (e.g., Petri Net model of a teller machine) A program written in a specific language Intension of a database at a specific instance in time (e.g., the June 2008 payroll instance) Schema execution Model interpreter Language compiler/interpreter Transactions and behavior of stored procedures in an executing application