data storages, so that any kind of data storages can be
adopted. When the sufficiently various types of stor-
ages and algorithms are provided, the templates can
be easily applied to a new system. To apply the de-
sign methodology, however, designers have to come
up with the combination of the components in the li-
brary in ad-hoc ways. Also, it is difficult to design
a new system which significantly differs from the ex-
isting designs. To avoid these problems, design reuse
should be done in earlier stages and in larger scale.
3 OUR BASIC APPROACH
3.1 Specifications of UML
We use UML diagrams to represent our analysis and
design. UML is a standardized language that includes
nine types of diagrams to realize object-oriented anal-
ysis and design. By combining the use of (subset of)
these nine diagrams, object-oriented analysis and de-
sign methods can be realized, as presented in (Rum-
baugh et al., 1990; Booch, 1993; Jacobson, 2000).
UML, however, just provides a standardized way to
describe various diagrams related to object-oriented
analysis and design methodologies, and does not have
any particular ways to utilize the diagrams. There-
fore, there are many ways to use UML diagrams in
analysis and design, although the differences may not
be so large.
In our study, we use four types of the diagrams:
use-case diagram, class diagram, sequence diagram,
and state chart diagram. A use-case diagram is used
to analyze how the target system reacts and functions
to the environments (Fig. 2 and 6). A class diagram is
used to statically describe and analyze the target de-
signs by defining classes and their relationships(Fig.
3, 4, 7, and 8). A sequence diagram gives a snap-
shot of behaviors of the target system by defining se-
quences of messages among the objects inside the tar-
get system and the environments.
3.2 Basic Approach for Reuse
Our methodology appears in Fig. 1. It consists of two
phases as follows:
The First Design Phase. Requirements analysis, de-
cisions about functional structures and how to im-
plement them are performed manually. Some de-
sign templates are created based on the design of this
phase.
Reused Design Phase. The design refinement tem-
plates of the first phase are reused in this phase, and
The first design
Requirements analysis
System-level design
Processors
Memories
Buses
IPs
UML (Phase 1)
UML (Phase 2)
UML (Phase n)
Reused design
UML (Phase 1)
UML (Phase 2)
UML (Phase n)
Mapping
Mapping
Mapping
Existing design or
one in libraries
New UML
diagrams for new
design
1 2
Automate
with our tool
Refinement
Figure 1: Our basic approach for reuse.
new designs are performed semi-automatically. We
try to find similar designs by referring to existing de-
signs (including ones stored in libraries). Once some
similar designs are found, we try to apply the same
refinement steps for more detailed designs.
An important point to emphasize is the fact that
a design refinement process of an electronic system
usually traces a similar process of other systems in re-
quirements analysis and system-level design. There-
fore, one template is applicable to a lot of designs,
which results in the improvement of design produc-
tivity.
3.3 Design Flow for First Design
In the first design phase, designers extract require-
ments of the design target by use-case analysis, then,
describe class diagrams which realize the required be-
havior. At the beginning of the flow, designers start
with simple and abstracted diagrams. Along with the
refinement steps explained in the following, design-
ers make them into detailed ones taking characteris-
tic of the design target into account. UML diagrams
and associated notes about design decisions in each
refinement step are stored into the database and used
as templates for other designs later. Note that the dia-
grams/documents that are not finally adopted are also
stored into the database, since these alternatives can
be used for other designs in future. The detailed ex-
planation of the design flow for the first design is ex-
plained in Section 4.
3.4 Design Flow for Designs with Reuse
When there are existing designs available as design
template, designers search for designs which are sim-
ilar to a new design, and design it by reusing the re-
finement process of existing designs. Existing designs
are used in two ways in general. The first way is ap-
plied when the new design and the existing design are
similar to each other. In this case, the new design is
designed quickly by tracing the refinement process of
the existing design. In the second way, the existing
A HW/SW CO-REUSE METHODOLOGY BASED ON DESIGN REFINEMENT TEMPLATES IN UML DIAGRAMS
241