0% found this document useful (0 votes)
41 views18 pages

Object Oriented Analysis & Design

This document provides an overview of an object oriented analysis and design (OOAD) course. It discusses key topics that will be covered, including OOAD principles and techniques, the software development process, UML modeling, and use cases. It explains the differences between object oriented analysis and object oriented design. Object oriented analysis focuses on identifying objects and requirements, while object oriented design emphasizes conceptual solutions and defining software objects and their collaborations. An iterative development process using agile principles will be used as an example methodology.

Uploaded by

john cutter
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
41 views18 pages

Object Oriented Analysis & Design

This document provides an overview of an object oriented analysis and design (OOAD) course. It discusses key topics that will be covered, including OOAD principles and techniques, the software development process, UML modeling, and use cases. It explains the differences between object oriented analysis and object oriented design. Object oriented analysis focuses on identifying objects and requirements, while object oriented design emphasizes conceptual solutions and defining software objects and their collaborations. An iterative development process using agile principles will be used as an example methodology.

Uploaded by

john cutter
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 18

Object Oriented

Analysis & Design


CHAPTER 1
Book
Applying UML and Patterns by Craig Larman
Grading Criteria
Assignment – 5 Marks
Quizzes- 10 Marks
Mid Term- 35 Marks
Final Exam-50 Marks
Course Overview
OOAD
Software Life cycles
Agile software development process
Requirements and use cases
Software quality and quality assurance
Risk management
UML modelling
patterns
Software process improvement
Its about thinking in terms of objects
Analyzing the problem in terms of objects i.e. object oriented analysis
Designing the problem with objects as units i.e. object oriented design
Use of tools and technologies that support OOAD
Lecture Overview
Introduction to:

 Object oriented analysis


 Object oriented design
 UML
 Software development process
Introduction to OOAD
The proverb “owning a hammer doesn’t make one an architect” is especially true with respect
to object technology.
Knowing an object language is necessary but insufficient to create object systems Its about
analysing system requirements in terms of objects and allocating responsibilities to class objects.
How would these objects collaborate with each other.
OOA
It emphasizes on finding requirements and problems rather than solutions.
Object oriented analysis is a process of analyzing requirements in an object oriented paradigm.
It approves some of the requirements while discards others.
The requirements are represented in the form of Use cases and personas to make more sense
based on this OOA the OOD is built.
Use Case
Use case consists of a paragraph or so text that presents a scenario of a single system
requirement.
It is written in simple English that would help realize the importance of the requirement and its
contribution to the over all system.
There can be many use cases for a system representing its various requirements.
It is not an OO activity but it helps in the development of OOD.
Use Case
Example
◦ Use Case “Login to System”
◦ When the User tries to access the system, the systems asks for a user name and password. On
provision of the correct user name and password , the user is allowed to enter the
system.
OOD
It emphasizes on the conceptual solution in software or hardware that fulfils the requirements.
It does not give any implementation details
Design ideas normally exclude low level details that are obvious to the intended customers .
Ultimately designs can be implemented in code to give its true and complete realization
OOA vs OOD
In OOA there is an emphasis on finding and describing objects or concepts in the problem domain
For example in flight information system some of the objects are flights, planes and pilot
During OOD there is emphasis on defining software objects and how they collaborate with each
other to fulfill requirements
For example a flight object may have attributes like flight duration, departure time, arrival time,
source, destination etc.
UML
UML is a standard diagramming notation
UML is not OOAD or a method it is just a diagramming notation
It is useless to learn UML but not really know how to create an excellent OO design or evaluate
and improve an existing one
To know how to design is a separate skill
UML Diagrams
Use case diagram
Activity diagram
Sequence diagram
Partial domain model
Domain model
Class diagram
Collaboration diagram
UML Perspective
Conceptual perspective
◦The diagrams are interpreted as describing things in a situation of the real world or domain of
interest
Specification perspective
◦The diagrams (using same notations) describe software abstraction or components with
specifications and interfaces but no commitment to a particular implementation
Implementation perspective
◦Software implementation in a particular technology
Development Process
Given the requirements and possible activities that are to be implemented the question is how to
proceed
In this case, an agile (light, flexible) approach is used as sample of iterative development process
Agile development process is relatively new approach and is very successful
Assigning responsibilities to objects
It is the most critical activity
This activity has to be performed either while drawing UML diagrams or programming
It strongly influences the robustness, maintainability and reusability of the software components
Iterative Development Process
Iterative development process is an agile development process
During this process development is organized in to a series of short, fixed-length mini-projects
called iterations
The outcome of each iteration is tested, integrated as executable partial system
Each iteration includes its own requirements analysis, design, implementation and testing activities
It is also called iterative and incremental development
Also called iterative and evolutionary development (feedback and adaptation)

You might also like