Computing Reviews
Today's Issue Hot Topics Search Browse Recommended My Account Log In
Review Help
Search
Surviving software dependencies
Cox R. Communications of the ACM62 (9):36-43,2019.Type:Article
Date Reviewed: May 13 2020

Software has been reused since the days of exchanging decks of punched cards wrapped in listings printed on green bar paper. Packages (that is, libraries) of code are everywhere and are used in an overwhelming number of applications. Starting with a blank screen and writing a major self-contained program is a rarity. Since software reuse is commonplace, the correctness, ability to be understood, security, and robustness of the software package used are paramount. Depending on a package with uncritical trust is dangerous.

Russ Cox shows how one can intelligently and cautiously gain and maintain control of potential problems arising from dependencies on imported software packages. He identifies several considerations in examining a package intended to be incorporated in a project: design (especially the quality of documentation), quality of the code, testing protocols distributed with the package, bug reports and fixes, maintenance, usage, security, licensing, and indirect dependencies to still other packages.

He recommends several measures to gain control of dependencies: testing them alone and in competition with other packages offering the same capabilities, abstracting the dependency to limit the direct invocation of features peculiar to the package (to make substituting other packages easier), isolating the package at runtime, avoiding the dependency by copying code directly (when legal), and anticipating the problems that may arise when packages are upgraded. In short: inspect, analyze, test, and repeat. Trust, but verify.

Reviewer:  Anthony J. Duben Review #: CR146967 (2008-0190)
Bookmark and Share
  Reviewer Selected
Featured Reviewer
 
 
Reusable Software (D.2.m ... )
 
 
General (D.0 )
 
Would you recommend this review?
yes
no
Other reviews under "Reusable Software": Date
A systematic catalogue of reusable abstract data types
Uhl J. (ed), Schmid H., Springer-Verlag New York, Inc., New York, NY, 1990. Type: Book (9780387532295)
Aug 1 1991
Experience in constructing Ada programs from non-trivial reusable modules
Levy P., Ripken K.  Ada-components: libraries and tools (, Stockholm, Sweden, May 26-28, 1987)1111987. Type: Proceedings
Oct 1 1988
Reflections on reusable software and software components
Dusink E., van Katwijk J.  Ada-components: libraries and tools (, Stockholm, Sweden, May 26-28, 1987)1261987. Type: Proceedings
Oct 1 1988
more...

E-Mail This Printer-Friendly
Send Your Comments
Contact Us
Reproduction in whole or in part without permission is prohibited.   Copyright 1999-2024 ThinkLoud®
Terms of Use
| Privacy Policy