15 Software Reuse and Component Based Software …€¦ · CBSE (Component-Based Software...

47
Software Reuse and Software Reuse and Component Component-Based Software Engineering Based Software Engineering Minsoo Ryu College of Information and Communications Hanyang University [email protected] Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr Real-Time Computing and Communications Lab., Hanyang University http://rtcc.hanyang.ac.kr

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

[email protected]

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