The Software Product Line Architectures

Slides:



Advertisements
Similar presentations
1 Software Testing and Quality Assurance Lecture 13 - Planning for Testing (Chapter 3, A Practical Guide to Testing Object- Oriented Software)
Advertisements

The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Lecture # 2 : Process Models
Object-Oriented Software Development CS 3331 Fall 2009.
The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
ISNE101 Dr. Ken Cosh. Recap  We’ve been talking about Software…  Application vs System Software  Programming Languages  Vs Natural Languages  Syntax,
Use Case Diagram © copyright 2001 SNU OOPSLA Lab..
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
The Architecture Design Process
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Software Engineering General Project Management Software Requirements
DAIMIHenrik Bærbak Christensen1 Product Lines Architectural Reuse.
UML CASE Tool. ABSTRACT Domain analysis enables identifying families of applications and capturing their terminology in order to assist and guide system.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Course Instructor: Aisha Azeem
1 CMPT 275 Software Engineering Requirements Analysis Process Janice Regan,
Software Product Line Engineering Andrew Burmester SE 4110 Section 2 4/14/11.
Software Product Line Architectures (SPLA) Nipun Shah
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Computer Systems & Architecture Lesson Software Product Lines.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002.
SYSTEM ANALYSIS AND DESIGN
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
Institut Experimentelles Software Engineering Fraunhofer IESE Klaus Schmid Relating Product Line Adoption Mode and Transition Process.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
An Introduction to Software Architecture
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©Ian Sommerville 2000, Mejia-Alvarez 2009 Slide 1 Software Processes l Coherent sets of activities for specifying, designing, implementing and testing.
Software Processes lecture 8. Topics covered Software process models Process iteration Process activities The Rational Unified Process Computer-aided.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Requirements Engineering Requirements Elicitation Process Lecture-8.
Software Engineering Management Lecture 1 The Software Process.
UML Diagrams: Class Diagrams The Static Analysis Model Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
SOFTWARE DESIGN (SWD) Instructor: Dr. Hany H. Ammar
An Introduction to Software Engineering. Communication Systems.
Requirements as Usecases Capturing the REQUIREMENT ANALYSIS DESIGN IMPLEMENTATION TEST.
Requirements Capture. Four Steps of requirements capture List candidate requirements Understand system context Capture functional requirements Capture.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
1 COMP 350: Object Oriented Analysis and Design Lecture 1Introduction References: Craig Larman Chapter 1.
The System and Software Development Process Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Systems Analysis and Design in a Changing World, Fourth Edition
Rational Unified Process Fundamentals Module 7: Process for e-Business Development Rational Unified Process Fundamentals Module 7: Process for e-Business.
1 CS 501 Spring 2004 CS 501: Software Engineering Lecture 2 Software Processes.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
1 Unified Modeling Language, Version 2.0 Chapter 2.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
ANALYSIS PHASE OF BUSINESS SYSTEM DEVELOPMENT METHODOLOGY.
Quality Assurance in the Presence of Variability Kim Lauenroth, Andreas Metzger, Klaus Pohl Institute for Computer Science and Business Information Systems.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
21/1/ Analysis - Model of real-world situation - What ? System Design - Overall architecture (sub-systems) Object Design - Refinement of Design.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
UML Diagrams: Class Diagrams The Static Analysis Model
Systems Analysis and Design With UML 2
Chapter 25: Architecture and Product Lines
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
An Introduction to Software Architecture
CS310 Software Engineering Lecturer Dr.Doaa Sami
Presentation transcript:

The Software Product Line Architectures Instructor: Dr. Hany H. Ammar Dept. of Computer Science and Electrical Engineering, WVU

outline What is software Product Line. http://www.sei.cmu.edu/productlines/frame_report/what.is.a.PL.htm Product Line Architecture Development Process http://www.cs.ncl.ac.uk/publications/inproceedings/papers/574.pdf Examples

What is software Product Line? Re-use of asset architecture for some systems can maximize company investment. Mature organization keeps their architecture as an intellectual asset which is very valuable and able to increase turn over and reduce cost. Software Product Line – discipline, and re-use strategy sharing of asset in producing a group of products. Objective – able to re-use asset from the previous projects such as basic architecture, the same element, designs, documentations, user manual, artifact project management such as budgeting and scheduling, and test plan & test cases. When the product line produced, the assets will be kept in asset library to be used for other projects.

What is Software Product Line? Software product line is defined as “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” These Systems are developed from a common core of assets (e.g. a common architecture) in a prescribed way. The creation and validation of product line software architectures are inherently more complex than those of software architectures for single systems.

outline What is software Product Line. http://www.sei.cmu.edu/productlines/frame_report/what.is.a.PL.htm Product Line Architecture Development Process http://www.cs.ncl.ac.uk/publications/inproceedings/papers/574.pdf Examples

PLA Development Process Creating Product Line Architectures1: Joachim Bayer, Oliver Flege, and Cristina Gacek Fraunhofer Institute for Experimental Software Engineering (IESE) Sauerwiesen 6, D-67661 Kaiserslautern, Germany {bayer, flege, gacek}@iese.fhg.de, http://www.cs.ncl.ac.uk/publications/inproceedings/papers/574.pdf

PuLSE-DSSA Process The PuLSE-DSSA is a customizable process that integrates product line architecture creation and evaluation The input is a scope definition and a domain model, The scope definition determines the commonalities and variations of applications within the product line.

PuLSE-DSSA Process: Scope Definition as input Ideally, the scope definition is based on a process that seeks to estimate the economic value each distinct feature would have for the product line Determining which system functions are essential in the product line, and which are not. Presenting organization scope about product types which will be developed now and in the future. Input for the production of scopes comes from organization strategic planner, marketing staff, domain analysis and technology experts. Scope of product line is one of the critical factors in determining the success of the product line. The major problem in determining the scope is identifying the similarity in the systems that will reduce development cost of a system for an organization.

PuLSE-DSSA Process: The Domain Model as input, In the PuLSE product line development process, the input domain model would be a product line model consisting of generic workproducts (i.e., products describing requirements in terms of commonalities and variabilities) and a decision model. As an example of a generic workproduct can be defined on GUIs based on the commonalities and variabilities of different users

PuLSE-DSSA Process: The Domain Model’s Decision Model A decision model captures variability in a product line in terms of open decisions and possible resolutions. In a decision model instance, all decisions are resolved. As variabilities in generic workproducts refer to these decisions, a decision model instance defines a specific instance of each generic workproduct and thus specifies a particular product line member.

PuLSE-DSSA Process Steps 1. Create Scenarios Determine the most important requirements captured in scenarios that describe critical use-cases Conventional scenarios are described on an instance level, which makes it difficult to convey the variability information needed for product line requirements We need to create generic scenarios that represent commonalities and variabilities

PuLSE-DSSA Process Steps 2. Group and Sort Scenarios This step yields the architecture creation plan that defines the iterations in which the architecture development is performed. The first iteration deals with the most important group of scenarios, the second one with the second most important group and so forth The order in which scenarios are addressed is highly significant, because Each iteration’s design decisions impose constraints on the architecture that delimit its further evolution.

PuLSE-DSSA Process Steps 3. Define Test Cases For each group of scenarios, test cases are defined that will be used to evaluate the architecture at the end of each iteration. Specifying test cases before the actual development begins has a number of benefits, including a better understanding of the requirements and avoidance of creating tests that, due to a fixed perspective, merely support what has been developed. evaluating the architecture is based on specific kinds of system level quality objectives such as maintainability, understandability, and reusability.

PuLSE-DSSA Process Steps 4. Apply Scenarios The group of scenarios associated with the current iteration is used to create the initial architecture or to refine/extend an already existing, partial architecture. This step also includes the possible integration of existing components (legacy or COTS) as well as prototyping. The result is a (partial) architecture description and possibly a prototype. During architecture development some variabilities might become apparent that are not driven by the problem domain, but rather by the solution

