Shah_Nipun

advertisement
Software Product Line
Architectures (SPLA)
Nipun Shah
999-33-3588
nms043000@utdallas.edu
Overview
• SPLA - Introduction
• COPA
• FAST
• FORM
• KobrA
• QADA
• Conclusion
SPLA – Why?
Architecture is crucial
❖ Ensure product features
❖ Control complexity
❖ Organize development
❖ Manage evolution
SPLA – Why?
• A common platform is specified to a family of software
products.
• The platform is based on the similarities between
several products close to each other.
• The variabilities among the members of a product
family can be implemented with different variation
techniques such as parametrization or conditional
compilation.
Product Families
• A product family is a group of products sharing a
common, managed set of features that satisfy specific
needs of a selected market or application domain.
COPA
• Component-Oriented Platform Architecting Method
• Arose with Phillips Company
• The specific goal of the COPA method is to achieve the best possible fit
between business, architecture, process and organization.
• Find balance between component-based and architecture-centric
approaches
• The component-based approach is a bottom-up approach relying on
composition.
COPA
Five views of architecture
COPA
COPA covers the following aspects of product lines: business, architecture,
process and organizational aspects.
FAST
• Family Oriented Abstraction, Specification and Translation
• Introduced at AT&T
• Further developed at Lucent Technologies Bell Laboratories
• Development process for producing software in a family-oriented way
• Rapid production and careful engineering are difficult to achieve
at the same time. However, product-line engineering via FAST
tries to resolve the dilemma and to achieve both the goals.
FAST
• Separates product-line engineering process into two main parts:
1. One step concentrates on providing the core assets including the
environment for implementing each product
2. The other step utilizes the environment in the production of
different software products belonging to the family
• FAST process can be divided into the following sub-processes:
1. Domain qualification to identify families worthy of investment
2. Domain engineering to invest in facilities for producing family
members
3. Application engineering to use those facilities to produce family
members rapidly
FAST
Domain engineers
take care of the
evolution of the
family and control
that the investment in
the family stays
paying.
Application engineers
produce family
members. They are
in contact with
customers to be able
to satisfy their
requirements.
FORM
• Feature Oriented Reuse Method
• Kyo C. Kang and his co-fellows in Pohang University of Science
and Technology, Korea
• Prescribes how the feature model is used to develop domain
architectures and components for reuse
• Specific goal on how to apply domain analysis results to
engineering of reusable and adaptable domain components
FORM
Two major processes: Asset Development and Product Development
FORM
• Asset development consists of analyzing a product line (such as
marketing and product plan development and refinement,
feature modeling, and requirements analysis) and developing
architectures and reusable components based on analysis results
•
Product development includes analyzing requirements, selecting
features, selecting and adopting an architecture, and adapting
components and generating code for the product
KobrA
• Komponentenbasierte Anwendungsentwicklung
• Practical method for component-based product line engineering
with UML
• Basic goal of providing a systematic approach to the development
of high-quality, component-based application frameworks.
KobrA
• Strict distinction of products and processes
• Products of a KobrA project (e.g., models, documents, code
modules, test cases, etc.) are defined independently of, and
prior to, the processes by which they are created, and effectively
represent the goals of these processes.
KobrA
• Each Komponent is described at two levels of abstraction –
1. Specification: Defines the Komponent's externally visible properties and
behaviors
2. Realization, which describes how the Komponent fulfils this contract in
terms of contracts with lower level Komponents.
QADA
• Quality-driven Architecture design and analysis
• States a product line architecture design method providing
traceable product quality and design time quality assessment
• Quality requirements are the driving force when selecting
software structures
• Architecture design is combined with quality analysis, which
discovers if the designed architecture meets the quality
requirements set in the very beginning
QADA
• The output of the QADA method is twofold: design and analysis.
Design covers software architecture at two abstraction levels:
- Conceptual architecture
- Concrete architecture
• Analysis provides precious information concerning the quality of
the design.
- Analysis results in feedback of whether the design addresses the
quality requirements defined for the system.
- Analysis may also produce quality feedback about an existing
system.
Conclusion
•
The methods do not seem to compete with each other, because each of them has
a special goal or ideology
- COPA. Concentrated on balancing between top-down and bottom-up approaches
and covering all the aspects of product line engineering i.e. BAPO
- FAST. Family oriented process description with activities, artifacts and roles.
Therefore, it is very adapting but not applicable as it is
- FORM. Feature-oriented method for capturing commonality inside a domain.
Extended also to cover architectural design and development of code assets
- KobrA. Practical, simple method for traditional component-based software
engineering with UML. Adapts to both single systems and family development
- QADA. Concentrated on architectural design according to quality requirements
Provides support for parallel quality assessment of product line software
architectures
THANK YOU
Download