Designing a Product Line Architecture Jan Bosch Professor of Software Engineering University of Groningen, Netherlands

Slides:



Advertisements
Similar presentations
Chapter 5 – Enterprise Analysis
Advertisements

Model-Based Product Line Architecture and Analysis
Major Exam II Reschedule 5:30 – 7:30 pm in Tue Dec 5 th.
Page 1 Building Reliable Component-based Systems Chapter 3 - Architecting Component-Based Systems Chapter 3 Architecting Component-Based Systems.
SE 555 Software Requirements & Specification Requirements Management.
Using Variability Modeling Principles to Capture Architectural Knowledge Marco Sinnema (University of Groningen), Jan Salvador van der Ven (University.
Software Architecture Assessment of Usability Eelke Folmer, Jan Bosch IPA lentedagen, Made.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Business Area Analysis Focus: Domain View (selected business area) Goals: –Isolate functions and procedures that allow the area to meet its goals –Define.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Copyright © The McGraw-Hill Companies, Inc. Permission required for reproduction or display. Design Patterns.
Copyright  Larry Dribin, Ph.D. SE470_EngFlows_v1.ppt SE470 EngFlows - 1 Excellence in Software Engineering Repeatable Level Defined Level Manage.
Recall The Team Skills 1. Analyzing the Problem (with 5 steps) 2. Understanding User and Stakeholder Needs 3. Defining the System A Use Case Primer Organizing.
1 REQUIREMENTS ENGINEERING and SYSTEMS ANALYSIS Elements and Definitions.
Autonomic Software Product Lines (ASPL) Nadeem Abbas, Jesper Andersson, Welf Löwe Linnaeus University, Sweden Monday, August 23, st International.
Domain-Specific Software Engineering Alex Adamec.
Acquiring Information Systems and Applications
Computer Systems & Architecture Lesson Software Product Lines.
Extended Enterprise Architecture Framework (E2AF)
Software Evolution Planning CIS 376 Bruce R. Maxim UM-Dearborn.
® IBM Software Group © 2006 IBM Corporation PRJ480 Mastering the Management of Iterative Development v2 Module 3: Phase Management - Inception.
Proceso kintamybių modeliavimas Modelling process variabilities Donatas Čiukšys.
Project Evaluation UNIT 2 Software Project Management.
Types of evaluation examine different aspects of performance Resources (Inputs) ActivitiesOutputs Short-Term Outcomes Intermediate Outcomes (through customers)
Demystifying the Business Analysis Body of Knowledge Central Iowa IIBA Chapter December 7, 2005.
The Software Product Line Architectures
Athena, a large scale programming lab support tool Anton Jansen, Ph.D. Student Software Engineering and ARCHitecture (SEARCH) University of Groningen The.
Identify steps for understanding and solving the
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Role-Based Guide to the RUP Architect. 2 Mission of an Architect A software architect leads and coordinates technical activities and artifacts throughout.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
<Idea Title> Students : XXX, YYY (University)
OBJECT ORIENTED SYSTEM ANALYSIS AND DESIGN. COURSE OUTLINE The world of the Information Systems Analyst Approaches to System Development The Analyst as.
What is a Business Analyst? A Business Analyst is someone who works as a liaison among stakeholders in order to elicit, analyze, communicate and validate.
© Mahindra Satyam 2009 Decision Analysis and Resolution QMS Training.
Lecture 7: Requirements Engineering
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 6 Architectural Design.
Team Think For You. Outline  Introduction  Process  Requirements Engineering  Architecture  Detailed Design  Testing  Demo  Extensibility  Conclusions.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Information Systems Engineering. Lecture Outline Information Systems Architecture Information System Architecture components Information Engineering Phases.
Notes of Rational Related cyt. 2 Outline 3 Capturing business requirements using use cases Practical principles  Find the right boundaries for your.
Formulating a Simulation Project Proposal Chapter3.
Software Architecture Assessment RAVI CHUNDURU CS6362 UTD Summer 2005.
Software Requirements: A More Rigorous Look 1. Features and Use Cases at a High Level of Abstraction  Helps to better understand the main characteristics.
Requirements Management with Use Cases Module 10: Requirements Across the Product Lifecycle Requirements Management with Use Cases Module 10: Requirements.
Software Architecture Assessment Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Software Engineering 1 Object-oriented Analysis and Design Applying UML and Patterns An Introduction to Object-oriented Analysis and Design and Iterative.
Business Analysis. Business Analysis Concepts Enterprise Analysis ► Identify business opportunities ► Understand the business strategy ► Identify Business.
Evaluation design and implementation Puja Myles
Developing Product Line Components Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
Software Architecture Design Processes
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
XXX, Inc. 1 Technical Capabilities  Requirements Engineering  Analysis and Design  Implementation  Quality Assurance  Project Life Cycle  Requirements.
Software Architecture Transformation Jan Bosch Professor of Software Engineering University of Groningen, Netherlands
1 Software Engineering: A Practitioner’s Approach, 6/e Chapter 9: Design Engineering Software Engineering: A Practitioner’s Approach, 6/e Chapter.
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.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
1 Software Maintenance and Evolution CSSE 575: Session 4, Part 2 Software Maintenance Process Steve Chenoweth Office Phone: (812) Cell: (937)
Evaluating Engagement Judging the outcome above the noise of squeaky wheels Heather Shaw, Department of Sustainability & Environment Jessica Dart, Clear.
Software Engineering Lecture 10: System Engineering.
Requirement Prioritization
BANKING INFORMATION SYSTEMS
HATS – Hierarchical Automated Test Sequencer Platform
Technical Management Processes
Thoughts on Model Interoperability
On the notion of Variability in Software Product Lines
Requirements Document
Presentation transcript:

Designing a Product Line Architecture Jan Bosch Professor of Software Engineering University of Groningen, Netherlands Copyright © 2001 Jan Bosch

Designing a product line architecture2 Overview  business case analysis  scoping  product and feature planning  product line architecture design  component requirement specification  verification

Designing a product line architecture3 Business Case Analysis  why adopt SPL?  decrease cost  software development  software maintenance  time to market  of new products  of new features in existing products  staff  unable to recruit new staff  need to maintain existing staff

Designing a product line architecture4 Business Case Analysis  analysis of current situation  collect key figures  prediction of future cost and benefit current approach  use key figures to make a prediction  investment analysis of adopting SPL  incorporate technical development cost, but also the cost associated with changes to processes, organization and business

Designing a product line architecture5 Business Case Analysis  prediction of future cost and benefit using SPL approach  divide cost over domain engineering and application engineering  conclusion  theory: biggest $ figure wins  practice: balance short term costs of SPL approach to long term costs of traditional approach

Designing a product line architecture6  Feature  captures logical unit of behaviour (from user perspective)  used to group requirements  consists of functional and quality requirements  Feature relations  depends-on  mutually exclusive  conflicting Scoping

Designing a product line architecture7 Scoping  process:  candidate product selection  candidate feature selection  feature graph specification  product line scoping  specification of product requirements

Designing a product line architecture8 Scoping - candidate products  existing product set  all existing products  SPL initiation takes time - take delay into account  new product line  strategic plan with greenfield approach  competitor products read [Dikel et al 97]

Designing a product line architecture9 Scoping - candidate features  stakeholders  features from stakeholder perspective  existing product set  harmonise features  new product line  consider added value of feature to product line  define product / feature matrix  initial pruning

Designing a product line architecture10 Scoping - features graph  present identified features in graph  relation types: depends-on, mutually exclusive, conflicting  identify missing features  e.g. indirect usage  draw product ‘areas’

Designing a product line architecture11 Scoping - conclusion  decide scope of product line  relate to SPL goal, e.g. cost, TTM, staff  minimalist approach  only features covered by all or most products  develop products as extensions to SPL  maximalist approach  all or most features used in two or more systems  develop products by pruning SPL

Designing a product line architecture12 Scoping - product requirements  boundary between SPL and product defined  specify product specific requirements  additional features  pruned features  conflicting features  managing SPL and product quality requirements

Designing a product line architecture13 Product and Feature Planning  scoping only considers status quo  incorporating new features  expected versus unexpected  define technical roadmap for SPL  extend feature graph with planned features

Designing a product line architecture14 Product line architecture design  (see Design of Software Architectures tutorial) requirement specification functionality-based architectural design application architecture OK estimate QA values QA optimizing solutions architecture transformation not OK FR QR

Designing a product line architecture15 Functionality based design  defining system context  multiple contexts should be supported (products & variants)  identifying archetypes  SPL and product archetypes (relations?)  describing product instantiations

Designing a product line architecture16 Architecture assessment  not qualities of PLA, but of product architectures  how to make sure?  consider cost (assessment expensive!)  product architecture assessment  reference product  extremes (e.g. low end versus high end products)  most important product (e.g. largest volume)  incorporate assessment of future features

Designing a product line architecture17 Architecture transformation three main aspects  variants  examples: abstract factory, strategy, mediator  optionality  examples: blackboard, proxy, strategy  conflicts  examples: adapter, proxy, mediator

Designing a product line architecture18 Component requirements specify component requirements  interfaces: provided, required and configuration  functionality: expected behaviour at interfaces  quality attributes: needed to guarantee product behaviour  variability: aspects of functional and quality requirements that differ between products

Designing a product line architecture19 Verification  SPL represents large and long-term investment  design decisions incorporated in PLA hard to change  stakeholder based evaluation suitable  alternatively, employ architecture assessment team

Designing a product line architecture20 Conclusion six main steps:  business case analysis  scoping  product and feature planning  product line architecture design  component requirement specification  verification