1 CBSE Process: issues and Challenges From CBSE Landscape document chapter From.

Slides:



Advertisements
Similar presentations
1 Chapter 4 - Part 1 Software Processes. 2 Software Processes is: Coherent (logically connected) sets of activities for specifying, designing, implementing,
Advertisements

The software process A software process is a set of activities and associated results which lead to the production of a software product. This may involve.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
Introduction to Software Engineering Lecture 5 André van der Hoek.
CS540 Software Design Lecture 1 1 Lecture 1: Introduction to Software Design Anita S. Malik Adapted from Budgen (2003) Chapters 1.
1 CBSE Process: issues and Challenges Gerald Kotonya Computing Department Lancaster University United Kingdom Gerald Kotonya Computing Department Lancaster.
Developing safety critical systems
The Architecture Design Process
Introduction to Software Engineering Dr. Basem Alkazemi
Chapter 1 Software Development. Copyright © 2005 Pearson Addison-Wesley. All rights reserved. 1-2 Chapter Objectives Discuss the goals of software development.
Software Engineering General Project Management Software Requirements
Nov. 14, 2007 Systems Engineering ä System ä A set or arrangement of things so related as to form a unity or organic whole. ä A set of facts, principles,
Iterative development and The Unified process
Building software from reusable components.
System Engineering Instructor: Dr. Jerry Gao. System Engineering Jerry Gao, Ph.D. Jan System Engineering Hierarchy - System Modeling - Information.
The Software Product Life Cycle. Views of the Software Product Life Cycle  Management  Software engineering  Engineering design  Architectural design.
Software Process Activities. Process activities Real software processes are inter-leaved sequences of technical, collaborative and managerial activities.
Romaric GUILLERM Hamid DEMMOU LAAS-CNRS Nabil SADOU SUPELEC/IETR.
Chapter 4 Requirements Engineering
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
Software Reuse Prof. Ian Sommerville
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 14Slide 1 Design with Reuse l Building software from reusable components.
Introduction to RUP Spring Sharif Univ. of Tech.2 Outlines What is RUP? RUP Phases –Inception –Elaboration –Construction –Transition.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 19 Slide 1 Component-based software engineering 1.
-Nikhil Bhatia 28 th October What is RUP? Central Elements of RUP Project Lifecycle Phases Six Engineering Disciplines Three Supporting Disciplines.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Software Processes.
©2007 · Georges Merx and Ronald J. NormanSlide 1 Chapter 1 Introduction to Java in the Context of Software Engineering.
1 Chapter 9 Database Design. 2 2 In this chapter, you will learn: That successful database design must reflect the information system of which the database.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
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.
Chapter 13 Architectural Design
Design engineering Vilnius The goal of design engineering is to produce a model that exhibits: firmness – a program should not have bugs that inhibit.
CHECKPOINTS OF THE PROCESS Three sequences of project checkpoints are used to synchronize stakeholder expectations throughout the lifecycle: 1)Major milestones,
© 2012 xtUML.org Bill Chown – Mentor Graphics Model Driven Engineering.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 05. Review Software design methods Design Paradigms Typical Design Trade-offs.
1 Advanced Software Architecture Muhammad Bilal Bashir PhD Scholar (Computer Science) Mohammad Ali Jinnah University.
1 Software Development Software Engineering is the study of the techniques and theory that support the development of high-quality software The focus is.
An Introduction to Software Engineering
Chapter 4 프로세스 모델 Process Models
CS251 – Software Engineering Lecture 9: Software Design Slides by Mohammad El-Ramly, PhD
Chapter © 2012 Pearson Education, Inc. Publishing as Prentice Hall.
1-1 Software Development Objectives: Discuss the goals of software development Identify various aspects of software quality Examine two development life.
Software Prototyping Rapid software development to validate requirements.
MODEL-BASED SOFTWARE ARCHITECTURES.  Models of software are used in an increasing number of projects to handle the complexity of application domains.
Chapter 2 Object-Oriented Paradigm Overview. Getting Acquainted with the Class Project Read the requirements specification carefully Make note of any.
CSE 303 – Software Design and Architecture
Lecture 13.  Failure mode: when team understands requirements but is unable to meet them.  To ensure that you are building the right system Continually.
Smart Home Technologies
Rational Unified Process Fundamentals Best Practices of Software Engineering Rational Unified Process Fundamentals Best Practices of Software Engineering.
Chapter © 2012 Pearson Education, Inc. Publishing as Prentice Hall.
Component-based Software Engineering CBSE seminar, Oslo, 4 Feb Christian Bunse
Banaras Hindu University. A Course on Software Reuse by Design Patterns and Frameworks.
1. 2 An Introduction to Software Engineering 3 What is software? Computer programs and associated documentation such as requirements, design models and.
1 Lecture 2.3: SE Process (SEF Ch 3) Dr. John MacCarthy UMBC CMSC 615 Fall, 2006.
Organizations of all types and sizes face a range of risks that can affect the achievement of their objectives. Organization's activities Strategic initiatives.
Enterprise Architectures Course Code : CPIS-352 King Abdul Aziz University, Jeddah Saudi Arabia.
 System Requirement Specification and System Planning.
1 Process activities. 2 Software specification Software design and implementation Software validation Software evolution.
Software Reuse. Objectives l To explain the benefits of software reuse and some reuse problems l To discuss several different ways to implement software.
Process 4 Hours.
Software Process Activities.
Component Based Software Engineering
Chapter 5 Designing the Architecture Shari L. Pfleeger Joanne M. Atlee
Presentation transcript:

1 CBSE Process: issues and Challenges From CBSE Landscape document chapter From

CBSEnet 2 BackgroundBackground CBSE is the process of building software systems from pre-fabricated software components Motivation Improving software quality and Reducing development costs However software component technology is still immature and poses many challenges for organisations intending to adopt it Poorly documented components Vulnerability risk Limited adaptability of components Limited interoperability across component technologies Component volatility Many of these problems can be mitigated by a better appreciation of the processes for developing component-based systems CBSE is the process of building software systems from pre-fabricated software components Motivation Improving software quality and Reducing development costs However software component technology is still immature and poses many challenges for organisations intending to adopt it Poorly documented components Vulnerability risk Limited adaptability of components Limited interoperability across component technologies Component volatility Many of these problems can be mitigated by a better appreciation of the processes for developing component-based systems

CBSEnet 3 CBSE Processes

CBSEnet 4 Development with reuse

CBSEnet 5 Development process The planning phase sets out: Justification, objectives, strategies (methods and and resources to achieve the development objectives) Tactics ( start and end dates, tasks with duration) for the development project The development phase implements the agenda set out in the planning phase The verification phase is intended to verify the extent of “fitness” of various component solutions The negotiation phase attempts to find an acceptable trade-off between the software components and system being built The planning phase sets out: Justification, objectives, strategies (methods and and resources to achieve the development objectives) Tactics ( start and end dates, tasks with duration) for the development project The development phase implements the agenda set out in the planning phase The verification phase is intended to verify the extent of “fitness” of various component solutions The negotiation phase attempts to find an acceptable trade-off between the software components and system being built

CBSEnet 6 Design for development with reuse Component-based system design Describes how the components that make up the system interact to deliver the desired functionality and, the appropriateness of particular components and services in different contexts Provides a good basis for performing impact analysis Component-based system design Describes how the components that make up the system interact to deliver the desired functionality and, the appropriateness of particular components and services in different contexts Provides a good basis for performing impact analysis

