Part V - Conclusion and Case Studies

  1. Conclusion

In this tutorial we have provided instructions on how to create object-oriented models and prototypes in C++. We have used a hybrid O-O methodology based upon Rumbaugh's OMT. We have showed how to use a scripting CASE tool to create object-oriented diagrams, tables, specification reports, data dictionaries, and C++ code. We have showed many examples of diagrams, tables, reports, data dictionaries, and C++ code listings. We have provided instructions on how to modify and create scripts to generate tables, reports, and source code. We have provided an "O-O Modeling and Prototyping Roadmap" in Chapter 2. We have provided several "charter to code" case studies that follow this roadmap. We are hopeful that you use this roadmap, a scripting CASE tool, and a C++ environment to rapidly model and prototype your systems. Good luck.

References

[Berard-86] Berard, Edward, An Object Oriented Design Handbook for Ada Software. EVB Software Engineering Gaithersburg Md. 1986

[Boehm-Davis-84] Boehm-Davis, D. and Ross, L. October 1984. Approaches to Structuring the Software Development Process, Report GEC/DIS/TR-84-B1V-1. Arlington, VA: General Electric.

[Booch-91] Booch, Grady Object Oriented Design with Applications. The Benjamin/Cummings Publishing Co 1991.

[Booch-92] Booch, Grady The Booch Notation: Part I and II Computer Language Sept and Oct 1992.

[Borgida-85] Borgida, Alexander, Features of Languages for the Development of Information Systems at the Conceptual Level. IEEE Software vol. 2(1) January 1985.

[Cattell-93] The Object Database Standard: ODMG-93 edited by R.G.G. Cattell Morgan Kaufmann Publishers, San Mateo, CA

[Cleaveland-86] Cleaveland, J. Craig, An Introduction to Data Types. Addison-Wesley Publishing Company, Reading MA.

[Coad-91a] Coad, Peter, and Yourdon, Edward, Object Oriented Analysis, Second Edition, Prentice Hall, Englewood Cliffs, N.J. 1991.

[Coad-91b] Coad, Peter, and Yourdon, Edward, Object Oriented Design, Prentice Hall, Englewood Cliffs, N.J 1991.

[Coleman-94] Coleman, Derek, Arnold, Patrick, Bodoff, Stephanie, Dollin, Chris, Gilchrist, Helena, Hayes, Fiona, Jeremaes, Paul, Objet-Oriented Development The Fusion Method, Prentice Hall, Englewood Cliffs, N.J. 1994.

