Chapter 22 Product Line Engineering

Download Report

Transcript Chapter 22 Product Line Engineering

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
Environment
Characteristics
Characterize
Goals,
Set Goals
Processes,
Choose Process
Tools,
Products,
Execute Resource
Models,
Plan
Defect
Models,
Data,
Lessons
Learned
Execute Process
Project
PROJECT ORGANIZATION Analysis
Project
Support
Package
Experience
Base
Generalize
Tailor
Formalize
Analyze
EXPERIENCE FACTORY
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
Domain
models
Product
Analysis
Domain
Architecture
Development Architecture
Product
Specs
Product
Design
Reus. Asset
Development
Product
Architecture
Reusable
assets
Product
Develop
ment
Product
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