Software Architecture in Practice

Slides:



Advertisements
Similar presentations
Introduction to Product Family Engineering. 11 Oct 2002 Ver 2.0 ©Copyright 2002 Vortex System Concepts 2 Product Family Engineering Overview Project Engineering.
Advertisements

Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Software Product Lines John D. McGregor Clemson University.
Chapter 22 Product Line Engineering Week 1 CIS 673.
Competing For Advantage
Azad Madni Professor Director, SAE Program Viterbi School of Engineering Platform-based Engineering: Rapid, Risk-mitigated Development.
Domain-Specific Software Engineering (DSSE). Software Engineering Concerns  There are many of them  “Classical” software architecture research has focused.
DAIMIHenrik Bærbak Christensen1 Product Lines Architectural Reuse.
1 Software Product Lines Re-using Architectural Assets - continued from CSSE CSSE 477 Software Architecture Week 7, Day 2, including Ch 14 in Bass’s.
SWE Introduction to Software Engineering
Software Product Lines
Software Architecture in Practice RiSE’s Seminars Bass’s book :: Chapters 07 Eduardo Santana de Almeida.
Software Architecture in Practice
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
Product Line Approaches in Software Engineering April 29, 2013 Sophia Wu.
Architecture and Software Product Lines A software architecture represents a significant investment of time and effort, usually by senior talent. So it.
Domain-Specific Software Engineering Alex Adamec.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Computer Systems & Architecture Lesson Software Product Lines.
The Many Contexts of Software Architecture
Software Architecture in Practice (3rd Ed) Introduction
SEI´S Software Product Line Tenets Linda M. Northrop Software Engineering Institute IEEE Software July/August 2002.
CPSC 871 John D. McGregor Module 5 Session 2 Software Product Lines.
The Software Product Line Architectures
SYSE 802 John D. McGregor Module 8 Session 2 Platforms, Ecosystems, and Innovations.
Computer Systems & Architecture Lesson Software Architecture in the Future.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
Introducing Software Product Lines (SPL) Silvio Romero de Lemos Meira Eduardo Santana de Almeida
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Software Product Line Material based on slides and chapter by Linda M. Northrop, SEI.
Design Reuse Earlier we have covered the re-usable Architectural Styles as design patterns for High-Level Design. At mid-level and low-level, design patterns.
Basic Concepts and Definitions
Development of Concepts for R&D Management R&D in an Individual Enterprise.
Product Line Architecture. Systems Systems often come in families: basic, regular, professional, enterprise,… Can we share components? Is architecture.
Chapter 1 Market-Oriented Perspectives Underlie Successful Corporate, Business, and Marketing Strategies.
Digital transformation, which often includes establishing big data analytics capabilities, poses considerable challenges for traditional manufacturing.
Rapid Innovation Process
Chapter 24: Architecture Competence
The Web Application Development Process Models
Lecture 17 ATAM Team Expertise
Software Engineering Development of procedures and systematic applications that are used on electronic machines. Software engineering incorporates various.
DT249/4 Information Systems Engineering Lecture 0
Chapter 22: Management and Governance
An Introduction to Software Factories
Chapter 25: Architecture and Product Lines
Organizational Design and Strategy in a Changing Global Environment
Chapter 16 – Software Reuse
Product Lines.
Introduction to Software Testing
MGT 210 Chapter 8: Foundations of Planning
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
The Organizational Context
Software Architecture in Practice
Requirements Engineering for Product Lines
CSSSPEC6 SOFTWARE DEVELOPMENT WITH QUALITY ASSURANCE
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Planning Ahead — Chapter 11 Study Questions
For University Use Only
Product Lines.
Software Engineering with Reusable Components
Stumpf and Teague Object-Oriented Systems Analysis and Design with UML
Requirements Engineering Process – 1
Requirements Document
Chapter 16 – Software Reuse
Rapid software development
Software Design Lecture : 5
CHAPTER 13 THE STRUCTURE OF INTERNATIONAL FIRM
CSSE 477 Software Architecture
Organizational Aspects for Reuse
Presentation transcript:

