Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause.

Slides:



Advertisements
Similar presentations
Software Modeling SWE5441 Lecture 3 Eng. Mohammed Timraz
Advertisements

Modelling Class T05 Conceptual Modelling – Domain References: –Conceptual Modeling of Information Systems (Chapters 1.2.1, 2, 3) –A practical Guide to.
Using UML, Patterns, and Java Object-Oriented Software Engineering Royce’s Methodology Chapter 16, Royce’ Methodology.
Object-Oriented Analysis and Design
Page 1 Building Reliable Component-based Systems Chapter 7 - Role-Based Component Engineering Chapter 7 Role-Based Component Engineering.
Introduction To System Analysis and Design
7M701 1 Software Engineering Object-oriented Design Sommerville, Ian (2001) Software Engineering, 6 th edition: Chapter 12 )
SWE Introduction to Software Engineering
1 IBM SanFrancisco Product Evaluation Negotiated Option Presentation By Les Beckford May 2001.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
H 1 Building Product Populations with Software Components, © 2002 Koninklijke Philips Electronics NV Building Product Populations with Software.
Analysis Stage (Phase I) The goal: understanding the customer's requirements for a software system. n involves technical staff working with customers n.
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Fundamentals of Information Systems, Second Edition
© Copyright Eliyahu Brutman Programming Techniques Course.
Itntroduction to UML, page 1 Introduction to UML.
SWE Introduction to Software Engineering
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Introduction to Systems Analysis and Design
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 Product Line Architectures (SPLA) Nipun Shah
Computer Systems & Architecture Lesson Software Product Lines.
UML CLASS DIAGRAMS. Basics of UML Class Diagrams What is a UML class diagram? Imagine you were given the task of drawing a family tree. The steps you.
Principles of Object Technology Module 1: Principles of Modeling.
Enterprise Systems & Architectures. Enterprise systems are mainly composed of information systems. Business process management mainly deals with information.
© Drexel University Software Engineering Research Group (SERG) 1 Based on the paper by Philippe Kruchten from Rational Software.
1 IBM Software Group ® Mastering Object-Oriented Analysis and Design with UML 2.0 Module 1: Best Practices of Software Engineering.
CLEANROOM SOFTWARE ENGINEERING.
Slide 1 Wolfram Höpken RMSIG Reference Model Special Interest Group Second RMSIG Workshop Methodology and Process Wolfram Höpken.
1 CS 456 Software Engineering. 2 Contents 3 Chapter 1: Introduction.
CSE 303 – Software Design and Architecture
2-Oct-15 Bojan Orlic, TU/e Informatica, System Architecture and Networking 12-Oct-151 Homework assignment 1 feedback Bojan Orlic Architecture.
Introduction To System Analysis and Design
Executable UML Two Real-World Projects Paul Krause.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Odyssey A Reuse Environment based on Domain Models Prepared By: Mahmud Gabareen Eliad Cohen.
Software Engineering EKT 420 MOHAMED ELSHAIKH KKF 8A – room 4.
Effective Requirements Management – an overview Kristian Persson Field Product Manager, Telelogic Asia/Pacific.
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
Software Engineering Principles Principles form the basis of methods, techniques, methodologies and tools Principles form the basis of methods, techniques,
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Chapter 10 Analysis and Design Discipline. 2 Purpose The purpose is to translate the requirements into a specification that describes how to implement.
Software Engineering Prof. Ing. Ivo Vondrak, CSc. Dept. of Computer Science Technical University of Ostrava
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
Department of Informatics, UC Irvine SDCL Collaboration Laboratory Software Design and sdcl.ics.uci.edu 1 Informatics 43 Introduction to Software Engineering.
Object-Oriented Software Engineering using Java, Patterns &UML. Presented by: E.S. Mbokane Department of System Development Faculty of ICT Tshwane University.
UML as a Specification Language for Embedded Systems. By, Mir Ahmed Ali, Asst. Professor, ECM department, SNIST. By, Prof. Narsiah sir, Director of School.
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Distribution and components. 2 What is the problem? Enterprise computing is Large scale & complex: It supports large scale and complex organisations Spanning.
1 ECCF Training 2.0 Introduction ECCF Training Working Group January 2011.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
1 OO Analysis & Design - Introduction to main ideas in OO Analysis & design - Practical experience in applying ideas.
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Software Engineering Jon Walker. What is Software Engineering? Why do we call it Software Engineering? Why not just call it programming or software development?
SOFTWARE ENGINEERING. Objectives Have a basic understanding of the origins of Software development, in particular the problems faced in the Software Crisis.
Chapter 1: Introduction Omar Meqdadi SE 3860 Lecture 1 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
MANAGING COMPLEXITY Lecture OO01 Introduction to Object-oriented Analysis and Design Abstract Data Types.
Object-Oriented Software Engineering Using UML, Patterns, and Java,
Unified Modeling Language
The Systems Engineering Context
Introduction to UML.
CS310 Software Engineering Lecturer Dr.Doaa Sami
ISpec: A Compositional Approach to Interface Specification
Chapter 5 Architectural Design.
COMPONENT – BASED SOFTWARE ENGINEERING MODULE 2 – SECOND SEMESTER MKHIZE, BSC HONS COMPUTER SCIENCES, DIP IT, ICDL.
Presentation transcript:

Component-Based Software Engineering Component Engineering at Philips Electronics Paul Krause

A Talk in Four Parts v Prologue v Requirements Modeling for Families of Complex Systems v The Koala Component Model for Consumer Electronics Software v Epilogue

Part I The Prologue v Why is Philips interested in Software? v The need for Quality v What is Quality?

Philips Electronics makes Software? v Philishave - 35k of software v Mid end TV > 4M of software v Development teams > 100 v Distributed development  e.g. TV development sites at Brugge, Eindhoven, Southampton, Vienna, Bangalore, Singapore, Briarcliffe, Knoxville

The Need for Software Quality v Embedded software follows Moore’s Law  doubling in size every two years v Diversity of products and their software is also increasing rapidly v Development time must decrease significantly  Reliability  Flexibility  Extendibility  Reusability.

What is Quality (or what is it not)! v “Quality means conformance to requirements” BUT! v Requirements contain >15% of all errors v Requirements typically grow at >2% per month  Do you conform to requirements errors?  Do you conform to new requirements?  Whose requirements are you trying to satisfy? Source: Capers Jones, 2000

Conclusion v To achieve quality products we need to look at all aspects of our development processes v In this lecture we will look at ways of  improving requirements management;  reducing time to market;  increasing responsiveness to changes in the market place.

Part II Requirements Modeling for Families of Complex Systems v Based on presentation by Pierre America, Philips Research, and Jan van Wijgerden, Philips Medical Systems  Presented at the 3rd Int. Workshop on Software Architecture for Product Families, March 2000, Las Palmas de Gran Canaria, Spain.

Contents v Introduction v Context v Documents v Family issues v Experience v Conclusion

Introduction: Product families v Deal explicitly with commonalities and differences v Advantages in  Marketing  Development  Manufacturing  Maintenance

Introduction: Goals Requirements specifications for product families should v specify what can be expected from the products v be agreed on by all stakeholders v be sufficiently precise to avoid misunderstandings v deal explicitly with commonalities and differences v form a solid basis for further development v without unnecessarily limiting the designers’ freedom

Context: Medical imaging X-Ray CT MR Ultrasound

Context: Medical imaging: X-Ray Cardio/Vascular Universal Radiography and Fluoroscopy Radiography Surgery

Context: Market and product characteristics v Mature market  complex systems v Potential hazards (radiation, electricity, mechanics, …)  high demands on products and process v Relatively few systems, many configurations  systems cannot all be tested thoroughly

Context: Project characteristics v Vast range of expertise needed v Many (>100) developers, some new to the domain v Carried out jointly by several departments v Time to market important v Long project duration (several years) v Long lifetime of architecture (>10 years)

Documents v Commercial Requirements Specification (CRS)  positioning of system family in market v Systems Requirements Specification (SRS)  features mentioned in lists and tables v Functional Requirements Specification (FRS)  detailed descriptions of use cases (in English) v Requirements Object Model  concepts and their relationships (in UML)

Documents: Example model XrayBeamToDetectorPosition SourceImageDistance Detector CircleShutter Diameter Speed XRayBeam Shape Intensity Spectrum Exposable RectangleShutter Height Width XSpeed YSpeed Tube Voltage Current 11 Generates Shutter Detector Shapes Object Shapes XRaySource 1 0..* 1 11

Documents: Example use case Use case CloseCircleShutter: v When the CloseShuttersEvent is received from the ClinicalUser, then the Diameter of the Object CircleShutter is decreased with a fixed Speed, until either the StopShuttersEvent or the OpenShuttersEvent is received.

