Software Product Lines
|
|
|
- Horace Berry
- 10 years ago
- Views:
Transcription
1 Software Product Lines Software Product Line Engineering and Architectures Bodo Igler and Burkhardt Renz Institut für SoftwareArchitektur der Technischen Hochschule Mittelhessen Sommersemester 2015
2 Questions: How can you produce many different but related software products? (mass production) How can you do this, if you have to satisfy special customer requirements? (customization) if the products have to be cheap and good? (cost efficieny, quality) if you have to react quickly to changing requirements? (time to market) Answer: Adopt a Software Product Line Approach.
3 Introduction Examples Terminology Approach Commonality and Variability Motivation Commonality and Variability Analysis Features Putting Things Together Architecture The Big Picture Conclusion
4 Overview Introduction Examples Terminology Approach Commonality and Variability Motivation Commonality and Variability Analysis Features Putting Things Together Architecture The Big Picture Conclusion
5 Example Car Manufacturing Example Integrated Development Environment
6 Product Lines Mass Customization Platform mass production customization base of technologies other technologies use this base Product Line Family of products which share common features (commonalities).
7 Software Product Lines Software Platform set of software subsystems and interfaces common structure facilitates efficient development and production of derivative products comprises several artifacts code architecture requirements manuals test cases...
8 Software Product Line Engineering Software Product Line A software product line is a set of software-intensive systems sharing a common, managed set of features that satisfy needs of a particular market segment or mission and that are developed from a common set of core assets in a prescribed way. Software Product Line Engineering develop family of software applications apply mass customization use software platform Paul Clements, Linda Northrop
9 Overall Process Software Product Line Engineering = Domain Engineering produce the platform = requirements + design + implementation + test + Application Engineering produce a single product = requirements + design + implementation + test
10 Domain Engineering Results definition of commonality What is common to all products? definition of variability What is different? What is allowed to vary? How does it vary? How is it allowed to vary? platform = reusable artifacts (domain artifacts, skeleton ) During Each Step detail variability from previous step add if necessary internal variability
11 Application Engineering Results the product (application artifacts, skeleton + flesh ) feedback to domain engineering During Each Step bind variability of each domain artifact obtain application artifacts fill in templates implement interfaces provide configuration files...
12 Overview Introduction Examples Terminology Approach Commonality and Variability Motivation Commonality and Variability Analysis Features Putting Things Together Architecture The Big Picture Conclusion
13 Questions: How do I find the appropriate commonalities? How do I find the appropriate variability? Answer: Commonality and Variability Analysis. Question: How do I document commonalities and variability? Answer: Feature Model.
14 General Idea Input variants of one product = product family (Parnas 1976) Process 1 Commonality Analysis: find commonalities categorize commonalities 2 Variability Analysis: find special properties categorize special properties Output appropriate abstraction
15 Examples Example IDE Requirements Example Database Frontend
16 Terminology (Positive) Variability common degree of freedom Negative Variability a degree of freedom is violated under certain circumstances External Variability required by and/or visible to customer Internal Variability neither required by nor visible to customer
17 Terminology Variation Point something that varies, a degree of freedom e.g. color, payment method Variant potential property of something that varies e.g. red, green or credit card, cash Binding fix a variation point by specifying/instantiating a (legal) variant Binding Time e.g. design, coding, compilation, installation, run-time
18 Question: Why doesn t UML do the job? Answer: Standard UML shows one model. We have to show all relevant variations. Question: What can do the job? Answer: Feature Model.
19 Features Feature end-user visible characteristic of a system Composed Feature composition of sub-features Atomic Feature cannot be divided into sub-features
20 Feature Model Requirements A Feature Model is to represent all features to represent the relationships between features to distinguish between commonality and variability to be independent of implementation technology to be suitable during requirements engineering, design, code and test
21 Feature Model A Feature Model comprises set of features set of feature constraints, usually: type of composition: mandatory, optional, alternative, logical or any logical formula with features as atoms: feature 1 feature 2 feature 3,...
22 Feature Diagram Remark there are different feature diagram types there is no standard available yet feature diagrams can be connected to standard UML diagrams Typical Approach diagram = tree feature = node relationship = edge
23 Example Example orthogonal variability model (Pohl, Böckle, van der Linden et al) VP Intrusion Detection VP Security Package VP Door Locks V Camera Surveillance V V V V V V Motion Sensors Cullet Detection Basic Advanced Keypad requires_v_v Fingerprint Scanner requires_v_v
24 Overview Introduction Examples Terminology Approach Commonality and Variability Motivation Commonality and Variability Analysis Features Putting Things Together Architecture The Big Picture Conclusion
25 Adapt Functionality I Use the Template Method Pattern platform = application framework + base classes/interfaces variation points = (abstract) methods of base classes/interfaces bind variation points = provide specific method implementations binding time = compile-time example: MFC document-view architecture
26 Adapt Functionality II Use a Plug-In Architecture platform = framework + basic plug-ins variation points = extension points of basic plug-ins bind variation points = provide specific plug-ins binding time = run-time example: Eclipse 3.x based on OSGi
27 Adapt Domain Model Use a Domain Specific Language (DSL) platform = machine which understands DSL variation points = potential of DSL bind variation points = write specific DSL program binding time options machine = interpreter machine = code generator
28 Software Product Line Dimensions Composition Architecture Components System Life Cycle Development Evolution Deployment
29 Software Product Line Dimensions Views Business Architecture Process Organization
30 Advise Key Success Factors Product Scoping Architectural Choice Level of Generalization Communication between Domain and Application Engineering
31 What have we seen today? Terminology Software Product Line Commonality & Variability Feature Modelling Examples motivation for software product lines commonality & variability analysis at different levels feature modelling for product lines architecture hints for product lines
32 Related Concepts Related Concepts Software Architecture (OSGi, SOA,... ) Model Driven Engineering Software Factories... Challenges holistic approach manage variability in all artifacts find the right architecture...
33
34 Bibliography Czarnecki, Eisenecker: Generative Programming Addison-Wesley Greenfield, Short, Cook, Kent: Software Factories Wiley Kang, Cohen, Hess, Novak, Petersen: Feature-Oriented Domain Analysis SEI, Carnegie-Mellon University Parnas: On the Design and Development of Program Families. in: IEEE Transactions on Software Engineering, 2(1), 1976.
SPLConfig: Product Configuration in Software Product Line
SPLConfig: Product Configuration in Software Product Line Lucas Machado, Juliana Pereira, Lucas Garcia, Eduardo Figueiredo Department of Computer Science, Federal University of Minas Gerais (UFMG), Brazil
Run-time Variability Issues in Software Product Lines
Run-time Variability Issues in Software Product Lines Alexandre Bragança 1 and Ricardo J. Machado 2 1 Dep. I&D, I2S Informática Sistemas e Serviços SA, Porto, Portugal, [email protected] 2 Dep.
Family Evaluation Framework overview & introduction
A Family Evaluation Framework overview & introduction P B Frank van der Linden O Partner: Philips Medical Systems Veenpluis 4-6 5684 PC Best, the Netherlands Date: 29 August, 2005 Number: PH-0503-01 Version:
A Framework for Software Product Line Engineering
Günter Böckle Klaus Pohl Frank van der Linden 2 A Framework for Software Product Line Engineering In this chapter you will learn: o The principles of software product line subsumed by our software product
An eclipse-based Feature Models toolchain
An eclipse-based Feature Models toolchain Luca Gherardi, Davide Brugali Dept. of Information Technology and Mathematics Methods, University of Bergamo [email protected], [email protected] Abstract.
Software Architecture
Cairo University Faculty of Computers and Information Computer Science Department Premasters Studies Software Architecture Report on Software Product Line Submitted to: Dr. Hany Ammar Submitted by: Hadeel
today 1,700 special programming languages used to communicate in over 700 application areas.
today 1,700 special programming languages used to communicate in over 700 application areas. Computer Software Issues, an American Mathematical Association Prospectus, July 1965, quoted in P. J. Landin
An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications
An Aspect-Oriented Product Line Framework to Support the Development of Software Product Lines of Web Applications Germán Harvey Alférez Salinas Department of Computer Information Systems, Mission College,
Tool Support for Software Variability Management and Product Derivation in Software Product Lines
Tool Support for Software Variability Management and Product Derivation in Software s Hassan Gomaa 1, Michael E. Shin 2 1 Dept. of Information and Software Engineering, George Mason University, Fairfax,
Development of a Feature Modeling Tool using Microsoft DSL Tools.
Development of a Feature Modeling Tool using Microsoft DSL Tools. GIRO Technical Report 2009-1.ver 1.0 (05/01/2009) Rubén Fernández, Miguel A. Laguna, Jesús Requejo, Nuria Serrano. Department of Computer
Building a Flexible Software Factory Using Partial Domain Specific Models
Building a Flexible Software Factory Using Partial Domain Specific Models Jos Warmer 1, Anneke Kleppe 2 3 1 Ordina SI&D, The Netherlands [email protected] 2 University Twente, Netherlands [email protected]
A Variability Viewpoint for Enterprise Software Systems
2012 Joint Working Conference on Software Architecture & 6th European Conference on Software Architecture A Variability Viewpoint for Enterprise Software Systems Matthias Galster University of Groningen,
JOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at http://www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2007 Vol. 6, No. 1, January-February 2007 CM Configuration Change Management John D.
A Configuration Management Model for Software Product Line
A Configuration Management Model for Software Product Line Liguo Yu 1 and Srini Ramaswamy 2 1 Computer Science and Informatics Indiana University South Bend South Bend, IN 46634, USA [email protected] 2 Computer
Towards an automated testing framework to manage variability using the UML Testing Profile
Automation of Software Test (AST 09) May 18, Vancouver, Canada Towards an automated testing framework to manage variability using the UML Testing Profile Beatriz Pérez Lamancha Software Testing Centre
Managing Variability in ALPR Software
Managing Variability in ALPR Software Dr. Marco Sinnema Product Manager Video and ALPR, Q-Free ASA P.O. Box 180, 9410 AD Beilen, The Netherlands tel. +31 593 542055, fax. +31 593 542098 [email protected]
Keywords: - Software Product Lines (SPLs), Product Line Engineering (PLE), Core Assets, Software Product Line Development.
Volume 4, Issue 1, January 2014 ISSN: 2277 128X International Journal of Advanced Research in Computer Science and Software Engineering Research Paper Available online at: www.ijarcsse.com Systematic Review
Development/Maintenance/Reuse: Software Evolution in Product Lines
Development/Maintenance/Reuse: Software Evolution in Product Lines Stephen R. Schach Vanderbilt University, Nashville, TN, USA Amir Tomer RAFAEL, Haifa, Israel Abstract The evolution tree model is a two-dimensional
Managing Variability in Software Architectures 1 Felix Bachmann*
Managing Variability in Software Architectures Felix Bachmann* Carnegie Bosch Institute Carnegie Mellon University Pittsburgh, Pa 523, USA [email protected] Len Bass Software Engineering Institute Carnegie
How to Configure a Configuration Management System An Approach Based on Feature Modeling
How to Configure a Configuration Management System An Approach Based on Feature Modeling Sebastian Wenzel IBM Business Services GmbH Wilhelm-Fay-Str. 30-34 Frankfurt, Germany [email protected]
Chap 1. Introduction to Software Architecture
Chap 1. Introduction to Software Architecture 1. Introduction 2. IEEE Recommended Practice for Architecture Modeling 3. Architecture Description Language: the UML 4. The Rational Unified Process (RUP)
Mastering increasing product complexity with Collaborative Systems Engineering and PLM
Mastering increasing product complexity with Collaborative Systems Engineering and PLM Thierry Ambroisine Dassault Systèmes 10 rue Marcel Dassault, 78140 Vélizy Villacoublay, France [email protected]
Variability in Service-Oriented Systems: An Analysis of Existing Approaches
Variability in -Oriented Systems: An Analysis of Existing Approaches Holger Eichelberger and Christian Kröher and Klaus Schmid 1 Software Systems Engineering, Institute of Computer Science, University
Software Engineering Reference Framework
Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of
Configuration Management
83 Chapter 6 Configuration Management Published as: Configuration Management in Component Based Product Populations, Rob van Ommering, 10th International Workshop on Software Configuration Management,
Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements
Questions? Assignment Why is proper project management important? What is goal of domain analysis? What is the difference between functional and non- functional requirements? Why is it important for requirements
Generative Software Product Line Development using Variability-Aware Design Patterns
Platzhalter für Bild, Bild auf Titelfolie hinter das Logo einsetzen Generative Software Product Line Development using Variability-Aware Design Patterns Christoph Seidl, Sven Schuster, Ina Schaefer May
Introduction to software architecture
Open Learning Universiteit Unit 1 Learning Unit 1 Introduction to software architecture Contents Introduction............................................... 7 1.1 What is softwarearchitecture?.................................
Toward Families of QVT DSL and Tool
Toward Families of QVT DSL and Tool Benoît Langlois, Daniel Exertier, Ghanshyamsinh Devda Thales Research & Technology RD 128 91767 Palaiseau, France {benoit.langlois, daniel.exertier, ghanshyamsinh.devda}@thalesgroup.com
Structuring Product-lines: A Layered Architectural Style
Structuring Product-lines: A Layered Architectural Style Tommi Myllymäki, Kai Koskimies, and Tommi Mikkonen Institute of Software Systems, Tampere University of Technology Box 553, FIN-33101 Tampere, Finland
Plan-Driven Methodologies
Plan-Driven Methodologies The traditional way to develop software Based on system engineering and quality disciplines (process improvement) Standards developed from DoD & industry to make process fit a
Embedded Software Development with MPS
Embedded Software Development with MPS Markus Voelter independent/itemis The Limitations of C and Modeling Tools Embedded software is usually implemented in C. The language is relatively close to the hardware,
Product-Line Instantiation Guided By Subdomain Characterization: A Case Study
Product-Line Instantiation Guided By Subdomain Characterization: A Case Study Patricia Pernich and Agustina Buccella and Alejandra Cechich and Maximiliano Arias and Matias Pol la GIISCO Research Group
ONTOLOGY FOR MOBILE PHONE OPERATING SYSTEMS
ONTOLOGY FOR MOBILE PHONE OPERATING SYSTEMS Hasni Neji and Ridha Bouallegue Innov COM Lab, Higher School of Communications of Tunis, Sup Com University of Carthage, Tunis, Tunisia. Email: [email protected];
Concern Driven Software Development
Concern Driven Software Development Omar Alam School of Computer Science, McGill University, Montreal, Canada [email protected] Abstract Model Driven Engineering (MDE) has achieved success in many
Professor, D.Sc. (Tech.) Eugene Kovshov MSTU «STANKIN», Moscow, Russia
Professor, D.Sc. (Tech.) Eugene Kovshov MSTU «STANKIN», Moscow, Russia As of today, the issue of Big Data processing is still of high importance. Data flow is increasingly growing. Processing methods
SOMA, RUP and RMC: the right combination for Service Oriented Architecture
SOMA, RUP and RMC: the right combination for Service Oriented Architecture WebSphere User Group, Bedfont, 4th March, 2008 Keith Mantell Senior Solution Architect IBM Rational [email protected] March
1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java. The Nature of Software...
1.1 The Nature of Software... Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering Software is intangible Hard to understand
Software Development in the Large!
Software Development in the Large! Peter Eeles Executive IT Architect, IBM [email protected] IBM Rational Software Development Conference 2007 2007 IBM Corporation Agenda IBM Rational Software Development
Systematic Management of Variability in UML-based Software Product Lines
Journal of Universal Computer Science, vol. 16, no. 17 (2010), 2374-2393 submitted: 15/2/10, accepted: 30/8/10, appeared: 1/9/10 J.UCS Systematic Management of Variability in UML-based Software Product
A Model-Driven Approach for Developing Self-Adaptive Pervasive Systems
A Model-Driven Approach for Developing Self-Adaptive Pervasive Systems Carlos Cetina, Pau Giner, Joan Fons and Vicente Pelechano Research Center on Software Production Methods Universidad Politécnica de
Variation Management for Software Production Lines 1
Variation Management for Software Production Lines 1 Charles W. Krueger BigLever Software, Inc. 10500 Laurel Hill Cove Austin TX 78730 USA [email protected] Abstract. Variation in a software product
Configuration Management in a Software Product Line
Configuration Management in a Software Product Line John D. McGregor School of Computing Clemson University Clemson, SC 29634 [email protected] Sholom Cohen Software Engineering Institute Carnegie
Service Oriented Architectures Using DoDAF1
1 Service Oriented Architectures Using DoDAF1 Huei-Wan Ang, Fatma Dandashi, Michael McFarren The Mitre Corporation The MITRE Corp. 7515 Colshire Dr. McLean, VA 22102 hwang(at)mitre.org, dandashi(at)mitre.org,
RobbyDBMS A Case Study on Hardware/Software Product Line Engineering
RobbyDBMS A Case Study on Hardware/Software Product Line Engineering Jörg Liebig and Sven Apel and Christian Lengauer Department of Infmatics and Mathematics University of Passau, Germany {joliebig,apel,lengauer}@fim.uni-passau.de
Business-Driven Software Engineering Lecture 3 Foundations of Processes
Business-Driven Software Engineering Lecture 3 Foundations of Processes Jochen Küster [email protected] Agenda Introduction and Background Process Modeling Foundations Activities and Process Models Summary
A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems
A Modeling Language for Activity-Oriented Composition of Service-Oriented Software Systems Naeem Esfahani Sam Malek João P. Sousa Hassan Gomaa Daniel A. Menascé 12th International Conference on Model Driven
Managing Software Product Line
* F 2 - Rules for Qualification of Developing and Managing Software Product Line F. Ahmed Electrical & Computer Engineering University of Western Ontario London Ontario, Canada, N5A5B9 [email protected] L.F.
Applying 4+1 View Architecture with UML 2. White Paper
Applying 4+1 View Architecture with UML 2 White Paper Copyright 2007 FCGSS, all rights reserved. www.fcgss.com Introduction Unified Modeling Language (UML) has been available since 1997, and UML 2 was
Introduction to OpenUP (Open Unified Process)
Introduction to OpenUP (Open Unified Process) Different projects have different process needs. Typical factors dictate the needs for a more formal or agile process, such as team size and location, architecture
Model-Driven Development - From Frontend to Code
Model-Driven Development - From Frontend to Code Sven Efftinge [email protected] www.efftinge.de Bernd Kolb [email protected] www.kolbware.de Markus Völter [email protected] www.voelter.de -1- Model Driven
Developing SOA solutions using IBM SOA Foundation
Developing SOA solutions using IBM SOA Foundation Course materials may not be reproduced in whole or in part without the prior written permission of IBM. 4.0.3 4.0.3 Unit objectives After completing this
Developing the Architectural Framework for SOA Adoption
Developing the Architectural Framework for SOA Adoption Oliver Sims Enterprise Architect [email protected] Copyright Open-IT Limited 2005 Agenda Service Orientation just a good technology? The
Layered Configuration Management for Software Product Lines
Layered Configuration Management for Software Product Lines Master thesis Kroon, E. Graduation Committee Dr. P.M. van den Broek I. Galvão Lourenço da Silva, Msc. Prof.Dr.ir M. Aksit Research Group University
Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation
Design Specification for IEEE Std 1471 Recommended Practice for Architectural Description IEEE Architecture Working Group 0 Motivation Despite significant efforts to improve engineering practices and technologies,
Case Studies of Running the Platform. NetBeans UML Servlet JSP GlassFish EJB
September Case Studies of Running the Platform NetBeans UML Servlet JSP GlassFish EJB In this project we display in the browser the Hello World, Everyone! message created in the session bean with servlets
Architecture Description of <Architecture Name> for <System of Interest>
Architecture description template for use with ISO/IEC/IEEE 42010:2011 Architecture Description of for Bare bones edition version: 2.2 Template prepared by: Rich
Decomposition into Parts. Software Engineering, Lecture 4. Data and Function Cohesion. Allocation of Functions and Data. Component Interfaces
Software Engineering, Lecture 4 Decomposition into suitable parts Cross cutting concerns Design patterns I will also give an example scenario that you are supposed to analyse and make synthesis from The
Service Oriented Architecture 1 COMPILED BY BJ
Service Oriented Architecture 1 COMPILED BY BJ CHAPTER 9 Service Oriented architecture(soa) Defining SOA. Business value of SOA SOA characteristics. Concept of a service, Enterprise Service Bus (ESB) SOA
Modeling Turnpike: a Model-Driven Framework for Domain-Specific Software Development *
for Domain-Specific Software Development * Hiroshi Wada Advisor: Junichi Suzuki Department of Computer Science University of Massachusetts, Boston [email protected] and [email protected] Abstract. This
Introduction to software architecture
Learning Unit 1 Introduction to software architecture Contents Introduction............................................... 7 1.1 What is software architecture?................................. 7 1.1.1
Winery A Modeling Tool for TOSCA-based Cloud Applications
Institute of Architecture of Application Systems Winery A Modeling Tool for TOSCA-based Cloud Applications Oliver Kopp 1,2, Tobias Binz 2, Uwe Breitenbücher 2, and Frank Leymann 2 1 IPVS, 2 IAAS, University
Jiří Šebek, Karel Richta. Department of Computer Science and Engineering. 121 35 Praha 2, Czech Republic {sebekji1,richta}@fel.cvut.
Aspect-oriented User User Interface Interface Design Design for Android for Android Applications Applications 1 1 Jiří Šebek, Karel Richta Jiří Šebek, Karel Richta Department of Computer Science and Engineering
Guidelines for Developing a Product Line Production Plan
Guidelines for Developing a Product Line Production Plan Gary Chastek John D. McGregor June 2002 TECHNICAL REPORT CMU/SEI-2002-TR-006 ESC-TR-2002-006 Pittsburgh, PA 15213-3890 Guidelines for Developing
Component visualization methods for large legacy software in C/C++
Annales Mathematicae et Informaticae 44 (2015) pp. 23 33 http://ami.ektf.hu Component visualization methods for large legacy software in C/C++ Máté Cserép a, Dániel Krupp b a Eötvös Loránd University [email protected]
How To Test A Factorial Service On A Soa Project
Introduction to web services simulation with SOAPSimulator: A hands-on tutorial Mamoon Yunus Learn how to simulate web services for rapid SOA development when service endpoints are unavailable. INTRODUCTION
What is Automotive Software Engineering? What is Automotive Software Engineering? What is Automotive Software Engineering?
Process models: Capability Maturity Model Integration (CMMI) Software Process Improvement and Capability Determination (SPICE) V-Model Standards: MISRA-C standard AUTOSAR Configuration management Product
Extension of a SCA Editor and Deployment-Strategies for Software as a Service Applications
Institut fur Architektur von Anwendungssystemen Universität Stuttgart Universitätsstraße 38 70569 Stuttgart Diplomarbeit Nr. 2810 Extension of a SCA Editor and Deployment-Strategies for Software as a Service
Supervision software for Intrusion detection, Fire detection and CCTV systems
Supervision software for Intrusion detection, Fire detection and CCTV systems elmospa.com Global security solutions Globalpro GLOBALPRO is the new supervision software that allows to obtain a powerful
