Object-Oriented Analysis and Design

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to Lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

In object-oriented analysis, what is the primary focus?

  • Implementing the solution.
  • Defining a conceptual solution.
  • Finding a solution to a problem.
  • Describing the objects or concepts in the problem domain. (correct)

What does object-oriented design emphasize?

  • A conceptual solution that fulfills requirements. (correct)
  • Describing the objects in a problem domain.
  • The implementation details of a system.
  • How systems interact with users.

What is the relationship between OOA, OOD, and OOP?

  • OOP is the model for OOA and OOD, which are used as blueprints for system design.
  • OOA serves as the model for OOD, which then serves as the blueprint for OOP implementation. (correct)
  • OOA, OOD, and OOP are independent processes with no direct relationship.
  • OOD is the model for OOA, which guides the OOP implementation.

What is the main goal of Object-Oriented Programming (OOP)?

<p>Implementing design objects in a programming language. (C)</p> Signup and view all the answers

Which of the following is a method of analysis that examines requirements from the perspective of classes and objects, related to the problem domain?

<p>Object-oriented analysis. (C)</p> Signup and view all the answers

What is the focus of object-oriented design (OOD)?

<p>Defining software objects and how they collaborate to fulfill requirements. (D)</p> Signup and view all the answers

Which technique is used to model interactions between objects to produce a particular system behavior?

<p>Object behavior modeling. (B)</p> Signup and view all the answers

During object-oriented analysis, which of the following questions is most typical?

<p>What will each class be responsible for? (A)</p> Signup and view all the answers

What is the primary goal of Domain Analysis?

<p>Identifying classes common to all applications within a specific domain. (B)</p> Signup and view all the answers

What does 'Identify operations patterns by users initiating some sequence of interrelated events' describe?

<p>Scenario planning. (C)</p> Signup and view all the answers

What is the primary function of CRC cards in object-oriented design?

<p>Defining class responsibilities and collaborations. (A)</p> Signup and view all the answers

When using Informal English in object-oriented analysis, what part of speech is typically underlined to identify candidate classes?

<p>Nouns. (C)</p> Signup and view all the answers

What term describes the practice of studying a problem domain to derive a specification of externally observable behavior?

<p>Analysis. (B)</p> Signup and view all the answers

What is the main aim of Object-Oriented Design (OOD) in terms of an analysis model?

<p>To transform the analysis model into a blueprint for software construction. (B)</p> Signup and view all the answers

What is the first step in Object-Oriented Design (OOD), according to the provided content?

<p>Build an object model based on objects and their relationships. (B)</p> Signup and view all the answers

What does the Human Interaction Component in OOD design strategy primarily address?

<p>Designing the user interface and user interaction elements. (D)</p> Signup and view all the answers

What is the purpose of the Data Management Component in OOD design strategy?

<p>Handling the access and management of relational or object-oriented databases. (B)</p> Signup and view all the answers

What does the User's view in UML primarily define?

<p>Functionalities available to the system's users. (C)</p> Signup and view all the answers

What aspect of a system does the structural view in UML capture?

<p>Important objects and their relationships. (D)</p> Signup and view all the answers

What information is contained in the Behavioral view in UML?

<p>How objects interact with each other. (B)</p> Signup and view all the answers

What does the Implementation view in UML primarily capture?

<p>Important system components and their dependencies. (C)</p> Signup and view all the answers

What is the primary goal of the Environmental view in UML?

<p>To model the hardware implementation. (A)</p> Signup and view all the answers

What are two of the basic building blocks of UML?

<p>Things and relationships. (A)</p> Signup and view all the answers

What is one of the primary purposes of UML?

<p>To provide a standard notation for software development. (B)</p> Signup and view all the answers

What is the UML used for primarily?

<p>Software design. (B)</p> Signup and view all the answers

What is the primary purpose of a UML class diagram?

<p>To illustrate the attributes and methods of classes. (B)</p> Signup and view all the answers

What does a UML sequence diagram commonly illustrate?

<p>The flow of messages between objects. (D)</p> Signup and view all the answers

What is the main purpose of a use case in software development?

