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
/
wisr4
/
proceedings
/
detex
/
joos.detex
< prev
next >
Wrap
Text File
|
1992-04-05
|
13KB
|
244 lines
[12pt] article
Software Reuse in an Industrial Environment
Rebecca Joos, Ph.D.
Motorola, Inc.
6501 William Cannon Drive
Austin, Texas 78735
512/891-3617
beckyj@oakhill.sps.mot.com
When trying to establish software reuse in an industrial environment, many roadblocks occur
beyond the normal problems of just reusing software. For example, in a hardware oriented company,
reuse is accepted as a normal part of doing business; however, hardware reuse is different than
software reuse and the engineers and their management must be introduced to the software
concepts. Software reuse has been introduced and discussed at every level within Motorola from the
CEO to the software engineers. Subject matter experts have been employed, task forces have been
formed, and educational programs have been initiated. This position paper briefly describes the
initiation and development of a software reuse program at Motorola, Inc. and what activities are
being implemented to achieve successful software reuse.
0.3in
Keywords : reuse organization, reuse roles, reuse process
Initial Effort
A coordinated effort to establish a software reuse program in Motorola began with the CEO
requesting that a Reuse Task Force be formed to investigate and make recommendations about
software reuse for Motorola. Task force members included a leading technician from each section of
the company and a Corporate subject matter expert (the author). The task force considered the
need and requirements for reuse organizational issues, education, methods, technology, and
implementation. The task force's conclusions fell into 4 general categories: education, motivation,
organization, and technology.
The educational recommendations briefly outlined the need for a strong software engineering
base that will be provided by Motorola University. Additionally, training courses for engineers
and management specifically targeted at the skills and techniques required for effective software
reuse. The set of motivation recommendations emphasized a career path, job descriptions,
metrics, and rewards. The organizational recommendations revolve around the need for each group
within Motorola to establish a reuse program. Also provided are the allocation of responsibilities
for the Software Engineering Steering Committee, and its subcommittees, the individual reuse
programs, and the corporate functions. Technology recommendations discussed issues such as the
need for specific software development processes, which reuse approach to employ, the
development of standards, the requirements for tools, and finally the issues of research both within
Motorola and at outside institutions.
The task force recommended approaching reuse from two perspectives. One approach is design
recovery and subsequent re-engineering which enables software engineers to recover reusable
components from existing requirements, design, code, etc. and populate the reuse databases. The
second approach is forward engineering (or design) for reuse where special efforts are taken to
make newly developed software reusable.
Based on this information, the CEO recommended to the business groups that they pursue a
software reuse practice. It is the Motorola culture that major changes are driven bottom-up i.e., from
the production engineers rather than filtered from the top down. Although the group has CEO
support, there is no corporate mandate thus the software engineers in the business units are the
driving force of the company program. In other words, Motorola's reuse program is being introduced
and implemented at the software engineering level.
Commitment and Support
One point that is continually stressed is: to be successful software reuse must be a long term
commitment. In order to make software reuse successful it must become an integral part of the
software development process. Software engineers must design with and for reuse. Rather than trying
to find a reusable component that matches a design module at the coding phase of the software life
cycle, software engineers should look for reusable components at the specification phase and
continue the process through the analysis, design, coding, and testing phases. All experiences from
concepts to algorithms involved with the software development should be captured for future
reference i.e., reuse.
Software engineers must be taught formal reuse techniques and management must support them
completely. Successful software reuse is dependent upon the support from all levels of the
production staff (from senior management to software engineers) and the realization that a great deal
of intellectual capital, real capital, and time must be invested before reuse begins to pay off
significantly.
Reuse Working Group
To foster the necessary commitment and facilitate software reuse at Motorola, the Reuse Task
Force proposed a Reuse Working Group (RWG) whose main task is to provide the development
and subsequent communication of reuse guidelines/standards to software engineers and their
management.
In general terms the charter of the Reuse Working Group is to implement guidelines and
recommended practices for software reuse within Motorola. As stated by the Reuse Task Force: "We
must determine an optimal reuse process and control it via the use of metrics. We must allow for
the knowledge gained in one area to be available to the developer who needs it in another. We
must develop a paradigm for development that formally makes use of what we already know - we
must FORMALLY REUSE." These high level abstract goals are being expanded into a detailed
process by the RWG.
The RWG consists of a group of engineers who are working together to develop a best-in-class
reuse program. The group must represent all of the Motorola software community. Each member of
the RWG has become the reuse champion for his/her location and targeted projects for potential
reuse. Thus the reuse program at Motorola is a bottom-up implementation. Cooperation,
coordination, and communication are the three most important elements in the group.
The RWG's primary interests are education, guidelines, technology, and implementation of
software reuse at Motorola. However, the group has determined that education is the most important
activity and without it the others will not come to fruition. Therefore, the group has dedicated its
initial efforts to the indoctrination and training of software engineers and their management. The
RWG is facilitating this through an aggressive seminar and workshop program for software reuse.
Seminars are a quick way to introduce people to the basics of reuse. The informal seminars are
being used to establish common terminology and definitions, and to discuss the concepts of a reuse
organization and what part it will play in software development. Once Motorola has reached a
consistent level of reuse knowledge, seminars will become a forum for external reuse experts and
researchers.
Training workshops provide instruction on the development and use of reusable components and
the operation of the reuse organization. There will be a series of training workshops: object-
oriented design, reuse for software engineers, and reuse for software engineering managers. The
group is developing workshops under the guidance of a subject matter expert(s).
Additionally, Motorola reuse conferences are being held in conjunction with other internal
software conferences (e.g.,the Object Oriented conference).
Process
Figure 1 is a model for the reuse process/organization that Motorola is developing. The key
concept is that there will be a support organization that takes the burden of finding, implementing,
and developing reusable components off the software engineers and placing it on reuse experts.
The support group provides help when needed. It is expected that as the software engineers
become more adept at reusing software they will need less and less help. Thus the support team's
responsibilities will shift to more development and maintenance.
Reuse Organization
Because of the difficulty of reusing software components, each software development facility
should have a support organization that is responsible for software reuse. This organization can
range from one person (a champion of reuse) to a focus group to an entire department depending
upon the size and needs of the facility.
The reuse organization is a support group that promotes the effective reuse of software in order to
improve the quality and lower cost of software development, integration, and maintenance. The
users of the department are the software engineers responsible for developing new product and
support software.
In general the group implements and supports a set of reuse policies and procedures that not only
provides users with guidelines for the use of the reuse facilities, but also assures the quality of the
reusable components. The group is responsible for restructuring software designed by the project
software engineers into reusable components, and act as software architects for the users (i.e.,
software engineers). Specifically the members are responsible for training and user support,
development and maintenance of reusable components, acquisition of reusable components,
acceptance and validation of all reusable components, self-evaluation and improvement, policy
definition, and maintaining and monitoring the library. This requires a knowledge of the domain
or domains and extensive software engineering expertise. The success of the reuse organization
is dependent upon the quality and stability of its members.
There are three basic roles within the support group: reuse architect, reuse engineer, and
librarian. For a large reuse organization there may be more than one person assigned to each role. On
the other hand, in a small reuse organization one person may have responsibility for all roles.
Figure 2 lists the roles with their expertise, qualifications, and responsibilities.
Getting Started
It became very apparent during the discussions of current activities that there are a lot of reuse
efforts throughout the company. By sharing information the groups have been able to benefit from
each others' experiences, failures and successes. To help facilitate reuse programs in the groups,
the RWG has proposed the following plan to software managers:
Find a champion (for reuse) for each role in the reuse organization (i.e., manager, reuse
engineer, reuse architect, and librarian). They must have strong software engineering backgrounds.
Provide the above personnel with reuse training (i.e., object-oriented analysis and design,
software reuse, and domain analysis).
Analyze the initial target domain.
The reuse working group should establish standards (templates, documentation,
classification), and the department personnel should initiate.
Select and obtain state-of-the-art tools for the department.
Have the personnel become expert with the tools.
Populate a reuse repository.
Collect and record the baseline metrics data.
Start training other software engineers how to use the tools.
Begin designing all software with reuse and for reuse from day 1.
Provide incentives for reuse
Currently, the RWG is concentrating on 2 and 3 with initial activities in the others. As the
individual reuse programs are maturing, the RWG is evaluating the reusable components for reuse
across the company. Despite the diverse nature of the software groups, there are already software
components that can be reused. As this collection expands the RWG proposes to establish a
corporate-wide repository of reusable components where components are knowledge, analysis,
designs, code, tests, etc.
About the Author
Dr. Joos conducted her graduate studies at Texas A M University where she completed her
dissertation entitled "A Software Development Environment That Assists in the Use and Design of
Reusable Modules." Upon graduating Dr. Joos joined Motorola Corporate R D where she has
been instrumental in organizing a reuse initiative and program. In 1990, Dr. Joos became the
Motorola shareholder representative to MCC and moved to Austin where she pursued her interests in
reverse engineering and domain analysis tools while transferring MCC technology into Motorola
business units. Recently, Dr. Joos has joined the RISC software design group in Motorola's
Microprocessor and Memory Group. She is currently designing test suites and facilitating the quality
assurance program. She will also be initiating pilot programs for reverse engineering and domain
analysis to build reusable components for the group.