AccessMyLibrary provides FREE access to over 30 million articles from top publications available through your library.

A Software Engineering Perspective on Algorithmics.

ACM Computing Surveys

| March 01, 2001 | WEIHE, KARSTEN | COPYRIGHT 2001 Association for Computing Machinery, Inc. This material is published under license from the publisher through the Gale Group, Farmington Hills, Michigan.  All inquiries regarding rights should be directed to the Gale Group. (Hide copyright information)Copyright

1. INTRODUCTION

By a component we mean an encapsulated piece of code, which is not intended to be a stand-alone module, but to perform a specific task within a large software package or even within several distinct software packages. For example, every subroutine may be viewed as a component in this sense, because the functional details are encapsulated by the interface of the subroutine. Abstract data types (see Appendix B) are a more sophisticated example of components in this sense, because unlike subroutines, they are able to encapsulate state information in addition to the pure functionality.

We will discuss the problem of designing efficient, adaptable implementations of algorithm components. In practice, adaptability is important for several reasons:

--Throughout the lifetime of a project, the requirements on the functionality of a single component may change repeatedly. Reimplementing this component from scratch repeatedly is expensive and often infeasible. Extensive modifications of the core of the component are error-prone(1) and also often infeasible. In particular, extensive modifications of sophisticated algorithmic codes are error-prone. Ideally, adapting an algorithm component to changing requirements should amount to straightforward "error-proof" modifications of a few small, nonalgorithmic pieces of customization code (see Appendix A for the exact usage of this term in this paper).

--Often, software is implemented in a prototypical fashion. This means that first a raw prototype is implemented, which is then refined step-by-step throughout several development cycles. An example is the experimental development of algorithms. In larger projects, such a prototypical approach is feasible only if all components are easily customizable to new, revised versions of the software package.

--Implementing complex components (e.g. sophisticated algorithms) is expensive and requires special expertise. In this respect, it is desirable to have (in-house or third-party) repositories of complex components, which are reusable in many different contexts. However, to be widely reusable, a component must be adaptable to a large range of possible requirements, which are potentially unforeseen in the design phase of this component.

Many libraries offer efficient data structures and algorithms for various algorithmic problem domains. However, an implementation of an algorithm in a library need not fit seamlessly into every application. The integration may enforce significant overhead both in development/maintenance and in run-time efficiency. In some cases, this overhead may be so large that reimplementing an algorithm from scratch might be more practical than reusing an existing implementation.

Related articles from newspapers, magazines, journals, and more
Research from Feng Chia University yields new data on components and packaging...
Newspaper article from: Journal of Technology October 6, 2009 700+ words
...Modules. IEEE Transactions on Components and Packaging Technologies...journal IEEE Transactions on Components and Packaging Technologies can...Mathematics, Optimization Algorithm, Components and Packaging Technology, Feng...
Studies from University of California in the area of diabetes described.
Newspaper article from: Diabetes Week May 4, 2009 700+ words
...that uses all of the components of the clinical system...also includes the algorithm components. The system is unique...the same hardware components for simulations as...the software and the component devices, streamlining...
Altera Announces 'Code:DSP' System Architecture Solutions Seminars; Altera...
Press release article from: PR Newswire April 2, 2003 700+ words
...Altera FPGAs are making them core components across all applications that...pre-optimized, flexible algorithm components that can be parameterized and...on building block processing components. About Altera Altera Corporation...
CHAT LIVE in the only dedicated CHAT ROOM for (OTCBB:BKYI) BIO-key...
Press release article from: M2 Presswire April 29, 2008 700+ words
...key's image enhancement and data extraction core algorithm components. The first feature of the newly patented algorithm...to determine the critical data elements. Another component of the Image Identification System covered by this...
Navy Exploring New Sensor Technologies And Electric Propulsion For Torpedoes.
Newspaper article from: Defense Daily Fein, Geoff May 8, 2006 700+ words
...torpedoes thereby allowing the Navy to increase the component structure, bringing in much more advanced algorithms...several small businesses that are working different algorithm components. CBBAS is the new processor the Navy is putting...
BIO-key(R) Granted Image Identification System Patent for Award Winning...
Press release article from: PR Newswire April 28, 2008 700+ words
...key's image enhancement and data extraction core algorithm components. The first feature of the newly patented algorithm...to determine the critical data elements. Another component of the Image Identification System covered by this...
Altera and The MathWorks Take 'Code:DSP' System Architecture Solutions Seminars...
Press release article from: PR Newswire May 15, 2003 700+ words
...applications. In addition, Altera's comprehensive IP portfolio provides pre-designed, pre-optimized, flexible algorithm components that can be parameterized and integrated into proprietary system architectures, allowing designers to consolidate...
Altera Kicks Off 'Code:DSP' System Architecture Solutions Seminars In North...
Press release article from: PR Newswire April 16, 2003 700+ words
...controlled FPGA-based co-processors. Altera's IP portfolio provides pre-designed, pre-optimized, flexible algorithm components that can be parameterized and integrated into proprietary system architectures, allowing designers to consolidate...
For more facts and information, see all results
©2009 Gale, a part of Cengage Learning. All rights reserved.
About us | FAQs | Contact us | Privacy policy | Terms and conditions
Other Gale sites: Encyclopedia.com | HighBeam Research | Acquire Content | Books & Authors | Goliath | MovieRetriever | Smart QandA