A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.

Slides:



Advertisements
Similar presentations
Software Processes Coherent sets of activities for specifying, designing, implementing and testing software systems.
Advertisements

©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System modeling 2.
Object-Oriented Analysis and Design
Building Enterprise Applications Using Visual Studio ®.NET Enterprise Architect.
Introduction To System Analysis and Design
Software Engineering 6/e, Chapter 8
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 8 Slide 1 System models.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Modified from Sommerville’s originalsSoftware Engineering, 7th edition. Chapter 8 Slide 1 System models.
Course Instructor: Aisha Azeem
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 17 Slide 1 Rapid software development.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Process Activities. Process activities Real software processes are inter-leaved sequences of technical, collaborative and managerial activities.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Software Reengineering 2003 년 12 월 2 일 최창익, 고광 원.
Software Re-engineering
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements l.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Object-oriented Software Engineering with Reuse Contracts Koen De Hondt, Carine Lucas, Kim Mens, Tom Mens, Patrick Steyaert, Roel Wuyts Programming Technology.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions of systems whose requirements are being.
Chapter 4 System Models A description of the various models that can be used to specify software systems.
System models Abstract descriptions of systems whose requirements are being analysed Abstract descriptions of systems whose requirements are being analysed.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Animating and.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 1 Software Processes l Coherent sets of activities for specifying, designing,
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 8 Slide 1 Software Prototyping l Rapid software development to validate requirements.
Introduction To System Analysis and Design
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapter 7 Slide 1 System models l Abstract descriptions.
Lecture 3 Software Engineering Models (Cont.)
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
소프트웨어공학 강좌 1 Chap 7. Software Prototyping - Rapid software development to validate requirements -
Chapter 7 System models.
Abstract We present two Model Driven Engineering (MDE) tools, namely the Eclipse Modeling Framework (EMF) and Umple. We identify the structure and characteristic.
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
System models l Abstract descriptions of systems whose requirements are being analysed.
Modified by Juan M. Gomez Software Engineering, 6th edition. Chapter 7 Slide 1 Chapter 7 System Models.
Software Engineering, 8th edition Chapter 8 1 Courtesy: ©Ian Somerville 2006 April 06 th, 2009 Lecture # 13 System models.
Sommerville 2004,Mejia-Alvarez 2009Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
11 CORE Architecture Mauro Bruno, Monica Scannapieco, Carlo Vaccari, Giulia Vaste Antonino Virgillito, Diego Zardetto (Istat)
Software Prototyping Rapid software development to validate requirements.
Exploiting Classification for Software Evolution Koen De Hondt and Patrick Steyaert Patrick
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 8 Slide 1 System models.
Ch- 8. Class Diagrams Class diagrams are the most common diagram found in modeling object- oriented systems. Class diagrams are important not only for.
1 Technical & Business Writing (ENG-715) Muhammad Bilal Bashir UIIT, Rawalpindi.
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Ontology Support for Abstraction Layer Modularization Hyun Cho, Jeff Gray Department of Computer Science University of Alabama
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 System prototyping l Prototyping is the rapid development of a system l In the past, the developed system.
Reuse Contracts A Historic Overview Dr. Tom Mens Programming Technology Lab Vrije Universiteit Brussel Course OOSE.RC EMOOSE
1 SWE Introduction to Software Engineering Lecture 14 – System Modeling.
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
2000 Research Overview Dr. Kim Mens Programming Technology Lab Vrije Universiteit Brussel.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Engineering, 7th edition. Chapter 8 Slide 1 System models.
Building Enterprise Applications Using Visual Studio®
Prototyping in the software process
Software Prototyping.
J. Michael, M. Shing M. Miklaski, J. Babbitt Naval Postgraduate School
Abstract descriptions of systems whose requirements are being analysed
Software Prototyping Animating and demonstrating system requirements.
Intentional source-code views
Rapid software development
Software Re-engineering and Reverse Engineering
Presentation transcript:

A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998

2 Overview Problem, thesis, objectives Case study Software classification model Software classification strategies and applications –Classification with advanced navigation tools –Automatic classification through method tagging Conclusion, contributions, and future work

3 Observations Models are crucial for evolution Evolving software is hard Reverse engineering is often the only way to get a mental model of the software Reverse engineering is a recurrent development activity Models obtained through reverse engineering are not recorded

4 Thesis The software development environment should provide support for recording models that result from reverse engineering efforts, so that models become online software documentation that can be exploited in subsequent software development activities.

5 Objectives What? –Recovery of large architectural building blocks: modules, layers, framework customisations –Recovery of collaboration contracts –Recovery of reuse contracts How? –Incremental software classification

6 Case Study Large software system for broadcast management –More than 2000 classes –Object-oriented framework –Customizations for several customers –Continuous evolution; evolutionary software development –Smalltalk, Envy/Developer Role of the case study –Industry-as-laboratory approach –Requirements provider –Platform for experiments, evaluation and (early) feedback

7 Requirements for the Recovery Process Take multiple views on the software into account The recovery process should be incremental Motivate the software engineer (little overhead, effort must pay off) Keep the model simple Keep the recovery process lightweight Integrate the model and the recovery process in the SDE Integrate existing software entities in the model Make the results of recovery tangible in the SDE (memory prosthesis) Cope with an obscure software system

8 User Interface Layer Domain Model Layer Persistency Layer Multiple Views on Software Planning Manuscript Management Video Media Management Product & Contract Management TV1 FW TV2 RD1TV3 Spec 1Spec 2Bug 1Bug 2 Software System

