Software Reuse: A Standards-Based Guide

Overview

Reuse is one of the simplest and oldest concepts in programming - and one that is often underutilized. When implemented purposefully and correctly, reuse can save time and money as well as create an inventory of valuable and reusable software assets. Dr. Carma McClure, one of the principal writers of the IEEE's Software Reuse Standard 1517, provides clear, concise, and applied information to make effective software reuse based on the reuse standard a reality.

This book provides ...

See more details below
Available through our Marketplace sellers.
Other sellers (Paperback)
  • All (10) from $1.99   
  • Used (10) from $1.99   
Close
Sort by
Page 1 of 1
Showing All
Note: Marketplace items are not eligible for any BN.com coupons and promotions
$1.99
Seller since 2006

Feedback rating:

(59913)

Condition:

New — never opened or used in original packaging.

Like New — packaging may have been opened. A "Like New" item is suitable to give as a gift.

Very Good — may have minor signs of wear on packaging but item works perfectly and has no damage.

Good — item is in good condition but packaging may have signs of shelf wear/aging or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Acceptable — item is in working order but may show signs of wear such as scratches or torn packaging. All specific defects should be noted in the Comments section associated with each item.

Used — An item that has been opened and may show signs of wear. All specific defects should be noted in the Comments section associated with each item.

Refurbished — A used item that has been renewed or updated and verified to be in proper working condition. Not necessarily completed by the original manufacturer.

Good
Former Library book. Shows some signs of wear, and may have some markings on the inside. 100% Money Back Guarantee. Shipped to over one million happy customers. Your purchase ... benefits world literacy! Read more Show Less

Ships from: Mishawaka, IN

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$1.99
Seller since 2008

Feedback rating:

(585)

Condition: Good
2001 Trade paperback Good. Go green, recycle! Book may have wear from reading, may contain some library markings. Trade paperback (US). Glued binding. 318 p. Contains: ... Illustrations. Software Engineering Standards Series. Read more Show Less

Ships from: Toledo, OH

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$1.99
Seller since 2008

Feedback rating:

(585)

Condition: Good
2001 Trade paperback Good. Go green, recycle! Book may have wear from reading, may contain some library markings. Trade paperback (US). Glued binding. 318 p. Contains: ... Illustrations. Software Engineering Standards Series. Read more Show Less

Ships from: Toledo, OH

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$1.99
Seller since 2009

Feedback rating:

(6727)

Condition: Very Good
Nice condition with minor indications of previous handling. Book selection as BIG as Texas.

Ships from: Dallas, TX

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$1.99
Seller since 2009

Feedback rating:

(25550)

Condition: Good
Giving great service since 2004: Buy from the Best! 4,000,000 items shipped to delighted customers. We have 1,000,000 unique items ready to ship! Find your Great Buy today!

Ships from: Toledo, OH

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$1.99
Seller since 2009

Feedback rating:

(1196)

Condition: Good
Good book, great price! We ship daily via USPS. Buy with the best! BN

Ships from: Toledo, OH

Usually ships in 1-2 business days

  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$5.64
Seller since 2008

Feedback rating:

(3413)

Condition: Like New
Covers clean and crisp. Pages clean and bright with tight binding.

Ships from: San Jose, CA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$5.64
Seller since 2008

Feedback rating:

(3413)

Condition: Like New
Covers clean and crisp. Pages clean and bright with tight binding.

Ships from: San Jose, CA

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
  • Express, 48 States
  • Express (AK, HI)
$13.99
Seller since 2014

Feedback rating:

(37)

Condition: Good
Buy with Confidence. Excellent Customer Support. We ship from multiple US locations. No CD, DVD or Access Code Included.

Ships from: Fort Mill, SC

Usually ships in 1-2 business days

  • Standard, 48 States
$21.24
Seller since 2010

Feedback rating:

(15)

Condition: Good
Good Ships from UK in 48 hours or less (usually same day). Your purchase helps support the African Children's Educational Trust (A-CET). Ex-library, so some stamps and wear, but ... in good overall condition. 100% money back guarantee. We are a world class secondhand bookstore based in Hertfordshire, United Kingdom and specialize in high quality textbooks across an enormous variety of subjects. We aim to provide a vast range of textbooks, rare and collectible books at a great price. Through our work with A-CET we have helped give hundreds of young people in Africa the vital chance to get an education. We provide a 100% money back guarantee and are dedicated to providing our customers with the highest standards of service in the bookselling industry. *****PLEASE NOTE: This item is shipping from an authorized seller in Europe. In the event that a return is necessary, you will be able to return your item within the US. To learn more about our European sellers and policies see the BookQuest FAQ section***** Read more Show Less

