You are on page 1of 6

Controlling Configuration Items in

Component Based Software Development


Carl S. Lebsack, Austin J. Mroczek, Carl J. Mueller
Computer Science Department
Illinois Institute of Technology
Chicago, IL 60616 USA
lebscar@iit.edu, mrocaus@iit.edu, mueller@iit.edu

ABSTRACT Based Software Development (CBSD) [4] evolved out of


Component Based Software Development has increased the need to reduce development costs. Domain Engineer-
the demand to reuse software components and to integrate ing provides an in-house source for components for both
software from outside sources. A configuration item the application under development and for additions to the
management tool is needed to track components and their reuse library. One of the primary objectives of Domain
relationships. Using a configuration item database to Engineering is to produce solutions to a problem that sat-
store information about components is a possible solution. isfy the requirements for a specific application but are
A prototype configuration management tool was created general enough in nature to be reused in other applica-
to explore the characteristics of a configuration item data- tions. Component Based Software Development reduces
base. The prototype displayed many functions that should software development costs through the reuse of previ-
be further investigated. This paper explains the possible ously developed software by adapting these components
uses of a configuration item database and the resulting to a new application. As with most new technologies,
prototype. there are advantages and disadvantages to this approach.
The advantage is that it does appear to reduce cost and
Keywords: Component-Based Software Development,
delivery time for producing new applications. One of the
software reuse, Commercial-Off-The-Shelf software, con-
disadvantages with this faster and more cost effective
figuration management, configuration item.
method of development is that a number of Configuration
1 INTRODUCTION Management problems have emerged.
In 1968 NATO sponsored the first conference on Soft-
One problem is the difficulty associated with the identifi-
ware Engineering to discuss why there was a gap between
cation of the available components. Development organi-
the systems that were being proposed and those that were
zations frequently spend a large amount of time develop-
being successfully implemented. One of the papers intro-
ing the same functionality repeatedly. A reason for this
duced at this conference formalized the notion of mass
continuous redevelopment is that other groups within the
produced software [9]. To accomplish his concept of
organization may not know that a given function has been
mass-produced software, McIlroy proposed reuse of com-
developed. Publishing the characteristics of the reusable
ponents to build new applications. Although the discus-
components is a solution to this problem; but when there
sion that followed the presentation was generally positive,
are a large number of reusable modules, manual searches
nothing of significance was done to implement this con-
may take more time than building the component. Con-
cept until the cold war ended. At that time, NATO gov-
structing a database identifying the properties of each
ernments were less inclined to spend large amounts of
component would reduce the search time significantly [7].
money to develop new systems. This prompted defense
contractors to search for more cost-effective methods of Another problem with CBSD is the effort required in
software production. building a reuse library. It could take a number of years
to develop a robust library from in-house or contracted
The concepts of Domain Engineering [6] and Component
development. One way to reduce the time necessary to
acquire a robust reuse library is to buy the software com-
ponents. Software purchased from an outside source is
known as Commercial Off-The-Shelf or COTS software.
Using COTS software for a traditional development envi-
ronment has advantages and disadvantages [14]. Advan-
tages of using COTS components are: functionality is
instantly accessible; they cost less than in-house devel- software development, characterized by component reuse
opment; and they frequently are built by problem domain and integration of COTS products, has created the need
experts. Disadvantages of developing with COTS com- for more sophisticated control of configuration items.
ponents are: limited documentation is provided; there is
This identification and control is necessary to provide the
no guarantee of adequate testing; portability is not guaran-
information for performing configuration audits that are
teed; limited or no source code access is provided.
required by a software configuration management plan.
Traditionally, the only COTS software components used Frequently, control of configuration items is accom-
in an application were compilers, database managers, and plished using a notebook, folder or set of note cards. In
operating systems. Occasionally, some components sup- certain environments, version control systems are adopted
porting communications protocols or special device inter- to track configuration items that exist as source code.
faces were also included. Most of the components of new Even with version control in place, many key configura-
systems were developed in-house or under special con- tion items are not automatically tracked and must be ac-
tracts and tailored to the application in progress. From a counted for manually. Configuration items, such as com-
configuration management perspective, not much has pilers, interpreters, documentation, and many COTS
been done with COTS software. In the IEEE Standard components are items that are commonly unaccounted for
Software Configuration Management Plans [2], COTS within a version control system.
components are addressed under the heading subcontrac-
One of the changes to the development process when us-
tor and vendor control; but not much direction is provided
ing Component Based Software Development is that there
to deal with the issues of COTS components.
is an additional phase for evaluation that occurs after the
New development environments and tools have added to requirements phase and before the components are inte-
this problem. Many of the newer programming and grated into the application [4]. The Software Engineering
scripting languages require source distribution or a pre- Institute (SEI) defines six different types of evaluations
compiled middle language like Java’s byte code. For that should be performed when selecting a COTS compo-
applications developed with these languages, placing the nent [15]. Four of these evaluations are technical or re-
translator and its supporting components under version, quire technical information to complete them. Conduct-
control is frequently not practical and often not possible. ing these evaluations is usually extremely time consum-
Microsoft’s new .net framework is adding to these diffi- ing, so controlling the harness that was used to conduct
culties with its Just-In-Time (JIT) environment. The .net the evaluation may be as important as controlling the test
framework is being proposed as a solution to version and cases used to validate the application. Because of the cost
interface problems with DLL’s [13]. The primary con- of the evaluation and the possibility that the component
figuration management problem with COTS components, may be a candidate for another application, the evaluation
in all forms, is controlling a configuration when individ- reports should be under configuration control in addition
ual components are outside of that control. A developer to the components evaluated. As with the test harness
may have no discretion in implementing modifications that supports verification and validation reports, the har-
required by changes made to a component by a COTS ness used to evaluate the prospective components under
vendor. However, it is necessary to track the COTS com- consideration should also fall under configuration item
ponent as a configuration item to know where it is used. management. The question of how CBSD affects the con-
figuration management process affects almost every con-
Identification and control of configuration items is one of
figuration management activity. A short list of questions
the primary activities of Configuration Management (CM)
about CBSD might include:
[3]. A configuration item is defined as a collection of
hardware and software that is designated for configuration • How does CBSD affect a configuration audit?
management [1]. Some agencies extend this definition to • Since changes to components can occur outside
include the test-harness and other items. The definition is the normal change control process, how are these
broad because the concept is broad. Compilers, third component changes introduced?
party libraries, requirements documents, design docu-
ments, source code, test cases, and review documents are • How is a change impact analysis conducted in a
all configuration items that shape the resultant piece of CBSD environment?
software. Any time a single configuration item is modi- • How is a Software Development File [3] main-
fied, it splits into two distinct items: the original version tained in such a dynamic environment?
and the newly created version. The purpose of configura-
All of these questions revolve around configuration items
tion item management is to ensure that only the
and their relationships to each other. There are two spe-
configuration items that are part of the current version of
cific relationships that are critical in a CBSD environ-
the software are included in the release. The changing
face of software development, characterized by compo-
ment: 1) what components comprise a configuration item has a similar set of relations. A graph of the "used by"
and where are these components used? 2) With these new relations could be obtained by inverting the graph of the
demands on configuration management, what properties "uses" relations. The most important aspect of the CID is
and/or functions should a Configuration Item Database that each node in the graph does not necessarily need to
(CID) incorporate? correspond directly to a physical entity under version con-
trol. It could represent a composite object, a compiler, a
2 CONFIGURATION ITEM DATABASE
hardware platform, or the individual responsible for main-
The notion of using a configuration management database
taining a particular item.
is not a new concept for automating status accounting and
auditing tasks [5, 8, 10, 11, 12]. A configuration man-
agement database is a composite of a number of databases
consisting of change control, defect tracking, version con-
trol and configuration item tracking. It is the Configura- B C
tion Item database that we feel can address some of the
configuration management problems in a CBSD environ-
ment.
Many companies use the Software Development File
(SDF), formerly called the Unit Development Folder, to
hold all information about a given piece of software [3]. A
This file contains the item’s history of changes, audits, D
test reports, and other valuable information. The contents
of the SDF are very similar to the types of information
F
found in a Product Data Management (PDM) file. Soft-
ware Engineers benefit from maintaining the file by being
able to analyze a change request. It allows them to see
what modules are affected by a problem and helps deter-
mine if it is a recurring problem. However, these files are E
difficult to keep current with the demanding workload
within many companies. Automating the SDF increases Figure 1. Configuration item directed graph.
its efficiency and usefulness. An electronic format elimi-
nates a lengthy search through cabinets full of folders or The format in which the configuration item data is stored
boxes full of 3x5 cards. It also makes data available to is extremely important to the functionality of the system.
multiple developers at the same time. Configuration item dependencies are recorded in the da-
tabase, enabling dependency reports, which show the pos-
Version control systems are often used to manage con- sible effect of a change to a single item. The database
figurations. The primary purpose of version control sys- stores these dependencies as a many-to-many relation-
tems is to ensure only one person is modifying a docu- ship. It keeps track of the items that are used by a com-
ment at a time. All pieces of code are held by the system, ponent while at the same time storing which items the
which allows users to check out modules. Once finished component uses. Also, all versions of each configuration
with a module, a developer checks it back in allowing item should be saved to allow the change history to be
other users to check it out. The system keeps track of all traced.
changes to the module.
Figure 2 illustrates the complex relationships between
Most version control systems cannot be used to track the configuration items within the CID. The configuration
dependencies between different configuration items. In- item data store holds information about various properties
formation about the relationships between configuration of configuration items. Project name, version number,
items is necessary to conduct change impact analysis. date modified, location, and many other attributes rele-
Also, the maintenance of the software development folder vant to the configuration item are stored in the database.
is accomplished separately from the version control tool. The data store also holds the relationships between con-
Using a configuration item database, in conjunction with figuration items. A reference to the previous version of
a version control system, provides a means to produce the the item enables comparisons to different versions of the
reports necessary for conducting change impact analysis same item.
and configuration audits.
A many-to-many relationship exists among configuration
The directed graph in Figure 1 shows a set of "uses" rela- items in that each may depend on any number of other
tions for Configuration Item A. Each item in the database configuration items. Dependencies may also be mutual;
meaning item A might depend on item B where item B ated to address the issues of establishing a component
also depends on item A. These relationships can become library and tracking system. CMpro allows maintenance
very complex when a system consists of more than a few of configuration items that comprise an application and
items. A hierarchy chart or class diagram is generally provides a means of tracking the relationship between
constructed in the design phase and is used only to denote these items.
the relationships of large components to the overall sys-
CMpro automatically maintains consistency of relation-
tem. This chart leaves off many of the important configu-
ships between configuration items in the database both up
ration items such as header files and libraries. The result-
and down. If item A is updated to depend on item C
ing data structure, formed by the actual relationships be-
within the database, CMpro also adds the reverse depend-
tween all of the configuration items within a piece of
ency. This allows the user to traverse dependencies of
software, is recursive in that a simple traversal of the
configuration items in either direction, the items that de-
graph would result in repeated encounters of the same
pend on the current item or the items the current item de-
configuration items. Manual tracking of these relation-
pends upon.
ships would be extremely difficult.
Once the configuration item database is constructed, it
can be continually updated and maintained. This is a ne-
Reference to cessity due to the continual process of software modifica-
previous version of tion. Each configuration item may have multiple ver-
Configuration Item sions, as does the configuration as a whole. In order to
maintain a relation between the versions of the individual
*..1 configuration items within the system and the version of
the system as a whole, the database must be expanded to
maintain a complete representation of the system across
all versions of the software. This increases the complex-
Configuration * ity of the data structure within the configuration item da-
*..1 Item tabase but provides a means to generate various meaning-
ful reports.
The user can navigate interactively through the configura-
* tion item database via the dependencies among the con-
figuration items or display reports, such as a listing of all
configuration items for a particular software version.
Depends On Other reports include a list of all deliverables for a soft-
ware version and a detailed report of a single configura-
tion item, including its description and version informa-
tion. By adding some simple additional queries to
CMpro, one can enable users to retrieve the entire history
Software version or construct a dependency tree for a particular configura-
dependendent tion item. This could be useful in both change impact
set of relations
analysis and determination of defect injection.
CMpro is a client server application that was written to
allow any number of separate projects to be run from the
Figure 2. Configuration Item Database same server in separate databases. This feature opens the
Each configuration item has a one-to-one relationship door for decomposition of larger products into separately
with its previous version. These references are used to managed pieces of software. This means that a single
step through the history of an item to generate item his- complex software project can be broken down so that
tory reports. This helps to provide tracking for threads of each library, executable, or even data packages, could be
development across several versions of a component. split into separate databases with one database combining
each of the project pieces into the whole. The level of
3 CMPRO PROTOTYPE abstraction is unlimited, catering very well to component
A prototype CID system was recently developed in an based software development by allowing a component to
attempt to incorporate characteristics desirable to a mod- be either maintained as a distinct software product or rep-
ern CM tool. Figure 2 illustrates the prototype configura- resented as a single configuration item within a larger
tion item database for the CMpro system, which was cre- software system.
Two of the most important factors in determining the im- Another important investigation in continued develop-
plementation of CMpro were platform independence and ment is interaction with a defect tracking system. The
network multi-user access. Platform independence is information necessary for assisting in defect tracking is
important because software is developed on many differ- inherently built into the CID. One of the main concerns
ent platforms and CASE tools should cater to these envi- in defect tracking is the determination of injection. By
ronments. Secondly, the network multi-user access is correlating the appearance of a defect with a specific ver-
important because configuration management by defini- sion of the software, injection could be narrowed to the
tion assumes maintenance of a unique standardized set of CIs in the system that had changed from the previous ver-
components that comprise a piece of software. In a de- sion.
velopment environment where many developers are col-
Once at this stage, the tool would be ready for widespread
laborating on a single project, there must be a common
deployment. It would still run the risk of being neglected
repository used to maintain a configuration. The solution
in many environments where deadlines and release dates
to both issues was to implement CMpro as a software
often pressure developers to set process aside in the short
system that runs on a web server, thus providing the net-
term with the intention of retroactively filling in the proc-
work multi-user access and catering to all platforms with
ess requirements. An additional integration with a ver-
Internet clients. This method also provides a common
sion control system could help to ensure proper use of the
interface across platforms and simplifies the development
tool by forcing CID updates to coincide with modifica-
of the application. In addition, by running CMpro as a
tions to the Configuration Items within the version control
web application, it can be used for distributed develop-
system.
ment from separate work sites.
Once CMpro was in use, it could be very easily extended
4 FUTURE RESEARCH DIRECTIONS
to include an interface to an index of all items available
The CMpro prototype consists of a simple web interface
for reuse. Each item within the CID already contains a
to allow a user to construct and maintain a complete sys-
complete description. The records for Configuration
tem of configuration items and their relationships. The
Items could be modified to include specific reuse
CID was created as a stand-alone product, but it is not
information such as component type (e.g. data structure,
intended to be used by itself. It assumes a process based
communications interface, algorithm, etc.) as well as
development environment with certain CASE tools al-
fields denoting the flexibility of the component. All of
ready in place. Future research involves using CMpro in
the necessary information for both a reuse index and a
actual CBSD, refining the fields for configuration items
CID would be included in the same repository. The only
and their relations and integrating CMpro with other
difference is how the information is cross-referenced and
tools.
made available to the user. Once in place, this type of
This investigation would begin by refining the database system could have a dramatic impact on the development
and deploying CMpro to actively maintain a real system. of CBSD systems.
This would provide useful information needed to evaluate
The CMpro system was developed with a process envi-
CMpro’s effectiveness as a CASE tool. CMpro records
ronment in mind and aims at assisting such an environ-
several types of information about each CI stored in the
ment by automating the creation and maintenance of a
database. These fields include the CI name, description,
CID. This provides a means of generating reports neces-
version and other relevant information. The field types
sary to configuration audits and change impact analysis.
were chosen based on suspected usefulness. A deployed
To ensure the system performs as required, it should be
system would provide feedback to determine which addi-
deployed within a real environment and integrated with
tional fields would be useful and which fields could be
other CASE tools. This would provide a more thorough
removed.
investigation regarding the use of a CID within CBSD.
Another area of investigation involves integrating CMpro
5 CONCLUSIONS
with a change control system. Change control is an inte-
Component Based Software Development presents new
gral part of a development environment in that decisions
challenges to CI management because developers no
must be made in regard to which changes will be under-
longer have complete control of the system. Configura-
taken and which changes will not. All changes under-
tion audits must account for items from outside sources.
taken should be recorded to provide traceability of modi-
When a COTS component changes, a decision must be
fications made throughout the life of the product. CMpro
made on how to introduce the change. In some instances,
currently has the ability to incorporate the recording of
the decision might be to use a comparable component
changes, but this could be extended to follow a specific
from another vender. In order to make this decision, a
process.
change impact analysis must be conducted before any
subsequent cost-benefit analysis can be conducted. [8] Larson, M. Applying Configuration Management
Manually maintaining a software development file be- Techniques to Component-based Systems. Licenti-
comes extremely tedious for a CBSD user. All of these ate Thesis MRTC, December 2000.
issues revolve around maintaining a description of a sys- [9] M. D. McIlroy. “Mass Produced Software Compo-
tem in terms of its components and their relationships to nents”. Report on a Conference sponsored by the
each other. NATO Science Committee. January 1969. pp 138-
155.
There seems to be a void in this area of tools for Configu-
[10] Miller, T. C. “A schema for configuration manage-
ration Item Management. Version control tools provide a
ment”. Procd of the 2nd Intl Workshop on Software
much-needed service of controlling access to CIs within a
configuration management. October, 1989, Prince-
development environment. A problem arises however,
ton, NJ USA. Pages 26-29.
when converting to CBSD where components are modi-
[11] National Oceanographic and Atmospheric Admini-
fied outside the immediate development environment.
stration. “Configuration Management for the Na-
This presents new challenges to CI management because
tional Virtual Data System”. August 2000.
version control alone offers no safeguards against changes
http://140.90.236.89/NVDSCMdoc.html.
to COTS components. CMpro was written as a database
[12] Ploedereder, E. and Fergany, A. “The data model of
for recording information about the CIs within a system
the configuration management assistant”. Procd of
without storing the actual items. This allows for flexible
the 2nd Intl Workshop on Software configuration
tracking of any CI whether internal, COTS or even hard-
management. October, 1989, Princeton, NJ USA.
ware. This allows CMpro to generate full reports of the
pp. 5-14.
CIs within the system, useful when performing configura-
[13] Pietrik, M. “Avoiding DLL Hell: Introducing Ap-
tion audits. CMpro also maintains a set of relations be-
plication Metadata in the Microsoft .NET Frame-
tween the CIs within the system providing the additional
work”. October 2000. MSDN Magazine.
information needed to perform change impact analysis.
[14] J. Voas, "COTS Software the Economical Choice?",
The CMpro system could also be expanded to add addi-
IEEE Software, March/April 1998, pp. 16-19.
tional features including an interface to a reuse library.
[15] Wallnau, K., Carney, D., Morris, E., Oberndorf, P.,
This could make the process of evaluation much less ex-
Buhman, C., “A Tutorial on the Theory and Practice
pensive and time consuming by providing a directory of
of COTS Software Evaluation,” 20th Intl. Conf. on
the components that are tested and already available.
Software Eng., Kyoto, Japan, 1998
Once tested further to streamline the CID and the interac- http://www.sei.cmu.edu/cbs/cbs_slides/98symposiu
tion with other CASE tools, CMpro might make an ideal m/eval_tut/index.htm.
addition to a CBSD environment by automating tasks that
help to produce quality software.
REFERENCES
[1] IEEE Std 610.12-1990, IEEE Standard Glossary of
Software Engineering Terminology (ANSI).
[2] IEEE Std 828-1998, IEEE Standard Software Con-
figuration Management Plans. (ANSI).
[3] R. H. Berlack. Software Configuration Manage-
ment. Wiley and Sons, New York. 1991.
[4] Brown, A.W., Wallnau, K. “Engineering of Compo-
nent Based System”. Proceedings 2nd IEEE Intl.
Conf. on Eng. of Complex Computer Systems,
Montreal. October 1996. pp 414-441.
[5] Choi, K.J. Kim, K.B. Jin, S.L. "A Modelling
Method of Software Configuration Change Con-
trol." IEEE(PACRIM'97), August 1997 pp.430-433.
[6] Christensen, S. R. “Software Reuse Initiatives at
Lockheed”. CrossTalk, May 1995.
http://stc.hil.af.mil/CrossTalk/1995/may/Lock-
heed.asp.
[7] Hall, R. J. “Generalized Behavior-based Retreival”.
Proceedings of the 15th Intl Conf. On Software Eng,
Baltimore. May 1993. pp 371-380

You might also like