Special issue on component-based software development

  • Authors:
  • T. Ravichandran

  • Affiliations:
  • Rensselaer Polytechnic Institute

  • Venue:
  • ACM SIGMIS Database
  • Year:
  • 2003

Quantified Score

Hi-index 0.00

Visualization

Abstract

Organizations today are in the midst of an unprecedentedtransformation that is driven by developments in informationtechnology and the business use of the Internet. E-Businessapplications are changing the ways and methods of conductingbusiness and delivering goods and services to customers in mostindustries. The effects of these changes on the information systemsdepartments are manifold. One significant effect is the increasedpressure to develop new application systems very rapidly. Internetapplications are complex as they often seek to integrate systemsand processes within and across organizations, use relatively newand unproven technologies and cut across diverse hardware andsoftware platforms. The challenges of managing applicationsdevelopment projects increases even more, when the compresseddevelopment cycle times are taken into account.To meet these challenges, applications have to be designed to beadaptable to business and technology change. This requiresapplications that can be easily upgraded to infuse newfunctionality. An incremental approach wherein transition andevolution of software applications occurs concurrent with businessand technological changes is needed since the traditional "bigbang" approach of accumulating change requests until significantmodifications warrant a new software release is unlikely to meetbusiness needs. Moreover, as organizations move to integrateprocesses across firm boundaries and start exposing internalbusiness applications to the Internet, the ability to protectlegacy software assets while incorporating new technologies becomesnecessary.Component-based Development (CBD) is a new software developmentparadigm that holds the promise of addressing these needs. Thistechnology, which involves building applications usingprefabricated software components and frameworks, leverages theemergence of the middleware and software object standards to makesoftware reuse a reality. It is also expected to move applicationsdevelopment from a craft where in applications are custom coded andbuilt from scratch to a more robust industrial process whereapplications can be assembled using standard software componentsprocured from the marketplace.Componentization offers several advantages. Sincecomponentization encourages the move towards more modular systemsbuilt from reusable software artifacts, it is expected to enhancethe adaptability, scalability, and maintainability of the resultantsoftware. Constructing systems with pretested software componentsis also likely to improve software quality and reliability(Vitharana and Jain, 2000; Lim, 1994; Sprott, 2000). Moreover, CBDhas the potential to increase developer productivity (Lim, 1994),shorten development life cycle (Due, 2000), reduce developmentcosts (Due, 2000; Patrizio, 2000) and generally move softwaredevelopment from a craft to a more robust industrial process.However, using component based development approaches createsunique challenges. The papers for this special issue examine threeimportant aspects that require attention for componentbaseddevelopment to be effectively utilized. First, methods andprocedures for determining component requirements have to bedeveloped. Second, effective methods to search componentrepositories are required. Third, component markets that allow easyprocurement of components and frameworks must evolve. Two papers(one in this issue and another in the previous issue 34:3) addressthe first two aspects while the third paper (published in volume33:3) focused on component markets.Requirements assessment for components is likely to be differentthan in traditional software development. CBD requires developersto think through the interrelationships between various elements ofan application system at a more granular level at a very earlystage in the development process than in traditional developmentapproaches. While on the surface it appears more difficult toeffectively assess component requirements, Jain, Vitharana &Zahedi (this issue) draw from the information processing theory toargue that componentization enables developers to form a betterinternal representation of the problem space and thereby improverequirement determination. Moreover, the knowledge base in the formof component repositories facilitates users information processingduring requirements identification thereby improving outcomes.A rich repository of reusable components is necessary forcomponent-based development. When reuse is attempted, therepository has to be searched for the availability of suitablesoftware artifacts. Effective methods to search softwarerepositories become critical for the identification and retrievalof suitable components. Sugumaran and Storey (34:3) discuss theshortcomings of current query processing approaches and propose asemantic-based approach for component retrieval. Repositoriestypically have one representation for each component and do notcontain information about how each component is used or what itscontent means. When a user searches for a component to satisfy arequirement, they are expected to be very specific about what theyare looking for, which limits the search and the usefulness of theinformation retrieved. They find that more effective componentsearch is possible if queries can be refined through an iterativeprocess that provides semantically meaningful information for theusers.Component-based development becomes truly economical whensoftware components and frameworks are procured rather thandeveloped inhouse. In the last few years, a few component marketshave been established (e.g. www.flashline.com,www.componentsource.com) that sell a variety of components rangingfrom low granularity graphical user interface objects to highgranularity components that offer business functionality. Moreover,some domain specific initiatives have been undertaken wherecomponents supporting core processes in industries, such asfinancial services and insurance are being developed and sold.Despite these developments, the market is relatively immature andhighly supply constrained where developers face difficulties infinding components that meet their requirements in part due toineffective market mediation (Ravichandran & Rothenberger,2003). Hong and Lerch (33:3) argue that a possible explanation forthis slow progress is that the producers of software components donot understand clearly what users (consumers) of softwarecomponents really want. Since current markets of softwarecomponents are still in their infancy, producers of such componentslack a framework for predicting consumer behavior, thus they facehigh uncertainty when it comes to developing software componentsthat can meet consumers' needs. Consequently, learning whatconsumers consider important when evaluating and choosing softwarecomponents is critical for the development of successfulcomponents.To this end, they seek to establish links between the featuresof software components and consumer purchasing behavior. Using asimulated component market they find that consumer preferences havea positive impact on purchasing behavior. They also find thatconsumer preferences are impacted by component characteristics suchas the number and the popularity of the methods incorporated in thecomponents, the functional complexity of the components.The three papers that are part of this special issue wereselected based on three rounds of reviews. Totally nineteensubmissions were received of which three papers were finallyaccepted. I would like to thank the authors for submittinginteresting work and for being very responsive throughout thereview process. I also thank the reviewers for their help andinputs.