CBSEnet 7 Design process Need for formal mechanisms that allow the designer to define architectural elements and their relationships and to support their evolution through levels of abstraction (UML 2.0?, Catalysis, D’Souza ’98; ADLs Shaw, ‘96; Medvidovic ‘00) The design process starts with the partitioning of the system requirements (services and associated constraints) into logical “components” or “sub- systems” The initial partitioning is driven by architectural considerations (possibly supported by design patterns that lend themselves to those properties) Subsequent partitioning is subject to a negotiation process that must take into account business concerns, architectural considerations and software component considerations Need for formal mechanisms that allow the designer to define architectural elements and their relationships and to support their evolution through levels of abstraction (UML 2.0?, Catalysis, D’Souza ’98; ADLs Shaw, ‘96; Medvidovic ‘00) The design process starts with the partitioning of the system requirements (services and associated constraints) into logical “components” or “sub- systems” The initial partitioning is driven by architectural considerations (possibly supported by design patterns that lend themselves to those properties) Subsequent partitioning is subject to a negotiation process that must take into account business concerns, architectural considerations and software component considerations

CBSEnet 8 Management: Maintenance and extended development The maintenance and extended development of a component-based application poses many risks to the customer (Dean and Vidger ’99) Nature of the development process Application domain System design characteristics Choice of software components used Choice of software components used The maintenance and extended development of a component-based application poses many risks to the customer (Dean and Vidger ’99) Nature of the development process Application domain System design characteristics Choice of software components used Choice of software components used

CBSEnet 9 SummarySummary Component-based system development is a highly iterative process requiring simultaneous consideration of: The system context (system characteristics such as requirements, cost, schedule, operating and support environments), Capabilities of software components in the marketplace Viable architectures and designs We have identified the challenges and problems likely to be faced by component-based system developers The importance of verification has been emphasised and a discussion of the management challenges of component-based systems provided We have highlighted the importance of the process in mitigating the problems posed by CBD Component-based system development is a highly iterative process requiring simultaneous consideration of: The system context (system characteristics such as requirements, cost, schedule, operating and support environments), Capabilities of software components in the marketplace Viable architectures and designs We have identified the challenges and problems likely to be faced by component-based system developers The importance of verification has been emphasised and a discussion of the management challenges of component-based systems provided We have highlighted the importance of the process in mitigating the problems posed by CBD

CBSEnet 10

11 CompositionComposition Need for formal mechanisms to support system composition System composition proceeds by replacing abstract design level components with concrete ‘equivalents’ and integrating them Concrete components might be required to fulfil certain constraints (cost, architectural, resource etc ) before a replacement is allowed to proceed Support for adaptation For many systems there is need to repair a design “misfit” The accompanying integration process may make use of some "gluing technology", which may be unrelated to the components:  To provide an interface between components  To adapt incompatible components Need for formal mechanisms to support system composition System composition proceeds by replacing abstract design level components with concrete ‘equivalents’ and integrating them Concrete components might be required to fulfil certain constraints (cost, architectural, resource etc ) before a replacement is allowed to proceed Support for adaptation For many systems there is need to repair a design “misfit” The accompanying integration process may make use of some "gluing technology", which may be unrelated to the components:  To provide an interface between components  To adapt incompatible components

CBSEnet 12 VerificationVerification Component and system testing is a critical aspect of component-based development Black-box nature of components Perception of quality may vary Extraneous features Component and system testing is a critical aspect of component-based development Black-box nature of components Perception of quality may vary Extraneous features

CBSEnet 13 Testing regimes To address these problems, component- testing regimes should serve the following aims: DiscoveryVerification Fitness for purpose MaskingAdequacy To address these problems, component- testing regimes should serve the following aims: DiscoveryVerification Fitness for purpose MaskingAdequacy

CBSEnet 14 Trust as mechanism for verification Models of trust Contractual schemes are intended to provide cover against the effects of unsatisfactory or unexpected performance of a particular product Certification schemes are based on the belief that certified products have undergone rigorous testing and found to be fit for use (conform to certain quality standards) Experience-based schemes rely on reputed trust Local evaluation schemes strive to establish ‘demonstrated trust’. May be based on  Detailed evaluation  Self certification Models of trust Contractual schemes are intended to provide cover against the effects of unsatisfactory or unexpected performance of a particular product Certification schemes are based on the belief that certified products have undergone rigorous testing and found to be fit for use (conform to certain quality standards) Experience-based schemes rely on reputed trust Local evaluation schemes strive to establish ‘demonstrated trust’. May be based on  Detailed evaluation  Self certification