9 Software Classification Software classification model –Metamodel to describe abstractions/models of the software Software classification technique –Way to carry out classification –Based on software classification strategies

10 Software Classification Model A classification is an entity in which items can be classified Items can reside in multiple classifications Classifications have a structure and a classification policy Classifications and items are stored in the classification repository Simple model

11 Software Classification Model Items in the SDE –Classes –Methods Participants (views on classes) Classifications as items Simple classifications Virtual classifications Classifications in the SDE –Smalltalk categories –Envy applications Collaboration contracts Reuse contracts ItemsClassifications Existing software entities are integrated in the model

12 Classification Browser Model is integrated in the SDE Classification Repository Smalltalk Repository Smalltalk System

13 Software Classification Strategies Manual classification Virtual classification Classification with advanced navigation tools Automatic classification through method tagging

14 Strategy: Classification with Advanced Navigation Tools In general –Set up classifications of items based on relationships between the items –Advanced navigation tools needed to find and to browse the relationships Classification Browser supports browsing of the interaction structure –In-place browsing of senders and implementers –Browsing of source code level acquaintances –History of browsing activities

15 Application: Collaboration Contract Recovery What must be recovered? PlannerCommand execute … Interfaces Acquaintance relationships Specialisation clauses Command Execution controller: PlannerController executeCommand: command: PlannerCommand execute {executeCommand: invokes} execute theCommand PlannerController executeCommand: theCommand theCommand execute … …

16 Incremental Recovery of a Collaboration Contract Recovery is incremental and lightweight Browsing restricted to a classification Browsing senders and implementers Browsing acquaintances Classification of classes as participants, methods, acquaintances, acquaintance classes Conversion of classification to collaboration contract Class AClass B AB Participant AParticipant B mpmp x a b Participant AParticipant B mpmp x Participant AParticipant B mpmp x a b m [x] x [p]

17 Results of Recovery Classification Browser acts as collaboration contract browser Translation to UML Results of recovery are tangible in the SDE Software engineer is motivated (pay off)

18 Application: Reuse Contract Recovery Initial collaboration contract Derived collaboration contract

19 Reuse Contract Recovery 1Set up initial collaboration contract 2Set up derived collaboration contract 3Determine the adaptation 4Decompose adaptation in basic reuser clauses and associated contract types 5Reuse contract = initial collaboration contract + basic reuser clauses and associated contract types + user supplied name derived CC -initial CC =adaptation Automatic Recovery is lightweight

20 Strategy: Automatic Classification Through Method Tagging Automatic incremental classification scheme based on information provided during forward engineering Method tagging Tagging info provided once per development task Requires changes to the SDE and the development process! “ >” Software engineer is motivated (little overhead)

21 Method Tag Processing Envy Library Classification Repository Method Tag Processor File Spreadsheet application changed methods classifications method and tag information

22 Results of Method Tag Processing In the Classification BrowserIn the spreadsheet application

23 Application: Recovery of Architectural Components Multiple views on the software Software engineer is motivated (pay off)

24 Application: Management of Changes Coping with an obscure software system Software engineer is motivated (pay off)

25 Conclusion Software classification is a viable approach to recovery Architectural recovery based on software classification –Record what is in the software engineers’ heads –Make it explicit as entities to be explored in the SDE Method tagging –Insight into the changes made; statistics about evolution –Requires changes to the SDE and the development process Software classification is an asset to software engineers (little overhead, effort pays off)

26 Contributions Presentation of a generic model and strategies for incremental recovery of the architecture of evolving object-oriented systems Classification Browser and method tagging tool Architectural recovery and software evolution –Expressing multiple views on software –Recovery of collaboration contracts, reuse contracts, and architectural components –Management of changes Important step towards a SDE based on reuse contracts

27 Future Work Larger components as collaboration contract participants Generic collaboration contracts Expressing architectural constraints Keeping classifications in sync Other software classification strategies –Exploitation of virtual classifications –Automatic classification and automatic recovery Classifications in other development tools Classifications in non-Smalltalk SDE SDE that actively supports reuse and evolution

A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998

29 Apposition/Bijstelling The application domain of visual component systems is limited because component models support but a fraction of the abstraction mechanisms provided in other areas of software engineering. Research on visual component models should focus on richer abstraction mechanisms.

30 Visual Application Building

31 Visual Application Building Good –Rapid application development –Productive for particular application domains –Visual linking of components –Glue language Bad –Promotion of copy-and-paste reuse –Only for small or simply structured applications –Only for prototyping –Fails as complexity and scale increase

32 Abstraction Mechanisms in Visual Component Systems Worst case: no abstraction supported –Compositions are applications –Compositions cannot be reused Best case: weak form of aggregation –Compositions can be encapsulated into new components –New properties tools must be provided programmatically

33 Abstraction Mechanisms in Software Engineering Aggregation (  decomposition) –Emerging properties –Hereditary properties –Concealed properties Specialisation (  generalisation) –Inherited properties –Modified properties –Additional properties Source: Conceptual Modeling and Programming Languages (Kristensen and Østerbye) Not supported by visual component models

34 Aggregation + Specialisation Basis for frameworks and design patterns Example: item list editor Item editor List of items Creating abstract components with placeholders is not supported

35 Conclusion Making abstractions is shifted to the glue language But abstractions can only be expressed if they are supported by the component model Research on visual component models should focus on richer abstraction mechanisms

36