Title: Component-Based Software Engineering
 1Component-Based Software Dr. Rami 
BahsoonSchool of Computer ScienceThe University 
Of Birminghamr.bahsoon_at_cs.bham.ac.ukwww.cs.bham.
ac.uk/rzbOffice 112 Y9- Computer Science 
- Unit 3. Engineering Component-Based Software 
Processes and lifecycle  -  
 
  2Unit 2 Learning Objectives 
- In this unit, 
 - Unit 2.1 
 - Quick review software development processes  
lifecycle  -  Unit 2.2 
 - Discuss software engineering challenges 
 - Discuss reuse-software development and landscape 
 - Appraise the benefits  limitations of reuse 
 - Case study for orientation Failure of Ariane 5 
 - Introduces the component-based software lifecycle 
and contrast it to generic lifecycles  
  3Critical Question
How do you distinguish the process of Component 
Development from that of Systems development 
with Components? 
 4- Unit 2.1 Overview of Software Processes 
 - (Revision  Background) 
 
Perhaps what you have seen from processes looks 
explicitly at Component Development and 
 implicitly at Developing Software Systems from 
Components  
 5Brainstorming Exercise
- What is your understanding of a Software 
Process?  - Have you used any Software Process Model in 
your practice?  - Which models? 
 - Examples? 
 - Uses? Strengths/Weaknesses? 
 - Observations?
 
  6Objectives
- Quick revision for software processes models 
(These are background material which you may have 
seen elsewhere)  - Waterfall, incremental, evolutionary, spiral 
 - Advantages and disadvantages 
 - To describe the Rational Unified Process model
 
  7Software Engineering  for Orientation 
- Software Engineering is a branch of systems 
engineering concerned with the development of 
large and complex software intensive systems. It 
focuses on  - the real-world goals for, services provided by, 
and constraints on such systems,  - the precise specification of systems structure 
and behaviour, and the implementations of these 
specifications,  - the activities required in order to develop an 
assurance that the specifications and real 
world-world goals have been met,  - the evolution of these systems over time, and 
across systems families,  - It is also concerned with the processes, methods 
and tools for the development of software 
intensive systems in an economic and timely 
manner.  
Reference A. Finkelstein 
 8Software Process
- A structured set of activities required to 
develop a software system  - Specification 
 - Design 
 - Validation 
 - Evolution. 
 - A software process model is an abstract 
representation of a process. It presents a 
description of a process from some particular 
perspective.  
  9Process Models Examples
- The waterfall model 
 - Separate and distinct phases of specification and 
development.  - Evolutionary development 
 - Specification, development and validation are 
interleaved.  - Component-based software engineering 
 - The system is assembled from existing components.
 
  10Waterfall Model 
 11Waterfall Model Phases
- Phase 1. Requirements analysis and definition 
 - The process of establishing what services are 
required and the constraints on the systems 
operation and development.  -  What is the system about? 
 - Requirements engineering process 
 - Feasibility study 
 - Requirements elicitation and analysis 
 - Requirements specification 
 - Requirements validation. 
 
Phase 1 
 12Phase 1. Requirements Engineering process
Activities
Output 
 13Waterfall Model Phases
- Phase 2. System and software design 
 - i.e., How the requirements to be realised? Design 
a software structure that realises the 
specification  - Architectural design 
 - Abstract specification 
 - Interface design 
 - Component design 
 - Data structure design 
 - Algorithm design..
 
Phase 2 
 14The Software Design Process
Output 
 15Waterfall Model Phases
- Phase 3. Implementation and unit testing 
 - Implementation Executable code 
 - Unit testing (Component test) 
 - Individual components (function/programs/classes) 
are tested independently  - Components may be functions or objects or 
coherent groupings of these entities.  
Phase 3 
 16Waterfall Model Phases
- Phase 4. Integration and system testing 
 - System testing 
 - Testing of the system as a whole. Testing of 