Ships from: Waltham Abbey, United Kingdom

Usually ships in 1-2 business days

  • Canadian
  • International
  • Standard, 48 States
  • Standard (AK, HI)
Page 1 of 1
Showing All
Close
Sort by
Sending request ...

Overview

Reuse is one of the simplest and oldest concepts in programming - and one that is often underutilized. When implemented purposefully and correctly, reuse can save time and money as well as create an inventory of valuable and reusable software assets. Dr. Carma McClure, one of the principal writers of the IEEE's Software Reuse Standard 1517, provides clear, concise, and applied information to make effective software reuse based on the reuse standard a reality.

This book provides specific instructions for implementing reuse within the context of the IEEE Software Reuse Process Standard 1517 as well as the IEEE/EIA Standard 12207 - Standard for Information Technology Software Life Cycle Processes. This new guide aids the reader in interpreting the meaning of the standard, implementing the standard, and applying the standard. Like IEEE Std. 1517, this book is written for both managers and technical personnel involved in acquiring, supplying, or developing software applications and systems or reusable assets.

Read More Show Less

Product Details

  • ISBN-13: 9780769508740
  • Publisher: Wiley
  • Publication date: 7/28/2001
  • Series: Software Engineering Standards Series , #10
  • Edition number: 1
  • Pages: 318
  • Product dimensions: 6.97 (w) x 10.14 (h) x 0.64 (d)

Meet the Author

Carma McClure is Vice President of Research at Extended Intelligence, Inc., a Chicago-based company offering reuse methodology services and products. She has lectured about and consulted on software technologies such as maintenance, re-engineering, CASE, repositories and reuse, for major corporations, military and government organizations worldwide. She has written numerous articles and published ten software engineering books.

She served as chairperson of the Reuse Process Working Group of the IEEE Software Engineering Standards Committee which wrote IEEE Std. 1517 Reuse Processes.

Dr. McClure received a B.A. in Mathematics from Loyola University and an M.S. and Ph.D. in Computer Science from Illinois Institute of Technology. She is a professor at the Illinois Institute of Technology and the Kellog Graduate School of Management at Northwestern University. She also served as an ACM National Lecturer. E-Mail: 7373302037@Compuserve.com.

Read More Show Less

Read an Excerpt

Software Reuse

A Standards-Based Guide
By Carma McClure

John Wiley & Sons

ISBN: 0-7695-0874-X


Chapter One

Introduction to IEEE Std. 1517-Software Reuse Processes

1.1 Reuse is Boring!

Software reuse is the process of building or assembling software applications and systems from previously developed software parts designed for reuse. Software reuse is practiced to save time and money, and to improve quality.

Although a potentially powerful technology, reuse has never been counted among the most interesting software topics. In truth, most software professionals consider reuse downright boring. After all, who would find a worn-out subject as old as programming itself interesting? For years, we have been hearing about the benefits reuse offers, but have yet to see them realized in practice. Even when the popularity of object-oriented development (OOD) brought the notion of reuse to the forefront, the software community was disappointed because less object reuse was achieved than expected. Reuse, it seems, is not an automatic byproduct of OOD.

1.2 The Next Form of Reuse

In the future, however, reuse is likely to elicit a very different reaction. The next form of reuse will be the key enabler of the world trade of software via the World Wide Web. Reuse via the Web has already captured the imagination of the software industry and business community at large. After all, who would not be interested in the primary enabler of an emerging multi-billion dollar industry that promises to turn the traditional software development approach upside down?

The next form of reuse centers on components and component-based development. Figure 1-1 shows the projected growth for the component industry over the next few years. Components are expected to be the primary driver of the dramatic changes about to take place in software development.

Components lie at the very heart of the future vision of computing. Corporations expect that they soon will be running their businesses using Web-enabled, enterprise business applications composed from predefined, reusable, and replaceable components distributed over networks. Although part of the application may run on a client, part on the middle-tier, and another part on a backend database server, its comprising components-written in different languages and supplied from multiple sources-will work together to perform the application's services.

Component-based applications offer the advantages of being both easily customized to meet current business needs and easily modified to meet changing business needs over time. Also, they leverage a corporation's investment in its legacy systems by containing valuable existing functionality wrapped into reusable components. Thus, component-based applications are likely to be composed of an interacting mixture of pre-developed components that preserve the business' core functionality and new components that take advantage of the newest technologies, such as the Internet. Today, examples of components include objects written in languages such as Smalltalk, C++, and Java, and other software parts such as Active X controls and design frameworks.

1.3 Components

A component may be thought of as an independent module that provides information about what it does and how to use it through a public interface, while hiding its inner workings. The interface identifies the component, its behaviors, and interaction mechanisms.

The idea of components is not new. Fundamental to the component concept are the predecessor software engineering concepts of program modularization, structured programming, and information hiding, which were introduced in the 1960s by Edgar Dijkstra, David Parnes, and others.

Although as of yet there is no industry consensus on the definition of a component, there is some agreement on the properties that a component is expected to have. For instance, a component should provide a set of common functionality that may be used as a self-contained building block in the construction of software applications. In addition, a component should have a well-defined interface, hide implementation details, fit into an architecture, be easily replaced, and have the ability to inter-operate with other components. Finally, a component should be reusable in many different software applications and systems.

Szyperski's definition of a component emphasizes the importance of the interface and context specification of a component as well as its independent nature:

A software component is a unit of composition with contractually specified interfaces and explicit context dependencies only. A software component can be deployed independently and is subject to composition by third parties.

Table 1-1 is a list of components compiled from several recent software publication articles on the topic. The components listed include examples of small-grained, desktop-bound visual components (e.g., GUI widgets), as well as large-grained components that capture a complete business function (e.g., a shipping component that includes order entry and shipment functionality).

The list of components illustrates how the industry's notion of components has evolved over the last decade. At first, the term component typically was used to refer to compound documents (e.g., OpenDoc components and Microsoft's Object Linking and Embedding (OLE) components), and then also to refer to binary and source code components (e.g., Active X Controls and CORBA components). Later, due to the market's drive to expand component technology beyond the desktop to the server, the concept of components was enlarged to include more abstract and larger-grained components, such as design templates, frameworks, and even application packages. In contrast to earlier components, most of which were visual and client-based, these types of components (e.g., Enterprise JavaBeans, SAP AG's R/3 Package, IBM's San Francisco Project, VISIX Software's Galaxy, Template Software's SNAP) are often non-visual, backend, and server-based. They implement infrastructure services such as event notification, backend services such as transaction processing, and business functions such as shipping.

1.3.1 Beyond Objects

Today, components are seen as a step beyond objects. Like objects, components use contractually specified interfaces to implement the requirement of plug-compatibility with other components. But they go beyond objects by better addressing the requirement for replaceability and by enabling the reuse of software parts that are larger-grained and at higher levels of abstraction.

A noted shortcoming of objects is that they do not scale up well when used to build large, complex application systems because they are too fine-grained and at too low an abstraction level. Another shortcoming is that system modification, maintenance, and testing can be difficult because of inheritance and behavior overriding. Replacement of an object with a new object that implements changes to the business may impact all other objects that inherit properties of the replaced object and thus may lead to extensive re-testing.

In contrast to objects, components can be large-grained as well as small-grained software parts. Large-grained components (enterprise components) encapsulate major chunks of an application's functionality in an independent, reusable, and easily replaceable unit. Because of their size, fewer enterprise components are needed to construct an application than objects. This solves the scaling problem with fine-grained components where integration and assembly become very tedious because of the number of parts needed to construct a large application.

Enterprise components maximize the potential benefits that reuse can deliver by making reuse practical in large-scale system projects. Also, because they are independent units that encapsulate a complete function, enterprise components also solve the replaceability problem. When changes in the business occur, the old component can be easily pulled out and replaced with a new component that satisfies the new business requirements with little or no impact on other parts of the system.

1.4 Component-Based Development

So strong is the software community's belief in components, that it may be simply a matter of time before component-based development becomes the dominant software development approach. Component industry projections are that 61 percent of all new applications will be developed using components by the year 2001.

Component-based development (CBD) is the latest embodiment of reuse. It is an assembly approach to software development in which software applications are constructed by means of assembling components. Some of these components may be predefined components housed in libraries or supplied by other sources such as external vendors, some may be harvested from existing systems and applications, and others may be developed anew for the project at hand. CBD may also be described as an architecture-driven software development approach, where an architecture is a generic structure or high-level design that is intended to be used to build a set of related software products or systems. The architecture provides a framework for assembling the components into a software application.

The strategy underlying CBD is to use predefined software components and architectures to eliminate redesigning and rebuilding the same software structures over and over again. Because of this underlying strategy, not only does the CBD approach imply reuse, it demands reuse to deliver any significant gains in software productivity, quality, and development speed. Since reuse lies at the very heart of the CBD approach, this development method must be guided by the principles of reuse.

1.4.1 Benefits of Component-Based Development

It has long been recognized that reuse is a powerful technology that potentially can deliver tremendous benefits. Exploiting component-based development can provide very significant software productivity, quality, and cost improvements to an organization. Table 1-2 lists the benefits of component-based development, which are really just a repeat of the benefits that have always been promised by reuse.

1.4.2 Delivering Quality

One of the most important benefits that reuse delivers is quality. Among all the powerful software technologies available today, software reuse is the best way to accelerate the production of high quality software. What sets reuse apart is its ability to provide the benefits of faster, better, and cheaper without compromise. With the exception of reuse, all other software technologies require a trade-off of possible benefits (e.g., faster software development at the expense of software quality). According to the Gartner Group's findings, reuse is the only technology that allows a company to simultaneously address software cost, time-to-market, flexibility, and quality.6 Reuse enables a company to achieve both higher quality systems and lower costs, hence gaining a competitive advantage in the marketplace.

1.4.3 Exploiting Reuse Benefits

Not only are there tremendous benefits to be gained from reuse, but also there are tremendous opportunities to employ reuse in software projects. Analysis of software applications and systems has shown that they are composed of similar parts. In general, it is reasonable to expect that 60 to 70 percent of a software application's functionality is similar to the functionality in other software applications, that 40 to 60 percent of its code is reusable in other software applications, and that 60 percent of its design is reusable in other software applications. Therefore, the majority of almost any software application can be assembled from predefined components, provided those components were designed to be "plug compatible."

Components are the software industry's latest attempt to capitalize on this similarity. Backed by advances in technologies and tools, components offer the best chance yet to achieve a significant level of reuse in industrial-strength application development projects.

1.5 Components and Standards

However, there is one catch. Standards. The success of the components industry is totally dependent on standards. For example, it is obvious that interoperability standards are a basic necessity. Interoperability standards are necessary to be able to assemble components from different sources into working applications and systems.

Components are expected to communicate with one another and to use each other to provide their services or functionality. A standard component interoperability model assures components written in different languages, located in different places, and running on different platforms and on different machines or address spaces can be used together, sharing data and capabilities.

There currently are three de facto standards for component specification, interoperability, and distributed computing:

1. Object Management Group's Common Object Request Broker Architecture/Internet Interoperability Protocol (OMG's CORBA/IIOP): for CORBA components that are written in different languages such as C++, Visual Basic, and Java and run on multiple distributed platforms

2. Microsoft's Component Object Model/Distributed Component Object Model (COM/DCOM): for ActiveX controls that can be built in different languages such as C++, Smalltalk and Java, and run on a Windows environment

3. Java/JavaBeans/Enterprise JavaBeans: for JavaBeans that are built in Java and run on all environments that support the Java virtual machine

IIOP is the CORBA message protocol used to provide component communication over the Internet or an Intranet. Remote Method Invocation (RMI) is used to enable distributed Java components to communicate with one another.

The fact that there are three such interoperability models rather than one is not considered a problem by companies attempting to implement component technology because the three models are quite similar and are bridged by tools.

1.6 Process Standards

Although interoperability standards ensure that components will fit together, they are not enough to ensure the success of a global components industry. Software developers also need process standards that detail how to identify, analyze, design, implement, test, deploy, maintain, and evolve high-quality components and component-based applications.

Process standards serve two important functions to enable the world trade of software components:

1. Establishment of a common understanding of the software process between software producers and software consumers

2. Assurance of the quality of software components and component-based applications

1.6.1 Improving Communication

First, consider the issue of understanding between software producers and software consumers. In this context, a software producer refers to a software developer or vendor who provides software products (e.g., software systems, applications, or components) to a software consumer (e.g., user or software developer who uses the software product to build a new software product). Software producers and software consumers often do not speak the same language. When they enter into a relationship where one agrees to provide software to the other, it is very difficult to communicate product and project requirements unless the process to be used is well understood by all parties involved. The world trade of software complicates this problem because software producers and software consumers may not know of one another. Also, they may be members of different organizations and can be located in different places around the world.

