Chapter 22 Product Line Engineering Week 1 CIS 673.

Slides:



Advertisements
Similar presentations
Domain Engineering Silvio Romero de Lemos Meira
Advertisements

Object-Oriented Software Development CS 3331 Fall 2009.
Software Process Models
Enterprise Resource Planning
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Domain Engineering Arie van Deursen May Software Product Line  Group of products  sharing a common, managed set of features  to satisfy the.
Chapter 2 The Software Process
DARE Domain Analysis and Reuse Environment סמינר: נושאים מתקדמים בהנדסת תכנה מרצה: ד"ר איריס ריינהרץ- ברגר סמסטר א', תשס"ז אהרוני ענת ברזני ערבה.
Sixth Hour Lecture 10:30 – 11:20 am, September 9 Framework for a Software Management Process – Artifacts of the Process (Part II, Chapter 6 of Royce’ book)
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
The Experience Factory May 2004 Leonardo Vaccaro.
Software Quality Engineering Roadmap
Software Reuse Building software from reusable components Objectives
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
Software Engineering II - Topic: Software Process Metrics and Project Metrics Instructor: Dr. Jerry Gao San Jose State University
CS350/550 Software Engineering Lecture 1. Class Work The main part of the class is a practical software engineering project, in teams of 3-5 people There.
Iterative development and The Unified process
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Engineering Course Instructor: Aisha Azeem.
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.
Engineering Systems of.
Domain-Specific Software Engineering Alex Adamec.
Problems with reuse – Increased maintenance costs; lack of tool support; not-invented- here syndrome; creating, maintaining, and using a component library.
Chapter : Software Process
SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002.
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Lecture # 1 - September 7, 2004.
S/W Project Management
CPTE 209 Software Engineering Summary and Review.
UML - Development Process 1 Software Development Process Using UML (2)
S/W Project Management Software Process Models. Objectives To understand  Software process and process models, including the main characteristics of.
CSI315 Web Applications and Technology Overview of Systems Development (342)
CLEANROOM SOFTWARE ENGINEERING.
A Generative and Model Driven Framework for Automated Software Product Generation Wei Zhao Advisor: Dr. Barrett Bryant Computer and Information Sciences.
CPIS 357 Software Quality & Testing
Rational Unified Process Fundamentals Module 4: Disciplines II.
College of Engineering and Computer Science Computer Science Department CSC 131 Computer Software Engineering Fall 2006 Lecture # 1 (Ch. 1, 2, & 3)
CS 360 Lecture 3.  The software process is a structured set of activities required to develop a software system.  Fundamental Assumption:  Good software.
Introduction to Software Engineering LECTURE 2 By Umm-e-Laila 1Compiled by: Umm-e-Laila.
CEN rd Lecture CEN 4021 Software Engineering II Instructor: Masoud Sadjadi Phases of Software.
REUSE-Re-Engineering The Software Process By Venkat Praveen Medikonda.
Ævol : A Tool for Planning Architecture Evolution David Garlan & Bradley Schmerl Carnegie Mellon University.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Slide 1 Project Management Chapter 4. Slide 2 Objectives ■ Become familiar with estimation. ■ Be able to create a project workplan. ■ Become familiar.
Specialized Forms of Reuse Part VII: Software Reuse Technologies.
1 Introduction to Software Engineering Lecture 1.
Component Based SW Development and Domain Engineering 1 Component Based Software Development and Domain Engineering.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Systems Analysis and Design in a Changing World, Fourth Edition
CEN5011, Fall CEN5011 Software Engineering Dr. Yi Deng ECS359, (305)
COMM89 Knowledge-Based Systems Engineering Lecture 8 Life-cycles and Methodologies
Chapter 8 Workflows of the Process Taken from Walker Royce’s textbook – Software Project Management plus a number of Personal Comments.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
An organizational structure is a mostly hierarchical concept of subordination of entities that collaborate and contribute to serve one common aim... Organizational.
CSE SW Metrics and Quality Engineering Copyright © , Dennis J. Frailey, All Rights Reserved CSE8314M13 8/20/2001Slide 1 SMU CSE 8314 /
Copyright , Dennis J. Frailey CSE Software Measurement and Quality Engineering CSE8314 M00 - Version 7.09 SMU CSE 8314 Software Measurement.
Software Development Process CS 360 Lecture 3. Software Process The software process is a structured set of activities required to develop a software.
Software Project Management
CIS 4251 / CIS 5930 SOFTWARE DEVELOPMENT Fall 1999 Sept. 1, 1999 Marge Holtsinger.
Applying Adaptive Software Development (ASD) Agile Modeling on Predictive Data Mining Applications: ASD-DM Methodology M. Alnoukari 1 Z.Alzoabi 2 S.Hanna.
Introduction to Project Management
Building Information Systems
Object-Oriented Software Engineering Using UML, Patterns, and Java,
IEEE Std 1074: Standard for Software Lifecycle
Software Engineering (CSI 321)
Introduction to Tech Communication & Project Management Arthur C.M. Chen , Rm
Software Project Planning &
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Open API and Open Architecture Working Group (OA2-WG) *DRAFT*
Presentation transcript:

Chapter 22 Product Line Engineering Week 1 CIS 673

Product Line Engineering What is Software Engineering? What is Software Reuse? Why Reuse Software? Why Not Reuse Software? What is Product Line Engineering?