Documents: Structure of FRS Divided into chapters according to areas of functionality:  Different kinds of user (clinical user, field service. …)  Different phases of workflow Often coincides with areas of expertise of FRS authors. Does not imply the same subdivision in design. Examples:  Administration  Patient positioning  Acquisition  Field service  Reviewing  Printing  Archiving

Family issues: Expressing variation: Object model v Specialization v Multiplicity ImagingSystemXRayDetector 0 …* XRayDetector FilmDetectorIITVDetectorSolidStateDetector v Attributes XRayDetector MaxResolution : Int MaxFrameRate : Int

Family issues: Expressing variation: Use cases v Behaviour of use cases may depend on model, including the above variation mechanisms. v Different systems may support different sets of use cases Result: v Precise and detailed specifications for the domain v Concise specifications for individual systems

Experience v Tried out in one large development project and several small feasibility studies v Large FRS 15 chapters500 use cases v Large requirements model 100 diagrams1000 relationships 700 classes1500 attributes v Solid basis of shared knowledge v Effort well spent v Object model relatively immune to changes

Conclusion We learned: v Early construction of a requirements object model provides an explicit, shared map of concepts. v Developing use cases and object model hand in hand leads to precise use cases and a complete model. v Overlapping groups allow many participants and parallel work, while maintaining consistency. v Not the individual technique counts, but the way they fit together.

Part III The Koala Component Model for Consumer Electronics Software v For more information, see article by Rob van Ommering, Frank van der Linden (Philips Research Laboratories, Eindhoven), Jeff Kramer and Jeff Magee (Imperial College)

Contents of Part III v Motivation - the need for components v The Koala model v Coping with evolution v Conclusions

The need for components v Consumer Electronics products are members of complex family structures v Exhibit diversity in:  product features  user control style  supported broadcasting standards  hardware technology v Need to create new products by extending and rearranging elements of existing products

The need for components v Object-oriented frameworks enable multiple applications to be created from shared structure and code  but changing the structure significantly is difficult v Component-based approaches let engineers construct multiple configurations with variations in both structure and content  component - an encapsulated piece of software with an explicit interface to its environment  components - can be used in many different configurations

The need for “requires” interfaces A B1 Product 1 A B2 Product 2 Importing B1 into A: gives A access to B1 but puts knowledge of B1 inside A So A cannot also combine with B2 PROBLEM A B1 Product 3 B2 Take binding knowledge out of the components. A requires an interface of a certain type. B1 and B2 provide such an interface. Binding made at the product level SOLUTION

The Koala Model v Components  units of design development and reuse v Interfaces  a component communicates with its environment through interfaces  an interface is a small set of semantically related functions v A component provides functionality through its interfaces v To do so, it may also require functionality through its interfaces

Koala’s graphical notation CFrontEnd cfre pprg pini rtun rif IProgram CBackEnd cbke pprg ppic pini rcol rscr IPicture CTunerDriver ctun ptun pini ri2c CHipDriver chip pcol pini ri2c CHopDriver chop pscr pini ri2c pif fastslow m II2c pini IInit ITuner IIfIColor IScreen CTvPlatform

Configurations and Compound Components v A configuration is a set of components connected together to form a product  all requires interfaces must be bound to precisely one provides interface  each provides interface can be bound to zero or more requires interfaces v It may be useful to compose Compound Components from basic components  But always, when binding interfaces there must be a unique definition of each function, but a function may be called by many other functions

Conclusion v Able to introduce component orientation in a domain that is resource-constrained v Graphical notation helpful in design discussions v More than 100 software developers within Philips are currently using Koala, on an increasing diversity of products

Part IV Epilogue

We have seen: v how the need to deliver quality products in a volatile and complex market place has driven developments in Software Engineering v how UML can be exploited to strengthen the requirements process for families of complex systems v a component model that enables new configurations to be rapidly developed for novel products

Global concerns Mainstream TV Singapore System House Eindhoven Upmarket TV Brugge Projection TV Knoxville Software Centre Bangalore Philips Semiconductors Third Parties Digital TV Briarcliffe Set Top Boxes Paris TVCR Vienna Hard Disk/CD-R Hasselt

v Software Engineering issues are vitally important v But this is not the whole story:  co-ordination  collaboration  communication  people management  planning  strategy  technology Conclusion