TITLE: One view of the OO methodological world Lately, there have been some interesting discussions on the Internet, e.g.: - What are evolutionary object-oriented methodologies, and how do they differ from revolutionary object-oriented methodologies? - With the pending "merger" between the Booch and Rumbaugh (OMT) methodologies, is there any need for other approaches? I thought it might be interesting to toss out a few ideas on the subject of object-oriented methodologies. (I have a feeling that the flames will be so fierce that all that will be left of me are some cinders, but such is life. ;-)) I have included a short bibliography at the end of this message for the intellectually curious. I hope that you find this article stimulating. -- Ed ===================================================================== What Is a "Methodology?" Some would claim that the word "methodology" literally means "the study of methods." However, as it is most commonly used within the software community, methodology is taken to mean "an approach to accomplishing a task." We can, and do, speak of analysis methodologies, design methodologies, testing methodologies, management methodologies, and others. Methodologies usually define and require the following: - Tasks: What are the specific activities to be accomplished, and what is the ordering for these activities? - Deliverables: What products will be produced or altered as a result of accomplishing the tasks? - Roles and Responsibilities: Who will be accomplishing each task, and what are they expected to do in the process of accomplishing each specific task? - Heuristics: What mechanisms are provided to guide our decisions as we accomplish each task? Characterizing Methodologies There are quite a few ways in which we can characterize software engineering methodologies, e.g.: - Concepts: What are the conceptual underpinnings of the methodology, e.g., how does an "object-oriented" methodology define and deal with concepts such as object, class, state, inheritance, aggregation, and information hiding? - Process: A methodology must describe what steps must be taken, in what order, to accomplish the task. How well process is specified varies widely from methodology to methodology. - Notation: What techniques (textual, graphical, or otherwise) are used to capture and represent information within the methodology? Some methodologies specify only graphical techniques, while others stipulate the form and content of entire documents. - Pragmatics: How well can a methodology be used for the software engineering of real software products? Pragmatics encompasses such issues as needed resources, required expertise, language suitability, and domain applicability. - Support for Software Engineering: Does the methodology specifically and directly address such things as reusability, traceability, modifiability, and conceptual integrity. How well does the methodology address such things as large systems and/or real-time systems? - Marketability: What are the practical considerations for bringing the methodology in-house? Are there automated tools and training for the methodology? How much of an impact with the methodology have on the current way business is conducted within the organization? David Monarchi and Gretchen Puhr (among others) have classified object-oriented methodologies as being "process only," "representation only," or "process and representation." - "Process only" object-oriented methodologies identified and described a series of tasks that had to be accomplished, but provided little, or no, formal means of capturing information, e.g., no specified documents or graphics. - "Representation only" object-oriented methodologies were comprised of semiformal to formal graphical techniques for representing items and situations, but did not specify any coherent set of tasks for accomplishing analysis, design, or any other development activity. Examples of object-oriented development methodologies include: - Booch - Berard - Rumbaugh - Wirfs-Brock - Coad-Yourdon - Shlaer-Mellor - Embly-Kurtz - Martin-Odell - GOOD - HOOD - MOOD - ROOM - Objectory - OOD/LVM - Firesmith - Colbert - IBM* - Fusion - Synthesis - JSD/OOD* - Smith-Tockey - BON - OBA - OOSD - OOram - Balin - SOMA - OOREM - OO Z* - Henderson-Sellers - and more ... *several distinct, and often unrelated, varieties Evolutionary Versus Revolutionary Methodologies Edward Yourdon is often credited with originating an informal way of characterizing object-oriented analysis and design methodologies. He defined two broad categories of object-oriented analysis and design methodologies, i.e., evolutionary and revolutionary.: - Evolutionary approaches to object-oriented analysis and design are those that were very similar to (or little changed from) more traditional (e.g., structured or information engineering) approaches. - Revolutionary approaches to object-oriented analysis and design are those that both heavily emphasize object-oriented concepts, and are significantly different from the more traditional approaches to analysis and design. Evolutionary object-oriented analysis and design methodologies have the following characteristics: - Each uses graphical techniques found in more traditional methodologies, e.g., data flow diagrams and entity-relationship diagrams. (There are some older graphical techniques, e.g., state transition diagrams, that are also useful and appropriate in an object-oriented context.) - They tend to treat objects as if they were data, e.g. - objects are modeled using the rules for modeling data, e.g., paying attention to normalization, - objects are designed and treated as if they were static, i.e., there are very few, if any, active objects, - objects have a relatively weak form of information hiding, - objects are based very closely on, or are designed to be very compatible with, traditional data stores, e.g., relational databases, - there is a very high degree of harmful object coupling due to the inclusion of relationships with other (external) objects within objects - From the beginning, there are separate "functional" models and "informational" models. In fact, most evolutionary approaches start with a functional model. Examples of evolutionary object-oriented methodologies include: - Rumbaugh - Shlaer-Mellor - Embly-Kurtz - Martin-Odell - Fusion Revolutionary object-oriented analysis and design methodologies have the following characteristics: - These methodologies have a good deal in common with object-oriented programming languages, e.g., Smalltalk and C++ - Concepts such as inheritance and polymorphism play a prominent role within the methodology. - There is a very strong emphasis on information hiding. - Information is strongly localized around objects -- as opposed to around data, or around functions. - The methodology allows for abstract classes, parameterized classes, and/or metaclasses. - From the beginning, they treat systems as cohesive collections of interacting and/or interrelated objects. - Objects can be active, i.e., at least some objects are capable of changing their own state spontaneously. - They show a clear separation between classes and instances, and they treat classes as having their own functionality, e.g., classes have operations/methods that allow for the creation and destruction of their instances. (Evolutionary methods tend to treat classes as types.) Examples of revolutionary object-oriented methodologies include: - Berard - Booch '91 - Wirfs-Brock Not all object-oriented software development methodologies fit neatly into either the evolutionary or revolutionary category. Some people have even proposed a third category, i.e., "transitional," for methodologies that are between evolutionary and revolutionary. Even with this third category, there are still object-oriented methodologies that defy classification. What Makes a Methodology "Reuse Hostile?" Some people think that any "object-oriented" approach will encourage higher levels of reusability. This is not true. The following items will have a negative impact on software reusability: - Although reuse and reusability may be mentioned in a description of the methodology, there are no specific processes or guidelines that directly address reusability. - Reusability is treated as being specific to code software, e.g., reusability is not addressed as an important part of the analysis, design, or testing processes. - The methodology does not stress the negative impact of unnecessary object coupling, in fact, the issue of object coupling may be ignored entirely. - The methodology does not stress, nor does it provide any mechanisms for assessing the cohesion of objects. - Relationships among objects, other than aggregation, are encapsulated within the objects involved in the relationship, thus unnecessarily increasing the object coupling. - There is little, if any, mention of concepts such as metaclasses and/or parameterized classes. - Rather than being dispersed throughout the methodology, the concept of reuse is treated as an isolated topic. Thorough and Robust Methodologies When we say that a methodology is thorough, we mean that it provides a relatively complete set of tasks, deliverables, roles and responsibilities, and heuristics. This thoroughness has two dimensions: - breadth, which addresses how much of the software life-cycle is covered, and which specific software engineering activities are addressed, and - depth, which address to what level of detail each software engineering activity is covered. A more common term for thoroughness is completeness. There are literally scores of object-oriented methodologies. Focusing on some of the more popular object-oriented methodologies, we find: - Coad: has breadth (coverage of analysis, design, and coding), but very little depth, and very few heuristics - Booch: has less breadth than Coad, but much more depth in the area of design, with some coverage of analysis. Strong on heuristics, weak on process. - Rumbaugh: has breadth (coverage of analysis and design). Strong on process (good depth), but weak on object-oriented heuristics. - Fusion: has breadth (coverage of analysis and design), but very little depth - Objectory: has breadth (analysis and design), and depth, but is weak on object-oriented heuristics - Shlaer-Mellor: has breadth (analysis and design), and depth. - Wirfs-Brock: Lacks breadth (primarily focused on design and coding), but has some depth. A robust methodology is one that: - has been in use for a significant amount of time, e.g., five or more years, - has been used on a significant number of projects, e.g., more than 100 projects, - has a significant number of references in the literature, - is documented in at least one book, - has CASE tool support from more than one vendor, - generally meets the needs of its users, - has evolved over time to better address the needs of its users, - has been used successfully on most of the projects where it has been applied, and - is generally characterized as thorough. Examples of robust object-oriented methodologies include: - Booch - Rumbaugh - Shlaer-Mellor - Objectory Other Characterizations Given the large number of available object-oriented methodologies, people have sought out various means of directing their focus towards the more practical object-oriented methodologies. One such approach is the so-called "methodology triangle." Simply put, to receive any serious consideration, an object-oriented methodology must have three things, i.e.: - a publicly-available book dedicated to the methodology, - publicly-available training for the methodology, and - at least one publicly-available CASE tool that directly supports the methodology. In 1992, Patty Dock established a set of criteria for determining if an object-oriented methodology was "ready for commercial use." Her criteria were: - Is the method described in an English-language book readily available to a team of developers? - Has at least one author of the book participated, full-time, in an object-oriented development project? - Has the method been used on at least one prior commercial project that involved a team of five or more programmers? - Is the method supported by at least one reasonably priced (<$20,000 per programmer), commercially-available CASE tool? - Is there at least one company with more than ten people in it to provide commercial training courses? Although her criteria are interesting and useful, Patty Dock's original research was flawed. She examined a relatively small sample of object-oriented methodologies (i.e., 22), and she had a strange notion of what a methodology was. For example, she pronounced both Booch and Rumbaugh "ready for use," but she also referred to CRC cards, and a very informal way of using them, as a methodology that was "ready for use." [Keep in mind that "ready for use" is supposed to have all the connotations of "industrial strength."] Brian Henderson-Sellers and Julian Edwards have proposed extending Dock's criteria by providing three (increasingly complete) levels of compliance with the criteria. Bibliography [Abbott, 1980]. R.J. Abbott, "Report on Teaching Ada," Technical Report SAI-81-313-WA, Science Applications, Inc., McClean, Virginia, 1980. [Abbott, 1983]. R.J. Abbott, "Program Design by Informal English Descriptions," Communications of the ACM, Vol. 26, No. 11, November 1983, pp. 882 - 894. [Alabiso, 1988]. B. Alabiso, "Transformation of Data Flow Analysis Models to Object -Oriented Design," OOPSLA '88 Conference Proceedings, Special Issue of SIGPLAN Notices, Vol. 23, No. 11, November 1988, pp. 335 - 353. [Anderson et al., 1989]. J.A. Anderson, J. McDonald, L. Holland, and E. Scranage, "Automated Object-Oriented Requirements Analysis and Design," Proceedings of the Sixth Washington Ada Symposium, June 26-29, 1989, pp. 265 - 272. [ARM, 1983]. Reference Manual for the Ada Programming Language, ANSI/MIL-STD 1815A (1983), United States Department of Defense, February 1983. [Arthur, 1985]. L.J. Arthur, Measuring Programmer Productivity and Software Quality, John Wiley and Sons, New York, New York, 1985. [ATC, 1989]. Air Training Command, Object-Oriented Design (Student Handout), USAF Technical Training School, Keesler AFB, Mississippi, May 1989. [Backus, 1978]. J. Backus, "Can Programming be Liberated From the von Neumann Style?: A Functional Style and Its Algebra of Programs," Communications of the ACM, Vol. 21, No. 8, August 1978, pp. 613 - 641. [Backus, 1982]. J. Backus, "Function Level Computing," IEEE Spectrum, Vol. 19, No. 8, August 1982, pp. 22 - 27. [Bailey, 1989]. S.C. Bailey, "Designing With Objects," Computer Language, Vol. 6, No. 1, January 1989, pp. 34 - 43. [Bailin, 1989]. S.C. Bailin, "An Object-Oriented Requirements Specification Method," Communications of the ACM, Vol. 32, No. 5, May 1989, pp. 608 - 623. [Balin, 1994]. S.C. Balin, "Object-Oriented Requirements Analysis," The Encyclopedia of Software Engineering, Volume 2, J.J. Marciniak, Editor, John Wiley and Sons, New York, New York, 1994, pp. 740 - 756. [Beck and Cunningham, 1989]. K. Beck and W. Cunningham, "A Laboratory for Teaching Object Oriented Thinking," OOPSLA '89 Conference Proceedings, Special Issue of SIGPLAN Notices, Vol. 24, No. 10, October 1989, pp. 1 - 6. [Berard, 1985]. E.V. Berard, An Object-Oriented Design Handbook for Ada Software, EVB Software Engineering, Inc., Frederick, Maryland, 1985. [Berard, 1987]. E.V. Berard, "Object-Oriented Development," Methodologies and Tools for Real-Time Systems Conference Proceedings, National Institute for Software Quality and Productivity, Washington, D.C., March 1987, pp. El - E27. [Berard, 1990]. E.V. Berard, "Object-Oriented Requirements Analysis," Hotline On Object-Oriented Technology, Vol. 1, No. 8, June 1990, pp. 9 - 11. [Berard, 1993]. E.V. Berard, Essays on Object-Oriented Software Engineering, Volume 1, Prentice Hall, Englewood Cliffs, New Jersey, 1993. [Berard, 1994]. E.V. Berard, "Object-Oriented Design," The Encyclopedia of Software Engineering, Volume 2, J.J. Marciniak, Editor, John Wiley and Sons, New York, New York, 1994, pp. 721 - 729. [Bergland, 1981]. G.D. Bergland, "A Guided Tour of Program Design Methodologies," IEEE Computer, Vol. 14, No. 10, October 1981, pp. 18 - 37. [Bewtra et al., 1990]. M. Bewtra, S.C. Balin, and J.M. Moore, "An Ada Design and Implementation Toolset Based on Object-Oriented and Functional Programming Paradigms," Proceedings of the Seventh Washington Ada Symposium, June 25-28, 1990, pp. 213 - 226. [Birchenough and Cameron, 1989]. A. Birchenough and J.R. Cameron, "JSD and Object-Oriented Design," JSP & JSD: The Jackson Approach to Software Development, IEEE Computer Society Press, Washington, D.C., 1989. [Birrell and Ould, 1985]. N. D. Birrell and M. A. Ould, A Practical Handbook for Software Development, Cambridge University Press, New York, New York, 1985. [Blaha et al., 1988]. M.R. Blaha, W.J. Premerlani, and J.E. Rumbaugh, "Relational Database Design Using an Object-Oriented Approach," Communications of the ACM, Vol. 31, No. 4, April 1988, pp. 414 - 427. [Blair et al., 1991]. G. Blair, J. Gallagher, D. Hutchison, and D. Sheperd, Object-Oriented Languages, Systems and Applications, Halsted Press, New York, New York, 1991. [Blank et al., 1983]. J. Blank, M. M. H. Drummen, H. Gersteling, T. G. M. Janssen, M. J. Krijger and W. D. Pelger, Software Engineering: Methods and Techniques, John Wiley & Sons, New York, New York, 1983. [Boehm-Davis and Ross, 1984]. D. Boehm-Davis and L.S. Ross, "Approaches to Structuring the Software Development Process," General Electric Company Report Number GEC/DIS/TR-84-BI V-I, October 1984. [Booch, 1981]. G. Booch, "Describing Software Design in Ada," SlGPLAN Notices, Vol. 16, No. 9, September 1981, pp. 42 - 47. [Booch, 1982]. G. Booch, "Object Oriented Design," Ada Letters, Vol. I, No. 3, March/April 1982, pp. 64 - 76. [Booch, 1983a]. G. Booch, Software Engineering with Ada, Benjamin/Cummings, Menlo Park, California, 1983. [Booch, 1983b]. G. Booch, "Object Oriented Design," IEEE Tutorial on Software Design Techniques, Fourth Edition, P. Freeman and A.I. Wasserman, Editors, IEEE Computer Society Press, IEEE Catalog No. EHO205-5, IEEE-CS Order No. 514, pp. 420 - 436. [Booch, 1986]. G. Booch, "Object Oriented Development," IEEE Transactions on Software Engineering, Vol. SE-12, No. 2, February 1986, pp. 211 - 221. [Booch, 1990]. G. Booch, "On the Concepts of Object-Oriented Design," in Modern Software Engineering: Foundations and Current Perspectives, P.A. Ng and R.T. Yeh, Editors, Van Nostrand Reinhold, New York, New York, 1990, pp. 165 - 204. [Booch, 1991]. G. Booch, Object-Oriented Design With Applications, Benjamin/Cummings, Menlo Park, California, 1991. [Booch, 1994]. G. Booch, Object-Oriented Analysis and Design With Applications, Second Edition, Benjamin/Cummings, Menlo Park, California, 1994. [Boyd, 1987]. S. Boyd, "Object-Oriented Design and PAMELA: A Comparison of Two Design Methods for Ada," Ada Letters, Vol. 7, No. 4, July-August 1987, pp. 68 78. [Brown and Dobbs, 1989]. R.J. Brown and V. Dobbs, "A Method for Translating Functional Requirements for Object-Oriented Design," Proceedings of the Seventh Annual National Conference on Ada Technology, March 1989, pp. 589 599. [Bulman, 1989]. D. Bulman, "Objects Don't Replace Design," Computer Language, Vol. 6, No. 8, August 1989, pp. 151-152. [Byrne and Wiatrowski, 1986]. W.E. Byrne and E. Wiatrowski, "Object-Oriented Design With Graphical Abstraction," Proceedings of the Third National Conference on Methodologies and Tools for Real-Time Systems, National Institute for Software Quality and Productivity, Washington, D.C., September 1986, pp. C-1 to C-19. [Card and Glass, 1990]. D.N. Card and R.L. Glass, Measuring Software Design Quality, Prentice Hall, Englewood Cliffs, New Jersey, 1990. [Carlson, 1989]. G. Carlson, "Problems Encountered in Learning Object-Oriented Design Using Ada," Proceedings of the Seventh Annual National Conference on Ada Technology, March 13-16,1989, pp. 209 - 212. [Chedgey et al., 1987]. C. Chedgey, S. Kerney, and H.-J. Kugler, "Using VDM in an Object-Oriented Development Method for Ada Software," VDM '87 VDM -- A Formal Method At Work, Proceedings of the 1987 European Symposium, Springer Verlag Lecture Notes On Computer Science, Number 252, pp. 63 - 76. [Chidamber and Kemerer, 1991]. S.R. Chidamber and C.F. Kemerer, "Towards a Metrics Suite for Object-Oriented Design," OOPSLA '9I Conference Proceedings, Special Issue of SIGPLAN Notices, Vol. 26, No. 11, November 1991, pp. 197 21 1. [Clark, 1987]. R.G. Clark, "Designing Concurrent Objects," Ada Letters, Vol. VII, No. 6 Fall 1987, pp. 107 -109. [Coad and Yourdon, 1989]. P. Coad and E. Yourdon, OOA -- Object-Oriented Analysis, Prentice Hall, Englewood Cliffs, New Jersey, 1989. [Coad and Yourdon, 1990]. P. Coad and E. Yourdon, OOA -- Object-Oriented Analysis, 2nd Edition, Prentice Hall, Englewood Cliffs, New Jersey, 1990. [Coad and Yourdon, 1991]. P. Coad and E. Yourdon, Object-Oriented Design, Prentice Hall, Englewood Cliffs, New Jersey, 1991. [Coad, 1988]. P. Coad, "Object-Oriented Requirements Analysis (OORA): A Practitioner's Crib Sheet," Proceedings of Ada Expo 1988, Galaxy Productions, Frederick, Maryland, 1988, 9 pages. [Coggins, 1990]. J.M. Coggins, "Designing C++ Class Libraries," Proceedings of the C++ Conference, San Francisco, California, April 1990, USENIX Association, Berkeley, California, 1990, pp. 25 - 35. [Colbert, 1989]. E. Colbert, "The Object-Oriented Software Development Method: A Practical Approach to Object-Oriented Development," Proceedings of TRI-Ada '89 -- Ada Technology In Context: Application, Development, and Deployment, October 23-26, 1989, Association for Computing Machinery, New York, New York, pp. 400 - 415. [Coleman et al., 1992]. D. Coleman, F. Hayes, and S. Bear, "Introducing Objectcharts or How to Use Statecharts in Object-Oriented Design," IEEE Transactions on Software Engineering, Vol. 16, No. 1, January 1992, pp. 9 - 18. [Coleman et al., 1994]. D. Coleman, P. Arnold, S. Bodoff, C. Dollin, H. Gilchrist, F. Hayes, and P. Jeremaes, Object-Oriented Development: The Fusion Method, Prentice Hall, Englewood Cliffs, New Jersey, 1994. [Connor, 1980]. M. F. Connor, "SADT: Structured Analysis and Design Technique Introduction," SofTech, Inc., Waltham, Massachusetts, May 22, 1980. Proceedings of Guide 50, Houston, Texas, 1980. [Conte et al., 1986]. S.D. Conte, H.E. Sunsmore, and V.Y. Shen, Software Engineering Metrics and Models, Benjamin/Cummings, Menlo Park, California, 1986. [Dahl and Nygaard, 1966]. O.J. Dahl and K. Nygaard, "SIMULA -- an ALGOL-Based Simulation Language," Communications of the ACM, Vol. 9, No. 9, September 1966, pp. 671 - 678. [Davis and Irving, 1989]. N.W. Davis and M. Irving, "Practical Experiences of Ada and Object-Oriented Design In Real-Time Distributed Systems," Ada: the Design Choice -- Proceedings of the Ada-Europe Conference, Madrid 13-15 June 1989, Cambridge University Press, Cambridge, United Kingdom, 1989, pp. 59 - 79. [De Marco, 1978]. T. De Marco, Structured Analysis and System Specification, Yourdon Press, New York, New York, 1978. [de Champeaux and Faure, 1992]. D. de Champeaux and P. Faure, "A Comparative Study of Object-Oriented Analysis Methods," Journal of Object-Oriented Programming, Vol. 5, No. 1, March/April 1992, pp. 21 - 33. [de Champeaux et al., 1993]. D. de Champeaux, D. Lea, and P. Faure, Object-Oriented System Development, Addison-Wesley Publishing Company, Reading, Massachusetts, 1993. [Delatte et al., 1993]. B. Delatte, M. Heitz, and J.F. Muller, HOOD Reference Manual 3.1, Prentice Hall, London, United Kingdom, 1993. [DeMarco, 1979]. T. DeMarco, Structured Analysis and System Specification, Yourdon Press, New York, New York, 1979. [Dijkstra, 1969]. E. Dijkstra, "Structured Programming," Presented at the 1969 NATO Science Committee Conference. Reprinted in [Yourdon, 1979], pp. 113 -125. [Dock, 1992]. P. Dock, "OOD: Research Or Ready," Hotline On Object-Oriented Technology, Vol. 3, No. 9, July 1992, pp. 1, 7 - 9. [Donaldson, 1989]. C.M. Donaldson, "Dynamic Binding and Inheritance in an Object-Oriented Ada Design," Ada: the Design Choice -- Proceedings of the Ada-Europe Conference, Madrid 13-15 June 1989, Cambridge University Press, Cambridge, United Kingdom, 1989, pp. 16 - 25. [Dorfman and Thayer, 1990]. M. Dorfman and R.H. Thayer, Editors, Standards, Guidelines, and Examples on System and Software Requirements Engineering, IEEE Computer Society Press, Los Alamitos, California, 1990. [Dreger, 1989]. J.B. Dreger, Function Point Analysis, Prentice Hall, Englewood Cliffs, New Jersey, 1989. [Embley et al., 1992]. D.W. Embley, B.D. Kurtz, and S.N. Woodfield, Object-Oriented Systems Analysis: A Model-Driven Approach, Yourdon Press, Englewood Cliffs, New Jersey, 1992. [Fichman and Kemerer, 1992]. R.G. Fichman and C.F. Kemerer, "Object-Oriented and Conventional Analysis and Design Methodologies," IEEE Computer, Vol. 25, No. 10, October 1992, pp. 22 - 39. [Finkelstein, 1989]. C. Finkelstein, An Introduction to Information Engineering: From Strategic Planning to Information Systems, Addison-Wesley, Reading, Massachusetts, 1989. [Firesmith, 1991a]. D. Firesmith, "Structured Analysis and Object-Oriented Development Are Not Compatible," Ada Letters, Vol. XI, No. 9, November/December 1991, pp. 56 - 66. [Firesmith, 1991b]. D. Firesmith, "Object-Oriented Graphics for Requirements Analysis and Logical Design," Ada Letters, Vol. XI, No. 9, November/December 1991, pp. 100 - 115. [Firesmith, 1993]. D.G. Firesmith, Object-Oriented Requirements Analysis and Logical Design: A Software Engineering Approach, John Wiley and Sons, New York, New York, 1993. [Freeman and Wasserman, 1982]. P. Freeman and A. I. Wasserman, Software Development Methodologies and Ada (Methodman), Department of Defense Ada Joint Program Office, Arlington, Virginia, 1982. [Freitas et al., 1990]. M Freitas, A Moreira, and P. Guerreiro, "Object-Oriented Requirements Analysis in an Ada Project," Ada Letters, Vol. 10, No. 6, July-August 1990, pp. 97 - 109. [Gallimore et al., l989]. R. Gallimore, D. Coleman, and V. Stravridou, "UMIST OBJ: A Language for Executable Program Specifications," Computer Journal, Vol. 32, No. 5, October 1989, pp. 413 - 421. [Gane and Sarson, 1977]. C. Gane and T. Sarson, Structured Systems Analysis: Tools and Techniques, Improved System Technologies, New York, New York, 1977. [Gardner, 1988]. M. Gardner, "Successes and Limitations of Object-Oriented Design," Journal of Pascal, Ada, and Modula-2, Vol. 7, No. 6, November/December, 1988, pp. 30 - 41. [Gibson, 1990]. E. Gibson, "Objects -- Born and Bred," Byte, Vol. 15, No. 10, October 1990, pp. 245 - 246, 248, 250, 252, 254. [Gilb, 1977]. T. Gilb, Software Metrics, Winthrop Publishers, Cambridge, Massachusetts, 1977. [Goguen, 1984]. J.A. Goguen, "Parameterized Programming," IEEE Transactions on Software Engineering, Vol. SE-10, No. 5, September 1984, pp. 528 - 543. [Goldberg and Kay, 1976]. A. Goldberg and A. Kay, Editors, Smalltalk-72 Instructional Manual, Technical Report SSL-76-6, Xerox PARC, Palo Alto, California, March 1976. [Goldberg and Robson, 1983]. A. Goldberg and D. Robson, Smalltalk-80: The Language and Its Implementation, Addison-Wesley, Reading, Massachusetts, 1983. [Gomaa, 1984]. H. Gomaa, "A Software Design Method for Real-Time Systems," Communications of the ACM, Vol. 27, No. 9, September 1984, pp. 938 - 949. [Gorman and Choobineh, 1991]. K. Gorman and J. Choobineh, "The Object-Oriented Entity-Relationship Model," Journal of Management Information Systems, Vol. 7, No. 3, Winter 1991. pp. 41 - 65. [Graham, 1993]. I. Graham, "Migration Using SOMA: A Semantically Rich Method of Object-Oriented Analysis," Journal of Object-Oriented Programming, Vol. 5, No. 9, February 1993, pp. 31 - 42. [Gray, 1987]. L. Gray, "Procedures for Transitioning from Structured Methods to Object-Oriented Design," Proceedings of the Conference on Methodologies and Tools for Real-Time Systems IV, National Institute for Software Quality and Productivity, Washington, D.C., September 14-15 1987, pp. R-l to R-21. [Gray, 1988]. L. Gray, "Transitioning from Structured Analysis to Object-Oriented Design," Proceedings of the Fifth Washington Ada Symposium, June 27 - 30, 1988, Association for Computing Machinery, New York, New York, 1988, pp. 151 - 162. [Grogono and Bennett, 1989]. P. Grogono and A. Bennett, "Polymorphism and Type Checking in Object-Oriented Languages," SIGPLAN Notices, Vol. 24, No. 11, November 1989, pp. 109 -1 15. [Harel et al., 1987]. D. Harel, A. Pnueli, J.P. Schmidt, and R. Sherman, "On the Formal Semantics of Statecharts," Proceedings of the Second IEEE Symposium on the Logic of Computer Science, 1987, pp. 54 - 64. [Harel, 1987]. D. Harel, "Statecharts: A Visual Formalism for Complex Systems," Science of Computer Programming, Vol. 8, No. 3, June 1, 1987, pp. 231 - 274. [Hatley and Pirbhai, 1987]. D. J. Hatley and I. A. Pirbhai, Strategies for Real-Time System Specification, Dorset House Publishing Company, New York, New York, 1987. [Hayes and Coleman, 1991]. F. Hayes and D. Coleman, "Coherent Models for Object-Oriented Analysis," OOPSLA '91 Conference Proceedings, special issue of SIGPLAN Notices, Vol. 26, No. 11, November 1991, pp. 171 - 183. [Heitz and Labreuille, 1988]. M. Heitz and B. Labreuille, "Design and Development of Distributed Software Using Hierarchical Object Oriented Design and Ada," in Ada In Industry: Proceedings of the Ada-Europe International Conference Munich 7-9 June, 1988, Cambridge University Press, Cambridge, United Kingdom 1988, pp. 143 - 156. [Heitz, 1988]. M. Heitz, "HOOD: A Hierarchical Object-Oriented Design Method," Proceedings of the Third German Ada Users Congress, January 1988, Gesellschaft fŸr Software Engineering, Munich, West Germany, pp. 12-1 - 12-9. [Henderson-Sellers and Constantine, 1991]. B. Henderson-Sellers and L.L. Constantine, "Object-Oriented Development and Functional Decomposition," Journal of Object-Oriented Programming, Vol. 3, No. 5, January/February 1991, pp. 11 - 17. [Henderson-Sellers and Edwards, 1994]. B. Henderson-Sellers and J.M. Edwards, "Identifying Three Levels of O-O Methodologies," Report on Object Analysis and Design, Vol. 1, No. 2, July-August 1994, pp. 25 - 28. [Henderson-Sellers, 1991]. B. Henderson-Sellers, "Hybrid Object-Oriented/Functional Decomposition Methodologies for the Software Engineering Life-Cycle," Hotline on Object-Oriented Technology, Vol. 2, No. 7, May 1991, pp. 1, 2 - 8. [Hoare, 1985]. C.A.R. Hoare, Communicating Sequential Processes, Prentice Hall, Englewood Cliffs, New Jersey, 1985. [Hruschka, 1990]. P. Hruschka, "Towards An Object-Oriented Method for System Architecture Design," Proceedings of the 1990 IEEE International Conference on Computer Systems and Software Engineering -- EuroComp '90, Tel-Aviv, Israel, May 8 10, 1990, pp. 12 - 17. [Hull et al., 1989]. M. Hull, A. Zarea-Aliabadi, and D. Gutherie, "Object-Oriented Design, Jackson System Development (JSD) Specifications and Concurrency," Software Engineering Journal, Vol. 4, No. 2, March 1989, pp. 79 - 86. [IBM, 1990]. International Business Machines Corporation, Object-Oriented Analysis of the ITSO Common Scenario, IBM Corporation, International Technical Support Center, Research Triangle Park, North Carolina, 1990. [Jackson, 1983]. M. A. Jackson, System Development, Prentice Hall, Englewood Cliffs, New Jersey, 1983. [Jackson, 1985]. M.I. Jackson, "Developing Ada Programs Using the Vienna Development Method (VDM)," Software Practice and Experience, Vol. 15, No. 3, March 1985, pp. 305 - 318. [Jacobson et al., 1992]. I. Jacobson, M. Christerson, P. Jonsson, and G. …vergaard, Object-Oriented Software Engineering: A Use Case Driven Approach, Addison-Wesley, Reading, Massachusetts, 1992. [Jacobson, 1986]. I. Jacobson, "Language Support for Changeable Large Real Time Systems," OOPSLA '86 Conference Proceedings, special issue of SIGPLAN Notices, Vol. 21, No. 11, November 1986, pp. 377 - 384. [Jacobson, 1987]. I. Jacobson, "Object-Oriented Development In an Industrial Environment," OOPSLA '87 Conference Proceedings, special issue of SIGPLAN Notices, Vol. 22, No. 12, December 1987, pp. 183 - 191. [Jalote, 1989]. P. Jalote, "Functional Refinement and Nested Objects for Object-Oriented Design," IEEE Transactions on Software Engineering, Vol. 15, No. 3, March 1989, pp. 264 - 270. [Jamsa, 1984]. K.A. Jamsa, "Object Oriented Design vs. Structured Design -- A Student's Perspective," Software Engineering Notes, Vol. 9. No. 1, January 1984, pp. 43 - 49. [Jaworski and LaVallee, 1990]. A. Jaworski and D. LaVallee, "Principles for Defining an Object-Oriented Design Decomposition in Ada," Proceedings of the Seventh Washington Ada Symposium, June 25-28, 1990, pp. 173 - 182. [Jeffcoate and Templeton, 1991]. J. Jeffcoate and A. Templeton, Object Technology Sourcebook, Ovum, Ltd., London, United Kingdom, 1991. [Jochem et al., 1989]. R. Jochem, M. Rabe, W. Sussenguth, and P. Bals, "An Object-Oriented Analysis and Design Methodology for Computer Integrated Manufacturing Systems," Technology of Object-Oriented Languages and Systems 1989 (TOOLS '89), Paris, France, November 13 - 15,1989, pp. 75 - 84. [Johnson and Foote, 1988]. R.E. Johnson and B. Foote, "Designing Reusable Classes," Journal of Object-Oriented Programming, Vol. 1, No. 2, July/August 1988, pp. 22-35. [Jones, 1986]. C.B. Jones, Systematic Software Development Using VDM, Prentice Hall, Englewood Cliffs, New Jersey, 1986. [Jones, 1991]. C. Jones, Applied Software Measurement: Assuring Productivity and Quality, McGraw-Hill, Inc., New York, New York, 1991. [Jordan et al., 1994]. R. Jordan, R. Similan, and A. Wilkinson, "Streamlining the Project Cycle With Object-Oriented Requirements," Proceedings of the Ninth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, ACM SIGPLAN Notices, Vol. 29, No. 10, October 1994, pp. 287 - 300. [Kay, 1968]. A.C. Kay, Flex: A Flexible-Extensible Language, Masters Thesis, Department of Computer Science, University of Utah, 1968. [Kay, 1969]. A. Kay, The Reactive Engine, Ph.D. Thesis, Department of Computer Science, University of Utah, August 1969. [Kay, 1977]. A.C. Kay, "Microelectronics and the Personal Computer," Scientific American, Vol. 237, No. 3, September 1977, pp. 230 - 244. [Kay, 1993]. A.C. Kay, "The Early History of Smalltalk," SIGPLAN Notices, Vol. 28, No. 3, March 1993, pp. 69 - 95. [Kelly and Sherif, 1992]. J.C. Kelly and Y.S. Sherif, "Comparison Four Design Methods For Real-Time Software Development," Information and Software Technology, Vol. 34, No. 2, February 1992, pp. 74 - 82. [Kelly, 1987]. J.C. Kelly, "A Comparison of Four Design Methods for Real-Time Systems," Proceedings of the 9th International Conference on Software Engineering, March 30 - April 2,1987, pp. 238 - 252. [Khalsa, 1989]. G.K. Khalsa, "Using Object Modeling to Transform Structured Analysis Into Object-Oriented Design," Proceedings of the Sixth Washington Ada Symposium, June 26-29, 1989, pp. 201 - 212. [Lee and Carver, 1991]. S. Lee and D.L. Carver, "Object-Oriented Analysis and Specification: A Knowledge Base Approach," Journal of Object-Oriented Programming, Vol. 3, No. 5, January/February 1991, pp. 35 - 43. [Lee and Rissman, 1989]. K.J. Lee and M.S. Rissman, An Object-Oriented Solution Example: A Flight Simulator Electrical System, Technical Report CMU/SEI-89-TR-5, Software Engineering Institute, Pittsburgh, Pennsylvania, 1989. [Lee et al., 1987]. K.J. Lee, M.S. Rissman, R.D. D'Ippolito, C. Plinta, and R. Van Scoy, An OOD Paradigm for Flight Simulators, Technical Report CMU/SEI-87 43 (ESD-TR-87-206), Software Engineering Institute, Pittsburgh, Pennsylvania, 1987. [Li, 1991]. X. Li, "Integration of Structured and Object-Oriented Programming," in Focus On Analysis and Design, SIGS Publications, Inc., New York, New York, 1991, pp. 54 - 60. [Lieberherr and Riel, 1989]. K.J. Lieberherr and A.J. Riel, "Contributions to Teaching Object-Oriented Design and Programming," OOPSLA '89 Conference Proceedings, Special Issue of SIGPLAN Notices, Vol. 24, No. 10, October 1989, pp. 11 - 22. [Loomis et al., 1987]. M.E.S. Loomis, A.V. Shaw, and J.E. Raumbaugh, "An Object Modeling Technique for Conceptual Design," Proceedings of ECOOP '87: European Conference on Object-Oriented Programming, Springer Verlag, New York, New York, 1987, pp. 192 - 202. [Lorenz, 1993]. M. Lorenz, Object-Oriented Software Development: A Practical Guide, Prentice Hall, Englewood Cliffs, New Jersey, 1993. [Lukman, 1991]. J.T. Lukman, "Transforming the 2167A Requirements Definition Model Into an Ada-Object-Oriented Design," Proceedings of the Ninth Annual National Conference on Ada Technology, March 4-7, 1991, pp. 200 - 205. [Marable and Belgrave, 1990]. C.D. Marable and C.C. Belgrave, "Designing an Ada Tutorial Using Object-Oriented Design," Proceedings of the Eighth Annual National Conference on Ada Technology, March 1990, pp. 19 - 20. [Marca and McGowan, 1988]. D. A. Marca and C. L. McGowan, SADT - Structured Analysis and Design Technique, McGraw-Hill, New York, New York, 1988. [Martin and Odell, 1992]. J. Martin and J.J. Odell, Object-Oriented Analysis and Design, Prentice Hall, Englewood Cliffs, New Jersey, 1992. [Martin, 1989]. J. Martin, Information Engineering, Book 1: Introduction, Prentice Hall, Englewood Cliffs, New Jersey, 1989. [Martin, 1990a]. J. Martin, Information Engineering, Book 2: Planning and Analysis, Prentice Hall, Englewood Cliffs, New Jersey, 1990. [Martin, 1990b]. J. Martin, Information Engineering, Book 3: Design and Construction, Prentice Hall, Englewood Cliffs, New Jersey, 1990. [Masiero and Germano, 1988]. P. Masiero and F.S.R. Germano, "JSD As An Object-Oriented Design Method," Software Engineering Notes, Vol. 13, No. 3, July 1988, pp. 22 - 23. [McIntyre and Higgins, 1988]. S.C. McIntyre and L.F. Higgins, "Object-Oriented Systems Analysis and Design: Methodology and Application," Journal of Management Information Systems, Vol. 5, No. 1, Summer 1988. pp. 25 - 35. [McIntyre and Higgins, 1988]. S.C. McIntyre and L.F. Higgins, "Object-Oriented Systems Analysis and Design: Methodology and Application," Journal of Management Information Systems, Vol. 5, No. 1, Summer 1988. pp. 25 - 35. [McQuown, 1989]. K. McQuown, "Object-Oriented Design in a Real-Time Multiprocessor Environment," Proceedings of TRI-Ada '89 -- Ada Technology In Context: Application, Development, and Deployment, October 23-26, 1989, Association for Computing Machinery, New York, New York, pp. 570 - 588. [Meyer et al., 1989]. C. Meyer, M. Wallis, and M. Meier, "Experiences in Applying the Layered Virtual Machine/Object-Oriented Development Methodology to an Ada Design Effort," Proceedings of TRI-Ada '89 -- Ada Technology In Context: Application, Development, and Deployment, October 23-26, 1989, Association for Computing Machinery, New York, New York, pp. 416 - 425. [Mickel, 1984]. S.B. Mickel, "Experiences With an Object-Oriented Method of Software Design," Proceedings of the Third Joint Ada Europe/AdaTech Conference, Cambridge University Press, Cambridge, United Kingdom, 1984, pp. 271- 280. [Monarchi and Puhr, 1992]. D.E. Monarchi and G.I. Puhr, "A Research Typology for Object-Oriented Analysis and Design," Communications of the ACM, Vol. 35, No. 9, September 1992, pp. 35 - 47. [Monarchi et al., 1994]. D. Monarchi, G. Booch, B. Henderson-Sellers, I. Jacobson, S. Mellor, J. Rumbaugh, and R. Wirfs-Brock, "Methodology Standards: Help or Hindrance?," Proceedings of the Ninth Annual Conference on Object-Oriented Programming Systems, Languages, and Applications, ACM SIGPLAN Notices, Vol. 29, No. 10, October 1994, pp. 223 - 228. [Mullin, 1989]. M. Mullin, Object-Oriented Program Design: With Examples in C++, Addison-Wesley Publishing Company, Reading, Massachusetts, 1989. [Myers, 1975]. G.J. Myers, Reliable Software through Composite Design, Van Nostrand Reinhold Company, New York, New York, 1975. [Myers, 1976]. G.J. Myers, Software Reliability: Principles and Practices, John Wiley & Sons, New York, New York, 1976. [Myers, 1978]. G.J. Myers, Composite/Structured Design, Van Nostrand Reinhold Company, New York, New York, 1978. [Nerson, 1992]. J.-M. Nerson, "Applying Object-Oriented Analysis and Design," Communications of the ACM, Vol. 35, No. 9, September 1992, pp. 63 - 74. [Nielsen and Shumate, 1987]. K.W. Nielsen and K. Shumate, "Designing Large Real-Time Systems With Ada," Communications of the ACM, Vol. 30, No. 8, August 1987, pp. 695 - 715. [Northrop, 1994]. L.M. Northrop, "Object-Oriented Development," The Encyclopedia of Software Engineering, Volume 2, J.J. Marciniak, Editor, John Wiley and Sons, New York, New York, 1994, pp. 729 - 737. [Pendley, 1989]. J. Pendley, "Using Information Engineering and Ada Object-Oriented Design Methods in Concert -- A Case Study," Proceedings of the Sixth Washington Ada Symposium, June 26-29, 1989, pp. 11 - 19. [Pun and Winder, 1989]. W.W.Y. Pun and R.L. Winder, "A Design Method for Object-Oriented Programming," ECOOP '89: Proceedings of the European Conference on Object-Oriented Programming, British Computer Society Workshop Series, Cambridge University Press, Cambridge, United Kingdom, 1989, pp. 225 - 240. [Reed and Bynum, 1989]. G.P. Reed and Donald E. Bynum, "Analyzing Systems for Object-Oriented Design," Proceedings of the Sixth Washington Ada Symposium, June 26-29,1989, pp. 195 - 200. [Reid, 1990]. T.F. Reid, "Object-Oriented Requirements Analysis: A Tool Vision," Proceedings of the Seventh Washington Ada Symposium, June 25-28, 1990, pp. 227 - 230. [Richardson et al., 1992]. J.E. Richardson, R.C. Schultz, and E.V. Berard, A Complete Object-Oriented Design Example, Berard Software Engineering, Gaithersburg, Maryland, 1992. [Rine, 1986]. D.C. Rine, "A Brief Comparison of Ada and Object-Oriented Design Elements for Ada," Proceedings of the Second Annual Conference on Artificial Intelligence and Ada, 1986, pp. 10-1-10-10 [Rine, 1987]. D.C. Rine, "A Common Error in the Object Structure of Object-Oriented Design Methods," Software Engineering Notes, Vol. 12, No. 4, October 1987, pp. 42 - 44. [Rine, 1991]. D.C. Rine, "A Proposed Standard Set of Principles for Object-Oriented Development," Software Engineering Notes, Vol. 16, No. 1, January 1991, pp. 43 -49. [Robinson, 1992a]. P. Robinson, Editor, Object-Oriented Design, Chapman Hall, London, United Kingdom, 1992. [Robinson, 1992b]. P.J. Robinson, Hierarchical Object-Oriented Design, Prentice Hall, Englewood Cliffs, New Jersey, 1992. [Ross, 1990]. D.L. Ross, "Issues in Object-Oriented Requirements Analysis," Proceedings of the Seventh Washington Ada Symposium, June 25-28, 1990, pp. 77 - 99. [Rosson and Gold, 1989]. M.B. Rosson and E. Gold, "Problem-Solution Mapping In Object-Oriented Design," OOPSLA '89 Conference Proceedings, Special Issue of SlGPLAN Notices, Vol. 24, No. 10, October 1989, pp. 7 - 10. [Rubin and Goldberg, 1992]. K.S. Rubin and A. Goldberg, "Object Behavior Analysis," Communications of the ACM, Vol. 35, No. 9, September 1992, pp. 48 - 62. [Rumbaugh et al., 1991]. J. Rumbaugh, M. Blaha, W. Premerlani, F. Eddy, and W. Lorensen, Object-Oriented Modeling and Design, Prentice Hall, Englewood Cliffs, New Jersey, 1991. [Salmons and Babitsky, 1992]. J. Salmons and T. Babitsky, 1992 International OOP Directory, SIGS Publications, Inc., New York, New York, 1992. [Scharenberg and Dunsmore, 1991]. M.E. Scharenberg and H.E. Dunsmore, "Evolution of Classes and Objects During Object-Oriented Design and Programming," Journal of Object-Oriented Programming, Vol. 3, No. 5, January/February 1991, pp. 1 8 - 28. [Seidewitz and Stark, 1986a]. E. Seidewitz and M. Stark, "Towards a General Object-Oriented Software Development Methodology," Proceedings of the First International Conference on Ada Programming Language Applications for the NASA Space Station, Vol. II, Edited by R.L. Bown, University of Houston - Clear Lake, June 1986, pp. D.4.6.1- D.4.6.14. [Seidewitz and Stark, 1986b]. E. Seidewitz and M. Stark, General Object-Oriented Software Development, Document No. SEL-86-002, NASA Goddard Space Flight Center, Greenbelt, Maryland, 1986. [Shlaer and Mellor, 1988]. S. Shlaer and S.J. Mellor, Object-Oriented Systems Analysis: Modeling the World In Data, Yourdon Press: Prentice Hall, Englewood Cliffs, New Jersey, 1988. [Shlaer and Mellor, 1992]. S. Shlaer and S.J. Mellor, Object Lifecycles: Modeling the World In States, Yourdon Press: Prentice Hall, Englewood Cliffs, New Jersey, 1992. [Shumate, 1988]. K. Shumate, "Layered Virtual Machine/Object-Oriented Design," Proceedings of the Fifth Washington Ada Symposium, June 27 - 30, 198, Association for Computing Machinery, New York, New York, 1988, pp. 177 190. [Spicer and Umphress, 1991]. K.L. Spicer and D.A. Umphress, "A Method for Mapping an Analysis to a Reusable Design," Ada Letters, Vol. XI, No. 9, November/December 1991, pp. 67 - 82. [Spivey, 1988]. J.M. Spivey, Understanding Z: A Specification Language and Its Formal Semantics, Cambridge University Press, Cambridge, United Kingdom, 1988. [Spivey, 1989]. J.M. Spivey, The Z Notation: A Reference Manual, Prentice Hall, Englewood Cliffs, New Jersey, 1989. [Stark and Seidewitz, 1987]. M. Stark and E.V. Seidewitz, "Towards a General Object-Oriented Ada Life-Cycle," Proceedings of the Joint Ada Conference, Fifth National Conference on Ada Technology and Washington Ada Symposium, U.S. Army Communications-Electronics Command, Fort Monmouth, New Jersey, pp. 213 - 222. [Stepney et al., 1992]. S. Stepnew, R. Barden, and D. Cooper, Editors, Object Orientation in Z, Springer-Verlag, London, United Kingdom, 1992. [Stevens et al., 1974]. W.P. Stevens, G.J. Myers and L.L. Constantine, "Structured Design," IBM Systems Journal, Vol. 13, No. 2, May 1974, pp. 115 - 139. Reprinted in P. Freeman and A.I. Wasserman, Editors, Tutorial on Software Design Techniques, Forth Edition, IEEE Computer Society Press (catalog number EHO205-5), Silver Spring, Maryland, 1983, pp. 328 - 352. [Stoecklin et al., 1988]. S.E. Stoecklin, E.J. Adams, and S. Smith, "Object-Oriented Analysis," Proceedings of the Fifth Washington Ada Symposium, June 27 - 30, 1988, Association for Computing Machinery, New York, New York, 1988, pp. 133 - 138. [Stroustrup, 1991]. B. Stroustrup, The C++ Programming Language, Second Edition, Addison-Wesley, Reading, Massachusetts, 1991. [Taylor and Hecht, 1990]. D.K. Taylor and A. Hecht, "Using CASE for Object-Oriented Design with C++," Computer Language, Vol. 7, No. 11, November 1990, pp. 49 57. [TBE, 1987]. Teledyne Brown Engineering, Software Methodology Catalog, Technical Report MC87-COMM/ADP-0036, Tinton Falls, New Jersey, October 1987. [Thayer and Dorfman, 1990]. R.H. Thayer and M. Dorfman, Editors, System and Software Requirements Engineering, IEEE Computer Society Press, Los Alamitos, California, 1990. [Toetenel et al., 1990]. H. Toetenel, J. van Katwijk, and N. Plat, "Structured Analysis -- Formal Design, Using Stream and Object-Oriented Formal Specification," Proceedings of the ACM SIGSOFT International Workshop on Formal Methods in Software Development, Special Issue of Software Engineering Notes, Vol. 15, No. 4, September 1990, pp. 118 -127. [Vidale and Hayden, 1987]. R.F. Vidale and C.R. Hayden, "A Student Project to Extend Object-Oriented Design," Proceedings of the Ada Software Engineering Education and Training Symposium, June 9-11, 1987, pp. 89 - 98. [Vielcanet, 1989]. P. Vielcanet, "HOOD Design Method and Control/Command Techniques for the Development of Realtime Software," Proceedings of the Sixth Washington Ada Symposium, June 26-29, 1989, pp. 213 - 219. [Vlissides and Linton, 1988]. J.M. Vlissides and M.A. Linton, "Applying Object-Oriented Design to Structured Graphics," Proceedings of the C++ Conference, Denver, Colorado, October 1988, USENIX Association, Berkeley, California, 1988, pp. 81 - 94. [Walden and Nerson, 1995]. K. Walden and J.M. Nerson, Seamless Object-Oriented Software Architecture: Analysis and Design of Reliable Systems, Prentice Hall, Englewood Cliffs, New Jersey, 1995. [Walker, 1992]. I.J. Walker, "Requirements Of An Object-Oriented Design Method,' Software Engineering Journal, Vol. 7, No. 2, March 1992, pp. 102 - 113. [Walters, 1991]. N.L. Walters, "An Ada Object-Based Analysis and Design Approach," Ada Letters, Vol. XI, No. 5, July/August 1991, pp. 62 - 78. [Walters, 1991]. N.L. Walters, "An Ada Object-Based Analysis and Design Approach," Ada Letters, Vol. XI, No. 5, July/August 1991, pp. 62 - 78. [Ward and Mellor, 1985]. P. T. Ward and S. J. Mellor, Structured Development for Real-Time Systems, Volumes 1, 2 and 3, Yourdon Press, New York, New York, 1985. [Ward, 1989]. P.T. Ward, "How to Integrate Object Orientation with Structured Analysis and Design," IEEE Software, Vol. 6, No. 2, March 1989, pp. 74 - 82. [Wasserman et al., 1989]. A.I. Wasserman, P. Pircher, and R.J. Muller, "An Object-Oriented Design Method for Code Generation," Software Engineering Notes, Vol. 14, No. 1, January 1989, pp. 32 - 55. [Wasserman et al., 1990]. A.I. Wasserman, P. Pircher, and R.J. Muller, "An Object-Oriented Design Notation for Software Design Representation," IEEE Computer, Vol. 23, No. 3, March 1990, pp. 50 - 63. [Wegner, 1990]. P. Wegner, "Concepts and Paradigms of Object-Oriented Programming," OOPS Messenger, Vol. 1, No. 1, August 1990, pp. 7 - 87. [Whitmire, 1994]. S.A. Whitmire, "Object-Oriented Measurement of Software," The Encyclopedia of Software Engineering, Volume 2, J.J. Marciniak, Editor, John Wiley and Sons, New York, New York, 1994, pp. 737 - 739. [Wiener, 1991]. R.S. Wiener, Editor, Focus On Analysis and Design, SIGS Publications, Inc., New York, New York, 1991. [Wirfs-Brock and Johnson, 1990]. R.J. Wirfs-Brock and R.E. Johnson, "Surveying Current Research in Object-Oriented Design," Communications of the ACM, Vol. 33, No. 9, September 1990, pp. 105 -124. [Wirfs-Brock and Wilkerson, 1989]. R. Wirfs-Brock and B. Wilkerson, "Object-Oriented Design: A Responsibility-Driven Approach," OOPSLA '89 Conference Proceedings, Special Issue of SIGPLAN Notices, Vol. 24, No. 10, October 1989, pp. 71 - 76. [Wirfs-Brock et al., 1990]. R. Wirfs-Brock, B. Wilkerson, and L. Wiener, Designing Object-Oriented Software, Prentice Hall, Englewood Cliffs, New Jersey, 1990. [Yau and Tsai, 1986]. S.S. Yau and J. J.-P. Tsai, "A Survey of Software Design Techniques," IEEE Transactions on Software Engineering, Vol. SE-12, No. 6, June 1986, pp. 713 - 721. [Yourdon and Constantine, 1979]. E. Yourdon and L. L. Constantine, Structured Design: Fundamentals of a Discipline of Computer Program and System Design, Prentice Hall, Englewood Cliffs, New Jersey, 1979. [Yourdon, 1979]. E. N. Yourdon, Editor, Classics in Software Engineering, Yourdon Press, New York, New York, 1979. ---------------------------------------------------------------------------- Edward V. Berard | Phone: (301) 417-9884 Berard Software Engineering, Inc. | FAX: (301) 417-0021 902 Wind River Lane, Suite 203 | E-Mail: ed@bse.com Gaithersburg, Maryland 20878 | ****** Object-Oriented Training, Consulting, Mentoring, and Products *******