emergent properties is particularly important.  - Acceptance testing 
 - Testing with customer data to check that the 
system meets the customers needs.  
Phase 4 
 17Waterfall Model Phases
- Phase 5. Operation and maintenance
 
Phase 5 
 18Evolutionary Development
- Exploratory development 
 - Objective is to work with customers and to evolve 
a final system from an initial outline 
specification.  - Start with well-understood requirements and add 
new features as proposed by the customer.  - Throw-away prototyping 
 - Objective is to understand the system 
requirements. Should start with poorly understood 
requirements to clarify what is really needed. 
  19Evolutionary Development 
 20Process Iteration
- System requirements ALWAYS evolve in the course 
of a project so process iteration where earlier 
stages are reworked is always part of the process 
for large systems  - Iteration can be applied to any of the generic 
process models (e.g., waterfall)  - Two (related) approaches 
 - Incremental delivery 
 - Spiral development.
 
  21Incremental Development
Reference A. Finkelstein 
 22Incremental Delivery
- Rather than deliver the system as a single 
delivery,  - the development and delivery is broken down into 
increments with each increment delivering part of 
the required functionality  - User requirements are prioritised 
 - highest priority requirements are included in 
early increments  - Once the development of an increment is started, 
the requirements are frozen though requirements 
for later increments can continue to evolve 
  23Incremental Development Advantages
- Early increments act as a prototype to help 
elicit requirements for later increments  - Lower risk of overall project failure 
 - The highest priority system services tend to 
receive the most testing  - Customer value can be delivered with each 
increment so system functionality is available 
earlier  
  24Spiral Development
- Process is represented as a spiral rather than as 
a sequence of activities with backtracking  - Each loop in the spiral represents a phase in the 
process  - No fixed phases such as specification or design - 
loops in the spiral are chosen depending on what 
is required.  - Risks are explicitly assessed and resolved 
throughout the process 
  25Spiral Model 
 26Spiral Model 
 27Spiral Model Sectors
- Objective setting 
 - Specific objectives for the phase are identified. 
 - Risk assessment and reduction 
 - Risks are assessed and activities put in place to 
reduce the key risks  - Development and validation 
 - A development model for the system is chosen 
which can be any of the generic models  - Planning 
 - The project is reviewed and the next phase of the 
spiral is planned 
  28Exercise -The Rational Unified Process
- Use the Internet to understand RUP. Prepare a 
brief summary on RUP for class discussion 
  29RUP Model 
 30RUP- Phases
- Inception 
 - Establish the business case for the system 
 - Elaboration 
 - Develop an understanding of the problem domain 
and the system architecture  - Construction 
 - System design, programming and testing 
 - Transition 
 - Deploy the system in its operating environment
 
  31RUP- Class Discussion
- It is claimed that RUP, if adopted, can 
 - Develop software iteratively, 
 - Manage requirements, 
 - Support component-based software development, 
 - Verify software quality, 
 - Control changes to software etc. 
 - What do you think? 
 - Do you agree/disagree  Why?
 
  32Summary of Unit 2.1
- Software processes are the activities involved in 
producing and evolving a software system  - Software process models are abstract 
representations of these processes  - General activities are specification, design and 
implementation, validation and evolution  - Generic process models describe the organisation 
of software processes. Examples include the 
waterfall model, evolutionary development and 
component-based software engineering  - Iterative process models describe the software 
process as a cycle of activities  - The Rational Unified Process is a generic process 
model that separates activities from phases  
  33Unit 2 Learning Objectives 
- In this unit, 
 - Unit 2.1 
 - Quick review software development processes  
lifecycle  -  Unit 2.2 
 - Rational Unified Process 
 - Model-driven development 
 - Reuse-driven software development and landscape 
 - Component-based software lifecycle
 
  34Challenges in Software Engineering
- Complexity 
 - The size and complexity of software is increasing 
rapidly  - Change, maintenance  continuous evolution 
 - Users Requirements and the environment in which 
the software works are in continuous change  - Changes in non-functional requirements have 
global impact to threat software stability  - Legacy systems old and valuable systems must be 
maintained, updated, and be integrated with new 
systems  - Software upgrades are expected after deployment 
 
  35Challenges in Software Engineering
- Architecting dependable software 
 - Software must be trustworthy by its users 
 
  36Challenges in Software Engineering
- Single products become part of product family 
 - Heterogeneity 
 - Software that can cope with heterogeneous 
platforms and execution environments  - E.g. Fixed distributed and mobile environments 
 - Time to market 
 - There is increasing pressure for faster delivery 
of software to gain competitive advantage  
  37Challenges in Software Engineering
Concentration on the business issues Around 30 
of the development effort is spent on the 
infrastructure that add no value 
 38Model Driven Development 
- The software development process is driven by the 
activity of modelling (with UML)  - Supports full lifecycle analysis, design, 
implementation, deployment, maintenance, 
evolution and integration with later systems  - Builds in Interoperability and Portability 
 - Lowers initial cost and maximises 
return-on-investment  - Applies directly to the mix you face 
 - Programming language Network Operating system, 
Middleware  
  39The Model-Driven Process 
 40MDA Framework
- A model is a description of a system. 
 - A PIM describes a system without any knowledge of 
the final implementation platform.  - A PSM describes a system with full knowledge of 
the final implementation platform.  - A transformation definition describes how a model 
in a source language can be transformed into a 
model in a target language.  - A transformation tool performs a transformation 
for a specific source model according to a 
transformation definition.  
  41PIM - Platform Independent Model
- Platform Independent Model 
 - Model with a high level of abstraction 
independent of any implementing technology.  - Specifies the system from the viewpoint of how it 
best supports the business.  - Whether a system will be implemented on a 
mainframe with a relational database or on an EJB 
application server plays no role in a PIM.  
  42PSM  Platform Specific Model
- A transformation of PIM tailored to specify a 
system in terms of the implementation constructs 
available in the chosen implementation technology  - A PIM is transformed into one or more PSMs for 
each specific technology platform a separate PSM 
is generated.  - For example, an EJB PSM is a model of the system 
in terms of EJB structures.  - It typically contains EJB specific terms like 
home interface, entity bean, session bean 
and so on.  - A relational database PSM includes terms like 
table, column, foreign key, and so on.  
  43Code
- The final step in the development is the 
transformation of each PSM to code.  - A PSM fits its technology closely and so this 
transformation is relatively straightforward.  - MDA defines the PIM, PSM, and code and also 
defines how these relate to each other.  
  44Tool Support  References
- AndroMDA 
 - http//www.andromda.org/ 
 - An extensible open source generator framework 
that adheres to the Model Driven Architecture 
(MDA) paradigm.  - Models from UML tools can be transformed into 
deployable components for your choice of platform 
(J2EE, Spring, .NET).  - References 
 - OMG 
 - http//www.omg.org/mda 
 - Book by A. Kleppe et al., MDA Explained, 
Addison-Wesley, 2003  - http//www.klasse.nl/mdaexplained 
 
  45Another Shift in Paradigm 
1970
1990
2000 
 46Shift in Effort 
Waterfall model
2
5
5
0
1
00
0
7
5
Specification
Design
Development
Integration and testing
Iterative development
2
5
5
0
7
5
1
00
0
Specification
Iterative development
System testing
Component-based software engineering 
2
5
5
0
1
00
0
7
5
Specification
Development
Integration and testing
In CBSE much of the effort/cost are spent on 
 integration and testing  
 47Systematic Software Reuse
- In most engineering disciplines, systems are 
designed by composing existing components that 
have been used in other systems  - Software engineering has been more focused on 
original development  - To achieve potentially better software, more 
quickly and at lower cost, we need to adopt a 
design process that is based on systematic 
software reuse...  
  48Reuse Approaches  Landscape 
 49Reuse Approaches  Landscape 
 50Benefits of Reuse 
 51Benefits of Reuse 
 52Problems with Reuse 
 53Problems with Reuse 
 54Case Study Ariane 5
