- 3 -
Kazman, et. al., also focus on early evaluation of software architectures to reveal
problems at a point in the software development process where they can be most
easily and economically corrected. This work differs from theirs in its focus on
performance and its use of more rigorous scenario descriptions. Kazman, et. al., apply
their technique to a variety of quality attributes, including performance, but, as noted
above, use informal, natural language descriptions of scenarios.
Object-oriented methods typically defer consideration of performance issues until
detailed design or implementation, after the overall architecture has been established
(see e.g., [Rumbaugh, et al., 1991], [Jacobson, et al., 1992], [Booch, 1994]). Even then, the
approach tends to be very general and ad hoc. There is no attempt to integrate
performance engineering into the development process.
Some work specifically targeted at performance evaluation of object-oriented systems
has emerged from the performance community. Smith and Williams [Smith and
Williams, 1993] describe performance engineering of an object-oriented design for a
real-time system. However, this approach applies general SPE techniques and only
addresses the specific problems of object-oriented systems in an ad hoc way. Smith
and Williams applied Use Case scenarios as the bridge to performance models in
[Smith and Williams, 1997] and [Smith and Williams, 1998]. In contrast, this paper
adapts the SPE process to evaluate software architectures, and the specific sources of
information for software architectures.
Hrischuk et. al. [Hrischuk, et al., 1995] describe an approach based on constructing an
early prototype which is then executed to produce angio traces. These angio traces are
then used to construct workthreads (also known as timethreads or use case maps [Buhr and
Casselman, 1992], [Buhr and Casselman, 1994], [Buhr and Casselman, 1996]), which
show object method invocations. Service times for methods are estimated. This differs
from the approach described here in that their approach derives scenarios from
prototype execution and generates the system execution model from the angio traces.
Our approach is intended for use long before executable prototypes are available; and
it reflects a view of the software that explicitly models more general scenarios with
execution path frequencies and repetitions.
Baldassari et. al. describe an integrated object-oriented CASE tool for software design
that includes a simulation capability for performance assessment [Baldassari, et al.,
1989], [Baldassari and Bruno, 1988]. The CASE tool uses petri nets for the design
description language rather than the general methods described above, thus the
design specification and the performance model are equivalent and no translation is
necessary. Using these capabilities requires developers to use both the PROTOB
method and CASE tool. The approach described here is general in that it may be used
with a variety of object-oriented analysis and design methods.