1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software...
-
Upload
lorraine-arnold -
Category
Documents
-
view
232 -
download
5
Transcript of 1 Component Based Software Engineering. 2 What is Software Component Have you Seen Software...
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-
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
-