home *** CD-ROM | disk | FTP | other *** search
- Xref: sparky comp.object:3071 comp.specification:334
- Path: sparky!uunet!cis.ohio-state.edu!pacific.mps.ohio-state.edu!linac!att!att!drutx!abasin!weh
- From: weh@abasin.dr.att.com (William E. Hopkins)
- Newsgroups: comp.object,comp.specification
- Subject: Current OOA/OOD and formal methods
- Keywords: A++, Z, VDM, formal methods, OOA/OOD
- Message-ID: <18822@drutx.ATT.COM>
- Date: 30 Jul 92 15:54:51 GMT
- Sender: news@drutx.ATT.COM
- Reply-To: william.e.hopkins@att.com
- Organization: AT&T Bell Laboratories
- Lines: 40
-
-
- Having just read two papers on Annotated C++ (a.k.a., A++; thanks Rich!),
- which describes a notational extension for specifying invariants,
- constraints, pre- and post-conditions, etc., on C++ classes and functions,
- I'd like to see some inter-mixing of the OOA/OOD (object-oriented analysis
- and design) and formal methods ideas.
-
- In particular, OOA methods seem to focus on specifying behavior via state
- transition diagrams and DFDs, while the formal methods community (e.g., Z
- and VDM) specify behavior via predicates (more or less). On the formal
- methods side, I am encouraged by the progress made in both formal
- specification and formal verification/derivation, and its application in
- a Cleanroom Approach setting. A++ is a notation and tool set that helps
- apply formal techniques to C++.
-
- On the other hand, OOA/OOD methods (e.g., Shlaer/Mellor, Rumbaugh et al.)
- have a nice intuitive ``feel'' to them, describing via graphical techniques
- both structure and behavior. Unfortunately, they don't provide a formal
- enough specification to be able to go on to coding and formally derive the
- code from it. In addition, there seems to be a disconnect between behavior
- specified by predicates and behavior specified by state transition diagram.
-
- I've used techniques from both areas to accomplish some real ends (e.g.,
- Gries' technique enabled me to derive a complex piece of code that
- implemented a complex transformation specification and get it right, i.e.,
- no bugs ever encountered). Unfortunately, using OOA/OOD for
- higher-level design does not feed into formal code derivation.
-
- I like the property formal methods offer of unambiguously specifying
- behavior via formal specification and the assurance of derving code
- consistent with the specification. For high-level design, though, manipulating
- text just doesn't help construct an overall view of the system components
- and behavior.
-
- My question to the net: is there a common ground? Can the formal methods
- and graphical methods be brought together? How do predicates compare to
- state transition diagrams in describing and specifying behavior?
-
- ------------------------------------------------------------------------------
- Bill Hopkins AT&T Bell Laboratories william.e.hopkins@att.com
-