Study sheet: Object-Oriented Analysis and Design

Course Outline

  1. Software Development and OOAD
  2. Traditional Development Models
  3. Structured and Object-Oriented Approaches
  4. Object-Oriented Development with RUP
  5. UML Foundations and Building Blocks
  6. UML Elements and Relationships
  7. UML Data Types and Extensions
  8. UML Diagrams and Views
  9. Modeling Tools and Case Study

1. Software Development and OOAD

Key Concepts & Definitions

  • Software process : a set of activities that transforms user requirements into a software system

★ Must-know

  • The main phases are:
    • requirements identification
    • analysis
    • design
    • programming
    • testing
    • deployment and maintenance

📌 Analysis determines what the system does, whereas design determines how the system does it.

Further detail

  • Analysis and design act as the software's architectural blueprint, because writing code without analysis can make a system difficult to maintain, extend, and correct when business errors occur.

Memory Hook

Analysis asks what the system does, whereas design asks how it does it.

2. Traditional Development Models

Key Concepts & Definitions

  • Spiral model : combines iteration with risk analysis during software development

★ Must-know

📌 The Waterfall model proceeds sequentially, with each phase completed before the next begins, while the Prototype model rapidly builds a prototype to clarify requirements.

Further detail

  • Traditional development models share limitations when applied to large systems whose requirements change frequently.

Memory Hook

Waterfall → Prototype → Spiral

3. Structured and Object-Oriented Approaches

Key Concepts & Definitions

  • Object : state represented by attributes, behavior represented by methods, and an identity

★ Must-know

📌 Structured analysis decomposes a system by functions and separates data from processing, whereas object-oriented analysis decomposes it into objects that combine data and behavior.

  • The four properties are:
    • abstraction
    • encapsulation
    • inheritance
    • polymorphism

Further detail

  • Structured approaches commonly use BFD, DFD, and ERD, whereas object-oriented approaches use UML use-case, class, and interaction diagrams.

Memory Hook

Structured methods separate data and processing, whereas objects encapsulate both.

4. Object-Oriented Development with RUP

Key Concepts & Definitions

  • RUP : or Rational Unified Process, is an iterative and incremental process that is use-case-driven and architecture-centric

★ Must-know

  • 🔄 The four RUP phases are:
    1. Inception
    2. Elaboration
    3. Construction
    4. Transition

📌 Each RUP iteration produces a runnable increment of the software system.

Further detail

  • RUP workflows include:
    • business modeling
    • requirements
    • analysis and design
    • implementation
    • testing

Memory Hook

Inception → Elaboration → Construction → Transition

5. UML Foundations and Building Blocks

Key Concepts & Definitions

  • UML : or Unified Modeling Language, is a visual modeling language standardized by OMG; it is a language of notation and semantics, not a method or process

★ Must-know

  • The three building blocks are:

    • elements
    • relationships
    • diagrams
  • UML diagrams are views of one model and are divided into structural diagrams describing static aspects and behavioral diagrams describing dynamic aspects.

Further detail

  • UML was formed by unifying Booch, OMT by Rumbaugh, and OOSE by Jacobson, known as the three amigos; UML 1.0 appeared in 1997.

Memory Hook

E-R-D: Elements, Relationships, Diagrams

6. UML Elements and Relationships

Key Concepts & Definitions

  • Class : describes a set of objects sharing attributes, methods, relationships, and semantics
  • Use case : A use case is a sequence of actions performed by the system that produces a result for an actor, while an actor is a user or external system interacting with it.

Essential Points

📌 Aggregation is a weak whole-part relationship in which the part remains independent when the whole is destroyed, whereas composition is a strong whole-part relationship in which the part is destroyed with the whole.

  • UML multiplicities include 1 for exactly one, 0..1 for zero or one, * or 0..* for any number, and 1..* for at least one.

📌 Generalization expresses an is-a relationship between superclass and subclass, whereas realization expresses that an element implements a contract specified by another element.

Memory Hook

Aggregation lets the part survive; composition destroys the part with the whole.

7. UML Data Types and Extensions

★ Must-know

  • UML primitive types include:
    • Integer
    • Boolean
    • String
    • Real
    • UnlimitedNatural

📌 An enumeration is a finite set of named values, whereas a structured data type is a compound type defined by combining other data types.

  • The three extension mechanisms are:
    • stereotypes
    • tagged values
    • constraints

Further detail

  • UML collection types include:

    • Set
    • Bag
    • Sequence
    • OrderedSet
  • UML does not define Date as a built-in primitive type; Date is taken from a standard library.

Memory Hook

S-T-C: Stereotype, Tagged value, Constraint

8. UML Diagrams and Views

Essential Points

  • UML 2.0 defined 13 diagram types, and UML 2.2 added the Profile diagram, resulting in 14 types.

  • The structural diagrams are:

    • Class
    • Object
    • Package
    • Component
    • Deployment
    • Composite Structure
    • Profile
  • The behavioral diagrams are:

    • Use Case
    • Activity
    • State Machine
    • Sequence
    • Communication
    • Timing
    • Interaction Overview
  • The views are (Kruchten):
    • use-case
    • logical
    • process
    • implementation
    • deployment

Memory Hook

Structural diagrams describe what exists, whereas behavioral diagrams describe what happens.

9. Modeling Tools and Case Study

Key Concepts & Definitions

  • CASE tool : A CASE tool supports standardized diagram drawing, consistency checking, code generation, documentation generation, and reverse engineering of source code.

★ Must-know

  • 🔄 Basic tool use consists of:
    1. creating a project
    2. creating a diagram
    3. dragging elements from the palette
    4. naming them
    5. saving or exporting the result

Further detail

  • Rational Rose is a classic IBM Rational tool associated with RUP, while Visual Paradigm is a modern tool supporting UML 2.x and offering a free Community edition for students.

  • The case study covers:

    • books
    • readers
    • borrowing and returning
    • searching
    • reports
    • overdue processing

Memory Hook

Create project → create diagram → place elements → name → save/export

Synthesis Tables

Structured and Object-Oriented Approaches

DimensionStructured approachObject-oriented approach
Unit of decompositionFunction or processObject containing data and behavior
Data and processingSeparatedEncapsulated
Typical modelsBFD, DFD, ERDUse-case, class, interaction diagrams
ReuseDifficult and proceduralHigher through inheritance, encapsulation, and packages
MaintenanceHarder for large systemsEasier through local modification

Test your knowledge

Test your knowledge on Object-Oriented Analysis and Design with 26 multiple-choice questions with detailed corrections.

1. What does a software process transform into a software system?

2. Which sequence correctly represents the main phases of software development?

Take the quiz →

Review with flashcards

Memorize the key concepts of Object-Oriented Analysis and Design with 56 interactive flashcards.

What is a software process?

A set of activities transforming user requirements into a software system.

What are the main phases of software development?

Requirements identification, analysis, design, programming, testing, deployment, and maintenance.

What does analysis determine in software development?

What the system does.

See flashcards →

Similar courses

Create your own study sheets

Import your course and AI generates sheets, quizzes and flashcards in 30 seconds.

Sheet generator