











OOA Tool Evaluation


Prepared By:
     Robert Masson
     Senior Programmer
     Maritime Information Technology, Inc.









June 28, 1993

Table Of Contents



	Executive Summary	  1

	Pros & Cons	  3

	Suitability	  4

	Other Findings	  5

	Comparisons	  6

	Recommendations	  7

	Appendix A	  8

Executive Summary

General Description: OOA Tool is the small project version of the Yourden/Coad Object Oriented Analysis, Design and Programming Method.  It automates the creation and maintenance of the Analysis Models of an Information System.  The Object Oriented  Notation combines the Process Modelling of a Data-Flow Diagram with the Data Modelling of an Entity-Relationship Diagram into one Multi-faceted Model.

The Production Version of the tool adds additional Design and Programming functionality.  Analysis results can be further refined using the exact same notation (No "Waterfall" Analysis and Design results; Consistency of results throughout entire project) to the Design Level.  Once the design Level is more completely developed the tool can then be used to produce C++ Class Definitions (Member Functions are left as stubs but Attributes are fully defined).  A common, consistent modelling technique keeps the Project's Analysis and Design effort on-track, viable and up to date throughout the project.  Traditionally Analysis and Design is done at the beginning of the project, typically at a high level, and then abandoned as the Design stage comes into full swing in favour of "Cowboying" the Code.


System Requirements:	Typical Windows Workstation - 386 Processor (or better)
				 4 MB RAM
				 80 MB Hard Drive
				 Super VGA Screen
				 Mouse
				 Access to a Laser Printer
				 Windows 3.1

Evaluation Method: In order to investigate the usability of the tool I used it to model a Source Code Management System that we have been investigating internally.  At the beginning it was only a series of suggestions and needs without any formal design set down,  This was an excellent test for the tool as it needed to allow me to organize my thoughts without restricting me to modelling conventions.  

Once an initial model was produced, the results were distributed to a number of individuals throughout the organization (Deborah Hannah, Mark Hannah, Gail Proux, Chris Hardt, Mark Gallagher, Paul Babin, Weldon Black, and Joe Lukshis) who might have useful input into the project.  It is worthy of note at this point to mention that of the individuals asked to review the model, only Deborah Hannah had any previous exposure to the Youden/Coad Modelling Notation.

The response was very positive and insightful.  Few people had any problem with understanding the notation as it closely resembled the familiar Entity-Relationship Techniques typically taught at Colleges and Universities.  Their input was used to further refine and enhance the model (See Appendix A).


Evaluation Results:  The OOA Tool is a flexible, user friendly, well written, piece of Windows Software.  I had no difficulty whatsoever in creating, modifying, and updating elements of a model.

The underlying methodology is also very usable and easy to understand.  The notation is effective without being cumbersome.  It a testament to the methodology that this small project of the Tool (Which was a first release of the Production Tool) is so robust and useful.  The authors created the product using their methodology from start to finish and I believe that this, combined with their experience in programming (Peter Coad has been Designing and implementing Large Systems for many years), helped to create an incredible little product.

Overall I found it to be excellent and would be very interested in obtaining the full blown version to continue on to the Design and Programming stages of the project and evaluate it's abilities at that level.

Pros & Cons

Pros:	Window Application: Runs under and utilizes a Windows User Interface.   	There is no need to exit from Windows to a DOS shell in order to run the program and interacting with the program is consistent with all Windows Applications. 

	C++ Source Output: Although not available in the Small Project Version that was evaluated, the Production version of the tool offers a C++ Source Code Generation feature to create the Class Attribute definitions and Member Function Stubs created during Analysis and Design Tool.  This greatly reduces errors in transcription from the A&D Model to the Application Code.

	Comprehensive Model: Unlike many methodologies currently being advocated by the Industry, the Yourden & Coad technique utilizes a comprehensive model in which Processes and Data are modelled together using the same notation (unlike traditional Data Flow Diagrams and Entity Relationship Diagrams).  Design Notation is the same as Analysis Notation (Actually the same model is used, simply refined to a greater degree of detail) thus eliminating the translation step or "Waterfall" from Analysis to Design.

	New Paradigm: The Object Oriented Paradigm (Model) of Analysis, Design, and Programming is gaining rapid recognition within the Industry.  Few places outside of the US offer Object Oriented Development methods and environments and it's demand is growing rapidly.

Cons:	New Paradigm: Although this has been listed as a Pro above, it could also be considered as a Con.  Because this method of Analysis, Design and Programming is so new, Analysts and Programmers will have to be re-trained to some degree.

	No SQL/Sybase Support: While the Production version of the Tool can produce C++ code, it will not, at this point, produce SQL code to automatically create table definitions.  
Suitability

End-User Tool: Not Applicable

Developer Tool: In a structured, formal environment this is an excellent developer tool due to it's broad spectrum suitability to Analysis, Design and Programming.  The System Analyst and the System Designer can work concurrently on the Model, building on one another's results.  The Programmer can easily reflect any necessary low-level changes in the model that emerged and have it instantly reflected throughout the project scope.

Unfortunately MITI is not a structured, formal environment.  Currently we are very much a "Cowboy-Code" shop, slapping on features to third-party software.  However, as we begin to develop complex windows applications from scratch, this method will rapidly illustrate it's inherent weaknesses in time and cost overruns.

Before we can realistically look towards being a competitive player in software development we must adopt an Analysis and Design Methodology and insist on it's use.  If this can be achieved, then I believe that the OOTool would be an excellent candidate for a CASE Solution and the Youden/Coad methodology a worthy corporate approach.

Querying & Reporting Tool: Not Applicable

Connectivity:  Under Investigation.

Documentation:  The three books documenting the methodology itself are excellent.  The software documentation for the small project version is sparse but the User Interface is very intuitive and easy to work with.  The software documentation does not describe the methodology or it's use, the reader is referred to the Object Oriented Analysis, Object Oriented Design, and Object Oriented Programming books mentioned previously for this information.
Other Findings

OOTool - Production Version
   Windows : US$ 995, (w/C++ Code Generation US$ 1240)
   Mac : US$ 995, (w/C++ Code Generation US$ 1240)
   OS/2 : US$ 1495, (w/C++ Code Generation US$ 1740)
   Sun Unix : US$ 2995, (w/C++ Code Generation US$ 3490)
   HP Unix : US$ 2995, (w/C++ Code Generation US$ 3490)

Comparisons

Currently we are examining several other products as to their applicability as an Analysis and Design Tool.  Among these are the following:

	S-Designer from SDP Technologies
      	Silverrun from Computer System Advisors
	Rational Rose For Windows from Rational

Detailed evaluations for these products will be coming in the next two weeks.

Recommendations

Although there are still several products to evaluate and a final recommendation on a tool to select is pre-mature, there are a number of points which are emerging:

	- As we begin to design and implement large, complex systems from scratch for external customers we must adopt some formal structure for managing the technological components into discrete, definable units.

	- Applications which utilize a Graphical User Interface represent a major leap in complexity when designing how an application responds to user input.  Traditional Analysis and Design techniques are typically inadequate for this purpose.

	- Object Oriented Analysis and Design represent a major improvement for the analysis and design of GUI-based applications as well as complex, heterogeneous applications which do not utilize a GUI.

Given these points it is my recommendation that we begin to push for more formalism in our application development (especially in PC Based development) and move rapidly towards the adoption of an Analysis and Design Methodology and the subsequent tools to utilize it.

The results of this and subsequent A&D tool evaluations should assist management in selecting an appropriate methodology and tool combination.  However, enforcement of it's use will require management's full attention and commitment.

Appendix A


