CelsiusTech: Applying Software Product Lines. Introduction Case study on experience of CelsiusTech AB, a Swedish naval defense contractor that successfully.

Slides:



Advertisements
Similar presentations
Making the System Operational
Advertisements

Software change management
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Distributed Systems Major Design Issues Presented by: Christopher Hector CS8320 – Advanced Operating Systems Spring 2007 – Section 2.6 Presentation Dr.
Unified theory of software evolution Reengineering – Business process reengineering and software reengineering BPR model – Business definition, process.
Chapter 19: Network Management Business Data Communications, 4e.
Software Architecture for DSD DSD Team. Overview What is software architecture and why is it so important? The role of architecture in determining system.
Architecture is More Than Just Meeting Requirements Ron Olaski SE510 Fall 2003.
R R R CSE870: Advanced Software Engineering (Cheng): Intro to Software Engineering1 Advanced Software Engineering Dr. Cheng Overview of Software Engineering.
1 ITC242 – Introduction to Data Communications Week 12 Topic 18 Chapter 19 Network Management.
Celsius Tech Bass Ch 15 Lecture by a team from
Software Architecture in Practice
Software Engineering Module 1 -Components Teaching unit 3 – Advanced development Ernesto Damiani Free University of Bozen - Bolzano Lesson 2 – Components.
Software Issues Derived from Dr. Fawcett’s Slides Phil Pratt-Szeliga Fall 2009.
Course Instructor: Aisha Azeem
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
Software Architecture. Agenda " Why architect? " What is architecture? " What does an architect do? " What principles guide the process of architecting?
What is Software Architecture?
Software Architecture in Practice (3rd Ed) Introduction
Software Testing Verification and validation planning Software inspections Software Inspection vs. Testing Automated static analysis Cleanroom software.
3- System modelling An architectural model presents an abstract view of the sub-systems making up a system May include major information flows between.
CSE 303 – Software Design and Architecture
Architecture Business Cycle
Software Requirements Engineering CSE 305 Lecture-2.
1 Adapted from Pearson Prentice Hall Adapted form James A. Senn’s Information Technology, 3 rd Edition Chapter 7 Enterprise Databases and Data Warehouses.
An Introduction to Design Patterns. Introduction Promote reuse. Use the experiences of software developers. A shared library/lingo used by developers.
Distributed Systems: Concepts and Design Chapter 1 Pages
© 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley 1 Architectural Styles.
What is Software Architecture? | Website for Students | VTU NOTES | QUESTION PAPERS | NEWS | RESULTS Chapter 2, Authors: Len Bass, Paul,
SOFTWARE SYSTEMS DEVELOPMENT 4: System Design. Simplified view on software product development process 2 Product Planning System Design Project Planning.
April 2000Dr Milan Simic1 Network Operating Systems Windows NT.
Software Architecture and Design Dr. Aldo Dagnino ABB, Inc. US Corporate Research Center October 23 rd, 2003.
Middleware for FIs Apeego House 4B, Tardeo Rd. Mumbai Tel: Fax:
Architectural Design Yonsei University 2 nd Semester, 2014 Sanghyun Park.
CE Operating Systems Lecture 3 Overview of OS functions and structure.
Ihr Logo Operating Systems Internals & Design Principles Fifth Edition William Stallings Chapter 2 (Part II) Operating System Overview.
Historical Aspects Origin of software engineering –NATO study group coined the term in 1967 Software crisis –Low quality, schedule delay, and cost overrun.
Manag ing Software Change CIS 376 Bruce R. Maxim UM-Dearborn.
Software System Architecture Software System Architecture Chapter 6:Air Traffic Control: A Case Study in Designing for High Availability. Chapter 6:Air.
Distributed System Concepts and Architectures 2.3 Services Fall 2011 Student: Fan Bai
Processes Introduction to Operating Systems: Module 3.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
Operating System Principles And Multitasking
Air Traffic Control Guy Mark Lifshitz Sevan Hanssian.
University of Toronto at Scarborough © Kersti Wain-Bantin CSCC40 system architecture 1 after designing to meet functional requirements, design the system.
Chapter 6 – Architectural Design Lecture 1 1Chapter 6 Architectural design.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
Software Engineering Chapter: Computer Aided Software Engineering 1 Chapter : Computer Aided Software Engineering.
Overview of SAIP and LSSA. Software Architecture in Practice Provides a set of techniques, not a prescriptive method for architectural design. Based on.
Chapter 1 Basic Concepts of Operating Systems Introduction Software A program is a sequence of instructions that enables the computer to carry.
State of Georgia Release Management Training
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
Wrap up. Structures and views Quality attribute scenarios Achieving quality attributes via tactics Architectural pattern and styles.
Chapter 19: Network Management
IEEE Std 1074: Standard for Software Lifecycle
Distribution and components
CHAPTER 3 Architectures for Distributed Systems
What is an Architecture?
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Patterns.
Software Architecture
Software Architecture in Practice
Chapter 6 – Architectural Design
Chapter 2: Operating-System Structures
What is an Architecture?
Software Architecture
Chapter 5 Architectural Design.
Chapter 2: Operating-System Structures
System Analysis and Design:
Presentation transcript:

CelsiusTech: Applying Software Product Lines

Introduction Case study on experience of CelsiusTech AB, a Swedish naval defense contractor that successfully adopted a product line approach to building complex software-intensive systems. Called Ship System 2000 (SS2000), their product line consists of shipboard command- and-control systems for Scandinavian, Middle Eastern, and South Pacific navies.

ABC as applied by Celsius Tech

Relationship to the ABC CelsiusTech has long been known as a leading supplier of command-and-control systems within Sweden's largest defence industry group CelsiusTech was composed of three companies: CelsiusTech Systems (advanced software systems), CelsiusTech Electronics (defense electronics), and CelsiusTech IT (information technology systems Employs approx. 2,000 people and had annual sales of 300 million U.S. dollars

This case study … Focuses on CelsiusTech Systems (CelsiusTech for short), Major areas includes command, control, and communication (C3) systems, fire control systems, and electronic warfare systems for navy, army, and air force applications.

CelsiusTech Systems' corporate evolution

THE SHIP SYSTEM 2000 NAVAL PRODUCT LINE Ship System 2000 (internally as Mk3), provides an integrated system that unifies all weapons, command-and-control, and communication systems on a warship. 1 million to 1.5 million lines of Ada code Distributed application on a LAN with 30 to 70 microprocessors.

Products/Systems Swedish Göteborg class coastal corvettes (KKV) (380 tons) Danish SF300 class multi-role patrol vessels (300 tons) Finnish Rauma class fast attack craft (FAC) (200 tons) Australian/New Zealand ANZAC frigates (3,225 tons) Danish Thetis class ocean patrol vessels (2,700 tons) Swedish Gotland class A19 submarines (1,330 tons) Pakistani Type 21 class frigates Republic of Oman patrol vessels Danish Niels Juel class corvettes

How individual systems/product vary? Systems built from the product line vary greatly in size, function, and armaments. Different operator displays on different hardware and in different presentation languages. Sensors and weapons systems, and their interfaces to the software, also vary. Computers in the product line include 68020, 68040, RS/6000, and DEC Alpha platforms. Operating systems include OS2000 (a CelsiusTech product), IBM's AIX, POSIX, Digital's Ultrix, and others. The SS2000 product line supports this range of possible systems through a single architecture, a single core asset base, and a single organization.

ECONOMICS OF PRODUCT LINES CelsiusTech reports that the last three ship systems were all predictably on schedule.

Code Re-use 70% to 80% consist of elements used verbatim (i.e., checked out of a configuration control library and inserted without code modification).

Systems built by CelsiusTech prior to 1985

Changing technical infrastructures

Mk2.5 project organization, 1980–1985

SS2000 organization, 1987–1991

