Object-oriented analysis and design
Object-oriented analysis and design (OOAD) is a software engineering approach that models a system as a group of interacting objects. Each object represents some entity of interest in the system being modeled, and is characterised by its class, its state (data elements), and its behavior. Various models can be created to show the static structure, dynamic behavior, and run-time deployment of these collaborating objects. There are a number of different notations for representing these models, such as the Unified Modeling Language (UML).
Object-oriented analysis (OOA) applies object-modeling techniques to analyze the functional requirements for a system. Object-oriented design (OOD) elaborates the analysis models to produce implementation specifications. OOA focuses on what the system does, OOD on how the system does it.
An object-oriented system is composed of objects. The behavior of the system results from the collaboration of those objects. Collaboration between objects involves them sending messages to each other. Sending a message differs from calling a function in that when a target object receives a message, it decides on its own what function to carry out to service that message. The same message may be implemented by many different functions, the one selected depending on the state of the target object.
The implementation of "message sending" varies depending on the architecture of the system being modeled, and the location of the objects being communicated with.
Object-oriented analysis (OOA) is the process of analyzing a task (also known as a problem domain), to develop a conceptual model that can then be used to complete the task. A typical OOA model would describe computer software that could be used to satisfy a set of customer-defined requirements. During the analysis phase of problem-solving, a programmer might consider a written requirements statement, a formal vision document, or interviews with stakeholders or other interested parties. The task to be addressed might be divided into several subtasks (or domains), each representing a different business, technological, or other areas of interest. Each subtask would be analyzed separately. Implementation constraints, (e.g., concurrency, distribution, persistence, or how the system is to be built) are not considered during the analysis phase; rather, they are addressed during object-oriented design (OOD).
The conceptual model that results from OOA will typically consist of a set of use cases, one or more UML class diagrams, and a number of interaction diagrams. It may also include some kind of user interface mock-up.
During object-oriented design (OOD), a developer applies implementation constraints to the conceptual model produced in object-oriented analysis. Such constraints could include not only constraints imposed by the chosen architecture but also any non-functional – technological or environmental – constraints, such as transaction throughput, response time, run-time platform, development environment, or those inherent in the programming language. Concepts in the analysis model are mapped onto implementation classes and interfaces resulting in a model of the solution domain, i.e., a detailed description of how the system is to be built.
- Grady Booch. "Object-oriented Analysis and Design with Applications, 3rd edition":http://www.informit.com/store/product.aspx?isbn=020189551X Addison-Wesley 2007.
- 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.)
- Martin Fowler. Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997. [An introduction to object-oriented analysis with conceptual models]
- Bertrand Meyer. Object-oriented software construction. Prentice Hall, 1997
- Brett McLaughlin, Gary Pollice, David West. Head First Object-Oriented Analysis and Design. O'Reilly, 2006.
- Craig Larman. Applying UML and Patterns - Introduction to OOA/D & Iterative Development. Prentice Hall PTR, 3rd ed. 2005.
- Setrag Khoshafian. Object Orientation. Wiley, 1995.
- Object-oriented modeling
- Object-oriented programming
- Object-oriented user interface
- Software analysis pattern
- Model Driven Engineering (MDE)
- Model-driven architecture (MDA)
- 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)
- Domain-driven design
- Article Object-Oriented Analysis and Design with UML and RUP an overview (also about CRC cards).
- Applying UML - Object Oriented Analysis & Design tutorial
- OOAD & UML Resource website and Forums - Object Oriented Analysis & Design with UML.
- Software Requirement Analysis using UML article by Dhiraj Shetty.
- Article Object-Oriented Analysis in the Real World
Unified Modeling Language Actors
Object oriented: Object-oriented programming • Object-oriented analysis and designMultiplicity
DiagramsStructuralBehaviourInteraction Derived languages Other topics
Wikimedia Foundation. 2010.
Look at other dictionaries:
Service-oriented analysis and design — As service oriented architecture (SOA) and the service oriented computing platform mature more formal approaches and methodologies to building service oriented solution logic have emerged. These build upon earlier analysis and design processes… … Wikipedia
Structured Analysis and Design Technique — For the chemical reaction SADT, see Self Accelerating Decomposition Temperature Structured Analysis and Design Technique (SADT) is a software engineering technique for describing systems as a hierarchy of functions. Overview Structured Analysis… … Wikipedia
Object-oriented modeling — (OOM), also called object oriented programming (OOP) is a modeling paradigm mainly used in computer programming. Prior to the rise of OOM, the dominant paradigm was procedural programming, which emphasized the use of discrete reusable code blocks … Wikipedia
Object-Oriented Modeling — Object Oriented Modeling, or OOM, is a modeling paradigm mainly used in computer programming. Prior to the rise of OOM, the dominant paradigm was functional programming, which emphasized the use of discreet reusable code blocks that could stand… … Wikipedia
Object-oriented programming — Programming paradigms Agent oriented Automata based Component based Flow based Pipelined Concatenative Concurrent computing … Wikipedia
Object-oriented design — OOD redirects here. OOD may also refer to Officer of the Deck, Officer of the day, or the Ood. Object oriented design is the process of planning a system of interacting objects for the purpose of solving a software problem. It is one approach to… … Wikipedia
Object-oriented ontology — (OOO) is a metaphysical movement that rejects the privileging of human existence over the existence of nonhuman objects. Specifically, object oriented ontology opposes the anthropocentrism of Immanuel Kant s Copernican Revolution, whereby… … Wikipedia
Object-Oriented Software Construction — … Wikipedia
object-oriented design — Transforming an object oriented model into the specifications required to create the system. Moving from object oriented analysis to object oriented design is accomplished by expanding the model into more and more detail … IT glossary of terms, acronyms and abbreviations
Object-oriented business engineering — (OOBE) is object modeling at enterprise level. Use cases are the important tool for modeling. OOBE is a framework for architecture, business engineering, business process management and object oriented development. OOBE provides the framework… … Wikipedia