• Tidak ada hasil yang ditemukan

ENGINEERING & TECHNOLOGY - Khulna University

N/A
N/A
Protected

Academic year: 2024

Membagikan "ENGINEERING & TECHNOLOGY - Khulna University"

Copied!
7
0
0

Teks penuh

(1)

KhulnaUniversity Studies3(2): 513

-

519

ENGINEERING

&

TECHNOLOGY

KhulnaUniversityStudies3(2):513-519

BENEFITS OF

USING

COMPONENT

-

BASED APPROACH OVER CONVENTIONAL ONE OF DEVELOPING LARGE

-

SCALE AND COMPLEX SOFTWARE SYSTEM

M

.

K

.

Islam*andM

.

S

.

Hossain

ComputerScience and Engineering Discipline

.

KhulnaUniversity,Khulna-9208,Bangladesh

KUS-01/27-210801

Manuscript received: August 21,2001;Accepted: April 01,2002

Abstract:The idea of conventional software development has been changing from last few years because of rising demands of various software products within short period of time. Developing software from scratch is the main conceptsofconventionalsoftware development considered timeconsumingand costly methods.Buildingsoftwarefrom existing softwaresystemsusingreusablecomponentsis consideredimportant inreducing developmentcostand time.In thispaper, wehave highlightedon both Component-Based and co conventional softwaredevelopment approachand foundouttheir meritsand demeritsinthecontextofdevelopingreliableand efficient large-scale and complexsoftware products.

Keywords:LRUsim;Large-scale;Component-based SoftwareDeveloment;Object-oriented;LEAPs.

Introduction

Developingreliable and efficient large

-

scale softwaresystems within minimum timeand cost is the main concern of expert software

professionals .

Traditional software development approach, which starts from scratch,isunsuccessful to run with thecurrentsoftwareneeds

.

Software productivity is steadily rising

over

the past few decades

.

However,increasing the number of software professionalshas not kept up with the rising demand fordeveloping new ever

more

complex and large software systems and maintainingcurrent software. Component

-

Based Software Development has raised the hope of developing more reliable and complex softwaresystemswithin minimumcostandtime.WithComponent

-

BasedSoftware Development, software productions will become easier, more less expensive,more reliable, moreefficient, less time to develop and less expensivetomaintain.

Current)} :.? rare thatsofrware developed byonedevelopmentgroupis reused by another, and integration opfaaas

are

faredbythepmdnmimmi'vertically integrated" applications paradigm

.

AComponent

-

Based Softnre Development

process can

help the software industry to use the reusable software components properly In this paper, we have discussed in details both Component

-

Based Software Development and Comrational approach and foundouttheirrelativemeritsanddemerits.

Component

-

BasedSoftware DevelopmentProcess

In Component

-

Based Software Development, the notion of building a system by writing code has been replaced with building asystem by assembling and integratingexisting softwarecomponents. Incontrast to traditional development, where system integration is often the tail end of an implementation effort, component integrationisthe centerpieceofthe approach;thus, implementation hasgiven way tointegration as the focus of system construction

.

Because of this, integrality is a key consideration in the decision whether to acquire,

reuse

, or build the components

. A

typical Component

-

Based Software Development shouldcontain thefollowing steps:

Identification

Classification

Storinginarepository

Retrieval

Adaptation

Composition

.

Correspondingauthor:Tel:88

-

041

-

721791,720171

-

3,Fax:88

-

041

-

731244;E

-

mail: cseku@khulna.bangla.net

513

DOI: https://doi.org/10.53808/KUS.2001.3.2.0127-se

(2)

ExistingApplications Components

*

L

_

.

^

Fig

.

1

.

Component

-

Based Development.

Moredetailing,theyare processed likefig.1andusingthe followingsteps:

Partition and extract components from the existing system (using generalization, restructuring and abstraction tools)

Store thecomponentsinarepository

Findout components thatcan bereused

Modify the components tomeetspecificuserrequirements

Build new components ifnotavailable in the repository

Make the extracted components, the modifiedcomponents and the new

-

builtcomponents theoff

-

the

-

shelfcomponents

Supplythe off

-

the

-

shelfcomponentsto users,so thatthey can make softwarethat meet their specific requirementsbysimply assemblingthem

Comparison

Although object

-

orientedtechnologieshavepromoted softwarereuse, thereis

a

biggapbetween thewhole systemsandclasses.To fillthegap,many interesting ideashaveemergedinobject

-

oriented software reuse for last several years.They include software architecture design patterns and framework (Fayad and Schmidt,1997)

.

We haveearliermentioned onsuchreusable softwareelements

.

Component

-

Based Software Developmenttakesdifferent approaches from the conventional software reuse in the followingmanner

.

Plug and Play:Component should beableto plugandplay with othercomponentsand/orframeworks sothatcomponentcanbecomposedatrun

-

timewithout compilation

.

Interface

-

centric: Component should separate the interface from the implementation and hide the implementation details sothat theycanbecomposed without knowing theirimplementation.

Architecture

-

centric: Components are designed on a pre

-

defined architecture so that they can interoperatewithothercomponentsand/or frameworks.

Standardization: Component interface should be standardizedso that they can be manufactured by multiplevendors and widely reusedacrossthecorporations.

Distributionthrough Market: Components canbe acquiredand improvedthoughcompetitionmarket, andprovide incentivesto thevendors.

The nature of Component

-

Based Software Development suggest that the model of component

-

based

softwaredevelopmentshouldbe different from the conventionaldevelopment model

.

Table1summarizes major characteristics of conventional software development and component

-

based software development, which are briefly discussedin the

-

following sections

.

Table1.ComparisonofDevelopmentModels.

.

Characteristics Conventional CBSD

Architecture Monolithic Modular

Components Implementationand White

-

Box Interface and Black

-

Box

Process WaterfallandBig

-

bang Evolutionand Concurrent

Methodology Build from scratch Composition

Organization Monolithic Specialized: ComponentVendor,Broker and

Integrator Newapplication

Generic new

Produced

Generic Modified

Architecture

Component

-

Based SoftwareDevelopmentemphasizes modular architecturesothatwecan partially develop asystemand incrementally enhancethefunctions byadding and/or replacing components.Tomakesuch

514

(3)

Khulna University Studies3(2):513

-

519

design possible, we need a sound foundation of

software

systems, that is, software architecture. Most component

-

based systems

assume

underlying software architecture such as MFC (Microsoft Foundation Class)andCORBA

.

They are provided in the formofframeworks

.

Frameworksare workablereference to the underlyingsoftwarearchitecture

.

Tobeeffective,framework

can

behierarchical upfromdomain independent to domainspecific. Examples include Andersen Consulting’s Eagle project and IBM’

s

San Francisco project (Lazar, 1998)

.

With standardized and modularsoftware architecture,the CBSDcanavoidadhocandmonolithicdesign.

Process

Component

-

BasedSoftware Development makes software development and delivery be evolutional. Since

some

parts of a system can be acquired from the component vendors and/or be outsource to other organizations,

some

partsof software process

can

bedone concurrently

.

Architecture of Software Process

To make software reuse happen, software

process

should be reuse

-

oriented so that designers can

reuse

artifacts at different levels of abstraction along with

software

process

.

Figure 2 illustrates conventional

waterfallprocessandan example of Component

-

BasedSoftwareDevelopment process

.

Component

-

BasedSoftware Development

process

consists of two

processes

;component development and component integration. Since these two

processes

can be done by different organizations, these two processes can be oooconenL Unlike conventional process, Component

-

Based Software Development

process

needa

new

processfor component acquisition.

Conventional CBSD

Process Model ProcessModel

Analysis

1

Analysis Component Requirements

1

Design ComponentOriented Design

Implement

j

Compom1f

:ntComposition Unit Test

r

IntegratedTest IntegratedTest

SystemTest System Test

Fig

.

2

.

Conventional Process and CBSD Process

.

Methodology

Methodologies need to deal with both component development and component composition

. Most

of conventional methodologies such as object

-

oriented methodology

assume

development from scratch and have not provided much help for

reuse -

oriented development

.

Furthermore, plug and play

software

componentsseparated interface from theimplementation and provide

interface

Component

-

BasedSoftware Developmentfocuses

on

composition of components through their interface

.

Compositionalso requiresto design collaborative behavior of multiple components

. So

,

Component -

Based Software Development methodologies need to help interface

-

centric and behavior

-

oriented design such as Catalysis (Souza and Wills,1998)and connection

-

oriented programming

.

Organization

The separation of component development and component integration created a new role of component rroker. Component broker can selland distribute softwarecomponents

.

Sincecomponentdevelopmentand component integration requires different expertise, it is natural to specialize the organizations into
(4)

component vendors and component integrators

.

Thisspecialization will requires the mediators betweentwo organizations,that is, componentbrokers

.

This organization structurecanbe called vendor

-

broker

-

integrator

model(Ning,1996)

.

As the software component vendors have been growing,asoftwarecomponent market is emerging

.

Since softwarecan bedistributed over the Internet, web

-

based software component brokers have emerged(Aoyama et al„1998).

Comparison Results Result: 1

Here we take the comparison results of Component

-

Based Software Development versus conventional software reuse using LRUsimproducts.TheObject

-

Oriented Programming Systems (OOPS) Group at the University of Texas is investigating issues ofOSmemory management.One of their projects is to analyze the locality ofreferences in memory using real program traces

.

Their observation is that randomly generated memory references do not reflect the true usageof memory;the properway toevaluatememory managementschemesistouse realtraces

.

LRUsim isahand

-

codedC++ tool thatmaintainstheLRU orderingofpagesusingcontainerdata structures. LRUsim readsatracefileandmaintainsapagereferencequeue;it records the positionof eachpagein the queueat reference time and promotesthat page to the headof thequeue

.

If thememory size ism pages, references to positions l

..

.m represent page hits; above m are misses (page faults)

.

The idea naturally extends to memory hierarchies: level 1 has m pages,level 2 has n pages, etc

.

LRUsim is an interesting application for Component

-

Based Software Development for many reasons.First,performance is critical:

LRUsim runtimes

are

measured in hoursordays

.

Second,LRUsim's data structuresareC++templates

.

They are relatively simple structures(

e

.g.,splay trees) that require no sophisticated optimizations

.

Not so for LRUsim: the retrieval predicates only specified primary keys

.

Thus, there was no need for predicate

manipulation;therewere

no

obvious opportunities for optimization

.

Lookingatthis problem from another perspective,LRUsim's datastructureswereimplementedastemplates (i

. e .

compositional components).Forsuch asimple application, the useof transformational generators in CBSD process seemed to be overkill

.

Yet, initial results suggested otherwise: our Component

-

Based Software Development version of LRUsim ran30% faster than the C++ version. Although LRUsim had undergone extensive tuningby theOOPS group, we discovered a performance bug

.

Uponcorrecting the C++version ofLRUsim,benchmarks indicated thattheCBSDversion was stillabout6%faster(see right¬ most columns of Table 2)

.

Thus, even in situations where few or no optimizations are applied, the performance of thesoftware produced byCBSD wasvery good(i.e.,comparableto programs hand

-

coded and tuned byexperts)

.

Table2. LRUsimExecutionTimes.

TraceFile #of Memory References

LRUsim(CBSD)

run

-

time(sec) (LRUsimC++)run¬

time(sec)

Speedup Over C++ Original

LRUsim (C++ corrected) run

-

time(sec)

Speedup Over C++

Corrected

Tex 200K 100 130 30% 108 8%

Spice 200K 115 153 33% 124 8%

Ghostscript 107M 64K 84.2K 31% 66.3K 4%

Expresso 592M 378K 482K 27% 402K 6%

We learned important lessons from this experiment: synthesized algorithms have a higher probability of performing better(and for thesame reasons are morereliable)than hand

-

coded algorithms.Remember,we arenotusing formal methodstogenerate software,nor

are

we synthesizing customized algorithms (Smith,

1990), but merely gluing pre

-

written algorithms together

.

Soourapproach tosoftwaresynthesis is quite simple

.

Thereasonforimproved performance is that the authorsof generator componentsfocus theirattention on coding the most efficient implementation of a setof algorithms fora highly constrained problem

.

(

In

the case of Component

-

Based Software Development, these are algorithms for a particular data structure)

.

Consequently, much more effort is focussed on optimizing what would otherwise be called "minute"

coding details

.

516

(5)

KhulnaUniversityStudies3(2):513

-

519

Coding a data structure from scratch that corresponds to a composition of components typically requires fartoomanydetailstokeepstraightandtooptimize

.

It isimpracticaland tootime consuming for programmers tooptimizecode at thesame level of detail

.

Programmershave finite time and energy,and attempt only a fraction of these optimizations

.

For this reason, the synthetic algorithms manufactured by CBSDwilloftenoutperformtheirhand

-

written counterparts

.

Stated another way,components generate locallyoptimalcode

.

Composing locally optimal code fragments doesn't guaranteeglobal optimality

.

So it is always possible to handcraft code that will out perform that which is produced by agenerator. But the issue is "At what cost

?

"

.

Just as it is possible for humans to outperform optimizing compilers by hand

-

coding assembly statements, it is generally not considered practical;the qualityofcompileroutput isgood enough compared to the productivity advantages gainedin programming in higher

-

level languages

.

Sotooit

seems

forusinggenerators.

Componentsrepresent repositories for"bestpractice"approachesforbuilding software:theycanencapsulate coding tricks and proven

-

effective approaches for implementing their "feature" in

an

efficient way

.

Overtime,additional effort

is

putinto components sothat the code thatthey produceimproves even further,

so

that itis better(

on

average)thananythingindividualsor

even

groupsof

programmers

can produce. Thus, composing locally optimal componentsproduces verygoodsoftware

.

Itisinteresting to note that therewere productivity improvementsinbuildingLRUsim with CBSD

.

The C++ versionof LRUsim is 6600 lines; theComponent

-

Based Software Development version is about 2500 lines

.

The largestCBSDfunction has52linesofcode;CBSDexpands thisto 1300 lines.Once again,by raising the levelof abstraction,thecomplexity ofan application is substantially reduced. In ourexitsurveyswith the OOPS group, they believe that theability to compactly write complicated codeisCBSD's major benefit

.

It

enabledrevisionsandrestructuringthat they believed would be difficultorimpossible toperformby hand

.

Result: 2

In

this result

. We use

another popular products LEAPS

.

LEAPS is a production system compiler that producesthefastest executables of OPS5rulesets

.

LEAPStranslates

an

OPS5rule set

aset of rules with actions to beperformedwhen a rule is fired

into

a

C program

.

When theC programexecutes,it fires these rules ataratewhich canbe

an

order of magnitude

or

more fasterthanOPS5interpreters

.

LEAPS is aninterestingapplicationbecause the Cprogramsthat it generates relies

on

unusualcontainerdata structures andsearchalgorithms thatare unlikelytobefoundinanygeneric data structure library. LEAPSis also

a

performance

-

driven application;it was hand

-

tuned and hand

-

coded by experts

.

Finally, it was well known that theLEAPS algorithms were difficulttounderstand

.

Our CBSDversionof LEAPS,called RL, performed much better than wehad imagined. Wehada 4

-

fold reductionin code volume:LEAPS is 20Klines of code;RL wasabout5K

.

CBSD(which itself is 50

K

lines ofcode) provided uswithtremendousleverage

.

In fact,our productivity in buildingRL was at the rate at

which

experts in the domain could code

,

yet we certainly

were

novices: wehadneverdealt with rule systems priortoRL

.

Whenwe benchmarkedthe Cfilesproduced byLEAPSand RL,we foundthat,on average,the RL

-

producedfilesexecutedabout50% faster than LEAPS executables(Batory,Thomas and Sirkin, 1994). Uponcloserinspection,wediscoveredthata contributing factor wasthatCBSDcouldperformoptimizations automaticallythatwere difficult, ifnotimpractical,todoby hand

.

Finally,our CBSDspecifications of the LEAPS algorithms(expressed intermsofcursorsand containers)

were

very cleanandeasytounderstand

.

It revealed theunderlying eleganceof LEAPS,but alsosuggested waysin which toimprove its performance byswapping/adding CBSDcomponents to the type equations that defined theimplementations of LEAPS containers.

Figure3shows theperformanceresults fora typical ruleset, waltz

.

TheY

-

axis indicates

run -

time inseconds

(logarithmic, base 10); the

X -

axisshows data set size

.

The toptwo

curves

