On the design and development of program families Presented by: M. Deng and J. Zhang 4/15/2002 CSE870 Advanced Software Engineering, Spring 2002.

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Individul Project: NPD-NET Component 4: Integration and Regional Adaptation of NPD Roadmap Kick-off meeting Region of Central Macedonia – URENIO Research.
25 February 2009Instructor: Tasneem Darwish1 University of Palestine Faculty of Applied Engineering and Urban Planning Software Engineering Department.
Main issues: • Why is reuse so difficult • How to realize reuse
Ch 3: Unified Process CSCI 4320: Software Engineering.
Software Project Management
1 Prescriptive Process Models. 2 Prescriptive Models Prescriptive process models advocate an orderly approach to software engineering Prescriptive process.
Keeping Secrets Within a Family: Rediscovering Parnas H. Conrad Cunningham Computer & Information Science, University of Mississippi Cuihua Zhang Computer.
© AgiliX Agile Development Consulting Agile Software Architecture Cesario Ramos.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Shihong Huang Department of Computer Science & Engineering Florida Atlantic University 1st SEMAT Workshop March , 2010 Zurich Capturing the Essence.
Amirkabir University of Technology, Computer Engineering Faculty, Intelligent Systems Laboratory,Requirements Engineering Course, Dr. Abdollahzadeh 1 Requirements.
1 SYSTEM and MODULE DESIGN Elements and Definitions.
R R R Program Families CSE870 Discussion April 14, 2003.
1 درس مهندسي نيازمندي استاد دكتر عبداله زاده دانشجو خيرالنسا مرچانت RE in The Year 00: A Research Perspective.
Software Engineering CSE470: Systems Engineering 35 Computer System Engineering Computer System Engineering is a problem-solving activity. Itemize desired.
On the Design and Development of Program Families David Parnas Presented by Gregory Brown IEEE Transactions on Software Engineering, VOL SE-2, NO. 1, March.
Software Life Cycle Model
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
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Architecture Tradeoff Analysis Method Based on presentations by Kim and Kazman
03 - ParnasCSC4071 A Sketchy Evolution of Software Design 1960s –Structured Programming (“Goto Considered Harmful”, E.W.Dijkstra) Emerged from considerations.
Designing Software for Ease of Extension and Contraction Presented by William Greenwell February 27, 2002.
CSI315 Web Applications and Technology Overview of Systems Development (342)
Chapter 2 The process Process, Methods, and Tools
Objects and Components. The adaptive organization The competitive environment of businesses continuously changing, and the pace of that change is increasing.
Institut Experimentelles Software Engineering Fraunhofer IESE Klaus Schmid Relating Product Line Adoption Mode and Transition Process.
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Model-Driven Analysis Frameworks for Embedded Systems George Edwards USC Center for Systems and Software Engineering
Drexel University CS 451 Software Engineering Winter Yuanfang Cai Room 104, University Crossings
David Weiss Software Product-Line Engineering: A Family-Based Software Development Process: Designing The Family David Weiss
Chapter 6 Architectural Design.
1 The Modular Structure of Complex Systems Presented by: SeyedMasoud Sadjadi and Wei Zhu David L. Parnas, Paul C. Clement, and David M. Weiss ICSE 1984.
Microsoft Office Project 2003: Selling EPM in your Organization Matt Wilson Business Solutions Specialist LMR Solutions.
Novell to Microsoft Conversion School Year.
Systems Analysis and Design in a Changing World, Fourth Edition
OOPSLA workshop on Domain-Specific Visual Languages 1 Framework for Domain-Specific Visual Languages Juha-Pekka.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
Software Product-Line Engineering: A Family- Based Software Development Process: Introduction David Weiss
An approach for Framework Construction and Instantiation Using Pattern Languages Rosana Teresinha Vaccare Braga Paulo Cesar Masiero ICMC-USP: Institute.
27/3/2008 1/16 A FRAMEWORK FOR REQUIREMENTS ENGINEERING PROCESS DEVELOPMENT (FRERE) Dr. Li Jiang School of Computer Science The.
OOPSLA workshop on Domain-Specific Visual Languages 1 Juha-Pekka Tolvanen, Steven Kelly, Jeff Gray, Kalle Lyytinen.
The Proposal AEE 804 Spring 2002 Revised Spring 2003 Reese & Woods.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Designing Abstract Interfaces for Device Independency Designing Abstract Interfaces for Device Independency Review of A Procedure for Designing Abstract.
Lecture 2 System Development Lifecycles. Building a house Definition phase Analysis phase Design phase Programming phase System Test phase Acceptance.
Review of Parnas’ Criteria for Decomposing Systems into Modules Zheng Wang, Yuan Zhang Michigan State University 04/19/2002.
Formal Specification: a Roadmap Axel van Lamsweerde published on ICSE (International Conference on Software Engineering) Jing Ai 10/28/2003.
Software Model Process
Product line introduction in a multi-business line context. An experience report B.J. Pronk Philips Medical Systems
Lectures 2 & 3: Software Process Models Neelam Gupta.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Engineering Principles I (Spring 2017)
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Designing Software for Ease of Extension and Contraction
Model-Driven Analysis Frameworks for Embedded Systems
Design Model Like a Pyramid Component Level Design i n t e r f a c d s
Requirements Engineering for Product Lines
Object oriented analysis and design
Software engineering -1
Quiz (T/F): Question: Software Engineering is not Engineering,
Chapter 9 Architectural Design.
MCO Status Report to JSTC
A Brief History 1969: the term “software engineering” was coined
Presentation transcript:

On the design and development of program families Presented by: M. Deng and J. Zhang 4/15/2002 CSE870 Advanced Software Engineering, Spring 2002

Overview Objective –Definition of program families A set of programs –First common features of these programs –Then variation of each program Example: Microsoft Office Family –Three techniques Traditional method: Sequential development method Two new methods: –Stepwise refinement method –Specification of information hiding modules method [Parnas76] David Parnas, “On the design and development of program families,” IEEE Transactions on Software Engineering, SE-2(1), 1-9, 1976.

Overview (cont’d) Technique Overview –Sequential Method Features Disadvantages

Overview (cont’d) –Stepwise Method Vs. Specification Method Features Combination

Impact Product line –Definition: a group of products that share a set of commonalities that meet the requirements of the market –CMU/SEI: a Framework of Software Product Line Practice –CMU/SEI: 1 st Software Product Line Conference (SPLC1) in 2000 Information hiding design principle in O bject- Oriented programming languages And so on

Related 1: Commonality Analysis Objective –To identify the common features and variations among family members Technique Overview –FAST (Family-oriented Abstraction, Specification and Translation) process –An early step of the FAST process –Participants: Moderator, recorder, family analysis experts [Weiss98] David Weiss, “Commonality Analysis: A Systematic Process for Defining Families,” in 2 nd International Workshop on Development and Evolution of Software Architectures for Product Families, February 1998.

Related 1 (cont’d) –Result: Commonality Analysis Document –Form: to hold a series of meetings Five stages: –Prepare –Plan –Analyze: central part –Quantify –Review –Applicability: Has been practiced in Lucent Technologies How it extends Parnas’ work? –Provide a process

Related 2: Adaptable Components Objective –One component represents a family of components Technique Overview –An adaptable component has a group of parameters of adaptability [Campbell99] Grady Campbell, “ Adaptable Components, ” in Proceeding of 21 st International Conference on Software Engineering (ICSE99), ACM, , 1999.

Related 2 (cont’d) –Two models of reuse: Usual reuse model –Select from a library of components –Customize and then construct a new component –Time-consuming, error-prone Adaptable component based reuse model –Select from the name of adaptable component –Make the decisions of parameters How it extends Parnas’ work? –A component family

Related 3: Combining Product Line Engineering with Options Thinking Objective –To introduce an appropriate economic model to justify the use of product line approach Technique Overview –Product line approach needs more initial investment –The DCF Model can be used to justify the use of product line in cell phone companies –The DCF is not suitable to justify product line approach in an evolutionary product –The BSOP Model is a Model used in stock market to value the option. It is more suitable to justify an evolutionary product [Geppert01] Birgit Geppert and Frank Roessler, “Combining Product Line Engineering with Options Thinking,” in Proceedings of Product Line Engineering: The Early Steps (PLEES’01), September 2001.

Related 3 (cont’d) How it extends Parnas’ work –Product line is an extension of program family –This work introduces an economic model to justify the use of the product line

Uncited: Multi-Staged Scoping for Software Product Lines Objective –To propose a scoping method for the product line approach Technique Overview –Why we need scoping? –What requirements a sound scoping method should meet? –Three components of the proposed scoping method Product line mapping, domain based scoping, feature based scoping [Schmid00] Klaus Schmid, “Multi-Staged Scoping for Software Product Lines,” in Proceedings of Software Product Lines: Economics, Architecture, and Implications, June 2000.

Why it should have cited the paper This paper should have cited Parnas’ paper for the same reason as the previous paper –Product line is a industrial interpretation of program family –This paper proposes a scoping method in product line

References D. Parnas, “On the design and development of program families,” IEEE Transactions on Software Engineering, SE-2(1), 1-9, D. Weiss, “ Commonality Analysis: A Systematic Process for Defining Families, ” in 2 nd International Workshop on Development and Evolution of Software Architectures for Product Families, February G. Campbell, “ Adaptable Components, ” in Proceeding of 21 st International Conference on Software Engineering (ICSE99), ACM, , 1999.

References B. Geppert and F. Roessler, “Combining Product Line Engineering with Options Thinking,” in Proceedings of Product Line Engineering: The Early Steps (PLEES’01), September K. Schmid, “Multi-Staged Scoping for Software Product Lines,” in Proceedings of Software Product Lines: Economics, Architecture, and Implications, June 2000.