home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
ftp.umcs.maine.edu
/
2015-02-07.ftp.umcs.maine.edu.tar
/
ftp.umcs.maine.edu
/
pub
/
WISR
/
wisr5
/
proceedings
/
ascii
/
yglesias.ascii
< prev
next >
Wrap
Text File
|
1993-06-05
|
12KB
|
227 lines
Limitations of Certification Standards in Achieving Successful Parts Retrieval
Kathryn P. Yglesias
International Business Machines
Federal Systems Company
3700 Bay Area Blvd, Houston, TX 77058-1199
Tel: (713) 335-3457, fax: (713) 335-3453
Email: yglesias@vnet.ibm.com
Abstract
Experience managing the certification standards for an evolving reuse program
has shown that knowledge of and compliance with certification standards are not
sufficient conditions for successful retrieval of appropriate reuse parts.
Keywords: reuse, certification standards, classification, keywords, software
engineering, software understanding, retrievability
Workshop Goals: Define methods to assist in location and application of
appropriate reusable assets.
Working Groups: This position topic is suitable for inclusion in one of the
following proposed work groups, or a combination of them:
* Reuse terminology standards
* Design guidelines for reuse - general, Ada, and/or C++
* Reusable component certification
* Education
1 Background
1.1 Role of Certification Standards
The role of reuse certification standards is to ensure that sufficient
information is available to a potential reuser to allow that reuser to select
and utilize a reusable part as a black box (i.e., without examining the contents
of the part). This requires that the certification standards isolate and
identify all characteristics of the part which are needed by developers. For a
varied group of developers, such as those in a company developing products
across many platforms, ranging from operating systems to government
applications, the information required to isolate the applicable parts is
considerable. What this means is that nothing can be taken for granted when
supplying a reusable part. If parts are supplied in C++, some of the
information which must be specified is the compiler and version used, the
platforms and operating system versions used, and the development standards
used.
To contain the work required to prepare for the supply of parts, the work
products of the existing development process should be utilized for this
"certification information". For example, the information in a programming
specification can be organized in such a way as to facilitate extraction of
sections on dependencies or interfaces. Where the existing work products are
inappropriate for reuse certification requirements, the processes should be
modified.
One measure of the success of certification standards might be in the acceptance
by developers of the parts within the quality domains specified by the
certification standards. Currently there are no issues regarding the quality of
the part sets at the highest certification level in our reuse libraries,
contrary to some expectations [Kni91]. This acceptance may be partially
attributable to the publicizing of the quality of the first architected part
set, and partially attributable to the stringency of the standards.
2 Position
For successful reuse, three conditions must exist:
1. There must be appropriate reusable parts available,
2. There must be potential reusers, and
3. The potential reusers must be able to find and apply the reusable parts to
their development.
My current interest is in facilitating the third reuse condition.
Certification standards are a significant part of the third condition; however,
there are other considerations of equal importance. The suppliers of the
reusable assets must have knowledge of the certification standards, of reuse
principles, and of the relevant domain. The reuser must have knowledge of
abstract programming constructs, have knowledge of the relevant domain, and be
able to apply the programming constructs to the domain.
In defining and evolving our reuse program, we continue to recognize the
difficulty of facilitating the pre-conditions so that these conditions can
occur. The position stated in this paper is the result of attempts to
understand the lower than anticipated usage rates of architected libraries
during the initial phase of our reuse program. We recognized that successful
application of reuse into existing development processes requires an
understanding of the type of products produced, the business environment, the
processes which are enforced (and those which are not), the development culture,
and the education and experience of the developers. Within a large company,
there are wide variations in these factors. Our reuse program tries to
accommodate these variations. Examination of our findings may aid in the
effective integration of reuse into other development environments.
2.1 Issues Related to Retrieving Parts
Given that the certification standards are adequate and that they are enforced,
it could be assumed that appropriate reusable parts would be located and reused
by those development organizations made aware of reuse's potential. (Note that
use of appropriate implies that the parts have been determined to reasonably
fall within the domain of some of the involved development organizations.)
About a year ago, we became aware that there were a number of development
organizations trying to locate appropriate parts and failing to find and/or
reuse them, thus causing us to examine our assumptions about what is required
for successful reuse.
What we found was that terminology was a major success factor, especially
terminology for classification of parts. There are two ways in which
terminology can act as a reuse inhibitor. The first is that the same word
(term) does not mean the same thing to all potential reusers. For a developer
in an office systems development organization, the object attribute value
address might seem ambiguous, whereas address would not have a second meaning
to the systems developer who supplied the part.
The second way that terminology can act as an inhibitor to successful reuse is
through the specificity of the terms. When the potential reuser begins
searching libraries of reusable parts, the reuser has a conceptual perception of
the desired part. The terminology used by the supplier and reuser must match
for successful location of the reusable part. If there is no method made
available by the reuse library tool to facilitate the understanding of the
Supplier's intended context for the classification terminology, then an
opportunity for location of an appropriate reusable part may be lost. One of
the ways in which this potential problem may be addressed is by associating
synonyms with the classifiers.
2.2 Issues Related to Applying Parts
There is a problem closely related to the terminology problem in which the
potential reusers have different understandings of the terms used. This is a
fundamental problem of the cognitive processing of the potential reuser. That
is, has the reuser conceptualized his problem in such a way as to allow for a
variety of potential solutions, and can he allow for potential solutions which
fall outside the scope of the solution which he originally envisioned? As
pointed out in [HTG91], this is a problem of "understanding and adaptation".
For a reuse system, a part must be described and classified (through use of
keywords or a formal classification system). It is the nature of language to
limit. It must, therefore, be the responsibility of the users of language to
understand those limits and not let them be applied indiscriminately. For
reuse this means that education is essential. The type of education needed is
dependent on the current skills of the developer and the scope of the tasks
which he may be called upon to perform. For an application systems developer of
hypermedia for workstation environments, the education may be different than
currently perceived by an education organization. This developer needs to be
able to express the product's concepts in a variety of ways to reach the
broadest possible audience. Education which only teaches the how of tools is
inadequate. The developer requires an ability to understand and apply the
concepts behind the tools, languages, or processes being taught. Applying the
concepts to the student's environment is the essential ingredient. Education
must provide the student (potential reuser) with the ability to flexibly
evaluate a problem and find solutions, or partial solutions.
The example which follows describes how a reuse parts consultant aided a
development project in determining the source of a performance problem with an
abstract data type developed for reusability. The example illustrates the
importance of software engineering education and understanding.
When developers think of abstract data types, they generally think of lists.
The project in question reported a performance problem with the selected list
part. The consultant began his queries with questions on the abstraction
requirements. He determined that the access is always direct, that there are
several iterations, that quick sequential access is important, that elements are
put in, and that there is a dedicated field in the element which is used for
retrieval. The consultant realized that, since there is direct storage and
direct retrieval, the correct abstract data type is a dictionary. Then
implementation was considered and a tree was selected, specifically an AVL-tree.
Use of the AVL-tree provided the performance improvement. The consultant uses
this example to illustrate why he advocates,
It is better to pick the right abstraction than to tune the wrong one.
-- Klaus Liegert
Given the above example, which is a sample of actual experiences, the goal of
education must be more than teaching what reuse is or what abstract data types
are. For education to fulfill its role in facilitating reuse, it must teach
conceptualization and flexibility in problem solving. One approach to
achieving this is to re-structure most programming and writing courses to
include mandatory use of pre-existing reusable parts. Structuring class
assignments around the parts, lessons could include
* Generalize a proposed implementation solution,
* Find alternative implementations,
* Define conditions in which alternative solutions better solve the problem.
These are preliminary thoughts on methods to address the observed difficulties
of developers in retrieving appropriate, applicable parts. Certification
standards can enhance retrievability by facilitating flexible visualization of
the problem and solution domains (while maintaining strict content requirements
on the certification information). But the developer will not have the ability
to locate all applicable parts which exist, until he has been trained in how to
conceptualize his problem more generically. Continued study may provide
approaches to address some of these parts retrieval issues.
References
[HTG91] K.E. Huff, R. Thomson, and J.W. Gish. The Role of Understanding and
Adaptation in Software Reuse Scenarios. In Proceedings of the Fourth
Annual Workshop on Software Reuse, November 1991.
[Kni91] J.C. Knight. Issues in the Certification of Reusable Parts. In
Proceedings of the Fourth Annual Workshop on Software Reuse, November
1991.
3 Biography
Kathryn P. Yglesias is on the staff of the IBM Reuse Technology Support Center
(RTSC) and is a publishing strategist in IBM Federal Systems Company. She is
responsible for developing an information reuse strategy and for the corporate
reuse classification scheme. She is the liason between the RTSC and the
corporate office, Information Development Strategy and Technology, which is
responsible for the production of IBM customer, service and marketing
information. Previously she coordinated requirements for the division's Common
Proposal System. She spearheaded the effort to add a repository of reusable
proposal text segments to the tool. She also worked for seven years on
engineering and project management tasks for the Space Shuttle program.