Object-oriented analysis and design
Encyclopedia
Object-oriented analysis and design (OOAD) is a software engineering
Software engineering
Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software, and the study of these approaches; that is, the application of engineering to software...

 approach that models a system as a group of interacting object
Object (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...

s. 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
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 (UML).

Object-oriented analysis (OOA) applies object-modeling techniques to analyze the functional requirements
Functional requirements
In software engineering, a functional requirement defines a function of a software system or its component. A function is described as a set of inputs, the behavior, and outputs ....

 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.

Object-oriented systems

An object-oriented system is composed of object
Object (computer science)
In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure...

s. 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

Object-oriented analysis (OOA) is the process of analyzing a task (also known as a problem domain
Problem domain
A problem domain is the area of expertise or application that needs to be examined to solve a problem. A problem domain is simply looking at only the topics you are interested in, and excluding everything else. For example, if you were developing a system trying to measure good practice in...

), 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
Concurrency (computer science)
In computer science, concurrency is a property of systems in which several computations are executing simultaneously, and potentially interacting with each other...

, distribution
Distributed computing
Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...

, persistence
Persistence (computer science)
Persistence in computer science refers to the characteristic of state that outlives the process that created it. Without this capability, state would only exist in RAM, and would be lost when this RAM loses power, such as a computer shutdown....

, 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
Unified Modeling Language
Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

 class diagram
Class diagram
In software engineering, a class diagram in the Unified Modeling Language is a type of static structure diagram that describes the structure of a system by showing the system's classes, their attributes, operations , and the relationships among the classes.- Overview :The class diagram is the main...

s, and a number of interaction diagrams. It may also include some kind of user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

 mock-up.

Object-oriented design

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
Throughput
In communication networks, such as Ethernet or packet radio, throughput or network throughput is the average rate of successful message delivery over a communication channel. This data may be delivered over a physical or logical link, or pass through a certain network node...

, 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.

Literature

  • Grady Booch
    Grady Booch
    Grady Booch is an American software engineer. Booch is best known for developing the Unified Modeling Language with Ivar Jacobson and James Rumbaugh. Grady is recognized internationally for his innovative work in software architecture, software engineering, and collaborative development environments...

    . "Object-oriented Analysis and Design with Applications, 3rd edition":http://www.informit.com/store/product.aspx?isbn=020189551X Addison-Wesley 2007.
  • Rebecca Wirfs-Brock
    Rebecca Wirfs-Brock
    Rebecca J. Wirfs-Brock is an author and consultant in object-oriented programming and object-oriented design, the founder of the information technology consulting firm Wirfs-Brock Associates, and inventor of Responsibility-Driven Design, the first behavioral approach to object design.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
    Martin Fowler
    -Online presentations:* at RailsConf 2006* at JAOO 2006* at QCon London 2007 * at QCon London 2008 * at ThoughtWorks Quarterly Technology Briefing, October 2008...

    . Analysis Patterns: Reusable Object Models. Addison-Wesley, 1997. [An introduction to object-oriented analysis with conceptual models]
  • Bertrand Meyer
    Bertrand Meyer
    Bertrand Meyer is an academic, author, and consultant in the field of computer languages. He created the Eiffel programming language.-Education and academic career:...

    . 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
    Craig Larman
    Craig Larman is a Canadian computer scientist specializing in Iterative and incremental development, Agile software development, Object-oriented analysis, Object-oriented design, and agile modeling. He is the author of several texts.-Biography:...

    . Applying UML and Patterns - Introduction to OOA/D & Iterative Development. Prentice Hall PTR, 3rd ed. 2005.,mnnm,n,nnn
  • Setrag Khoshafian. Object Orientation. Wiley, 1995.

See also

  • Shlaer-Mellor
    Shlaer-Mellor
    The Shlaer-Mellor method, developed by Sally Shlaer and Stephen Mellor, is one of a number of object-oriented analysis / object-oriented design methods which arrived in the late 1980s in response to established weaknesses in the existing structured analysis and structured design techniques in...

  • Object-oriented modeling
    Object-Oriented Modeling
    Object-oriented modeling , also called object-oriented programming 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 that could stand on their own, take...

  • Object-oriented programming
    Object-oriented programming
    Object-oriented programming is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction,...

  • Object-oriented user interface
    Object-oriented user interface
    In computing an object-oriented user interface is a type of user interface based on an object-oriented programming metaphor. In an OOUI, the user interacts explicitly with objects that represent entities in the domain that the application is concerned with. Many vector drawing applications, for...

  • Meta-model
  • Software analysis pattern
    Software analysis pattern
    Software analysis patterns or analysis patterns in software engineering are conceptual models, which capture an abstraction of a situation that can often be encountered in modelling...

  • Model Driven Engineering (MDE)
  • Model-driven architecture
    Model-driven architecture
    Model-driven architecture is a software design approach for the development of software systems. It provides a set of guidelines for the structuring of specifications, which are expressed as models. Model-driven architecture is a kind of domain engineering, and supports model-driven engineering of...

      (MDA)
  • Domain Specific Language (DSL)
  • Domain-specific modelling (DSM)
  • Model-based testing
    Model-based testing
    Model-based testing is the application of Model based design for designing and optionally executing the necessary artifacts to perform software testing. Models can be used to represent the desired behavior of the System Under Test , or to represent the desired testing strategies and testing...

     (MBT)
  • Object modeling language
    Object modeling language
    Object Modeling Language is a modeling language based on a standardized set of symbols and ways of arranging them to model an object oriented software design or system design....

  • QVT
    QVT
    QVT is a standard set of languages for model transformation defined by the Object Management Group .- Overview :...

     The OMG Queries/Views/Transformations Model Transformation Language
  • Unified Modeling Language
    Unified Modeling Language
    Unified Modeling Language is a standardized general-purpose modeling language in the field of object-oriented software engineering. The standard is managed, and was created, by the Object Management Group...

     UML
  • ATLAS Transformation Language
    ATLAS Transformation Language
    ATL is a model transformation language and toolkit developed and maintained by OBEO and AtlanMod. It was initiated by the team...

     ATL
  • Meta-Object Facility
    Meta-Object Facility
    The Meta-Object Facility is an Object Management Group standard for model-driven engineering. The official reference page may be found at OMG's website.- Overview :...

     MOF
  • XML Metadata Interchange
    XML Metadata Interchange
    The XML Metadata Interchange is an Object Management Group standard for exchanging metadata information via Extensible Markup Language .It can be used for any metadata whose metamodel can be expressed in Meta-Object Facility ....

     XMI
  • Class-Responsibility-Collaboration card
    Class-Responsibility-Collaboration card
    Class Responsibility Collaboration cards are a brainstorming tool used in the design of object-oriented software. They were proposed by Ward Cunningham and Kent Beck....

     (CRC cards)
  • Domain-driven design
    Domain-driven design
    Domain-driven design is an approach to developing software for complex needs by deeply connecting the implementation to an evolving model of the core business concepts...


External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK