1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software...

48
1 Component Based Software Engineering

Transcript of 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software...

Page 1: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

1

Component Based Software Engineering

2

bull What is Software Componentbull Have you Seen Software Componentbull Have You used Software Componentbull Have You Develop Software Component

3

Observations on the practice of SE

bullSystems should be built to facilitate changebulleasy removal and addition of functionality

bullIt is not the strongest of the species that survive nor the most intelligent but the ones most responsive to change--Charles Darwin

bullAbout 80 of software engineering deals with changing existing software

bullTime to market is an important competitive advantage incorporate successful innovations quickly

4

Problems of Software Engineering

bullThe size amp complexity of software increases rapidlybullSingle products become part of product familiesbullSoftware is upgraded after deploymentbullThe time-to-market must decrease significantlybullThe cost of products must be reduced

5

Consider this Scenario

bull You created a Chat component and it took you one weekbull Your friend told you that he his build a Chat component

for his applicationbull You told him that he can reuse it bull He copied and pasted itbull More people are now interested bull You make email code along with a text file conations info

on how to deploy and use (method names functions etcbull More people outside your company so you need to make

it according to a Net standard COM

6

What is Software Component

bull An individual component is a software package or a module that encapsulates a set of related functions (or data)

bull All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes)

bull Because of this principle it is often said that components are modular and cohesive

7

bull Components offering (via an interface) a predefined service and which is able to communicate with other components (without regard to where the component is executing or its programming language)ndash A component is an independent executable entity

that can be made up of one or more executable objects

ndash The component interface is published and all interactions are through the published interface

Component Definition

8

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 2: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

2

bull What is Software Componentbull Have you Seen Software Componentbull Have You used Software Componentbull Have You Develop Software Component

3

Observations on the practice of SE

bullSystems should be built to facilitate changebulleasy removal and addition of functionality

bullIt is not the strongest of the species that survive nor the most intelligent but the ones most responsive to change--Charles Darwin

bullAbout 80 of software engineering deals with changing existing software

bullTime to market is an important competitive advantage incorporate successful innovations quickly

4

Problems of Software Engineering

bullThe size amp complexity of software increases rapidlybullSingle products become part of product familiesbullSoftware is upgraded after deploymentbullThe time-to-market must decrease significantlybullThe cost of products must be reduced

5

Consider this Scenario

bull You created a Chat component and it took you one weekbull Your friend told you that he his build a Chat component

for his applicationbull You told him that he can reuse it bull He copied and pasted itbull More people are now interested bull You make email code along with a text file conations info

on how to deploy and use (method names functions etcbull More people outside your company so you need to make

it according to a Net standard COM

6

What is Software Component

bull An individual component is a software package or a module that encapsulates a set of related functions (or data)

bull All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes)

bull Because of this principle it is often said that components are modular and cohesive

7

bull Components offering (via an interface) a predefined service and which is able to communicate with other components (without regard to where the component is executing or its programming language)ndash A component is an independent executable entity

that can be made up of one or more executable objects

ndash The component interface is published and all interactions are through the published interface

Component Definition

8

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 3: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

3

Observations on the practice of SE

bullSystems should be built to facilitate changebulleasy removal and addition of functionality

bullIt is not the strongest of the species that survive nor the most intelligent but the ones most responsive to change--Charles Darwin

bullAbout 80 of software engineering deals with changing existing software

bullTime to market is an important competitive advantage incorporate successful innovations quickly

4

Problems of Software Engineering

bullThe size amp complexity of software increases rapidlybullSingle products become part of product familiesbullSoftware is upgraded after deploymentbullThe time-to-market must decrease significantlybullThe cost of products must be reduced

5

Consider this Scenario

bull You created a Chat component and it took you one weekbull Your friend told you that he his build a Chat component

for his applicationbull You told him that he can reuse it bull He copied and pasted itbull More people are now interested bull You make email code along with a text file conations info

on how to deploy and use (method names functions etcbull More people outside your company so you need to make

it according to a Net standard COM

6

What is Software Component

bull An individual component is a software package or a module that encapsulates a set of related functions (or data)

bull All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes)

bull Because of this principle it is often said that components are modular and cohesive

7

bull Components offering (via an interface) a predefined service and which is able to communicate with other components (without regard to where the component is executing or its programming language)ndash A component is an independent executable entity

that can be made up of one or more executable objects

ndash The component interface is published and all interactions are through the published interface

Component Definition

8

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 4: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

4

Problems of Software Engineering

bullThe size amp complexity of software increases rapidlybullSingle products become part of product familiesbullSoftware is upgraded after deploymentbullThe time-to-market must decrease significantlybullThe cost of products must be reduced

5

Consider this Scenario

bull You created a Chat component and it took you one weekbull Your friend told you that he his build a Chat component

for his applicationbull You told him that he can reuse it bull He copied and pasted itbull More people are now interested bull You make email code along with a text file conations info

on how to deploy and use (method names functions etcbull More people outside your company so you need to make

it according to a Net standard COM

6

What is Software Component

bull An individual component is a software package or a module that encapsulates a set of related functions (or data)

bull All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes)

bull Because of this principle it is often said that components are modular and cohesive

7

bull Components offering (via an interface) a predefined service and which is able to communicate with other components (without regard to where the component is executing or its programming language)ndash A component is an independent executable entity

that can be made up of one or more executable objects

ndash The component interface is published and all interactions are through the published interface

Component Definition

8

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 5: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

5

Consider this Scenario

bull You created a Chat component and it took you one weekbull Your friend told you that he his build a Chat component

for his applicationbull You told him that he can reuse it bull He copied and pasted itbull More people are now interested bull You make email code along with a text file conations info

on how to deploy and use (method names functions etcbull More people outside your company so you need to make

it according to a Net standard COM

6

What is Software Component

bull An individual component is a software package or a module that encapsulates a set of related functions (or data)

bull All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes)

bull Because of this principle it is often said that components are modular and cohesive

7

bull Components offering (via an interface) a predefined service and which is able to communicate with other components (without regard to where the component is executing or its programming language)ndash A component is an independent executable entity

that can be made up of one or more executable objects

ndash The component interface is published and all interactions are through the published interface

Component Definition

8

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 6: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

6

What is Software Component

bull An individual component is a software package or a module that encapsulates a set of related functions (or data)

bull All system processes are placed into separate components so that all of the data and functions inside each component are semantically related (just as with the contents of classes)

bull Because of this principle it is often said that components are modular and cohesive

7

bull Components offering (via an interface) a predefined service and which is able to communicate with other components (without regard to where the component is executing or its programming language)ndash A component is an independent executable entity

that can be made up of one or more executable objects

ndash The component interface is published and all interactions are through the published interface

Component Definition

8

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 7: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

7

bull Components offering (via an interface) a predefined service and which is able to communicate with other components (without regard to where the component is executing or its programming language)ndash A component is an independent executable entity

that can be made up of one or more executable objects

ndash The component interface is published and all interactions are through the published interface

Component Definition

8

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 8: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

8

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 9: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

9

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 10: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

10

What is independent deployment1048774no dependencies on peer-components1048774never partially deployed

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 11: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

11

bull Components general attributes1 Non-context-specific General2 Composable with other components (May consist of other

components)3 Encapsulated (Uses precisely-defined interfaces to

communicate with other components)4 Represents one or more logical or organization-related

processes or tasks (for example purchasing sales or management of master data)

5 Is more coarse-grained than single classes in other words a component usually consists of several logically coherent classes

6 Is unique from other components because a class can be assigned only once to a component

7 Is independent of the release (components can be upgraded and distributed) and can be delivered separately

8 Frameworks form the underlying technology for components

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 12: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

12

CBSE (Component-Based Software Engineering) Definition

bull Component-based software engineering (CBSE) is a branch of software engineering the priority of which is the separation of concerns in respect of the wide-ranging functionality available throughout a given software system

bull Developing new software from pre-built componentsbull Attempt to make an association between SE and other engineering

disciplines

bull It emerged from the failure of object-oriented development to support

effective reuse

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 13: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

13

Reuse via Components

Catalogue of software

components

Customerrequirements

Softwareapplication

ComponentProviders

Componentintegrator

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 14: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

14

Why CBSE

bull Software systems contain many similar or even identical components that are developed from scratch over and over again has led to reuse existing components (reusability- lower cost)

bull Structuring a system into largely independent components make it easy to distribute the components among various engineers to allow parallel development (easier management - Work breakdown in PM)

bull Maintenance Lower cost of maintenance easier to replace and upgrade

bull Better quality and efficiency (next few slides)bull Support distributed systems (next few slides)bull Time-to-mark (next few slides)

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 15: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

15

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 16: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

16

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 17: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

17

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 18: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

18

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 19: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

19

Improve Quality

bull Idea Assuming that a collection of high-quality components is available assembling these should yield systems of high-qualityndash 1The cost of establishing the high quality of

components is amortized over multiple usendash 2Multiple use of a component increases the

likelihood of finding and removing errors

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 20: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

20

Time-to-market

bull If the reuse of a component requires less time than the development of a component systems can be built faster

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 21: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

21

Support Distributed system

bull A computer running several software components is often called an application server Using this combination of application servers and software components is usually called distributed computing The usual real-world application of this is in financial applications or business software that is placed in deferent departments and environment (for example purchasing sales HR management )

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 22: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

22

bull Integration of heterogeneous sourcesndash operating systemsndash programming languagendash network protocolndash data representation

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 23: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

23

Components should provide services to clients

running locally or remotely

Remote CLIENTS

EJB Container

EJB

Remote CLIENTS

Remote CLIENTS

Local CLIENTS

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 24: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

24

CBSE problemsbull Higher initial cost to build (making it more general

more testing etcbull Component certification - who will certify the quality of

componentsbull Requirements trade-offs - how do we do trade-off

analysis between the features of one component and another When reusing components it is essential to make trade-offs between ideal requirements and the services actually provided by available components

bull software development organizations and information services (IS) departments are often in competition with closely guarded proprietary processes

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 25: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

25

Trust-based Certification

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 26: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

26

Background on Software CBSEbull Since early 1990rsquos so-called Componentware or Component-Based

Software Engineering (CBSE) have emerged

bull However the use of COTS (Commercial Off-The-Shelf) software promoted the CBSE in the development business applications

bull Furthermore quick evolution of the Internet technology such as Web and Java-based technologies even open up new possibilities of CBSE such as network distribution of components and the reuse and interoperation of components over the Internet

bull Now a few set of technologies have been widely deployed and are still evolving They include ActiveXDCOM from Microsoft CORBA from OMG and JavaBeans from SUN Microsystems

bull Components are considered to be part of the starting platform for service orientation throughout software engineering for example Web Services and more recently Service-Oriented Architecture (SOA) - whereby a component is converted into a service

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 27: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

27

Time Line

1970rsquos 1980rsquos 1990rsquos 2000

Subroutine

RPC

CORBA

MOM

DCOM

RMI

Web Services

COVERAGE

Cloud Computing

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 28: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

28

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 29: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

29

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 30: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

30

bull If you have used visual component assembly tools such Visual Basic you are familiar with the notion of software components

bull Custom controls are packaged with design-time information (properties and methods) that allow builder tools to determine their capabilities (which allows builder tools to query components and ask them what kinds of properties they define as well as what kinds of events they can generate or respond to)

bull Design time allows Customization (eg change color height)bull Run time allows only execution (eg click button)

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 31: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

31

For example the builder tool above shows a calculator component that is built from

bull16 button components bull a text field componentbull and a panel upon which the buttons and a text display are placed bull you can see five invisible components These specific components

bullhold values or strings used by the calculator for intermediate calculations bulloperation codes bulldisplay strings bullas well a boolean flag to determine when evaluation of a new expression is started

Components can be nested For example a calculator built from components becomes itself a component Custom-built components are easily added to builder tool palettes

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 32: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

32

bull More complex components include barcharts

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 33: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

33

Identifying Business Components

Business Component represent the key business concepts supported by the system including real-word objects (eg lsquocustomerrsquo lsquoaccountrsquo lsquoproductrsquo) and real-world transactions (eg lsquobookingrsquo lsquodepositrsquo lsquoorderrsquo)

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 34: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

34

Components and objects

bull Components are more abstract than objects and can be considered to be stand-alone service

providers bull scale reusable entities Component = many objects in

collaborationbull Single object classes are too detailed and specific to be

reusedbull Components are deployable entitiesbull Components do not define typesbull Component implementations are hiddenbull Components are language-independentbull Components are standardised

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 35: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

35

Component Abstractionsbull Functional Abstractions

ndash component implements a single function ndash component is part of a loosely related functions (add student

add account add book etc) ndash Can be obtained from Requirement Specification Document

bull Data Abstractionsndash abstract data types or objects ndash Can be obtained from ERD or Database Schema

bull Cluster Abstractionsndash component from group of cooperating objectsndash Can be obtained from Class Diagram

bull System Abstractionndash component is a self-contained systemndash Can be obtained from Structural Chart Diagram

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 36: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

36

CBSE vs Traditional SE

bull CBSE views the system as a set of off-the-shelf components integrated within an appropriate architecture

bull SE seeks to create a system from scratch

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 37: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

37

CBSE vs Traditional SE-cont

bull CBSE does not have any standard development models like UML for SE

bull CBSE is young therefore long term maintainability is largely unknown

bull SE can fulfill requirements more easily

bull CBSE fulfillment of requirements is based on the available components

[4]

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 38: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

38

CBSE vs Traditional SE-cont

Process starts by Developing outline requirements before Searching for components then usually modifying these requirements according to available functionality

Outline Requirement

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 39: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

39

Component Specificationbull A component producer starts by identifying the discrete

requirements of the component specification bull more component specification may come from the

component producers desire to provide a generic component

bull As well as the customers component specification there may also be industry standards to apply which map to the concepts of quality performance error handling

bull Typically the design and development of the internals of the component will be carried out using techniques such as the Unified Modeling Language (UML)

3- Component Creating process

1 Component Specification

2 Component Implementation

3 Component Deployment

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 40: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

40

Component ImplementationbullTools for design and code generation may be used within a specific framework Eg NET bullTesting debugging and compilation generally are applied

bullComponent DeploymentbullThe producer will need to publish accurate information about a component such as its available interfaces and its services (this can be done by using the framework wizard

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 41: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

41

Commercial Off-the-Shelf Software repository

bull COTS repository usually have a complete applications library the offering an applications programming interface (API)

bull Building large systems by integrating COTS components is a viable development strategy for some types of systems (eg E-commerce or video games)

bull What do thing the component entry page look like

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 42: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

42

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 43: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

43

Background on Software CBSE

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 44: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

44

Component Warehouse

bull reuse before you buy and before you buildbull Warehouse organization is important as

cataloguing helps to manage and locate components

bull software components required information often referred to as meta data

bull Metadata is a component description in a form of XML ( safety accessibility ) representation in a standard way

bull The standard is a way to support multiple sites and interacting levels of warehouses integration

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 45: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

45

DB

CCI CCI CCI

ERP CRM

SC Provider SC Provider SC Provider

ConsumerSearch Engine

ConsumerSearch Engine

Metadata Metadata Metadata

XML XML XML

33 invoke

ltTitle =CIFPgt ltDescription=ldquothis component isgt ltservice id=exampleServicegt ltservice type=voidgt ltcategory t=001sgt ltservicegt ltDescriptiongt lttitlegt

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 46: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

46

COTS Integration Problems

bull Lack of developer control over functionality and performance

bull Problems with component interoperability as ndash COTS vendors make different user assumptionsndash COTS vendors may not offer users any control over

the evolution of its componentsndash Vendors may not offer support over the lifetime of a

product built with COTS components

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 47: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

47

Legacy system componentization

bull Existing legacy systems that fulfil a useful business function can be re-packaged as components for reuse

bull This involves writing a wrapper component that implements provides and requires interfaces then accesses the legacy system

bull Although costly this can be much less expensive than rewriting the legacy system

bull Only a top-down shallow understanding of the existing system is required

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48
Page 48: 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software Component Have You used Software Component Have You Develop.

48

bull Add a new component layer to the existing system without change to the underlying source code

bull Break one big black box into a number of smaller conceptual black boxes each representing a high-level business component and business services

bull Present the existing system to the outside world as a number of software components

  • Component Based Software Engineering
  • Slide 2
  • Slide 3
  • Slide 4
  • Consider this Scenario
  • What is Software Component
  • Slide 7
  • Slide 8
  • Slide 9
  • Slide 10
  • Slide 11
  • CBSE (Component-Based Software Engineering) Definition
  • Reuse via Components
  • Why CBSE
  • Slide 15
  • Slide 16
  • Slide 17
  • Slide 18
  • Improve Quality
  • Time-to-market
  • Support Distributed system
  • Slide 22
  • Slide 23
  • CBSE problems
  • Trust-based Certification
  • Background on Software CBSE
  • Time Line
  • Slide 28
  • Slide 29
  • Slide 30
  • Slide 31
  • Slide 32
  • Identifying Business Components
  • Components and objects
  • Component Abstractions
  • CBSE vs Traditional SE
  • CBSE vs Traditional SE-cont
  • Slide 38
  • Slide 39
  • Slide 40
  • Commercial Off-the-Shelf Software repository
  • Slide 42
  • Slide 43
  • Component Warehouse
  • Slide 45
  • COTS Integration Problems
  • Legacy system componentization
  • Slide 48