Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 [email protected].

21
Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 [email protected]

Transcript of Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 [email protected].

Page 1: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

Software Product Line Architectures (SPLA)

Nipun Shah999-33-3588

[email protected]

Page 2: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

Overview• SPLA - Introduction

• COPA

• FAST

• FORM

• KobrA

• QADA

• Conclusion

Page 3: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

SPLA – Why?

Architecture is crucial

❖ Ensure product features

❖ Control complexity

❖ Organize development

❖ Manage evolution

Page 4: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 5: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 6: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 7: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

COPA

Five views of architecture

Page 8: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

COPA

COPA covers the following aspects of product lines: business, architecture, process and organizational aspects.

Page 9: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 10: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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

Page 11: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 12: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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

Page 13: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

FORM

Two major processes: Asset Development and Product Development

Page 14: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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

Page 15: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 16: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 17: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 18: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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

Page 19: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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.

Page 20: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

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

Page 21: Software Product Line Architectures (SPLA) Nipun Shah 999-33-3588 nms043000@utdallas.edu.

THANK YOU