<p>To capture the interactions between a user and a system to achieve a goal. (D)</p> Signup and view all the answers

When creating a use case diagram, what does an actor represent?

<p>An external entity interacting with the system. (A)</p> Signup and view all the answers

In a use case diagram, what does the 'include' relationship signify?

<p>That one use case always contains the behavior of another use case. (D)</p> Signup and view all the answers

What does the 'extend' relationship in a use case diagram indicate?

<p>An optional behavior that occurs under specific conditions. (A)</p> Signup and view all the answers

What does a generalization relationship in a use case diagram represent?

<p>A shared inheritance of operations between use cases. (B)</p> Signup and view all the answers

What is the primary purpose of creating a Domain Model?

<p>To visualize key concepts or objects in a real-world domain. (B)</p> Signup and view all the answers

What are the advantages of the iterative and evolutionary development lifecycle?

<p>Early mitigation of high risks and early visible progress. (D)</p> Signup and view all the answers

What is a key characteristic of the Inception phase in the Unified Process (UP)?

<p>Approximation of the project vision, scope, and business case. (B)</p> Signup and view all the answers

Which phase in the Unified Process (UP) focuses on iterative implementation of the core architecture and resolving high risks?

<p>Elaboration. (C)</p> Signup and view all the answers

What is the central focus of the Construction phase in the Unified Process (UP)?

<p>Iterative implementation of remaining lower-risk elements. (D)</p> Signup and view all the answers

What does the Transition phase in the Unified Process primarily involve?

<p>Beta testing and deployment. (C)</p> Signup and view all the answers

Flashcards

Analysis

An investigation of the problem and requirements, rather than a solution.

Design

A conceptual solution (in software and hardware) fulfilling requirements, rather than its implementation.

Object-Oriented Analysis & Design (OOAD)

The method of choice for the software development life-cycle in object-oriented technology.

Object-Oriented Analysis (OOA)

Focuses on identifying and describing objects/concepts in the problem domain.

Signup and view all the flashcards

Object-Oriented Design (OOD)

Focuses on defining software objects and their collaboration to fulfill requirements.

Signup and view all the flashcards

OOP

A method where programs are organized as cooperative object collections, each representing a class instance, in inheritance relationships.

Signup and view all the flashcards

Object-Oriented Analysis

Examines reqs from classes/objects perspective, building real-world model using object-oriented view.

Signup and view all the flashcards

Object Oriented Design

Methods of design showing process of object oriented decomposition.

Signup and view all the flashcards

Object behavior model

Shows how objects interact to produce a system behavior, specified as a use-case.

Signup and view all the flashcards

Domain Analysis

Identifies classes common to applications in this domain; surveys architecture of existing systems.

Signup and view all the flashcards

Scenario Planning/Use-Case Analysis

Identifying operations patterns by users initiating interrelated events.

Signup and view all the flashcards

CRC Cards

Cards for Class-Responsibility-Collaboration, a simple tool for team development tasks.

Signup and view all the flashcards

Object-Oriented Design

Transforms analysis model into a design model for software construction, achieving modularity.

Signup and view all the flashcards

OOD goal

Design classes identified during analysis, plus user interface components.

Signup and view all the flashcards

Problem domain component

The subsystems responsible for implementing customer requirements directly

Signup and view all the flashcards

Human Interaction Component

Subsystems implementing user interface, including reusable GUI subsystems.

Signup and view all the flashcards

Task Management Component

The subsystems controlling and coordinating concurrent tasks.

Signup and view all the flashcards

Data Management Component

Subsystem responsible for storage and retrieval of objects.

Signup and view all the flashcards

Object-Oriented Development

Models explicitly capture the class and object hierarchies.

Signup and view all the flashcards

Static Perspective

Describes static structure of classes/objects, their properties, and their relationships

Signup and view all the flashcards

Dynamic Model

Identifies dynamic behavior of classes/objects: states, transitions.

Signup and view all the flashcards

Module Architecture

Identifies how classes are kept in separately compliable modules.

Signup and view all the flashcards

Process Architecture

Identifies how objects are distributed at runtime, the relationships between them.

Signup and view all the flashcards

Model Building

Creating a model for a given abstraction level; often graphical.

Signup and view all the flashcards

Business Modeling

Used for modeling business processes in terms of business activities and collaborative behavior.

Signup and view all the flashcards

Use Case

A scenario that begins with system user initiating transaction or sequence of interrelated events.

Signup and view all the flashcards

Domain Model

A domain model that shows the noteworthy domain concepts or objects.

Signup and view all the flashcards

Interaction Diagram

Illustrates software design by sending messages to instances of classes.

Signup and view all the flashcards

Design Class Diagram

Illustrates attributes and methods of classes with a static view.

Signup and view all the flashcards

Use Cases

Stories used to determine system requirements, identify classes and their relationship in domain.

Signup and view all the flashcards

Use case modeling

Expressing high-level processes/interactions with customers in a scenario/analyzing it.

Signup and view all the flashcards

Actor

Anything with behavior, a role played by a person, software, or a machine.

Signup and view all the flashcards

Use Case

Specific way of using the system, a transaction or sequence of transactions from actor's perspective.

Signup and view all the flashcards

«include» Relationship

May contain functionality of another use case; included one is called every time the basic path is run.

Signup and view all the flashcards

«Extends» relationship

Activities might be performed as part of but are not mandatory for the use case to run successful.

Signup and view all the flashcards

UML

Visual language for specifying, constructing and documenting system artifacts.

Signup and view all the flashcards

UML as sketch

Informal diagrams to explore difficult parts of problem, exploiting visual languages.

Signup and view all the flashcards

Study Notes

  • Analysis focuses on investigating the problem and its requirements before devising a solution.
  • Design focuses on creating a conceptual solution that meets the requirements rather than focusing on implementation details.
  • Useful analysis and design can be summed up as "do the right thing" for analysis, that is "do the analysis right", and "do the thing right" for design,.

Object-Oriented Analysis and Design (OOAD)

  • OOAD is a method used for the software development lifecycle, particularly during the analysis and design phases.
  • During the Object-Oriented Analysis (OOA) stage common questions asked to define the objective are "What will my program need to do?", “What will the classes in my program be?" and “What will each class be responsible for?"
  • The OOA phase investigates the problem and requirements before finding a solution.
  • During the Object-Oriented Design (OOD) phase common questions asked are “How will this class handle its responsibilities?", “How to ensure that this class knows all the information it needs?" and “How will classes in the design communicate?”
  • The OOD deals with finding a conceptual solution to the problem which is about fulfilling the requirements.
  • During object-oriented analysis (OOA), there is an emphasis on identifying and describing the objects or concepts within the problem domain.
  • During object-oriented design (OOD), there is an emphasis on defining software objects and how they collaborate to fulfill requirements.
  • OOD involves understanding the application domain and building an object model, it is a style of design showing the process of object oriented decomposition
  • Object-oriented design is a method encompassing the process of object-oriented decomposition and a notation for depicting logical and physical models of a system.
  • During system implementation phase, object-oriented programming (OOP) is a method of implementation where programs are collections of objects, each representing a class instance, with classes organized in a hierarchy.
  • OOP supports data abstractions with named operations and a hidden local state.
  • Objects have an associated class type and classes inherit attributes from supertypes to subtypes.

Analysis Vs. Design - Classes

  • In analysis you identify who a class is, what is the same or different, and what does it contain.
  • While in design you determine what states the class has and what behaviors is should imlement.

Analysis Vs. Design - Attributes

  • In analysis you need to identify what a class needs to know.
  • While in design you add implementation-specific components, human interaction, data management and other implementation areas.

Analysis Vs. Design - Behaviors

  • In analysis you identify what can a class do.
  • While in design you add implementation-specific components, human interaction, data management and other implementation areas.

Analysis Vs. Design - Collaborations

  • In analysis you identify what help is needed, and also who needs help.
  • While in design you add implementation-specific components, human interaction, data management and other implementation areas.

OOA, OOD, and OOP Relationship

  • The product of OOA serves as models to start an OOD which can then be used for implementing a system using OOP methods.
  • OOA develops an object model of the application domain
  • OOD develops an object-oriented system model to implement requirements
  • OOP realizes an OOD using a programming language like Java or C++.

Steps for Object-Oriented Analysis

  • Analyze the domain problem and describe the process of systems.
  • Identify the objects and specify attributes.
  • Define operations.
  • Define and establish Inter-object Communication mechanism.

Steps for Object-Oriented Analysis - Generic Steps

  • Elicit customer requirements for the system and identify scenarios for use-cases.
  • Select classes and objects and identify attributes and operations for each system object.
  • Define structures and hierarchies that organize classes and build an object-behavior model.
  • Review the OO analysis model against use cases or scenarios.

Identifying Objects

  • When identifying objects consider: individuals, organizations, machines, units of information, images, whatever makes sense.
  • When identifying objects consider: external entities, things, places, organizational units, and transactions.
  • When rejecting candidate objects consider: duplicates, objects which exists in the problem domain but what are not intended (irrelevant), objects which do not have a clear meaning (vague).
  • Common rejection reasons include: being too general, existing as an attribute of an object, actually be existing as a relationship between objects, just describing the role the object plays.

Candidate objects example

  • The text provides an example of a candidate object model for car park access, and rejection rules.

Object Oriented Analysis Approaches

  • During Domain Analysis one identifies classes that are common to all applications in a specific domain.
  • This methodology relies on the fact that there are very few truly unique kinds of software systems.
    • Survey the architecture of existing systems in that domain.
    • Define key abstractions and mechanisms and evaluate which can be used in the new system.
  • During Scenario Planning/Use-Case Analysis identify operations patterns by users starting some sequence of interrelated events.
  • Key is to group the primary function points of the system based on related behavior or hierarchy.
  • CRC (Class-Responsibility-Collaboration) cards are simple index cards with class names and columns for responsibilities and collaborations.
  • Informal English involves identifying key concepts from the textual description of the problem.

Object-Oriented Design (OOD)

  • OOD transforms the analysis model created using OOA into a design model that is the blueprint for software construction.
  • Subsystems are major system components while objects are data and operations.
  • Four important software design concepts are: Abstraction, Information Hiding, Functional Independence, Modularity.
  • Analysis studies a problem domain, leading to a specification of externally observable behavior.
  • Analysis is the "what" or the problem phase, design is the "how" or the solution phase.
  • OOD expands the requirements model to account for the complexities introduced in selecting a particular implementation, including human interaction, data management and other implementation areas.
  • Designing can be integrated with the analysis phase in a highly incremental nature.

Process Considerations

  • The process begins by building an object model based on objects and relationships.
  • Then iteratively refine the model, and design and refine classes, attributes, methods, structures and associations.
  • Reuse existing classes rather than building new ones and design many simple classes rather than fewer complex ones.

OOAD Design Strategy

  • Problem Domain Component: The OOA results are placed here directly, modified based on implementation-specific criteria. Human Interaction Component: Displays and inputs needed for human interaction.
    • The classes vary depending on the user interface, with examples including specializations of Menu, Screen, and Display.
  • Data Management Component: Deals with the access and management of persistent data, whether using a flat file, relational, or object-oriented database.
  • Problem domain component for implementing customer requirements directly.
  • Human interaction component that implements the user interface.
  • Task Management Component for controlling and coordinating concurrent tasks.
  • Data management component for storage and retrieval of objects.

Object Oriented Development Models

  • Object oriented analysis and design models capture class and object hierarchies.
  • Booch presents a model that identifies several relevant perspectives for object-oriented development.

Understanding the Models

  • A static perspective identifies the structure of classes/objects, their properties, and relationships.
  • A dynamic model identifies the dynamic behavior of classes/objects with their valid stats, and the transitions between them.
  • Physical models describes how classes are kept in compilable modules, and the process architecture.

Modeling Considerations

When modelling remember that English descriptions are often ambiguous and Mathematical models often frightens developers. Graphical models are a good option. Models of a system provide an overall view of the system.

Business Modelling

  • UML is used for modeling business process including expressing the business processes in terms of business activities and collaborative behavior.
  • Ensure that customer-oriented solutions are built, must not overlook: the environment, the roles/responsibilities of employees, the "things" that are handled by the business. Key Steps of OOAD include defining:
    • use cases, domain models, interaction diagrams, design class diagrams

Use Cases

  • In use cases Requirements analysis may include a description of related domain processes.
  • They are simply written stories.
  • The steps involved are: Need to identify the users or actors (who), How do they use system.
  • Several scenarios needed for different behaviors which are used to analyze system uses, system responsibilities.

How to Write a Use Case

  • In Use Cases be sure to specify: Name, Actors and descriptions, entry conditions, flow of events, exit conditions, exceptions, special requirements.

Use Cases - Types

  • The most formal are the Fully dressed—most elaborate, include all steps and variations are written in detail.

OOAD - Actors

  • Primary actor: has user goals fulfilled through using services of the SuD.
  • Supporting actor: provides a service to the SuD
  • Offstage actor: has an interest in the behavior of the use case, but is not primary or supporting including a government tax agency.

Relationships in Use Case Diagrams:

  • Association, Include, Extends, Generalization
  • A «include» relationships are where include: A use cases may contain the functionality of another use case. In general it is assumed that any included use case will be called every time the basic path is run.
  • A «Extends» relationship means: While developing your use cases, you may find that certain activities might be performed as part of the use case but are not mandatory for that use case to run successfully.

What is the Unified Modeling Language(UML)?

  • The Unified Modeling Language is a language for defining ways to visually represent artifacts from systems.
  • UML defines various UML profiles that specialize subsets of the notation for common subject areas.

Perspectives to Apply UML

  • UML can be applied from a conceptual perspective which the diagrams are interpreted as describing things in a situation of the real world or domain of interest.
  • UML can be applied from a Specification (software) perspective the diagrams (using the same notation as in the conceptual perspective) describe software abstractions or components with specifications and interfaces.
  • UML can be applied from an Implementation (software) perspective.

UML diagrams-Classes use

  • Conceptual. class in the real world or essential perspective.
  • UML for modeling from the real world vs as software
  • UML can be used to diagrams to capture the five views of a system: user, structural, behavioral, implementation or environmental.
  • UML Structural View is made of object and class.
  • Uml Building Blocks are: - Things - Relationships

OO System Development LifeCycle (SDLC):

  • Software Development is the process of analysis, design, implementation, testing & refinement to transform users' need into a software solution.
  • transformation 1(analysis) - translates user's need into the systems requirements
  • transformation 2 design : includes definition on how to build software
  • transformation (2 implemtation) - refines design into system deployment.
  • Object-oriented development is highly incremental
  • In waterfall (or sequential) lifecycle process there is an attempt to define (in detail) all or most of the requirements before programming so there are no unknown elements.

Iterative and Evolutionary Development.

  • Iterative development includes its own requirements analysis, design, implementation, and testing activities.
  • It is based on the successive enlargement and refinement of a system through multiple iterations, with cyclic feedback and adaptation as core drivers to converge upon a suitable system.
  • It is also known as iterative and incremental development, a feedback and adaptation evolve the specifications and design

Unified Process.

  • A software development process describes an approach to building, deploying, and possibly maintaining software.
  • The Unified Process has emerged as a popular iterative, incremental, architecture-centric, use-case driven software development process for building object-oriented systems. -Iteravive process, gives example structure on how to ooa/d.

Requirements Process

  • Requirements are capabilities and conditions which the system and project must conform. The UP promotes a set of best practices, one of which is manage requirements.
  • The goal is to do it iteratively and skillfully, and not being sloppy. A prime challenge of requirements analysis is to find, communicate, and remember.

Categories of Requirements :

  • Key types of requirement -Functional, Usability, Reliability, performance, supportability.
  • Requirements can be organized via: use case model, supplementary specification.

Studying That Suits You

Use AI to generate personalized quizzes and flashcards to suit your learning preferences.

Quiz Team

Related Documents

More Like This

Design Patterns in OOAD
10 questions
OOAD: State Diagram Chapter 6
10 questions
Use Quizgecko on...
Browser
Browser