A standard can foster an improved understanding between software consumers, software producers, and everyone else involved in the life cycle of software products, regardless of these complications. As an example, consider the user (or manager) who wants a CBD approach employed to develop a software product. Having a standard that specifies what is required in a software life cycle model to enable CBD can clarify for the user (or manager) and the developer what is entailed in such an approach. The standard specification of what is required in the life cycle model can even be used as the basis for an informal or legally binding contractual agreement between the parties.

(Continues...)



Excerpted from Software Reuse by Carma McClure Excerpted by permission.
All rights reserved. No part of this excerpt may be reproduced or reprinted without permission in writing from the publisher.
Excerpts are provided by Dial-A-Book Inc. solely for the personal use of visitors to this web site.

Read More Show Less

Table of Contents

Foreword.

Preface.

PART 1. OVERVIEW.

Chapter 1. Introduction to IEEE Std. 1517—Software Reuse Processes.

Chapter 2. ISO/IEC & IEEE/EIA Standard 12207—Standard for Information Technology—Software Life Cycle Processes.

Chapter 3. Organization of IEEE Std. 1517.

PART 2. INTERPRETATION AND IMPLEMENTATION.

Chapter 4. IEEE Std. 1517 Primary Processes: Adding Reuse to Software Development, Operation, and Maintenance.

Chapter 5. Asset Management Process.

Chapter 6. Adding the Reuse Program Administration Process to the Software Life Cycle Process Framework.

Chapter 7. Adding Domain Engineering to the Software Life Cycle Process Framework.

PART 3. APPLICAION.

Chapter 8. Application of IEEE Std. 1517.

Chapter 9. Relationship to the SEI Capability Maturity Model.

Chapter 10. Relationship to the OMG Unified Modeling Language.

Sources for Reuse Standards.

Index.

About the Author.

Read More Show Less

Customer Reviews

Be the first to write a review
( 0 )
Rating Distribution

5 Star

(0)

4 Star

(0)

3 Star

(0)

2 Star

(0)

1 Star

(0)

Your Rating:

Your Name: Create a Pen Name or

Barnes & Noble.com Review Rules

Our reader reviews allow you to share your comments on titles you liked, or didn't, with others. By submitting an online review, you are representing to Barnes & Noble.com that all information contained in your review is original and accurate in all respects, and that the submission of such content by you and the posting of such content by Barnes & Noble.com does not and will not violate the rights of any third party. Please follow the rules below to help ensure that your review can be posted.

Reviews by Our Customers Under the Age of 13

We highly value and respect everyone's opinion concerning the titles we offer. However, we cannot allow persons under the age of 13 to have accounts at BN.com or to post customer reviews. Please see our Terms of Use for more details.

What to exclude from your review:

Please do not write about reviews, commentary, or information posted on the product page. If you see any errors in the information on the product page, please send us an email.

Reviews should not contain any of the following:

  • - HTML tags, profanity, obscenities, vulgarities, or comments that defame anyone
  • - Time-sensitive information such as tour dates, signings, lectures, etc.
  • - Single-word reviews. Other people will read your review to discover why you liked or didn't like the title. Be descriptive.
  • - Comments focusing on the author or that may ruin the ending for others
  • - Phone numbers, addresses, URLs
  • - Pricing and availability information or alternative ordering information
  • - Advertisements or commercial solicitation

Reminder:

  • - By submitting a review, you grant to Barnes & Noble.com and its sublicensees the royalty-free, perpetual, irrevocable right and license to use the review in accordance with the Barnes & Noble.com Terms of Use.
  • - Barnes & Noble.com reserves the right not to post any review -- particularly those that do not follow the terms and conditions of these Rules. Barnes & Noble.com also reserves the right to remove any review at any time without notice.
  • - See Terms of Use for other conditions and disclaimers.
Search for Products You'd Like to Recommend

Recommend other products that relate to your review. Just search for them below and share!

Create a Pen Name

Your Pen Name is your unique identity on BN.com. It will appear on the reviews you write and other website activities. Your Pen Name cannot be edited, changed or deleted once submitted.

 
Your Pen Name can be any combination of alphanumeric characters (plus - and _), and must be at least two characters long.

Continue Anonymously

    If you find inappropriate content, please report it to Barnes & Noble
    Why is this product inappropriate?
    Comments (optional)