R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support.

Slides:



Advertisements
Similar presentations
Model-Based Testing with Smartesting Jean-Pierre Schoch Sogetis Second Testing Academy 29 April 2009.
Advertisements

Building an Operational Enterprise Architecture and Service Oriented Architecture Best Practices Presented by: Ajay Budhraja Copyright 2006 Ajay Budhraja,
R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Analyzing the Product Line Adequacy of Existing Components Jens Knodel
Sponsored by the U.S. Department of Defense © 2004 by Carnegie Mellon University page 1 Pittsburgh, PA Integrating Domain Specific Modeling.
Copyright  2005 Symbian Software Ltd. 1 Lars Kurth Technology Architect, Core Toolchain The Template Engine CDT Developer Conference, Oct 2005.
Software Reuse: A Conceptual View Presented By: Youssef Alaoui Mdeghri Abdelouhab Taoufiq El Yazid Alaoui Yazidi.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
University of Jyväskylä – Department of Mathematical Information Technology Computer Science Teacher Education ICNEE 2004 Topic Case Driven Approach for.
© Fraunhofer FIRST Timo Wegeler Towards Quality Assurance of DSL Engineering Vino Juli.2011.
Software Product Lines Krishna Anusha, Eturi. Introduction: A software product line is a set of software systems developed by a company that share a common.
Applying MDA in the ATM: A practical approach Teodora Bozheva, Terry Bailey (ESI) Julia Reznik, Tom Ritter (Fraunhofer FOKUS)
Enterprise Architecture
 1. Introduction  2. Development Life-Cycle  3. Current Component Technologies  4. Component Quality Assurance  5. Advantages and Disadvantages.
Bug Tracking and Project Management Systems SENG Tristan Aurini.
What is Business Analysis Planning & Monitoring?
SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002.
Process: A Generic View n A software process  is a roadmap to building high quality software products.  provides a framework for managing activities.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
1 Systems Analysis and Design in a Changing World, Fourth Edition.
Page 1 MODEL TEST in the small GENERALIZE PROGRAM PROCESS allocated maintenance changes management documents initial requirement project infrastructure.
Institut Experimentelles Software Engineering Fraunhofer IESE Klaus Schmid Relating Product Line Adoption Mode and Transition Process.
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
Karolina Muszyńska. Reverse engineering - looking at the solution to figure out how it works Reverse engineering - breaking something down in order to.
SWE 316: Software Design and Architecture – Dr. Khalid Aljasser Objectives Lecture 11 : Frameworks SWE 316: Software Design and Architecture  To understand.
Measuring the Effort for Creating and Using Domain-Specific Models Yali Wu PhD Candidate 18 October 2010.
OHTO -99 SOFTWARE ENGINEERING LECTURE 5 Today: - An overview to OO Analysis and OO Design - Introduction of Assignment 2.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
CBD Papers Alexandre Alvaro. Lessons Learned through Six Years of Component-based Development Six years of component-based application development Using.
1 Lecture 17: Chapter 26 Estimation for Software Projects Slide Set to accompany Software Engineering: A Practitioner’s Approach, 7/e by Roger S. Pressman.
A Novel Approach to Architectural Recovery in Evolving Object- Oriented Systems PhD thesis Koen De Hondt December 11, 1998.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
© Fraunhofer IESE Domain-specific Modeling as an Enabling Technology for SMEs Christian Schäfer
1 Knowledge & Knowledge Management “Knowledge is power” to “Sharing K is power” Yaseen Hayajneh, PhD.
Systems Analysis and Design in a Changing World, 3rd Edition
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Enabling Reuse-Based Software Development of Large-Scale Systems IEEE Transactions on Software Engineering, Volume 31, Issue 6, June 2005 Richard W. Selby,
 Copyright ProcessVelocity, LLP Slides intended for informational purposes only. CMM and Capability Maturity Model are registered in the U.S. Patent.
