Object-oriented analysis and design
Encyclopedia : O : OB : OBJ : Object-oriented analysis and design
Object-oriented analysis and design applies object modeling techniques to analyze the requirements for a context (e.g., a system, system modules, organization, or business unit), and to design a solution. Most modern object-oriented analysis and design methodologies are use case driven across requirements, design, implementation, testing, and deployment.
Analysis
Object-oriented analysis builds a model of a system that is composed of objects. The behaviour of the system is achieved through collaboration between these objects, and the state of the system is the combined state of all the objects in it. Collaboration between objects involves them sending messages to each other. The exact semantics of message sends between objects varies depending on what kind of system is being modelled. In some systems, "sending a message" is the same as "invoking a method". In other systems, "sending a message" is like sending some data via a socket.
Key aspects of an object-oriented analysis model are basically the same as in object-oriented programming, but an analysis model is not limited to software systems. Any system can be modelled as a system of collaborating objects. The results of object-oriented analysis are concepts and relationships between concepts, often expressed as a conceptual model.
Analysis aims to model an ideal world (also called "domain") in the platonic sense and merely describes the kinds of concepts and ideas that are being modelled (how to think). An analysis model will not take into account implementation constraints, such as concurrency, distribution and persistence. The implementation constraints are decided by a process of object-oriented design, and many design patterns have been defined to solve these generic problems. The analysis model attempts to capture concepts and relationships that are stable. The analysis concepts are used in designing interfaces to layers, which need to be chosen to be stable even when requirements change. The object-oriented analysis is based on the assumption that the basic concepts of the analysis model will not need to be modified (only extended) when new requirements are implemented in the system. Therefore, the system's design may be based on the stability of the concepts identified in object-oriented analysis. The analysis concepts should be recognizable by experts of the modelled domain, because this increases the probability that the concepts will be stable.
Design
The term Ood could also refer to the fictional race of aliens in the Doctor Who episode The Impossible Planet.
Object-Oriented Design (OOD) is a design method in which a system is modeled as a collection of cooperating objects and individual objects are treated as instances of a class within a class hierarchy.
Four stages can be identified:
- Identify the classes and objects
- Identify their responsibilities
- Identify their relationships
- Specify class and object interfaces and implementation
Object-oriented design takes the conceptual model that is the result of object-oriented analysis, and adds implementation constraints imposed by the environment, the programming language and the chosen tools, as well as architectural assumptions chosen as basis of design. The result is code designed in object-oriented way as a set of classes and objects. The concepts in conceptual model are mapped to concrete classes, to abstract interfaces in APIs and to roles that the objects take in various situations. The interfaces and their implementations for stable concepts can be made available as reusable services. Concepts identified as unstable in object-oriented analysis will form basis for policy classes that make decisions, implement environment-specific or situation specific logic or algorithms.
Errata
- The Unified Modeling Language (UML) has become the standard language used in object-oriented analysis and design.
Literature
- Grady Booch. Object-oriented analysis and design with applications, 2nd edition. Benjamin/Cummings, Redwood CA 1994. [Somewhat confusing but a useful reference.]
- Rebecca Wirfs-Brock, Brian Wilkerson, Lauren Wiener. Designing Object Oriented Software. Prentice Hall, 1990. [A down-to-earth introduction to the object-oriented programming and design.]
- [A Theory of Object-Oriented Design]: The building-blocks of OOD and notations for representing them (with focus on design patterns.)
See also
- Schlaer-Mellor
- Object-oriented modeling
- Object-oriented programming
- Meta-model
- Metamodeling or Meta-modeling
- Model Driven Engineering (MDE)
- Model-driven architecture (MDA is an OMG Trademark), (MDE is not an OMG Trademark)
- Domain Specific Language (DSL)
- Domain-specific modelling (DSM)
- Model-based testing (MBT)
- Object modeling language
- QVT The OMG Queries/Views/Transformations Model Transformation Language
- Unified Modeling Language UML
- ATLAS Transformation Language ATL
- Meta-Object Facility MOF
- XML Metadata Interchange XMI
- Class-Responsibility-Collaboration card (CRC cards)
- This article was originally based on material from the Free On-line Dictionary of Computing, which is [Foldoc licenselicensed] under the GFDL.
From Wikipedia, the Free Encyclopedia. Original article here. Support Wikipedia by contributing or donating.
All text is available under the terms of the GNU Free Documentation License See Wikipedia Copyrights for details.