Architecture Team Responsibilities Creation of product line concepts and principles Identification of layers and their exported interfaces Interface definition, integrity, and controlled evolution Allocation of system functions to layers Identification of common mechanisms or services Definition, prototyping, and enforcement of common mechanisms such as error handling and interprocess communication protocols Communication to the project staff of the product line concepts and principles

combined integration and configuration management Development of test strategies, plans, and test cases beyond unit test Coordination of all test runs Development of incremental build schedules (in conjunction with the architecture team) Integration and release of valid subsystems Configuration management of development and release libraries Creation of the software delivery medium

SS2000 organization, 1992–1998

Approximate software staff profiles

Requirements and Qualities Structured modules are required whenever new products are to be developed from the organizational repositories. There must be a standard set of modules with: – agreements about individual module's responsibility, behavior, performance, interface, locality of function, communication and coordination mechanisms, and other properties.

Product Line Architecture This family-wide structure, the modules it comprises, and the properties about each that are constant across all members of the product line constitute the product line architecture.

Requirements for SS2000 Product Family architecture Performance. Command-and-control systems must respond in real time to continuously arriving sensor inputs and be able to control weapons under tight deadlines. Modifiability. The architecture needs to be robust with respect to computing platforms, operating systems, addition or replacement of sensor and weapon systems, human–computer interface requirements, communication protocols, and the like.

Requirements for SS2000 Product … Safety, reliability, and availability. The system must be available when needed, provide the correct data and commands to weapon systems, and fire only under the correct conditions. Testability. Each system must be integrable and testable so that errors (if any) are quickly found, isolated, and corrected.

OPERATING ENVIRONMENT AND PHYSICAL ARCHITECTURE

Architectural Solution 3 views The process view so that we can explain how distribution was accomplished; the layered view as a basis for discussing how Ship System 2000 achieves a separation of concerns; and A module decomposition view to show assignment of responsibilities to different large- scale elements of the system – called system functions and system function groups.

Process View Each CPU runs an Ada program. Ada program runs at most on one processor. Distributed computing platform – Building the system as a set of communicating processes – Introduce the Process View….means …. Apply the tactic…

Apply the the performance tactic "introduce concurrency“. Distributed systems also raise issues of – deadlock avoidance, communication protocols, fault tolerance in the case of a failed processor or communications link, network management and saturation avoidance, and performance concerns for coordination among tasks. A number of conventions are used to support the distribution.

Conventions used Communication among components is by the passing of strongly typed messages. – Strong typing allows compile-time elimination of whole classes of errors. – he message as the primary interface mechanism between components allows components to be written independently of each other's (changeable) implementation details with respect to data representation.

Inter-process communication is the protocol for data transport between Ada applications that supports location independence, allowing communication between applications regardless of their residence on particular processors. – The "anonymity of processor assignment" – allows processes to be migrated across processors for fault tolerance Ada task facilities are used to implement the threading model. Conventions used …

Process View … A producer of data does its job without knowing who the consumer of that data is. Data maintenance and update are conceptually separate from data usage. This is an application of the tactic …

"introduce an intermediary" to achieve modifiability, which the designers accomplished using a blackboard pattern. The main consumer of the data is the HCI component. The component that contains the repository is called the common object manager (COOB).

Using and bypassing the COOB

Data producing conventions Data is sent only when altered. This prevents unnecessary message traffic from entering the network. Data is presented as object-oriented abstractions in order to insulate programs from changing implementations. Strong typing allows compile- time detection of variable misuse errors. Components own the data they alter and supply access procedures that act as monitors. This eliminates race conditions because each piece of data is accessed directly only by the component that owns it.

Data producing conventions … Data is accessible to all interested parties at all nodes in a system. Assignment to a particular node does not affect the data a component can access. Data is distributed so that response time to a retrieval request is short. Data is kept consistent within the system over the long term. Short-term inconsistencies are tolerable.

Reference and further reading Chapter 15, Len Bass book.