Software Architecture in Practice RiSE’s Seminars Bass’s book :: Chapter 14 Ana Paula Cavalcanti December 7, 2018

Summary Software Product Lines (Chapter 14) Overview What Makes Software Product Lines Work? Scoping Architectures for Product Lines What Makes Software Product Lines Difficult December 7, 2018

Overview Software Product Lines :: Chapter 14 “Architecturally mature organization tend to treat their architectures as valuable intellectual property and look for ways in which that property can be leveraged to produce additional revenue and reduce costs.” Explicit and planned re-use of a software architecture across a family of related systems Base architecture  common and tailorable elements that populate CORE ASSET BASE Applied to more than one system Reuse is cheaper than reinvent December 7, 2018

Overview Software Product Lines :: Chapter 14 Software Product Lines: “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 and that are developed from a common set of core assets in a prescribed way.” Simplify the creation of systems Improvements in costs Depends on coordinated strategy involving software engineering, technical and organizational management December 7, 2018

What Makes Software Product Lines Work? Software Product Lines :: Chapter 14 What Makes Software Product Lines Work? “The essence of a software product line is the disciplined, strategic re-use of assets in producing a family of products.” Focus on commonalities shared by the products Requirements Architectural design Elements Modeling and analysis Testing Project Planning Process, methods and tools People Exemplar systems Defect elimination December 7, 2018

What Makes Software Product Lines Work? Software Product Lines :: Chapter 14 What Makes Software Product Lines Work? Rely on Reuse Promise almost always exceeding the pay off Rich Libraries Small Libraries “Software product lines make re-use work by establishing a very strict context for it. Nothing is placed in the re-use library that was not built to be re-use in that product line. Product lines work by relying on strategic or planned, not opportunistic, re-use” December 7, 2018

Software Product Lines :: Chapter 14 Scoping Define the product line scope Organization’s best prediction about what products it will be asked to build in the foreseeable future. Narrow scope (Products vary in a small number of features) Broad scope (Products vary in any kind as well as in features) Find commonality that can be exploited to substantially reduce the cost of constructing the systems that an organization intends to build. December 7, 2018

Architectures for Product Lines Software Product Lines :: Chapter 14 Architectures for Product Lines “The essence of building a successful software product line is discriminating between what is expected to remain constant across all family members and what is expected to vary.” Identifying Variation Points Requirements Elicitation Architecture Design Implementation December 7, 2018

Architectures for Product Lines Software Product Lines :: Chapter 14 Architectures for Product Lines Supporting Variation Points Inclusion or omission of elements Inclusion of a different number of replicated elements Selection of versions of elements that have the same interface but different behavioral or quality attribute characteristics Evaluating a Product Line Architecture What, how and when to evaluate? Focus on the variation points to make sure they are appropriate Sufficient flexibility to cover the intended scope December 7, 2018

What Makes Software Product Lines Difficult Software Product Lines :: Chapter 14 What Makes Software Product Lines Difficult It takes a certain maturity… Technology is not the only barrier Organization, process and business issues Adoption Strategies “Getting an organization to adopt the product line approach is in many regards like any other technology insertion problem. How to solve it depends on the organization’s culture and context.” “Knowing the various adoption models can help an organization chose the one that is right for it.” December 7, 2018

What Makes Software Product Lines Difficult Software Product Lines :: Chapter 14 What Makes Software Product Lines Difficult Creating Products and Evolving a Product Line Manage its evolution… External sources Internal sources Organizational Strategies Development department Business units Domain Engineering unit Hierarchical domain engineering unit December 7, 2018

References BASS, L.; CLEMENTS, P.; KAZMAN, R. Software Architecture in Practice. Addison-Wesley, 2003. CLEMENTS, P.; NOTHROP, L. Software Product Lines – Practice and Patterns. Addison-Wesley, 2002. December 7, 2018