In this chapter, the following content will be discussed: Developing a single product, component markets, product families and product lines, product populations, component approaches, frameworks as components.
Trang 1Architectures
Trang 2Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Trang 3Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Global Software Component Market
Will it solve all our reuse problems?
Far from a global component market.
Intra-organizational reuse of core software indispensable.
”The traditional techniques for reuse of software are still
sufficient for small product families, but for larger
product populations the best elements of single product
development and third party component markets are
required.”
Trang 4Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Basic arguments for software product lines
Size &
Complexity Quality
Lead Time Reduction
Architecture
Reuse Components
Product Lines Diversity
Trang 5Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Developing a Single Product
Starting from the requirements, we define an
architecture
The architecture decomposes the system into
subsystems and components
We build and test the components, then the
subsystems, and finally the product
Trang 6Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Product Lines
Single Product
top-down planned developed
intra – organization
Product Family
top-down planned developed
intra – organization
Product Population
partially bottom-up
planned / opportunistic
developed / available
intra – organization
Component Markets
bottom-up opportunistic available
inter – organization
Characteristics of Product Lines
Trang 7Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Component Markets
Building systems from existing components, obtained
from third parties often has the following
characteristics:
It is a bottom-up activity (no global architecture defined).
Use of components is opportunistic (use whatever is
Trang 8Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Difficulties in Component Markets
Architecture
Mismatch Less efficient system
Scale
Reusability Usefulness
Resources
Excess
Trang 9Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Product Software Categorization:
Trang 10Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Product Families and Product Lines
Is a top-down, planned, proactive approach to achieve
reuse of software within a family (or population, see the
next section) of products
Trang 11Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Fixed Generic Architectures
The use of fixed generic architectures with variation
Trang 12Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Trang 13Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Consequences
Development within product populations will cross
business lines, groups or division boundaries.
Common architectural rules.
Planning.
Trang 14Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Component Approaches
Two dimensions for reuse:
Variability Independence
Trang 15Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Trang 16Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Libraries
The classical techique for organizing reusable software
Mathematical Graphical
Library-independent interface
Libraries dependent on libraries
Trang 17Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Object Oriented Frameworks
A set of classes from which to create an application
Inheritance allows to abstract from specific behaviour
Danger: derived classes are very dependent Fragile base class problem
Trang 18Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Plug-ins cannot be independently deployed.
Framework often not composable itself.
Trang 19Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures
Frameworks As Components
Powerful parameterization mechanism
The ultimate solution for variability and independence
The basic mechanism for achieving composability is to
make every context dependency explicit and bindable
by a third party.
Trang 21Building Reliable Componentbased Systems
Chapter 11 Components in Product Line Architectures