Title: Software Architecture in Practice
1Software Architecture in Practice
- RiSEs Seminars
- Basss book Chapter 14
- Ana Paula Cavalcanti
2Summary
- Software Product Lines (Chapter 14)
- Overview
- What Makes Software Product Lines Work?
- Scoping
- Architectures for Product Lines
- What Makes Software Product Lines Difficult
3Overview
Software Product Lines Chapter 14
Architecturally mature organization tend to
treat their architectures as valuable
intellectual property and look for ways in which
that property can be leveraged to produce
additional revenue and reduce costs.
- Explicit and planned re-use of a software
architecture across a family of related systems - Base architecture ? common and tailorable
elements that populate
COREASSET BASE
Applied to more than one system Reuse is cheaper
than reinvent
4Overview
Software Product Lines Chapter 14
Software Product Lines a set of
software-intensive systems sharing a common,
managed set of features that satisfy the specific
needs of a particular market segment or mission
and that are developed from a common set of core
assets in a prescribed way.
- Simplify the creation of systems
- Improvements in costs
- Depends on coordinated strategy involving
software engineering, technical and
organizational management
5What Makes Software Product Lines Work?
Software Product Lines Chapter 14
The essence of a software product line is the
disciplined, strategic re-use of assets in
producing a family of products.
- Focus on commonalities shared by the products
Requirements Architectural design Elements Modeling and analysis Testing Project Planning Process, methods and tools People Exemplar systems Defect elimination
6What Makes Software Product Lines Work?
Software Product Lines Chapter 14
- Rely on Reuse
- Promise almost always exceeding the pay off
- Rich Libraries
- Small Libraries
- Software product lines make re-use work by
establishing a very strict context for it.
Nothing is placed in the re-use library that was
not built to be re-use in that product line.
Product lines work by relying on strategic or
planned, not opportunistic, re-use
7Scoping
Software Product Lines Chapter 14
- Define the product line scope
- Organizations best prediction about what
products it will be asked to build in the
foreseeable future. - Narrow scope (Products vary in a small number of
features) - Broad scope (Products vary in any kind as well as
in features) - Find commonality that can be exploited to
substantially reduce the cost of constructing the
systems that an organization intends to build.
8Architectures for Product Lines
Software Product Lines Chapter 14
The essence of building a successful software
product line is discriminating between what is
expected to remain constant across all family
members and what is expected to vary.
- Identifying Variation Points
- Requirements Elicitation
- Architecture Design
- Implementation
9Architectures for Product Lines
Software Product Lines Chapter 14
- Supporting Variation Points
- Inclusion or omission of elements
- Inclusion of a different number of replicated
elements - Selection of versions of elements that have the
same interface but different behavioral or
quality attribute characteristics - Evaluating a Product Line Architecture
- What, how and when to evaluate?
- Focus on the variation points to make sure they
are appropriate - Sufficient flexibility to cover the intended scope
10What Makes Software Product Lines Difficult
Software Product Lines Chapter 14
- It takes a certain maturity
- Technology is not the only barrier
- Organization, process and business issues
- Adoption Strategies
- Getting an organization to adopt the product
line approach is in many regards like any other
technology insertion problem. How to solve it
depends on the organizations culture and
context. - Knowing the various adoption models can help an
organization chose the one that is right for it.
11What Makes Software Product Lines Difficult
Software Product Lines Chapter 14
- Creating Products and Evolving a Product Line
- Manage its evolution
- External sources
- Internal sources
- Organizational Strategies
- Development department
- Business units
- Domain Engineering unit
- Hierarchical domain engineering unit
12References
- BASS, L. CLEMENTS, P. KAZMAN, R. Software
Architecture in Practice. Addison-Wesley, 2003. - CLEMENTS, P. NOTHROP, L. Software Product Lines
Practice and Patterns. Addison-Wesley, 2002.