Process: A Generic View
An Automatic Software Quality Measurement System.
Chapter 3: Software Project Management Metrics
Cmpe 589 Spring 2006 Lecture 2. Software Engineering Definition –A strategy for producing high quality software.
Chapter © 2012 Pearson Education, Inc. Publishing as Prentice Hall.
Application of Design Heuristics in the Designing and Implementation of Object Oriented Informational Systems.
Software Architecture Evaluation Methodologies Presented By: Anthony Register.
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
Modularization Also Known As: reuse, single sourcing, structured authoring What is it? Breaking down content into smaller chunks that can be reused in.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
JavaCompExt: Extracting Architectural Elements from Java Source Code N.Anquetil, J.-C. Royer, P. André, G. Ardourel, P. Hnětynka, T. Poch, D. Petraşcu,
© Fraunhofer IESE Fraunhofer IESE Multi-Language Development of Embedded Systems Dr. Thomas Kuhn Tel.:
Lecture 21: Component-Based Software Engineering
Chapter © 2012 Pearson Education, Inc. Publishing as Prentice Hall.
Software Design Derived from Dr. Fawcett’s slides CSE784 – Software Studio Fall 2009.
Decomposing Java Legacy Systems into Components Shimin Li and Ladan Tahvildari Software Technologies Applied Research Lab Department of Electrical & Computer.
DARE: Domain analysis and reuse environment Minwoo Hong William Frakes, Ruben Prieto-Diaz and Christopher Fox Annals of Software Engineering,
Chapter 33 Estimation for Software Projects
A Hierarchical Model for Object-Oriented Design Quality Assessment
Identify the Risk of Not Doing BA
Software Maintenance
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Overview of System Engineering
The Extensible Tool-chain for Evaluation of Architectural Models
Reverse Engineering: A Roadmap
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
CS 8532: Advanced Software Engineering
Chapter 33 Estimation for Software Projects
Project Phases ‘98 ‘00 ‘02 ‘04 ‘06 Preparatory Phase
Software Engineering: A Practitioner’s Approach, 6/e Chapter 23 Estimation for Software Projects copyright © 1996, 2001, 2005 R.S. Pressman & Associates,
Chapter 26 Estimation for Software Projects.
Presentation transcript:

R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Dharmalingam Ganesan Jens Knodel

Slide 1 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Motivation Challenges for software-developing organizations today -Need for reducing cost, effort, and time-to-market -Complexity and software size increases -Increasing request for quality software and individually customized products Reuse is a promising solution -Reusing existing software saves time and effort -Reusing approved software brings quality -Focusing on new functionality enables realization of individual requirements Software product lines stand for pro-active, strategic, and successful reuse

Slide 2 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Motivation … Most organizations already invested effort in developing single systems -We can not ignore the existing software and start a product line from scratch Systems consist of -Domain-specific components 65% -Application-specific components15% -Utility components 20% [Poulin 1997] Goal: -Identification of domain-specific components -Most-relevant for a product line  Large degree of commonality  Investment into reuse pays off

Slide 3 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Idea: Component Extraction Define Reusability Model Reusability Model Apply the model Component candidates Component Repository Select useful components Existing system Update model fact base Extract facts

Slide 4 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Factors Affecting Reusability

Slide 5 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Metrics Affecting Reusability Use existing validated OO metrics to measure quality, cost, and usefulness Automatic computation of metrics [Chidamber 1994]

Slide 6 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Mapping Metrics to Factors Reusability Usefulness Qualit y Costs Variety of functions Commonality offunction LCOMWMC CALL_IN CALL_USAGEOCAECNOCDIT NMPUB WMC NMPUB WMC LCOM

Slide 7 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Defining Reusability Model MetricMinimumMaximum NMPUBXX WMCXX LCOMX DITX NOCX CALL_INX OCAECX

Slide 8 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Approach 1.Goal Description 2.Setting up the fact base 3.Select metrics and choose its bounds 4.Identify candidates (classes) 5.Lightweight review by the reverse engineer 6.Review by the domain expert Assign type of classes (domain, application, utility) 7.Analyze classification -Filtering strategy -Selection strategy 8.Component building 9.Interface Analysis 10.Final decision and integration

Slide 9 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Case Study (1) Development of a family of IDEs (Integrated Develop Environment) for modeling product line architectures as an Eclipse Plug-in -Identify, extract, and reuse (and adapt) components from existing IDEs  Java Development Tools (JDT)  C/C++ Development Tool (CDT) -Examples:  Project management  Workspace management  Editor functionality

Slide 10 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Case Study (2) First iteration -Subject Eclipse JDT  org.eclipse.jdt.internal.core -Metrics boundaries  Average metric value to define the reusability model -Computation of class candidates  Review by expert -Expert review and assignment  Domain-Specific: Classes that can be reused in more than one project in the given domain  Application-Specific: Classes specific to a given application  Mixture: Implementation is a mixture of Domain-specific and Application-specific  Other: Unclear

Slide 11 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Case Study (3)

Slide 12 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Conclusion Achievements so far -Identification of domain-specific classes -First set of useful metrics Ongoing work -Case study with Eclipse -Construction of components based on domain-specific classes -Derivation on default boundaries for metrics

Slide 13 R2PL, Pittsburgh November 10, 2005 Copyright © Fraunhofer IESE 2005 Identifying Domain-Specific Reusable Components from Existing OO Systems to Support Product Line Migration Points for Discussion How to define a reusability model ? -How to choose bounds for metrics What other metrics are indicators for domain-specific classes? How to construct the domain-specific components from the identified classes ? How to keep manual effort for candidate review limited ? How to minimize the number of iterations for identifying the domain-specific components ?