Software Engineering Engineering Discipline of Software specification, development, evolution, maintenance, operation. Evolved from the mid fifties. Constant state of crisis. SW products: increasingly large, increasingly complex, increasingly critical.

Traditional SE Lifecycle Phases Feasibility Analysis Req Specs Design Product Design Detailed design Programming Testing Operation and maintenance Sequential, chronological. Reinventing the wheel, over and over

What is Software Reuse Set of systematic, organization-wide measures that are taken to streamline the production and usage of reusable software components in application development.

Why Reuse Software Reuse: an Intrinsic part of any engineering discipline. Lower Costs. Better quality. Shorter Time to Market. Less process risk.

Why Not Reuse Software SW components too information rich. Little chance of a match. Great variability in user needs. Not Invented Here syndrome. Architectural mismatches: there is more to a component than function. ….. Failure of Reuse as a Broadly Applicable mechanism. Huge reuse libraries went idle…

Why Not Reuse Software, II SW products have no standard architecture. Analogy with automobiles: standard architectures Cottage industry of parts manufacturers New cars made up, in large parts (98%), of reusable parts In SW:

Product Line Engineering A Streamlined Form of Software Reuse Domain specific Centered on an Architecture Captures Domain Knowledge, Assumptions, wisdom, etc

Two Phases Domain Engineering: Domain Analysis, domain scoping, domain architecture, analysis of commonality and variability, design for reuse, etc. Application Engineering: Developing applications from DE deliverables.

Team Organization

1.2.5 The Experience Factory Definition Characterize Set Goals Choose Process Analyze Execute Process Project Support Experience Base Generalize Tailor Formalize Package PROJECT ORGANIZATIONEXPERIENCE FACTORY Environment Characteristics Goals, Processes, Tools, Products, Resource Models, Defect Models, Data, Lessons Learned Project Analysis Execute Plan

Experience Factory: A Special Form of Team Producer Reusable Assets – Among the forms of assets, we mention: equations between process or product parameters; histograms or pie charts of project data; ranges of normal project data; lessons learned from past development projects

Experience Factory: A Special Form of Team Producer Packaging – product packages, which are abstractions of lifecycle products (programs, designs, architectures, specifications, test data) – process packages,which are abstractions of lifecycle processes (process models, methods, test data generation method) – relationship packages, which abstract relations between various product parameters and process parameters (cost models, defect models, reliability models) – tool packages, which assist the generation or analysis of software products and processes (code generators, planning and cost estimation tools, static analyzers, regression testers).

Experience Factory: A Special Form of Team Producer Separation of Producer and Consumer Functions – Unlike all other organizations we have discussed so far, the experience factory organization has no cognizance of the multitude of project teams. Also, the project organization is not expected to make any direct contribution to the corporate experience base.

Product Line Engineering (PLE) Product-line engineering is a specialized form of reuse that promises Productivity, Quality and shorter time to market in developing similar products in the same domain.  PLE is a streamlined integration of several aspects of software reuse. PLE embodies domain & application engineering phases that are scoped by family of products.

Product Line Engineering (PLE) - contd.  The basic technical means to create a product line include:  Domain Analysis  Software Architecture  Development Process

PLE Lifecycle: Domain analysis Architecture Development Reus. Asset Development Domain models Product Architec- ture Product Specs Reusable assets Domain Architecture Product Develop ment Product Design Product Analysis

PLE Lifecycle (contd.) Attributes of a lifecycle:  Architecture Based  Economically Driven  Reuse-driven  Domain-Specific  Process-Driven (Lifecycle is guided by Development process)

Success Factors in PLE  Domain- specific expertise.  Architectures.  Configuration management.  Business models.  Scoping the domain.  Avoid the “Least Common Denominator” concept.  Managing requirements.  Separate domain engineering unit.  Commonalities and variabilities.  AE Manual.

Product-Line Practice - PLP initiative by SEI (Software Engineering Institute) helps in facilitating and accelerating the transition to sound software engineering using a product-line approach. -The objective of the PLP initiative is to provide organizations with an integrated business and technical approach to multi-use of software assets. Strongly encouraged to acquaint your team with it and follow its prescriptions.

Essential Activities Core Asset Development-Acquisition: It is a Domain Engineering Process. Core asset activities produce or acquire the following objects: Product space: This is a description of the initial products constituting the product line.The description specifies the commonalties and the variations among the products that will Constitute the product line.

Product Line Practice Areas Software Engineering Practice Areas: Domain Analysis: domain identification, selection, scoping, modeling. Mining Existing Assets/ Applications. Developing and Evolving a Reference Architecture.

Essential Activities (contd.) Core Assets: They include an architecture that will shared by the products in the product line and reusable software components. Development and acquisition of core assets take the following inputs: Product Constraints, which deals with the kind of commonalties and variabilities that exist among the products in the family. Production Constraints, which deal with production process. Product Development Acquisition: It is an Application Engineering Process.

Product Line Practice Areas Software Engineering Practice Areas: Domain Analysis: domain identification, selection, scoping, modeling. Mining Existing Assets/ Applications. Developing and Evolving a Reference Architecture.

Product Line Practice Areas Technical Management Practice Area Metrics collection and Tracking. Product Line Scoping. Organizational Management Practice Area Organizational Structure

Product Line Methodologies Support/ Guide in the development and Evolution of the Product Line Synthesis FAST FODA JODA DADP DSSA ODM