showthe performance of two versions of LEAPS: the highest (slowest) is the persistent version called DATEX. (DATEX containers resided in persistent storage that used the relational storage manager of Genesis(Batory, Barnett, Garza,

Smith,Tsukuda,Twichell and Wise,1988). LEAPS(which usedtransientcontainers)is the second highest curve.The performance of RL (for both transient and persistent versions) is the two lines below that of LEAPS

.

Thepersistentversionof RL was achieved byunpluggingthe transient component and replacing it with a memory

-

mapped persistent component

.

(Because memory mapped I/O only results in a degradation ofabout 10%,therewaslittleperformance difference betweentransient and persistentversions ofRL).

517

(6)

We mentioned earlier that because theCBSDspecificationof LEAPS revealed thesource of much of the CPUoverhead,weintroduced

new

hashingcomponents/data structurestothe type equation that defined RL containers

.

By doingso,wewere able to improve performance further(the bottom

-

mostcurvesofFigure3)

.

Ourpersistent hashed

-

version ofRL ran over 40 times fasterthanLEAPS!(BatoryandThomas.)

u

R N

I N G

T I M E

waltz 100000

10000

1000

100

10

1

.• •

.

-

• • •I

1 -

.

•••••

DATEX

RLhash-transient

InputDataSet Size(Tuples)

Fig

.

3

.

Performance Comparison of RL with LEAPS running time

We

learned

an

importantlesson in software quality from our experiments

:

abstracting voluminous and complex implementation details promotes clean, efficient, and understandable designs

.

Moreover, organizingfewer details often leads to

more

maintainable products

.

In our case, it wasvery easy toalter design decisionsafter

we

had built RL:wesimply redefined type equations(to alter theimplementationof its containers)and recompiled;noother

source

codewaschanged.

Conclusion

Component

-

Based Software Development hasa lot of benefits overconventionalone of developing more reliable and efficient large

-

scale and complex software systems

.

Definitely, Component

-

Based Software Development approach will be the future of software development process toservethe rising demands of software products

. In

this paper, we have discussed in details about the benefits of Component

-

Based

Software Development

over

conventional approach and also shown

some

comparison results using few practical examples

. In

futureonecan try to analyze both these approaches moreseriously and give

some

fruitful and systematicdirections onthese evolutionaryfields

as

well.

References

Fayad,M. E.andSchmidt,D

.

C

.

,1997.Object

-

Oriented Application Frameworks,CACM, 40(10)

.

Lazar,B.,1998

.

IBMs,SanFrancisco Project,Software Development,6(2): 40

-

46

.

Souza,D. F. D.and Wills,A

.

C

.

,1998.Objects,Components and Frameworks withUML:TheCatalysis Approach,Addison Wesley,http://www

.

iconcomp

.

com

.

Ning,J

.

,

1996

.A Component

-

Based SoftwareDevelopmentModel,Proc. COMPSAC, pp

.

389

-

394

.

Aoyama, M

.

, et al, 1998

.

An Architectureof SoftwareCommerce Brokerover the Internet, Proc.WWCA (Worldwide Computing and ItsApplications)98,LNCS,1368(1):97

-

107

.

Smith,D.R.,1990. KIDS: A Semiautomatic Program DevelopmentSystem,IEEETransactionsonSoftware Engineering,pp

.

1024

-

1043

.

518

(7)

KhulnaUniversityStudies3(2):513

-

519

Batory,D.,Barnett,J

.

, Garza,J

.

,Smith, K., Tsukuda, K., Twichell, B

.

, and WiseT

.

, 1988.Genesis:An Extensible Database Management System, IEEE Transactions on Software Engineering, pp.1711

-

1730

.

519

Referensi

Dokumen terkait

Al Ain University of Science and Technology College of Engineering & Information Technology Engineering.aau.ac.ae /AAU.UAE /AAU_UAE /AAU_UAE /alainuniversity Abu Dhabi: Tel:

Rajshahi University of Engineering & Technology Department of Mechatronics Engineering Course No.. Marks Roll

1 line gap Heaven’s light is our guide Monotype Corsiva, 12 font Rajshahi University of Engineering &Technology, Bangladesh times, 17 font Department of Mechanical

Rajshahi University of Engineering & Technology Institutional Quality Assurance Cell IQAC Office of the Director Proposed Schedule of daylong workshop on “ Conducting Online Class

32 of 2003 This act is made to establish a university named as Rajshahi University of Engineering & Technology by upgrading and converting Bangladesh Institute of Technology, Rajshahi

Independent University, Bangladesh IUB School of Engineering, Technology and Sciences FACULTY SEARCH Full-time position Independent University, Bangladesh IUB, one of the leading

International Journal of Engineering & Technology, 7 2.15 2018 146-149 International Journal of Engineering & Technology Website: www.sciencepubco.com/index.php/IJET Research Paper

fa.aF-f* aeifRE:, fiaswhfl ® fas cat qrm5 rmffltma fflitfvi 5iT gmtTr qltE5 cq, faienffl ¢cflitlioi?*il crfe-»}qca atgiv an online € 5Tq55T FTrfu q`naEft fae55 an ngiFr i JF farm a&ma