chapter 22 product line engineering week 1 cis 673

28
Chapter 22 Chapter 22 Product Line Product Line Engineering Engineering Week 1 CIS 673

Upload: eduardo-wilford

Post on 15-Dec-2015

226 views

Category:

Documents


7 download

TRANSCRIPT

Page 1: Chapter 22 Product Line Engineering Week 1 CIS 673

Chapter 22Chapter 22Product Line EngineeringProduct Line Engineering

Week 1

CIS 673

Page 2: Chapter 22 Product Line Engineering Week 1 CIS 673

Product Line EngineeringProduct Line Engineering

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

Page 3: Chapter 22 Product Line Engineering Week 1 CIS 673

Software EngineeringSoftware 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.

Page 4: Chapter 22 Product Line Engineering Week 1 CIS 673

Traditional SE LifecycleTraditional 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

Page 5: Chapter 22 Product Line Engineering Week 1 CIS 673

What is Software ReuseWhat 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.

Page 6: Chapter 22 Product Line Engineering Week 1 CIS 673

Why Reuse SoftwareWhy Reuse Software

Reuse: an Intrinsic part of any engineering discipline.

Lower Costs.Better quality.Shorter Time to Market.Less process risk.

Page 7: Chapter 22 Product Line Engineering Week 1 CIS 673

Why Not Reuse SoftwareWhy 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…

Page 8: Chapter 22 Product Line Engineering Week 1 CIS 673

Why Not Reuse Software, IIWhy 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:

Page 9: Chapter 22 Product Line Engineering Week 1 CIS 673

Product Line EngineeringProduct Line Engineering

A Streamlined Form of Software ReuseDomain specificCentered on an ArchitectureCaptures Domain Knowledge,

Assumptions, wisdom, etc

Page 10: Chapter 22 Product Line Engineering Week 1 CIS 673

Two PhasesTwo 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.

Page 11: Chapter 22 Product Line Engineering Week 1 CIS 673

Team OrganizationTeam Organization

Page 12: Chapter 22 Product Line Engineering Week 1 CIS 673

1.2.5 The Experience Factory1.2.5 The Experience Factory Definition

CharacterizeSet Goals

Choose Process

AnalyzeExecute Process

Project Support

ExperienceBase

Generalize

Tailor

Formalize

Package

PROJECT ORGANIZATION EXPERIENCE FACTORY

EnvironmentCharacteristicsGoals,Processes,Tools,Products,ResourceModels,DefectModels,Data,LessonsLearned

ProjectAnalysis

ExecutePlan

Page 13: Chapter 22 Product Line Engineering Week 1 CIS 673

Experience Factory: A Special Form Experience Factory: A Special Form of Team Producerof 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

Page 14: Chapter 22 Product Line Engineering Week 1 CIS 673

Experience Factory: A Special Form Experience Factory: A Special Form of Team Producerof 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).

Page 15: Chapter 22 Product Line Engineering Week 1 CIS 673

Experience Factory: A Special Form Experience Factory: A Special Form of Team Producerof 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.

Page 16: Chapter 22 Product Line Engineering Week 1 CIS 673

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.

Page 17: Chapter 22 Product Line Engineering Week 1 CIS 673

Product Line Engineering Product Line Engineering (PLE) - contd.(PLE) - contd.

The basic technical means to create a product line include:

Domain Analysis Software Architecture Development Process

Page 18: Chapter 22 Product Line Engineering Week 1 CIS 673

PLE Lifecycle:

Domain analysis

Architecture Development

Reus. Asset Development

Domain models

ProductArchitec-

ture

ProductSpecs

Reusableassets

Domain Architecture

Product

Product

Development

Product DesignProduct

Analysis

Page 19: Chapter 22 Product Line Engineering Week 1 CIS 673

PLE Lifecycle (contd.)PLE Lifecycle (contd.)

Attributes of a lifecycle:

Architecture Based Economically Driven Reuse-driven Domain-Specific Process-Driven (Lifecycle is guided by

Development process)

Page 20: Chapter 22 Product Line Engineering Week 1 CIS 673

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.

Page 21: Chapter 22 Product Line Engineering Week 1 CIS 673

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.

Page 22: Chapter 22 Product Line Engineering Week 1 CIS 673

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.

Page 23: Chapter 22 Product Line Engineering Week 1 CIS 673

Product Line Practice AreasProduct Line Practice Areas

Software Engineering Practice Areas:Domain Analysis: domain identification,

selection, scoping, modeling.Mining Existing Assets/ Applications.Developing and Evolving a Reference

Architecture.

Page 24: Chapter 22 Product Line Engineering Week 1 CIS 673

Essential ActivitiesEssential Activities(contd.)(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.

Page 25: Chapter 22 Product Line Engineering Week 1 CIS 673

Product Line Practice AreasProduct Line Practice Areas

Software Engineering Practice Areas:Domain Analysis: domain identification,

selection, scoping, modeling.Mining Existing Assets/ Applications.Developing and Evolving a Reference

Architecture.

Page 26: Chapter 22 Product Line Engineering Week 1 CIS 673

Product Line Practice AreasProduct Line Practice Areas

Technical Management Practice AreaMetrics collection and Tracking.Product Line Scoping.

Organizational Management Practice AreaOrganizational Structure

Page 27: Chapter 22 Product Line Engineering Week 1 CIS 673

Product Line MethodologiesProduct Line Methodologies

Support/ Guide in the development and Evolution of the Product Line

Synthesis FAST FODA JODA DADP DSSA ODM

Page 28: Chapter 22 Product Line Engineering Week 1 CIS 673