Eduardo Santana de Almeida, Silvio Lemos Meira {esa2, Towards an Effective Software Reuse Process.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

Domain Engineering Silvio Romero de Lemos Meira
Object-Oriented Software Development CS 3331 Fall 2009.
CS487 Software Engineering Omar Aldawud
CS3773 Software Engineering Lecture 01 Introduction.
Chapter 22 Product Line Engineering Week 1 CIS 673.
Software Reuse SEII-Lecture 28
Presented by: Thabet Kacem Spring Outline Contributions Introduction Proposed Approach Related Work Reconception of ADLs XTEAM Tool Chain Discussion.
Shihong Huang Department of Computer Science & Engineering Florida Atlantic University 1st SEMAT Workshop March , 2010 Zurich Capturing the Essence.
Reseach in DistriNet (department of computer science, K.U.Leuven) General overview and focus on embedded systems task-force.
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Software Factory Assembling Applications with Models, Patterns, Frameworks and Tools Anna Liu Senior Architect Advisor Microsoft Australia.
1 Software Product Lines Re-using Architectural Assets - continued from CSSE CSSE 477 Software Architecture Week 7, Day 2, including Ch 14 in Bass’s.
1 Software Architecture: a Roadmap David Garlen Roshanak Roshandel Yulong Liu.
RiSE Project: Towards a Robust Framework for Software Reuse Student: Eduardo Santana de Almeida Advisor: Silvio Romero de Lemos Meira Federal University.
- 1 - Component Based Development R&D SDM Theo Schouten.
Software Architecture in Practice
Page 1, July 3, 2015 CBSE – graduate course Component-Based Software Engineering Building reliable component-based systems Overview
Mastering OOA/OOD with UML. Contents Introduction Requirements Overview OOAOOD.
ORION - A Component-Based Software Engineering Environment
Software Product Line Engineering Andrew Burmester SE 4110 Section 2 4/14/11.
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.
Software Product Line Architectures (SPLA) Nipun Shah
Computer Systems & Architecture Lesson Software Product Lines.
Methods and Models for Evaluating Software Product Line Architecture Hyotaeg Jung Computer Science Department Univ. of Texas at Dallas Software Architecture.
SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002.
What is UML? What is UP? [Arlow and Neustadt, 2005] January 23, 2014
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Second-Hand Shopping: Efficient Component Reuse TopCoder, Inc. Sean Campion, Project Manager [scamp]
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 A Discipline of Software Design.
Architecture Business Cycle
The Software Product Line Architectures
Software Component Technology and Component Tracing CSC532 Presentation Developed & Presented by Feifei Xu.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Project Coordinators: Eduardo Santana de Almeida Silvio Romero de Lemos Meira Federal University of Pernambuco Informatics Center Recife Center for Advanced.
CBD Papers Alexandre Alvaro. Lessons Learned through Six Years of Component-based Development Six years of component-based application development Using.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Software Architecture CS3300 Fall Beware the Fuzzy Front End We are already almost 1/3 of the way done Need to negotiate deliverable schedule: SDP.
A Review on Requirement Engineering for Software Product Lines Danuza F. S. Neiva
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
10/23/2015CPSC , CPSC , Lecture 141 Software Engineering, CPSC , CPSC , Lecture 14.
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
1 Introduction to Software Engineering Lecture 1.
21-22 May 2004IMPROQ 2004 / Impact of SW Processes on Quality Workshop 1 Quality for Components: Component and Component- Based Software Quality Issues.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Component-Based Software Engineering(CBSE) Xingui Tang CS532, Fall /6/2015.
PROC-1 1. Software Development Process. PROC-2 A Process Software Development Process User’s Requirements Software System Unified Process: Component Based.
On the design and development of program families Presented by: M. Deng and J. Zhang 4/15/2002 CSE870 Advanced Software Engineering, Spring 2002.
Software Engineering Introduction.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
A Use Case Based Approach to Feature Models’ Construction Jeroen Eissens
Chapter – 1. The UML Approach USECASE DRIVEN ARCHITECTURE CENTRIC ITERATIVE & INCREMENTAL.
SE Seminar – IS Department Mazor Maya & Yuval Efrat December 2010 Griss, M.L.; Favaro, J.; d'Alessandro, M.;
1 Requirements Engineering for Agile Methods Lecture # 41.
George Edwards Computer Science Department Center for Systems and Software Engineering University of Southern California
Product Line Architecture. Systems Systems often come in families: basic, regular, professional, enterprise,… Can we share components? Is architecture.
Enhancing the scope of CSCI577ab with Software Product Line Engineering Kevin Ha April 27, 2011.
Introduction to Software Engineering
Model-Driven Analysis Frameworks for Embedded Systems
Component-based Software Engineering
Object-Oriented Systems Development Life Cycle (CH-3)
Software Architecture in Practice
Software Process Adaptation
Automated Analysis and Code Generation for Domain-Specific Models
Presentation transcript:

Eduardo Santana de Almeida, Silvio Lemos Meira {esa2, Towards an Effective Software Reuse Process

Research’s approach Hypothesis –Software reuse processes present gaps Development for and with reuse Different emphasis …. –Domain analysis… Domain Design….Domain Implementation –Development for –Development with Different trends –Domain Engineering (the begin) –Software Product-Line (currently) Object of study –11 reuse processes – State-of-the-Art Research approach –Analysis of the state-of-the art –Key questions –Requirements for an effective process {draft}

Related Works Previous studies –Arango [1994] Domain Analysis Methods –Boertin [2001] Evaluation of Component-Based Development Methods –Stojanovic [2001] A Methodology Framework for Component-Based System Development Support –Matinlassi [2004] Comparison of Software Product Line Architecture Design Methods: COPA, FAST, FORM, KobrA, QUADA Our case: software reuse processes

Overview Software Reuse: Putting the pieces together

Evolution 1960 subroutines 1970 modules 1980 objects 1990 components 2000 SPL

Domain Engineering Domain Engineering (DE) is the activity of collecting, organizing, and storing past experience in building systems or parts of systems in a particular domain in the form of reusable assets, as well as providing an adequate means for reusing these assets when building (i.e., retrieval, qualification, dissemination, adaptation, assembly, and so on) new systems. Steps: –Domain Analysis –Domain Design –Domain Implementation

Software Product Line “A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Paul Clements and Linda Northrop, 2002 “A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy the specific needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Paul Clements and Linda Northrop, 2002

Essential Activities Management Core Asset Development Product Development Domain Engineering Application Engineering

Is Product Lines a new approach? Small-Grained Reuse Single-System Development with Reuse Component-Based Development Reconfigurable Architecture Release and versions of Single Products

State-of-the-art Software Reuse Processes

Two Directions –The beginning Domain Engineering –End of 99’s Software Product Lines

Software Construction Using Components [Neighbors, 1980] Motived by software crisis First approach for Domain Engineering Generative programming Draco’s approach: –Domain Analysis –Domain Language {Domain design} –Software Components Associated to each object Reliable after several uses –Source-to-Source Program Transformation Valid for all implementations of objects

Draco’s approach to software development [Neighbors, 1980]

Draco’s approach Key aspects –First Domain Engineering approach –Use of Generative Programming –Use of components Drawbacks –Hard approach To design domains To use transformations To use the Draco machine –Dificult to apply in the practice currently Domain analysis, scope, architecture....

Reuse-Oriented Software Evolution (ROSE) [Stars, 1993] Developed by S oftware T echnology for A daptable, R eliable S ystems (STARS) program –Evolution of a previous work - Conceptual Framework for Reuse Processes (CFRP) –Two processes: Reuse Management and Reuse Engineering –Problem: general framework Motivation –To resolve the gap between the high-level, general framework and the detailed, prescriptive methods

Submodels –Organization Management –Domain Engineering –Asset Management –Application Engineering [Stars, 1993]

Key aspects –Organizational issues –Maintenance and evolution {reengineering} –Development for and with reuse –Feedback Drawbacks –Also very general....for example...

Analyze and Model domain activity [Stars, 1993]

Analyze and Model domain activity [Stars, 1993] The same in other activities (Develop Software Architecture, Develop Applications Generators, Develop software componentes)

Organization Domain Modeling (ODM) [Simos, 1996] Developed by S oftware T echnology for A daptable, R eliable S ystems (STARS) program –Process Model to Domain Engineering {development with reuse is not considered!!} –General Process (509 pp.) –Cases: HP, Lockheed Martin, Rolls-Royce, Logicon –Three phases Plan Domain Model Domain Engineer Asset Base

Summary – Until 1997 Processes do not define concrete techniques to modeling and implementation of architecture and components!!

Reuse-driven Software Engineering Business (RSEB) [Jacobson, 1997] Developed by software development experts {Jacobson, Griss, Jonsson} OO method based on: –UML notation –OO Software Engineering Goal –To facilitate the development of reusable object- oriented software Development for and with reuse –Iterative –Use-case centric

Key aspects –Variability –Traceability Drawbacks –Lack of Domain Analysis Domain scoping Feature Modeling FeatuRSEB [Griss, 1998] –RSEB’s extension –Integration between FODA and RSEB

Feature-Oriented Reuse Method (FORM) [Kang, 1998] FODA extension Thesis there are many attempts to support software reuse (two directions) exploratory research theoretical research... there are few efforts to develop systematic methods for discovering commonality and using this information to engineer software for reuse...

The Process

Key aspects –Development for and with reuse –Domain analysis well explored Drawbacks –Specification, Design, Implementation, Packing of components –Application development few explored

Summary – Until 1998 Processes related to Domain Engineering

Product Line Software Engineering (PuLSE) [Bayer, 1999] Motivation –Domain engineering problems Are methods effective in the practice? Domain x Products {domain litle economic basis} Lack of operational guidance –Lack of methodologies to develop and deploy software product line

...existing methods have been either not flexible enough to meet the needs of various industrial situations, or they have been too vague, not applicable without strong additional interpretation and support. A flexible method that can be customized to support various enterprise situations with enough guidance and support is needed....(Bayer, pp. 122)... a lot of work in the literature has focused on the organizational aspect and context for setting up a reusable infrastructure. This body of work often takes for granted that the technological problems of how to scope, model and architect the infrastructure have been solved. We do not think this is the case and hence feel strongly that this is the wrong approach.....(Bayer, pp. 122)

The Process [Bayer, 1999] PuLSE Initialization PL Infrastructure Construction PL Infrastructure Usage Project Entry Points Maturity ScaleOrganization Issues Customizing Scoping Modeling Architecting Instantiating Evolving & Mgmt. PL Infr. Evol. Mang.

Key aspects –Initial direction for software product line development –Development for and with reuse –PuLSE is the result of a bottom-up effort Lessons learned from technology transfer Drawbacks –How to perform the specification, design, implementation of the components? {details about it}

Komponentenbasierte Anwendungsentwicklung (KobrA) [Atkinson, 2000] Several software engineering techniques Frameworks, architecture, cbd, spl PuLSE’s extension Difficult to use in small organizations Very general {a lot of artifacts} KobrA Development for and with reuse Ready-to-use customization of PuLSE

Two activities Framework engineering Application engineering UML’s use – activity, object, statechart...diagrams Komponent Specification – external properties {what} Realization – internal properties {how}

Gaps Domain analysis in large scale Domain architecture Variability {decision model}

A Component-Oriented Platform Architecting Method Family for Product Family Engineering (CoPAM) [America, 2000] Product Engineering Method Family Product Engineering Method Product Engineering Method Product Engineering Method [America, 2000]

Family Engineering Method Product Family Product [America, 2000]

Family Engineering Method Family Family Engineering Method Family Engineering Method Family Engineering Method Product Family Product Family Product Family Product [America, 2000]

Common uses: Product families: Consumer electronics professional systems America said:...the reason for this is that such a large population only makes sense if the products have enough in common...and the organization is able to coordinate the marketing, development and related to aspects [America, 2000]

Based on RUP, RSEB, PuLSE Author’s experience Development for and with reuse Platform engineering and Product engineering Very general StepResult Defining the processDetailed process definition Informal Domain analysisBusiness context and scope Requirements specificationUse cases AnalysisAnalysis object model Conceptual architectingReference architecture Defining the product familyPrecise family definitions Family architectingProducts family architecture Support and supervisionIntegrated and targeted products [America, 2000]

The PECOS Software Process [Winter, 2002] Project between industry and university To enable cbd for embedded systems Motivation Embedded systems Monolithic Platform-dependent Goal To develop families of PECOS devices To reuse them in application development

Component-Based Development During application composition Profiling Non-functional informations CPU usage, memory Application Development Identify Components Compose Components Select Query Components Test & Profiling Documentation & Release Requirements Elicitation Interface Specification Implementation

Gaps How to perform requirements analysis? How are the contracts specified? How are the components identified? Drawback Lack of development for reuse Component development {analysis, architecture}

Summary

The framework [Almeida, 2004]

Questions Development for reuse How to achieve efficient domain analysis? Planning Scoping Modeling {commonalities, variability} Features x use case Decision model x feature model

How to perform domain design? Architecture Specific to a domain {styles, ADL} MDA Service Identification, Specification {OCL, JML}, Design {components} Architecture {quality attributes, documentation, evaluation}

How to perform domain implementation? Incremental x Generative Implementation, documentation and packing {components} Variability {implementation}

Requirements {initial version} Development for reuse Domain analysis Planing Scoping Modeling Domain design Design architecture Identification, Specification, Design {components} Architecture: evaluation, quality attributes, documentation

Requirements {initial version} Domain implementation Implementation, Packing, Variablity Development with reuse Traceability Cost Models Metrics Reengineering Support Environment

Future Work – RiSE’s Process Write a paper: -Towards an efficient software reuse process -History -Questions -Requirements

References [Neighbors, 1980] J. M. Neighbors, Software Construction Using Components, PhD Thesis, University of California, Irvine, Department of Information and Computer Science, USA, 1980, pp. 75. [STARS, 1993] Software Technology for Adaptable, Reliable Systems (STARS), The Reuse-Oriented Software Evolution (ROSE) Process Model, Technical Report, July, 1993, pp [Arango, 1994] G. Arango, Domain Analysis Methods, in Software Reusability, W. Schaefer, R. Prieto-Diaz, and M. Matsumoto, Editor. 1994, Ellis Horwood: New York. [Simos, 1996] M. Simos, D. Creps, C. Klingler, L. Levine, D. Allemang, Organization Domain Modeling (ODM) Guidebook Version 2.0, Technical Report, June, 1996, pp [Jacobson, 1997] I. Jacobson, M. L. Griss, P. Jonsson, Reuse- driven Software Engineering Business (RSEB), Addison-Wesley, 1997, pp. 497.

[Griss, 1998] M. L. Griss, J. Favaro, M. d' Alessandro, Integrating Feature Modeling with the RSEB, The Fifty International Conference on Software Reuse (ICSR), IEEE Computer Society, Victoria, Canada, June, 1998, pp [Kang, 1998] K. C. Kang, S. Kim, J. Lee, K. Kim, E. Shin, M. Huh, FORM: A Feature-Oriented Reuse Method with domain-specific reference architectures, Annals of Software Engineering, Vol. 05, 1998, pp [Bayer, 1999] J. Bayer, O. Flege, P. Knauber, R. Laqua, D. Muthig, K. Schmid, T. Widen, J. DeBaud, PuLSE: A Methodology to Develop Software Product Lines, Symposium on Software Reusability (SSR), ACM Press, Los Angeles, USA, May, 1999, pp [America, 2000] P. America, H. Obbink, R. V. Ommering, F. V. D. Linden, CoPAM: A Component-Oriented Platform Architecting Method Family for Product Family Engineering, The First Software Product Line Conference (SPLC), Kluwer International Series in Software Engineering and Computer Science, Denver, Colorado, USA, 2000, pp.15.

[Atkinson, 2000] C. Atkinson, J. Bayer, D. Muthig, Component- Based Product Line Development: The KobrA Approach, The First Software Product Line Conference (SPLC), Kluwer International Series in Software Engineering and Computer Science, Denver, Colorado, USA, 2000, pp.19. [Boertin, 2001] N. Boertin, M. Steen, H. Jonkers, Evaluation of Component-Based Development Methods, 6th International Workshop on Evaluation of Modeling Methods in Systems Analysis and Design, in The 13th Conference on Advanced Information Systems Engineering (CAiSE), Interlaken, Switzerland, June,2001. [Stojanovic, 2001] Z. Stojanovic, A. Dahanayake, H. Sol, A Methodology Framework for Component-Based System Development Support, 6th International Workshop on Evaluation of Modeling Methods in Systems Analysis and Design, in The 13th Conference on Advanced Information Systems Engineering (CAiSE), Interlaken, Switzerland, June,2001.

[Winter, 2002] M. Winter, C. Zeidler, C. Stich, The PECOS Software Process, Workshop on Component-based Software Development, in the 7th International Conference on Software Reuse (ICSR), Austin, Texas, USA, 2002, pp.07. [Kang, 2002] K. C. Kang, J. Lee, P. Donohoe, Feature- Oriented Product Line Engineering, IEEE Software, Vol. 19, No. 04, July/August, 2002, pp Almeida, E, S.; Alvaro, A.; Lucrédio, D.; Garcia, V. C.; Meira, S, R, L. RiSE Project: Towards a Robust Framework for Software Reuse, In the IEEE International Conference on Information Reuse and Integration (IRI), Las Vegas, Nevada, USA