- In 1996, the 1st test flight of the Ariane 5 
rocket ended in disaster when the launcher went 
out of control 37 seconds after take off  - The problem was due to a reused component from a 
previous version of the launcher (the Inertial 
Navigation System) that failed because 
assumptions made when that component was 
developed did not hold for Ariane 5  - The functionality that failed in this component 
was not required in Ariane 5  - http//www.dailymotion.com/video/x256qu_explosion-
ariane-5_events  
  55Case Study Ariane 5
- On June 4, 1996 Ariane 5 rocket launched by the 
European Space Agency exploded just forty seconds 
after its lift-off from French Guiana  - http//www.cnn.com/WORLD/9606/04/rocket.explode/ar
iane.mov  - The rocket was on its first voyage, after a 
decade of development costing 7 billion. The 
destroyed rocket and its cargo were valued at 
500 million  - A board of inquiry investigated the causes of the 
explosion and in two weeks issued a report 
  56Case study Ariane 5
- Software failure in the inertial reference system 
occurred when an attempt to convert a 64-bit 
floating point number to a signed 16-bit integer 
causing overflow.  - Specifically a 64 bit floating point number 
relating to the horizontal velocity of the rocket 
with respect to the platform was converted to a 
16 bit signed integer.  - The number was larger than 32,767, the largest 
integer storeable in a 16 bit signed integer, and 
thus the conversion failed!  - There was no exception handler associated with 
the conversion so the system exception management 
facilities were invoked. These shutdown the 
software!  - REUSE! 
 
System
Backup 
 57Component-Based Software Engineering
- Based on systematic reuse where systems are 
integrated from existing components or COTS 
(Commercial-off-the-shelf) systems.  - Process stages 
 - Component analysis 
 - Requirements modification 
 - System design with reuse 
 - Development and integration. 
 - Emphasis is on Reuse ? Reuse-oriented development 
 - This approach is becoming increasingly used as 
component standards have emerged.  
  58Reuse-Oriented Development
e.g. Ariane 5 doesnt require the 64bit 
conversion. Drop it!
Analyse written software Do existing 
software/packages fit my need? 
 59The CBSE process
- When reusing components, 
 - It is essential to make trade-offs between ideal 
requirements and the services actually provided 
by available components.  - This involves 
 - Developing outline requirements 
 - Searching for components then modifying 
requirements according to available functionality  - Searching again to find if there are better 
components that meet the revised requirements.  
  60The CBSE process 
 61The Component Identification Process 
 62Component dentification issues
- Trust. 
 - You need to be able to trust the supplier of a 
component  - At best, an untrusted component may not operate 
as advertised at worst, it can breach your 
security  - Requirements. 
 - Different groups of components will satisfy 
different requirements  - Validation. 
 - The component specification may not be detailed 
enough to allow comprehensive tests to be 
developed.  - Components may have unwanted functionality. How 
can you test this will not interfere with your 
application?  
  63Component composition
- The process of assembling components to create a 
system  - Composition involves integrating components with 
each other and with the component infrastructure  - Normally you have to write glue code to 
integrate components  
  64V Development Process for CBS
Software process 
 65V Development Process for CBS 
 66CBS Process 
 67CBS Process
- Requirements Requirements definition ? use case 
model and business concept model  - Specification Component Identification, 
Component Interaction, and Component 
Specification  - Provisioning determine what components to build, 
buy or reuse  - Assembly guide correct integration of 
components, existing assets and suitable user 
interface ? application that meets business needs  -  Theses phases replace analysis, design and 
implementation phases in processes like RUP.  
  68Component Identification 
 69Component Interaction 
 70Provisioning
- Source component implementations either 
 - by directly implementing the specification or 
 - by finding an existing component that fits the 
specification  - The component specification is as independent as 
possible from target technologies/platforms