15 Software Reuse and Component Based Software …€¦ · CBSE (Component-Based Software...
Transcript of 15 Software Reuse and Component Based Software …€¦ · CBSE (Component-Based Software...
Software Reuse andSoftware Reuse andComponentComponent--Based Software EngineeringBased Software Engineering
Minsoo Ryu
College of Information and CommunicationsHanyang University
Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
ContentsContents
Software ReuseComponents CBSE (Component-Based Software Engineering)Domain EngineeringCBD (Component-Based Development)( p p )
2Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 2Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Software ReuseSoftware Reuse
In most engineering disciplines, systems are designed by composing existing components that have been used in other systems
Software engineering has been more focused on i i l d l t b t it i i d th t toriginal development but it is now recognised that to
achieve better software, more quickly and at lower cost we need to adopt a design process that is basedcost, we need to adopt a design process that is based on systematic reuse
3Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 3Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Software ReuseSoftware Reuse
Application system reuseThe whole of an application system may be reused either by incorporating it without change into other systems (COTS reuse) or by developing application familiesreuse) or by developing application families
Component reuseComponents of an application from sub-systems to single p pp y gobjects may be reused
Function reuseSoftware components that implement a single well-defined function may be reused
4Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 4Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Benefits of ReuseBenefits of Reuse
Increased reliabilityComponents exercised in working systems
Reduced process riskLess uncertainty in development costs
Effective use of specialistsR i d f lReuse components instead of people
Standards complianceEmbed standards in reusable componentsEmbed standards in reusable components
Accelerated developmentAvoid original development and hence speed-up productionAvoid original development and hence speed-up production
5Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 5Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Reuse ProblemsReuse Problems
Increased maintenance costsSource code is not available
Lack of tool supportCASE tools do not support development with reuse
Not-invented-here syndromeS i f iSome engineers prefer to rewrite
Maintaining a component libraryFi di d d ti bl tFinding and adapting reusable components
Software components have to be discovered in a library, understood and, adapted to work in a new environmentunderstood and, adapted to work in a new environment
6Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 6Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
ContentsContents
Software ReuseComponents CBSE (Component-Based Software Engineering)Domain EngineeringCBD (Component-Based Development)( p p )
7Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 7Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Definitions of ComponentsDefinitions of Componentspp
Councill and Heinmann:A software component is a software element that conforms to a component model and can be independently deployed and composed without modification according to aand composed without modification according to a composition standard.
Szyperski:A software component is a unit of composition with contractually specified interfaces and explicit contextcontractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third-parties.
8Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 8Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component as a Service ProviderComponent as a Service Providerpp
The component is an independent, executable entityIt does not have to be compiled before it is used with other components
The services offered by a component are made available through an interface and all componentavailable through an interface and all component interactions take place through that interface
9Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 9Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component Characteristics 1Component Characteristics 1pp
Standardised Component standardisation means that a component that isused in a CBSE process has to conform to some standardised
t d l Thi d l d fi tcomponent model. This model may define componentinterfaces, component meta-data, documentation, compositionand deployment.
Independen t A component should be independen t Š it should be possible toIndependen t A component should be independen t Š it should be possible tocompose and deploy it without having to use other specificcomponents. In situations where the component needsexternally provided services, these should be explicitly set outin a ŌrequiresÕ interface specification.
Composable For a component to be composable, all external interactionsmust take place through publicly defined interfaces. Inaddition, it must provide external access to information aboutitself such as its methods and attributes.
10Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 10Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component Characteristics 2Component Characteristics 2pp
Deployable To be deployable, a component has to be se lf-contained andmust be able to operate as a stand-alone entity on somecomponent platform that implements the component model.This s all means that the component is a binar componentThis usually means that the component is a binary componentthat does not have to be compiled before it is deployed.
Documented Components have to be fully documented so that potentialusers of the component can decide whether or not they meetusers of the component can decide whether or not they meettheir needs. The syntax and, ideally, the semantics of allcomponent interfaces have to be specified.
11Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 11Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component InterfacesComponent Interfacespp
Provides interfaceDefines the services that are provided by the component to other components.
Requires interfaceRequires interfaceDefines the services that specifies what services must be made available for the component to execute as specified.p p
12Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 12Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component InterfacesComponent Interfacespp
13Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 13Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
A Data Collector ComponentA Data Collector Componentpp
14Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 14Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Components vs. ObjectsComponents vs. Objectsp jp j
Objects are not primarily concerned about reuse
Components aim at reuseComponents are deployable entitiesComponents do not define typesC i l iComponent implementations are opaqueComponents are language-independentComponents are standardizedComponents are standardized
15Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 15Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
ContentsContents
Software ReuseComponents CBSE (Component-Based Software Engineering)Domain EngineeringCBD (Component-Based Development)( p p )
16Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 16Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
ComponentComponent--Based Software EngineeringBased Software Engineeringpp g gg g
Reuse is an idea both old and newProgrammers have reused ideas, abstractions, and processes since the earliest days of computing, but the early approach to reuse was ad hocapproach to reuse was ad hoc
CBSE is a process that emphasizes the design and p p gconstruction of computer-based systems using reusable software components
17Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 17Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
ComponentComponent--Based Software EngineeringBased Software Engineeringpp g gg g
Clements describes CBSE in the following wayCBSE is changing the way large software systems are developed. CBSE embodies the “buy, don’t build” philosophy espoused by Fred Brooks and others. In thephilosophy espoused by Fred Brooks and others. In the same way that early subroutines liberated the programmer from thinking about details, CBSE shifts the emphasis from programming software to composing software systemsprogramming software to composing software systems. Implementation has given way to integration as the focus. As its foundation is the assumption that there is sufficient
lit i l ft t t j tifcommonality in many large software systems to justify developing reusable components to exploit and satisfy that commonality
18Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 18Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
ComponentComponent--Based Software EngineeringBased Software Engineeringpp g gg g
A number of questions arise about CBSEIs it possible to construct complex systems by assembling them from a catalog of reusable software components?Can this be accomplished in a cost and time effectiveCan this be accomplished in a cost- and time-effective manner?Can appropriate incentives be established to encourage software engineers to reuse rather than reinvent?Is management willing to incur the added expense associated with creating reusable software components?associated with creating reusable software components?Can the library of components necessary to accomplish reuse be created in a way that makes it accessible to those
h d it?who need it?Can components that do exist be found by those who need them?
19Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 19Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Engineering of ComponentEngineering of Component--Based SystemsBased Systems
On the surface, CBSE seems quite similar to conventional or object-oriented software engineering
But, once an architecture design is established, the team examines requirements to determine what subset is directlyexamines requirements to determine what subset is directly amenable to composition, rather than moving into more detailed design tasks
At this stage, the following questions must be considered
A i l ff th h lf (COTS) t il bl tAre commercial off-the-shelf (COTS) components available to implement the requirement?Are internally developed reusable components available to y p pimplement the requirement?Are the interfaces for available components within the architecture of the system to be built?
20Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 20Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
architecture of the system to be built?
ContentsContents
Software ReuseComponents CBSE (Component-Based Software Engineering)Domain EngineeringCBD (Component-Based Development)( p p )
21Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 21Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
The CBSE ProcessThe CBSE Process
The process of CBSE emphasizes two parallel tracksDomain engineering and component-based development
D i i iDomain engineeringIdentify, construct, catalog, and disseminate a set of software components that have applicability to existing and futurecomponents that have applicability to existing and future software in a particular application domain
CBD (component-based development)Develops a system using reusable components
22Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 22Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
The CBSE ProcessThe CBSE Process
Domain Engineering
DomainAnalysis
DomainDesign
DomainImplementation
Domainmodel
GenericArchitecture
RepositoryReusableArtifacts/
Components
Application Engineering
UserRequirements
SystemAnalysis
Specification&
DesignConstruction
SystemSpec
Analysis& DesignModels
ApplicationSoftware
23Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 23Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Domain EngineeringDomain Engineeringg gg g
The activities of domain engineering include identifying a domain, capturing the commonalities and differences within a domain (domain analysis), constructing an adaptable design (domain design)constructing an adaptable design (domain design), and defining the mechanisms f t l ti i tfor translating requirements into systems created from
bl treusable components (domain implementation)
24Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 24Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Domain AnalysisDomain Analysisyy
Domain analysis is "the process of identifying, collecting, organizing, and representing the relevant information in a domain, based upon the study of existing systems and their development historiesexisting systems and their development histories, knowledge captured from domain experts, underlying theory, and emerging technology within a domain"theory, and emerging technology within a domain
25Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 25Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Domain DesignDomain Designgg
Domain design is the process of developing a design model from the products of domain analysis and the knowledge gained from the study of software requirement/design reuse and generic architecturesrequirement/design reuse and generic architecturesNilson et al. states that "The key to design reuse is to develop and document an architecture that is genericdevelop and document an architecture that is generic enough for most systemsin the domain and thatin the domain and that supports the reuse of code components in thecode components in the domain”
26Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 26Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Structural Modeling and Structure PointsStructural Modeling and Structure Pointsgg
Structural modeling is a pattern-based domain engineering approach that works under the assumption that every application domain has repeating patternsrepeating patterns
Th t t l d l i hit t l t l th tThe structural model is an architectural style that can and should be reused across applications within the domaindomain
(e.g.) Aircraft avionics systems differ greatly in specifics, but all modern software in this domain has the same structural
d lmodel
27Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 27Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Structural Modeling and Structure PointsStructural Modeling and Structure Pointsgg
A “structure point” is a construct within a structural model
A structure point is an abstraction that should have a limited number of instances Restating this in object oriented jargonnumber of instances. Restating this in object-oriented jargon, the size of the class hierarchy should be smallThe rules that govern the use of the structure point should be easily understood. In addition, the interface to the structure point should be relatively simpleThe structure point should implement information hiding byThe structure point should implement information hiding by hiding all complexity contained within the structure point itself. This reduces the perceived complexity of the overall systemsystem
28Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 28Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Examples of Structure Points (Alarm Systems)Examples of Structure Points (Alarm Systems)
An interface that enables the user to interact with the systemA bounds-setting mechanism that allows the user to
bli h b d h b destablish bounds on the parameters to be measuredA sensor management mechanism that
i t ith ll it icommunicates with all monitoring sensorsA response mechanism that reacts to the input provided by the sensor management systemprovided by the sensor management systemA control mechanism that enables the user to control the manner in which monitoring is carried outthe manner in which monitoring is carried out
29Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 29Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Generic Structure PointsGeneric Structure Points
Application front- endThe GUI including all menus, panels, and input and command editing facilities
DatabaseDatabaseThe repository for all objects relevant to the application domain
C t ti l iComputational engineThe numerical and nonnumerical models that manipulate data
Reporting facilityThe function that produces output of all kinds
Application editorThe mechanism for customizing the application to the needs of specific users
30Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 30Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
p
Domain ImplementationDomain Implementationpp
Domain implementation is the process of identifying and creating reusable components based on the domain model and generic architecture
C t bl t hi h t l d i tCreate reusable assets which are catalogued into a component library for use by application engineersThese reusable components are the principal outputs of this p p p pphase of domain engineeringCreation, management, and
i t f itmaintenance of a repository of reusable assets is also an important part of domainimportant part of domain implementation
31Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 31Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Identifying Identifying Reusable ComponentsReusable Componentsy gy g pp
Is component functionality required on future implementations?How common is the component's function within the domain?How common is the component s function within the domain?Is there duplication of the component's function within the domain?Is the component hardware dependent?Is the component hardware-dependent?Does the hardware remain unchanged between implementations?Can the hardware specifics be removed to another component?I th d i ti i d h f th t i l t ti ?Is the design optimized enough for the next implementation?Can we parameterize a non-reusable component so that it becomes reusable?I th t bl i i l t ti ith lIs the component reusable in many implementations with only minor changes?Is reuse through modification feasible?C bl t b d d t i ldCan a non-reusable component be decomposed to yield reusable components?How valid is component decomposition for reuse?
32Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 32Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
ContentsContents
Software ReuseComponents CBSE (Component-Based Software Engineering)Domain EngineeringCBD (Component-Based Development)( p p )
33Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 33Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
ComponentComponent--Based DevelopmentBased Developmentpp pp
Once an architecture has been established, it must be populated by componentsThe task flow of CBD has two parallel paths
When reusable components are available, they must be qualified and adaptedWhen new components are required they must beWhen new components are required, they must be engineered
UserRequirements
SystemAnalysis
ArchitecturalDesign Qualification
Ad t ti
Component
ComponentAdaptation
CompositionComponentEngineering Testing
Component
34Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 34Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component QualificationComponent Qualificationpp
Sources of reusable componentsIn-house, existing applications, and third parties
Component qualificationThis ensures that a candidate component will perform the function required will properly “fit” into the architecturalfunction required, will properly “fit” into the architectural style specified for the system, and will exhibit the quality characteristics (e.g., performance, reliability, usability) that
i d f h li iare required for the application
35Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 35Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component QualificationComponent Qualificationpp
Factors to be considered during qualificationapplication programming interface (API)development and integration tools required by the componentcomponentrun-time requirements including resource usage (e.g., memory or storage), timing or speed, and network protocolservice requirements including operating system interfaces and support from other componentssecurity features including access controls andsecurity features including access controls and authentication protocolembedded design assumptions including the use of specific numerical or non-numerical algorithmsexception handling
36Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 36Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component AdaptationComponent Adaptationp pp p
Even after a component has been qualified, conflicts i fmay occur in one or more areas of concern
To avoid these conflicts, an adaptation technique called “component wrapping” is often usedcalled component wrapping is often used
White-box wrapping• When a software team has full access to the internal design
d d f tand code for a component• Code-level modifications to remove any conflicts
Gray-box wrappingy pp g• When the component library provides a component extension
language or APIBlack-box wrappingBlack-box wrapping
• Requires the introduction of pre- and post-processing at the component interface
37Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 37Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component IncompatibilityComponent Incompatibilityp p yp p y
Parameter incompatibility Operations have the same name but are of different types
Operation incompatibilityThe names of operations in the composed interfaces are different
Operation incompletenessOperation incompletenessThe provides interface of one component is a subset of the requires interface of another
38Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 38Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Adaptor for Data CollectorAdaptor for Data Collectorpp
39Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 39Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component CompositionComponent Compositionp pp p
An infrastructure must be established to bind components together
The infrastructure (usually a library of specialized components) provides a model for the coordination
f t d ifi i th t blof components and specific services that enable components to coordinate with one another and perform common tasksperform common tasks
40Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 40Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component CompositionComponent Compositionp pp p
Architectural ingredients for composition include:Data exchange model
• Mechanisms that enable users and components to interact and transfer data should be defined for all reusableand transfer data should be defined for all reusable components
Automation• A variety of tools, macros, and scripts should be implemented
to facilitate interaction between reusable componentsStructured storageStructured storage
• It should be possible to freely navigate to locate, create, or edit data contents
Underlying object model• Components written in different languages that reside on
different platforms can be interoperable
41Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 41Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
different platforms can be interoperable
Types of CompositionTypes of Compositionyp pyp p
Sequential composition (a)The composed components are executed in sequenceThis involves composing the provides interfaces of each componentp
Hierarchical composition (b)One component calls on the services of another
f fThe provides interface of one component is composed with the requires interface of another
Additive composition (c)p ( )The interfaces of two components are put together to create a new component
42Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 42Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Types of CompositionTypes of Compositionyp pyp p
43Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 43Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Component EngineeringComponent Engineeringp g gp g g
Even though the CBSE encourages the use of existing components, there are times when new software components must be developed and integrated with existing COTS and in houseintegrated with existing COTS and in-house components
Because these new components become members of the in-house library of reusable components theythe in house library of reusable components, they should be engineered for reuse
44Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 44Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Analysis and Design for ReuseAnalysis and Design for Reusey gy g
Nothing is magical about creating software components that can be reused
Design concepts such as abstraction, hiding, functional independence, and refinement all
t ib t t th ti f ft tcontribute to the creation of software components that are reusable
45Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 45Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Analysis and Design for ReuseAnalysis and Design for Reusey gy g
Binder suggests a number of key issues that form a basis for design for reuse (DFR)
Standard dataTh li ti d i h ld b i ti t d d t d d• The application domain should be investigated and standard global data structures should be identified
Standard interface protocolsp• Three levels of interface protocol should be established• Intramodular interfaces, external technical interfaces, and the
h / hi i t fhuman/machine interfacesProgram templates
• The structure model can serve as a template for theThe structure model can serve as a template for the architectural design of a new program
46Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 46Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr
Economics of CBSEEconomics of CBSE
QualityIn a study conducted at Hewlett Packard
• The defect rate for reused code is 0.9 defects per KLOC• The defect rate for newly developed software is 4 1 defectsThe defect rate for newly developed software is 4.1 defects
per KLOCProductivity
It appears that 30 to 50 percent reuse can result in productivity improvements in the 25—40 percent range
CostThe cost to develop a reusable component is often greater than the cost to develop a component that is specific to one applicationapplicationBe sure that there will be a need for the reusable component in the future
47Real-Time Computing and Communications Lab., Hanyang University
http://rtcc.hanyang.ac.kr 47Real-Time Computing and Communications Lab., Hanyang Universityhttp://rtcc.hanyang.ac.kr