From: "Jeffrey D. Cherry" <jdcherry@utech.net>
To: "Marin D. Condic" <mcondic-nospam@quadruscorp.com>
Subject: Re: Popular Design Diagram Methods For Ada
Date: 2000/02/03
Date: 2000-02-03T00:00:00+00:00 [thread overview]
Message-ID: <3899C15B.3C81B9E9@utech.net> (raw)
In-Reply-To: 38986B2C.D4BDB7A4@quadruscorp.com
My group has looked at a lot of Ada code. The software that we've looked
at was developed by different companies (I'm with the IV&V contractor). It's
almost exclusively Ada83, but there is some Ada95. The various projects
range in size from about 30KLOC to over 250KLOC. As you would expect, we're
always looking for better tools to automate the code analysis process. We
can't depend on the developer's software design diagrams since they often
don't exist or are not updated through the long development cycle. We also
need to focus on the code, since its what actually does the work. Another
limitation is that we only have PCs on which we may do the analysis. Thus,
any tool we consider must run under Windows 95/98 or NT. We have one Linux
machine that we've just recently acquired, so things are looking up.
Given the above context, and if you're talking just code analysis ... not, for
example, requirements tracking or automated testing ... then we've been using
a tool called "Understand for Ada" by Scientific Toolworks, Inc. They also
have a C++ and FORTRAN variant of the same tool. Their web site is at
http://www.scitools.com. We've found that this tool gives you the most
bang for the buck. It generates a variety of reports and diagrams that
we've found quite useful, and the latest version (1.3, currently in beta
but due out at the end of February) is an impressive improvement over the
previous version (1.2.7). The tool doesn't generate UML diagrams (I'll
address that topic below) but the diagrams it does generate gives you an idea
of structure and other dependency relationships. The browser makes
navigation of these diagrams easy and we use the text reports for additional
processing and analysis.
We've tried reverse engineering options in tools such as Rational's Rose and
Software Through Pictures from Aonix, but were unimpressed with their results.
The reason these reverse engineering tools don't help that much is because we
look at (mostly) Ada83 code and these tools generate UML diagrams. Since Ada83
isn't as object-oriented as Ada95, the resulting class diagrams are
uninformative. This isn't a failure of the tool but merely a consequence of
the implementation. What we would like to see in these reverse engineering
tools, but haven't seen, is as follows:
1) Class diagrams should use the data type name for the class name, and
component boxes should list all the explicitly defined primitive operations
on the type. Implicit primitive operations could be listed as well but
should be "hidable" from the diagram.
2) Component diagrams should be generated to show the relationships of the
source files and their resulting application programs and/or libraries.
3) For a given subprogram, generate an activity diagram.
Other UML diagrams are, IMHO, not creatable from the source without some, or
a lot of, input from the user. Use Case diagrams, I think, are not derivable
from the code, but must be generated by the user(s). Statechart diagrams
would be very difficult to generate from the code due the variety of ways to
implement a state machine. Sequence diagrams might be generated for common
GUIs, but would require help from the user for event definition and
callback routines, and at the very least would require processing files
other than Ada source. Collaboration diagrams would be even more difficult
since the interaction must be defined by the user. Deployment diagrams may
be generated but again require the user to define the partitioning of
applications to nodes, etc. Something that, once again, can't be derived
from the source code.
If you have money that you can devote to a project, you may want to consider
using ASIS to develop your own analysis tools. We've identified several
ASIS tools that we'd like to develop but simply don't have the resources.
Also, if you use a real operating system (i.e. _not_ Windows), there are
many more analysis tools available.
--
Regards,
Jeffrey D. Cherry
Senior IV&V Analyst
Logicon Space and Information Operations
Logicon Inc.
a Northrop Grumman company
next prev parent reply other threads:[~2000-02-03 0:00 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2000-02-02 0:00 Popular Design Diagram Methods For Ada Marin D. Condic
2000-02-02 0:00 ` Ted Dennison
2000-02-03 0:00 ` Chris M. Moore
2000-02-03 0:00 ` Marin D. Condic
2000-02-04 0:00 ` Jean-Pierre Rosen
2000-02-04 0:00 ` Marin D. Condic
2000-02-05 0:00 ` Jean-Pierre Rosen
2000-02-03 0:00 ` Jeffrey D. Cherry [this message]
2000-02-03 0:00 ` Marin D. Condic
2000-02-04 0:00 ` Jeffrey D. Cherry
2000-02-04 0:00 ` Marin D. Condic
2000-02-07 0:00 ` Jeffrey D. Cherry
2000-02-04 0:00 ` Jean-Pierre Rosen
2000-02-04 0:00 ` Marin D. Condic
2000-02-05 0:00 ` Jean-Pierre Rosen
2000-02-07 0:00 ` Pierre Dissaux
2000-02-08 0:00 ` Marin D. Condic
2000-02-08 0:00 ` Jean St-Pierre
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox