1 cbse process: issues and challenges from cbse landscape document chapter from
DESCRIPTION
CBSEnet 3 CBSE ProcessesTRANSCRIPT
1
CBSE Process: issues CBSE Process: issues and Challengesand Challenges
From From CBSE Landscape document CBSE Landscape document
chapterchapter
CBSEnet 22
BackgroundBackgroundCBSE is the CBSE is the processprocess of building software systems of building software systems from pre-fabricated software componentsfrom pre-fabricated software componentsMotivationMotivation
Improving software quality andImproving software quality andReducing development costsReducing development costs
However software component technology is still However software component technology is still immature and poses many challenges for immature and poses many challenges for organisations intending to adopt itorganisations intending to adopt it
Poorly documented componentsPoorly documented componentsVulnerability riskVulnerability riskLimited adaptability of componentsLimited adaptability of componentsLimited interoperability across component Limited interoperability across component technologiestechnologiesComponent volatilityComponent volatility
Many of these problems can be mitigated by a Many of these problems can be mitigated by a better appreciation of the processes for developing better appreciation of the processes for developing component-based systemscomponent-based systems
CBSEnet 33
CBSE Processes
Development for reuse
Component Certification
Local certifier External certifier
Domain analyst Specifier Designer Integrator Maintainer
Development with reuse
CBSE Processes
Designer Implementer
Maintainer
Component librarian Component vendor Component broker
Market analyst Component procurement
Component repository/
marketplace
CBSEnet 44
Development with reuse
Verification Plan
Define system requirements
Design system architecture
Compose system
-Elicit requirements -Rank requirements -Model requirements
-Design abstract architecture -Partition/assign requirements
Deve
lopm
ent
- Establish availability of software components (or services)
-Establish viability of component-based solution
-Perform regression testing
-Analyse architecture -Test subsystem assembly
-Perform non-functional testing
Managem
ent
-Adapt components
Negotiate
Planning and Negotiation
-Test and qualify software components
-Establish component interfaces
-Compose sub-systems
CBSEnet 55
Development processDevelopment process
The planning phase sets out:The planning phase sets out:Justification, objectives, strategies (methods and Justification, objectives, strategies (methods and and resources to achieve the development and resources to achieve the development objectives)objectives)Tactics ( start and end dates, tasks with duration) Tactics ( start and end dates, tasks with duration) for the development projectfor the development project
The development phase implements the agenda The development phase implements the agenda set out in the planning phaseset out in the planning phaseThe verification phase is intended to verify the The verification phase is intended to verify the extent of “fitness” of various component solutionsextent of “fitness” of various component solutionsThe negotiation phase attempts to find an The negotiation phase attempts to find an acceptable trade-off between the software acceptable trade-off between the software components and system being builtcomponents and system being built
CBSEnet 66
Design for development with Design for development with reusereuse
Component-based system designComponent-based system designDescribes how the components that make Describes how the components that make up the system interact to deliver the up the system interact to deliver the desired functionality and,desired functionality and,the appropriateness of particular the appropriateness of particular components and services in different components and services in different contextscontexts
Provides a good basis for performing Provides a good basis for performing impact analysisimpact analysis
CBSEnet 77
Design processDesign processNeed for formal mechanisms that allow the Need for formal mechanisms that allow the designer to define architectural elements and designer to define architectural elements and their relationships and to support their their relationships and to support their evolution through levels of abstraction (UML evolution through levels of abstraction (UML 2.0?, Catalysis, D’Souza ’98; ADLs Shaw, ‘96; 2.0?, Catalysis, D’Souza ’98; ADLs Shaw, ‘96; Medvidovic ‘00)Medvidovic ‘00)
The design process starts with the partitioning of The design process starts with the partitioning of the system requirements (services and associated the system requirements (services and associated constraints) into logical “components” or “sub-constraints) into logical “components” or “sub-systems”systems”The initial partitioning is driven by architectural The initial partitioning is driven by architectural considerations (possibly supported by design considerations (possibly supported by design patterns that lend themselves to those properties)patterns that lend themselves to those properties)Subsequent partitioning is subject to a negotiation Subsequent partitioning is subject to a negotiation process that must take into account business process that must take into account business concerns, architectural considerations and software concerns, architectural considerations and software component considerationscomponent considerations
CBSEnet 88
Management: Maintenance and Management: Maintenance and extended developmentextended development
The maintenance and extended The maintenance and extended development of a component-based development of a component-based application poses many risks to the application poses many risks to the customer (Dean and Vidger ’99)customer (Dean and Vidger ’99)
Nature of the development processNature of the development processApplication domainApplication domainSystem design characteristics System design characteristics Choice of software components usedChoice of software components used
CBSEnet 99
SummarySummaryComponent-based system development is a highly Component-based system development is a highly iterative process requiring simultaneous iterative process requiring simultaneous consideration of:consideration of:
The system context (system characteristics such as The system context (system characteristics such as requirements, cost, schedule, operating and requirements, cost, schedule, operating and support environments), support environments), Capabilities of software components in the Capabilities of software components in the marketplacemarketplaceViable architectures and designsViable architectures and designs
We have identified the challenges and problems We have identified the challenges and problems likely to be faced by component-based system likely to be faced by component-based system developersdevelopersThe importance of verification has been The importance of verification has been emphasised and a discussion of the management emphasised and a discussion of the management challenges of component-based systems providedchallenges of component-based systems providedWe have highlighted the importance of the We have highlighted the importance of the process in mitigating the problems posed by CBDprocess in mitigating the problems posed by CBD
CBSEnet 1010
CBSEnet 1111
CompositionCompositionNeed for formal mechanisms to support Need for formal mechanisms to support system compositionsystem composition
System composition proceeds by replacing abstract System composition proceeds by replacing abstract design level components with concrete design level components with concrete ‘equivalents’ and integrating them‘equivalents’ and integrating themConcrete components might be required to fulfil Concrete components might be required to fulfil certain constraints (cost, architectural, resource certain constraints (cost, architectural, resource etc ) before a replacement is allowed to proceed etc ) before a replacement is allowed to proceed
Support for adaptationSupport for adaptationFor many systems there is need to repair a design For many systems there is need to repair a design “misfit” “misfit” The accompanying integration process may make The accompanying integration process may make use of some "gluing technology", which may be use of some "gluing technology", which may be unrelated to the components:unrelated to the components: To provide an interface between componentsTo provide an interface between components To adapt incompatible componentsTo adapt incompatible components
CBSEnet 1212
VerificationVerification
Component and system testing is a Component and system testing is a critical aspect of component-based critical aspect of component-based developmentdevelopment
Black-box nature of componentsBlack-box nature of componentsPerception of quality may varyPerception of quality may varyExtraneous features Extraneous features
CBSEnet 1313
Testing regimesTesting regimesToTo address these problems, component- address these problems, component-testing regimes should serve the following testing regimes should serve the following aims:aims:
DiscoveryDiscoveryVerificationVerificationFitness for purposeFitness for purposeMaskingMaskingAdequacyAdequacy
CBSEnet 1414
Trust as mechanism for Trust as mechanism for verificationverification
Models of trustModels of trustContractual schemesContractual schemes are intended to are intended to provide provide cover against the effects of cover against the effects of unsatisfactory or unexpected performance of unsatisfactory or unexpected performance of a particular producta particular productCertification schemesCertification schemes are based on the are based on the belief that belief that certified products have undergone certified products have undergone rigorous testing and found to be fit for use rigorous testing and found to be fit for use (conform to certain quality standards)(conform to certain quality standards)Experience-based schemesExperience-based schemes r rely on reputed ely on reputed trusttrustLocal evaluation schemesLocal evaluation schemes strive to strive to establish ‘demonstrated trust’. May be based establish ‘demonstrated trust’. May be based onon Detailed evaluationDetailed evaluation Self certificationSelf certification