[Embley, David, Kurtz, Barry, Woodfield, Scott, Object-Oriented Systems Analysis A Model-Driven Approach, Prentice Hall, Englewood Cliffs, N.J 1991.2

[Faison-93] Faison, Ted Object-Oriented State Machines Software Development Sep 93

[Feldman-85] Feldman, Michael Data Structures with Ada Prentice Hall, Englewood Cliffs, N.J. 1985

[Felsinger-95] Felsinger, Richard Object Oriented Analysis and Design Seminar Course Notes

[Fisher-90] Alan Fisher in CASE - Using Software Development Tools

[Gamma-95] Gamma, Helm, Johnson, and Vlissides Design Patterns Elements of Reusable Object-Oriented Software

[Gilliam-94] Gilliam, Clinton "An Approach for Using OMT in the Development of Large Systems" in Journal of Object-Oriented Programming 1994

[Harel-87] Harel, David Science of Computer Programming

[Jacobson-92] Jacobson, Christerson, Jonsson, Overgaard Object-Oriented Software Engineering A Use Case Driven Approach,Prentice Hall, Englewood Cliffs, N.J

[Meyer-92] Scott Meyer's Effective C++ Addison-Wesley Publishing Company, Reading MA.

[McClure-89] Carma McClure in CASE is Software Automation Prentice Hall, Englewood Cliffs, N.J. 1989

[Meyer-88] Meyer, Bertrand Object-Oriented Software Construction Prentice-Hall, Englewood Cliffs, N.J. 1988.

[Microsoft-93] Microsoft Visual C++ Programmer's Guide

[Papurt-95] Papurt, David M. Inside the Object Model The Sensible Use of C++, 1995 SIGS Books, N.Y.

[Rumbaugh-91] Rumbaugh, J.,Blaha, M., Premerlani, W., Eddy, K. and Lorensen, W. 1991. Object-Oriented Modeling and Design, Prentice Hall, Englewood Cliffs, N.J.

[Rumbaugh-94a] Rumbaugh, James "Getting started - Using use cases to capture requirements" in Journal of Object-Oriented Programming September 1994

[Rumbaugh-94b] Rumbaugh, James "Going with the Flow" in Journal of Object-Oriented Programming 1994

[Shlaer-88] Shlaer, Sally and Mellor, Stephen 1988 Object Oriented Systems Analysis Modeling the World in Data, Prentice Hall, Englewood Cliffs, N.J.

[Shlaer-92] Shlaer, Sally and Mellor, Stephen 1992 Object Lifecycles Modeling the World in States Prentice-Hall, Englewood Cliffs, N.J.

[Ward-85] Ward and Mellor in Structured Development for Real-Time Systems Volume 1 Prentice-Hall, Englewood Cliffs, N.J.

[Winblad-90] Winblad, A., Edwards, S. and King, D. 1990 Object-Oriented Software Addison-Wesley Publishing Company, Reading MA.

[Wirfs-Brock-90] Wirfs-Brock, R, Wilderson, B, Wiener, L 1990 Designing Object-Oriented Software, Prentice-Hall, Englewood Cliffs, N.J.

[Yourdon-95] Yourdon, Edward Mainstream Objects, 1995, Prentice-Hall, Englewood Cliffs, N.J.

Vendor List

Ayeco Inc, COMPEDITOR 5025 Nassau Circle, Orlando, Fl 32808 USA 407-295-0930

Borland International, Borland C++ Inc 1800 Green Hills Road, Scotts Valley, CA 95066 USA 408-438-8400

Excell Software, MacAnalyst, PO Box 1414 Marshalltown, IA 50158 515-752-5359

ICONIX Software Engineering, Inc, ICONIX, 2800 28th St. Suite 320 Santa Monica, Ca 90405 310-458-0092

Mark V Systems Ltd, ObjectMaker 16400 Ventura Boulevard, Encino, CA 91436 USA 818-995-7671 or 800-666-6232

MicroGold Software, With Class, 311 East 81st Street 1RE, New York, NY 10028 908-722-6438

Select S/W Tools, Selelct OMT, 1526 Brookhollow Suite 84, Santa Anna, CA 92705 714-957-6633 or 800-577-6633 or Idsall House, High St, Prestbury, Cheltenham GL52 3Ay UK 242-226-553

Object International, Inc OOATool 8140 N. MoPac Expressway, 4-200 Austin, TX 78759-8864 512-795-0202

Objectory Corp, OBJECTORY 300 Atlantic Street, Suite 1111, Stamford, CT 06901 (203) 363-7555

POET S/W, POET 4633 Old Ironsides Dr, Suite 110, Santa Clara, CA 95054 (415)286-4640 or 800-950-8845

Popkin SW and Systems, System Architect 11 Park Place, NY, NY 10007 212-571-3434 or 800-732-5227

ProtoSoft, Inc Paradigm Plus 17629 El Camino Real Suite 202, Houston, TX 77050 USA 713-480-3233

ProtoViewDevelopment Corp ProtoGen+ 353 Georges Road, Dayton, NJ. 08810 (908) 329-8588

Rational, Inc Rational Rose 1-800-767-3237

Roman Zielinski, OOTHER "Tors vag 5, S-145 71 Norsborg, Sweden (CASE Shareware)

Glossary of Key Terms

Action - any response to an event. Actions may be updating an attribute, sending a message, or similar action.

Aggregation (Strong Association) - "Part of" or "bill of material" connection between an assembly and parts that has special semantics for "part of" (transitivity, antisymmetric, and propagation) and for the creation, copy, and deletion of an assembly and parts

Assertion - a rule or expression for correctness, such as a data value must always be greater than zero.

Association - A link, connection, or mapping between two or more objects, such as "has a", "knows about", "part of", or "bill of materials".

Atomic Class -  An atomic class is a primitive data type whose objects are not logically decomposable, such as character, Boolean, integer, and floating point types.




Attribute - A characteristic or property of an object. An attribute has a name (ID), class or type, and a value.

Class - A definition for one or more objects that have common attributes, common behavior, common relationships, and common semantics. In S/W a module that encapsulates attributes, operations, exceptions, and relationships.

Cohesion - the degree of internal relatedness of elements within a larger, more complex entity.

Collection Class - A collection class defines an object that holds other objects called elements.  Elements may be added or removed from the collection object.  Elements are stored in the collection object with an index.  Sample collection classes are array, sets, bags, lists, stacks, queues, rings, trees, etc.

Composite Class - A composite class defines an object that has attributes and associated/part objects.  




Condition - a guard or Boolean that may affect the stimulus response logic. A condition is a guard or Boolean expression signifying OK or NOTOK that are used in IF Condition = True THEN DoSomeAction. Examples of conditions in a Temperature Class might be "temperature high" and "temperature OK".

Control Class - defines time oriented or state based stimulus response behavior including rules and logic to respond to events.

Coupling - the degree of interconnectivity, interdependence, joining and linking of entities.




Dynamic Binding - Late binding (association) of an object name with an object and its class at run time. The object name may later be associated with a different object and its class. Also, the run time look-up of the correct version of a polymorphic operation.

Entity Class - manages and computes application information. An entity class is independent of protocol details of other interacting systems.

Event - an occurrence or physical phenomenon in the external environment that occurs at a point in time such as a user pressing a button to which one or more systems must respond. For finite state machines, an event is any stimulus to an object that results in some action and that may result in a transition to a new state.

Exception - An abnormal, unusual error condition that may result in an operation performing incorrectly. An exception check, such as a precondition or postcondition check, is an expression that detects the presence of an exception and invokes an exception handler. An exception handler takes some action, such as attempts correct the abnormal condition or notify a user.

Finite State Machine - an entity that has state based stimulus response behavior in which there may be different actions from the same event depending upon the state of the entity.

Generalization Specialization - An "is a" or "type of" connection between superclasses and subclasses.

Generic Parameterized Class (Template) - a class that can be modified with parameters to contain or operate on objects of the parameter class, such as a parameterized Stack Class.

Inheritance - The capability of a subclass receive for use attributes and operations defined in a superclass.

Initializer Class - a top level class that initializes the system. It becomes the "main" in a C++ program.

Interface Class - defines communications with another interacting system. An interface class handles events and/or responses. An interface class isolates protocol details to communicate with other interacting systems.

Invariant - a general rule or expression that must be satisfied at all times by all applicable operations.

Message - A call to an object of a class to invoke one of its operations. A one way message is in one direction only from a requester to a server. A two way message is a peer to peer message objects both send and receive messages from each other, i.e. each can initiate a message to each other.

Object Oriented Modeling - A term referring to the modeling phases of object oriented S/W development including analysis, design, and prototyping. It does not include implementation, productization, testing, etc..

Object Oriented Design - A software development methodology (set of steps) to build systems consisting of classes and objects.

Object - A thing; an instance of a class. An entity that has state (retained information), has behavior (responds to messages), sends and/or receives messages from other objects, and has relationships with other objects. In S/W a variable defined by a class.

Object Oriented Programming - A method to develop software using inheritance, dynamic binding, and polymorphism with object oriented languages such as Smalltalk, Actor, C++, Eiffel, Object Pascal, etc.

Operation precondition - a rule or expression that must be satisfied before the execution of an operation for correct results.

Operation postcondition - a rule or expression that is satisfied upon the correct execution of an operation.

Operation - An action, service, procedure, function that performs some action in response to a message.

Pattern - Two or more entities with a well defined purpose, behavior, connections, and structure, such as a tree pattern.




Polymorphism (one name many forms) - An object name may refer to objects of different classes. An operation name may refer to different implementations.

Problem Domain Object - an object that exists in the system environment that is passed in a message to or from the system.

Relationship - A link or connection between classes or objects e.g. association "has a", aggregation "part of", and generalization specialization "is a" or "type of".

Response - a message from the system to other H/W and S/W systems. A response implements some action requested in an event.

State represents a mode of behavior that has a unique combination of events, conditions, actions, and next state. A state is static, i.e. waiting for an event to arrive. While in a state, a defined set of rules, laws, and policies apply. A state is like a manager or coordinator that knows how to respond to each event according to his rules, laws, and procedures.

Static Binding - The association of an object name (ID) with an object and its class at compile time. The object name (ID) is permanently bound to the object and its class for the life of the program.

Subclass - A refined, more specific class of a superclass. It defines more specific, attributes, operations, and exceptions.

Subsystem - a component of a larger system environment. A subsystem has components, such as smaller subsystems or classes that are connected together.

Subtype class - defines a specialized class. An object of the subtype may be substituted for an object of the supertype. Objects of supertype and subtype respond to the same messages.

Superclass - A general class that defines the most general attributes, operations, and exceptions which may be inherited by subclasses.

Supertype class - defines a general class that has the same operations (same protocol) as the specialized subtype classes.

System Environment - a complex system that has other systems (subsystems) as components.

System - a general term for a complex entity that can be treated as a unit and that has simpler components that work together to perform a function. The system is the S/W system to be developed. The system which is the center of focus and which becomes a single program (.EXE file). The system generally consists of 10 to 100 classes as a very rough order of magnitude.

Transformation - a description of how a data value may be correctly changed in a formula, expression, table, etc.

Transition - a unique pattern of an event, conditions, actions, and a destination state. For each state identify applicable events. Then for each event identify the applicable conditions, actions, and the destination state.

Weak Association - "Has a" or "knows about" connection between associated objects that does not have aggregation semantics.

buy cialis cialisfunsurforg cialisfunsurforg onlinehtml site cialis and back pain cialis levitra vs combine viagra and cialis allowed black buy casino cialis diet gambling health jack phentermine poker tag viagra xhtml canada over the counter cialis viagra cialis generic viagra cialis viagra levitra prices women take cialis drug buy cialis tadalafil cialis drinking alcohol cialis online usa levitra vs cialis vs viagra brand name cialis cheapest soft cialis cialis get viagra cialis viagra taking cialis with viagra buy cialis where cialis drugs cialis over dose lowest price generic cialis buy cialis generic ciales web site marketing cialis interaction precautions cialis western open add cialis link new buying generic cialis cialis free cialis suggest url valium detox buy cialis pharmacy cialis experience cialis pills online cialis buy cialis dream pharmaceutical cialis and oral sex cialis lawyer columbus compare viagra cialis levitra viagra cialis levitra buy cialis shop tadalafil cialis fast heart rate cialis online pharmacy online pharmacy cialis seychelles buy cialis ebay find tadalafil cheap cialis cialis injury attorney cincinnati cialis uk similar drugs for cialis buy cialis online submit=buy cialis online cialis dose it work cialis no prescription needed generic cialis muncie indiana buy cialis genericf hostingcom link cialis cheap no prescription cialis injury attorney cleveland cialis versus viagra 20mg cialis canada cialis deals cialis forum cialis free consultation cialis sample price viagra cialis levitra buy cialis link onlineinttc cialis class action lawsuit cialis levitra combine cialis and levitra viagra allowed black buy casino cialis diet gambling jack low online order phentermine poker tag viagra xhtml can cialis and viagra be taken together cialis free sample coupon cialis soft tab online consultation purchase cialis buy cialis online us cialis commercial cialis line differences viagra cialis levitra allowed black casino cialis diet gambling health jack phentermine poker tag viagra xhtml can i get cialis in canada cialis free samples cialis samples sale without prescription cialis in detroit area buy cialis cialis drug prescription cialis on second attempt generic viagra cialis levitra best cialis price canadian perscription of cialis cialis free trial cialis site suggest samples of viagra cialis levitra buy cialis now cialis cheap cialis injury lawyer ohio cialis viagra vs valium buying online buy discount cialis cialis effects side cialis online discount cialis soft allowed black buy casino cialis diet gambling jack online order phentermine poker tag viagra xhtml by cialis comment post posted cialis for sale on line cialis prescription las posas de ciales buy canada cialis cheap generic cialis cialis generic price cialis soft tab prescription cialis on line buy cialis online viagra cialis compare levitra cialis link online suggest discount generic cialis . buy tadalafil cialis cialis for sale cialis open western lowest cialis levitra prices buy cialis dosage effects online side warning cheap cialis generic cialis free sample cialis soft tab online consultation usa side effects of cialis buy cialis link suggest cialis attorney columbus cialis information pamphlet cialis stories viagra cialis generica buy cialis viagra cialis compared to viagra cialis new viagra dangers of taking cialis allowed cialis tag viagra xhtml canada cialis cialis for woman cialis overnight hypertension treatment using cialis buy cheap cialis canadian cialis cialis for women cialis price order cialis submit=order cialis buy cialis in the uk cheapest cialis generic cialis generic cialis sale review cialis levitra viagra buy cialis link onlinenew pharminfo cialis and liver disease cialis how to avoid backache cialis soft tabs penis pump plus cialis buy cialis online cialis comparison levitra viagra cialis icos lily online cialis tadalafil swflash 1.cab buy cialis online dreampharmaceuticals cialis co drug eli impotence lilly cialis julilatiwaveprohostingcom link onlinehtml cialis samples submit=cialis samples mixing cialis and viagra buy cialis without prescription cheap cialis submit=cheap cialis cialis female view cialis review lawsuits involving blindness caused by cialis buy cialis generic online canada cialis line cialis female opinion cialis online submit=cialis online generic cialis submit=generic cialis buy cialis link onlinenettc can you mix cialis and viagra cialis fda approval cialis online buy generic cialis 20 mg best price cialis buy viagra cialis levitra cialis erectile dysfunction cialis official website erection does not go down after taking cialis black casino cialis diet followup gambling health jack phentermine poker post viagra cialis 20mg cialis generic link suggest cialis woman sitemap2 add cialis link buy generic cialis cialis dosage cialis melt packs buy generic cialis online