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

Software Product Line Architectures (SPLA)

  • Upload
    kalli

  • View
    62

  • Download
    5

Embed Size (px)

DESCRIPTION

Software Product Line Architectures (SPLA). Nipun Shah 999-33-3588 [email protected]. Overview. SPLA - Introduction COPA FAST FORM KobrA QADA Conclusion. SPLA – Why?. Architecture is crucial ❖ Ensure product features ❖ Control complexity ❖ Organize development - PowerPoint PPT Presentation

Citation preview

Page 1: Software Product Line Architectures (SPLA)

Software Product Line Architectures (SPLA)

Nipun Shah999-33-3588

[email protected]

Page 2: Software Product Line Architectures (SPLA)

Overview• SPLA - Introduction

• COPA

• FAST

• FORM

• KobrA

• QADA

• Conclusion

Page 3: Software Product Line Architectures (SPLA)

SPLA – Why?

Architecture is crucial

❖ Ensure product features

❖ Control complexity

❖ Organize development

❖ Manage evolution

Page 4: Software Product Line Architectures (SPLA)

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)

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)

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)

COPA

Five views of architecture

Page 8: Software Product Line Architectures (SPLA)

COPA

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

Page 9: Software Product Line Architectures (SPLA)

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)

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)

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)

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)

FORM

Two major processes: Asset Development and Product Development

Page 14: Software Product Line Architectures (SPLA)

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)

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)

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)

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)

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)

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)

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)

THANK YOU