PuLSE-DSSA Process Steps 5. Evaluate Architecture In this step, the architecture resulting from the previous step is evaluated according to the architecture evaluation plan Evaluation has to address instance-specific as well as family specific aspects and relies on a defined instantiation mechanism. The ease with which instances can be created allows to draw conclusions on critical family-specific characteristics A range of possible instantiations is used to ensure that the intended products are indeed covered by the reference architecture

PuLSE-DSSA Process Steps 6. Analyze Problems In this step, the underlying problems from the evaluation step are examined in order to determine how the architecture development process can be continued. The examination focuses on whether the current group of scenarios could be applied successfully to the architecture that resulted from the previous iterations. Some design decisions from an earlier iteration are presumed to impose constraints that are too stringent for the current set of scenarios. Therefore, extended backtracking is needed, which may include reformulating, regrouping, and reordering of some scenarios and then reentering the process in the appropriate iteration

Product Line Architecture variation points The most important tasks that need to be done to define the architecture in product lines: Identifying variation points. Supporting variation points.

Identifying the Variation Point Continuous task because: Variation maybe identified in development process. Variation maybe identified during the creation process, product line requirement like: purpose, platform, interface, quality, and target market. During the architecture design such as: choose as whether to perform the identified variation at the requirement analysis phase or architecture. During implementation.

Supporting Variation Point Architecture will support variation points in the form of: Using or eliminating elements. Using the same elements with variant attributes. Choosing the element which has same interface but different implementation or different quality attribute. Implementation Techniques: In OO system, the use of specialization and generalization for class. Developing extension points at the element. Using the same parameter within the component. Over loading – using the same function in different type of data.

SPL Instantiation Process The instantiation process involves using and adapting a product line to deliver a working product that meets the product specific requirements. The process typically involves the following steps: Identifying product specific requirements Initial screening of the components and selecting the ones that can be reused for the product From the component selected in the previous step, select only those components that are reusable after some adaptation

SPL Instantiation Process (cont.) Binding and adding variants for the variability points in the selected components Implementing new components to fulfill new requirements (product specific requirements). Some of these might end up being included in the product line architecture Integrating the resulting components and perform product specific development Finally, maintaining the product after deployment

outline What is software Product Line. http://www.sei.cmu.edu/productlines/frame_report/what.is.a.PL.htm Product Line Architecture Development Process http://www.cs.ncl.ac.uk/publications/inproceedings/papers/574.pdf Examples

Example 1: PLA for a Microwave Oven

Definition of Terms Used in the Example Class Diagram Kernel: Kernel in product lines represents the mandatory features for the product line members. i.e.: they cannot be omitted in products. The stereotype <<kernel>> is used to specify Kernel in UML class diagrams. Optional: Optionality in product lines means that some features are elective for the product line members, which means they can be omitted in some products and included in others. The stereotype <<optional>> is used to specify optionality in UML class diagrams. The optionality can concern classes, packages, attributes or operations. So the <<optional>> stereotype can be applied to Classifier, Package and Feature meta-classes. Variant: Variant classes are modeled using UML inheritance and stereotypes. Each variation point will be defined by an abstract class and a set of subclasses. The abstract class will be defined with the stereotype <<variant>> and each subclass will be stereotyped <<variant>>, or <<optional>>, the default value being variant.

Example 1(cont.): Microwave Sample Sequence Diagram

Example 2: Library Class Diagram

Example 3: Ecommerce Class Diagram

Evaluating the Architecture to Suit Product Lines Product Line architecture is analyzed for: Robustness. Generality. How and why and When to evaluate: How: Focus on the variation point – ensure suitability, flexibility, faster product development. Why: Identifying the quality of scenarios involved. When: Evaluate when a new product falls out of the scope, or needs components not included in the PLA

Creating and Developing Product Line From time to time, organization will add new member in product line based on the products that has been developed. Problem in managing product line evolution that always increasing. Product evolution comes from 2 sources: External Source. New element from produce/ manufacturer to be included in the product line and new product will be produce from it. Internal Source. For product function in the scope of product line will be using the existing function. If not, new function will be developed, and it needs to be analyzed as whether it needs to be added in the product line or not.

Conclusions This lectures introduced the concepts of product line architectures using 3 examples. We also discussed issues related to evaluating and implementing product line architectures