Product-line Architecture in Industry: A Case Study Jan Bosh University of Karlskrona/Ronneby Vanilson Burégio

Slides:



Advertisements
Similar presentations
Object-Oriented Application Frameworks Much of the cost and effort stems from the continuous re- discovery and re-invention of core concepts and components.
Advertisements

Chapter 13 Review Questions
The Open Group Architecture Framework (TOGAF) Version 7.
Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Sponsored by the U.S. Department of Defense © 1998 by Carnegie Mellon.
An Improved Approach to Project Estimation Based on Software Artifact Reuse by David T. Henrickson.
The Experience Factory May 2004 Leonardo Vaccaro.
Introduction To System Analysis and Design
Automated Analysis and Code Generation for Domain-Specific Models George Edwards Center for Systems and Software Engineering University of Southern California.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
SE curriculum in CC2001 made by IEEE and ACM: Overview and Ideas for Our Work Katerina Zdravkova Institute of Informatics
1 Introduction The Database Environment. 2 Web Links Google General Database Search Database News Access Forums Google Database Books O’Reilly Books Oracle.
© 2007 by Prentice Hall 1 Chapter 1: The Database Environment Modern Database Management 8 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden.
DECISION SUPPORT SYSTEM DEVELOPMENT
1 Computer Systems & Architecture Lesson 1 1. The Architecture Business Cycle.
1 Objective of today’s lesson S oftware engineering occurs as a consequence of a process called system engineering. Instead of concentrating solely on.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Course Instructor: Aisha Azeem
Software Engineering Tools and Methods Presented by: Mohammad Enamur Rashid( ) Mohammad Rashim Uddin( ) Masud Ur Rahman( )
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Chapter 1: The Database Environment
Software Documentation Written By: Ian Sommerville Presentation By: Stephen Lopez-Couto.
Software Product Line Architectures (SPLA) Nipun Shah
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
Computer Systems & Architecture Lesson Software Product Lines.
Chapter 1 1 © Prentice Hall, 2002 Database Design Dr. Bijoy Bordoloi Introduction to Database Processing.
Software Architecture in Practice (3rd Ed) Introduction
Chapter 1 1 © Prentice Hall, 2002 Database Design Dr. Bijoy Bordoloi Introduction to Database Processing.
Software Engineering Muhammad Fahad Khan
Chapter 7: Architecture Design Omar Meqdadi SE 273 Lecture 7 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Chapter 6 System Engineering - Computer-based system - System engineering process - “Business process” engineering - Product engineering (Source: Pressman,
Reuse Standards Dr. Carma McClure Extended Intelligence, Inc. Copyright (c) 1998 by Extended Intelligence, Inc.
Strategy #5. IT Architecture and IT Infrastructure are Metaphors Architecture - the relationship between planning and building Infrastructure - examples.
Thirteenth Lecture Hour 8:30 – 9:20 am, Sunday, September 16 Software Management Disciplines Process Automation (from Part III, Chapter 12 of Royce’ book)
“Enhancing Reuse with Information Hiding” ITT Proceedings of the Workshop on Reusability in Programming, 1983 Reprinted in Software Reusability, Volume.
Architecture Business Cycle
Error reports as a source for SPI Tor Stålhane Jingyue Li, Jan M.N. Kristiansen IDI / NTNU.
Ranga Rodrigo. The purpose of software engineering is to find ways of building quality software.
SOFTWARE REUSABILITY AJAYINDER SINGH CSC What is Software Reuse Software reuse is the process of implementing or updating software systems using.
Introduction To System Analysis and Design
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
Assessing the influence on processes when evolving the software architecture By Larsson S, Wall A, Wallin P Parul Patel.
Chapter 1 Chapter 1: The Database Environment Modern Database Management 8 th Edition Jeffrey A. Hoffer, Mary B. Prescott, Fred R. McFadden © 2007 by Prentice.
HRL © 2009 IBM Corporation Model-Driven Product-Lines for Embedded Software and for Supply-Chain Companies Tali Yatzkar-Haham Julia Rubin,
Copyright © 2013 Curt Hill UML Unified Modeling Language.
Chapter 3: Software Project Management Metrics
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
1 Database Systems Instructor: Nasir Minhas Assistant Professor UIIT PMAS-AAUR
Chapter 6 CASE Tools Software Engineering Chapter 6-- CASE TOOLS
Scenario-Based Analysis of Software Architecture Rick Kazman, Gregory Abowd, Len Bass, and Paul Clements Presented by Cuauhtémoc Muñoz.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Requirements Validation
CASE (Computer-Aided Software Engineering) Tools Software that is used to support software process activities. Provides software process support by:- –
CS 1120: Computer Science II Software Life Cycle Slides courtesy of: Prof. Ajay Gupta and Prof. James Yang (format and other minor modifications by by.
Copyright 2002 Prentice-Hall, Inc. Chapter 4 Automated Tools for Systems Development 4.1 Modern Systems Analysis and Design.
Foundations of Information Systems in Business. System ® System  A system is an interrelated set of business procedures used within one business unit.
Smart Home Technologies
Software Reuse Course: # The Johns-Hopkins University Montgomery County Campus Fall 2000 Session 4 Lecture # 3 - September 28, 2004.
Basic Concepts and Definitions
CS223: Software Engineering Lecture 14: Architectural Patterns.
Software Engineering Lecture 10: System Engineering.
+ Informatics 122 Software Design II Lecture 13 Emily Navarro Duplication of course material for any commercial purpose without the explicit written permission.
Introduction to Software Engineering 1. Software Engineering Failures – Complexity – Change 2. What is Software Engineering? – Using engineering approaches.
Basic Concepts Key Learning Points : The objectives of this chapter are as follows:  To provide an introduction to the basic Concepts of enterprise architectures,
MANAGEMENT INFORMATION SYSTEM
Enterprise Computing Collaboration System Example
Chapter 1 Database Systems
Chapter 1 Database Systems
Automated Analysis and Code Generation for Domain-Specific Models
Presentation transcript:

Product-line Architecture in Industry: A Case Study Jan Bosh University of Karlskrona/Ronneby Vanilson Burégio

Product-line Architecture in Industry: A Case Study A case study investigating the experiences from using product line Architecture in two companies: – Axis Communications AB – Securitas Larm The study identified a collection of problems and issues

Contents Context Case Study Method Case Study organizations Problems Issues Conclusions

Context Product-line architecture (PLA) have received special attention in software industry – Increase reuse – minimize product-specific development – Competitive advantage The paper reports on a product-line architecture case study involving two Swedish organizations

Case Study Method The goals – Understanding of the PLA state of pratice in small- and medium-sized interprises – Identify research issues that are more relevant to software industry The used method: interviews – with the system architects and technical managers – The main focus: process and technological issues

Case Study Organizations Case 1: Axis Communications AB Case 2: Securitas Larm AB Since the beginning of the 90’s, both organizations have adopted PLA based software development and use of O.O. frameworks and reusable assets.

Case 1: Axis Communications AB Started its business in 1984 With Development of a IBM-pecific printer server product Today’s Products IBM-specific and general printer servers, CD-ROM and storage servers, network cameras and scanner servers Maintains a PLA and a set of reusable assets that are used for product construction

Case 1: Axis Communications AB Product-line architecture Storage-server architecture camera-server architecture scanner-server architecture CDROM-server architecture File server architecture Variations Domain of study Printer-server architecture General printer-server architecture IBM printer-server architecture Variations

Case 1: Axis Communications AB Organization model – System development was organized into business units Need to increase the focus on individual products – PLA and assets is shared between the business units and assets responsible are assigned – Evolution products is a major challenge

Case 2: Securitas Larm AB Business domain – Develops, sells, installs and maintains safety and security systems, intruder alarm systems, passage control systems and video surveillance systems – Focus in larger buildings and complexes Requiring integration between the systems

Case 2: Securitas Larm AB Product Overview InterVision (System integration) EBL 512UC 40 scanner-server architecture IC 20 IC 24EBL 1000 EBL 2000 Fire-alarm systemsIntruder-alarm systems access control systemscamera control systems

Case 2: Securitas Larm AB Organization Model – Single develoment Departament Acts a an internal supplier to business units responsible for marketing, installation and maintenance of the products

Problems Background knowledge Information Distribution Multiple versions of assets Dependencies between assets Assets in new contexts Documentation Tool support Effort estimation

Issues Domain engineering units – It is unclear if and, if so, in what cases an organization should have separate domain engineering – The explicit division was not present at interviewed companies When to split off products from product-line – Deciding to include or exclude a product in the product-line is a complex decision to make...

Issues Business units versus development departament – There are no general answers to wich organizational form is best Time-to-market versus asset quality – The lack of economic models clearly showing the return on investiment of PLA and reusable assets Commom feature core versus feature superset – What to include in the PLA and what to include in the product- specific and product variation specific code

Conclusions A number of problems were identified in the case study organization, but the general consensus si that PLA approach is beneficial Research issues – High-level abstractions are not present programming language – Documentation – Tested and simple aconomic model – Programming and architecture description language

Analysis of a software product line architecture: an experience report Robyn R. Lutz a,Gerald C. Gannod The Journal of Systems and Software 66 (2003) 253–267

Analysis of a software product line architecture: an experience report Describes experiences with the architectural specification and tool-assisted architectural analysis of high-performance software product line

Contents The process used in analyzing Overview of the application Architecture recovery and specification Architecture evaluation (using scenarios) Tool assisted architecture analysis Considerations

The process used in analyzing Structured analysis of an existing product line architecture using: – Architecture recovery and specification – Architecture evaluation – Model checking of behavior to determine the level of robustness and fault tolerance at the architectural level

Overview of the application Interferometer

Architecture recovery and specification Process – Inputs: project documentation, source code, and communication with developers – Steps Study of the product-line requirements Recovery a draft architecture from the available information and compared with an existing description

Architecture recovery and specification Baseline Architecture

Architecture recovery and specification Planned products in the product line

Architecture recovery and specification Lessons learned for product lines – Resolving discrepancies between actual and documented architectures some product lines are not originally designed as product lines but evolve into them as new products are created – Abstraction Some systems in the product line (e.g., testbeds) use a single copy of this building block – Advantages of ADL specifications encouraged communication and review by experts graphical view provided a front-end that represented the abstract architecture

Architecture evaluation using scenarios Process – Study the modifiability of the interferometry product line architecture determine to what extent the architecture was amenable to a product line development approach – Identify four categories of modifiability: extensibility deleting capabilities portability Restructuring

Architecture evaluation using scenarios Analyzing the architectures modifiability via scenarios

Tool assisted architecture analysis Process – Architecture specification in an ADL – Formal specifi-cation of behavior – Analysis of behavior to determine fault-tolerance and robustness Used tools and languages – ACME: provides an infrastructure for high-level architecture specification and ADL Wright, was used for the formal specification of behavior – Spin Model Checker: is a model checker that has been used for verifying the behavior of a wide variety of hardware and software applications Promela, the input specification language for Spin

Tool assisted architecture analysis Example Wright specification. Promela specification. Translation Spin Model Checker Spin output of verification

Considerations Paper IPaper II DocumentationAn identified problemSome documentation of the requirements and architecture design were outdated ADLResearch issuesACME was used to specify the architecture Variations and Commonalities A problem in the asset evolution process Understanding the required variations among the systems in the product line was he most difficult part of architectural recovery and specification