0% found this document useful (0 votes)
179 views19 pages

Object Oriented Analysis and Design: Applying UML and Patterns Craig Larman

This chapter introduces object-oriented analysis and design (OOA/OOD) and the Unified Process. It discusses that UML is just a notation tool and the most important skill is assigning responsibilities to objects. It also mentions design patterns, requirements analysis, use cases, and other necessary analysis and design skills. The key difference between analysis and design is that analysis focuses on discovering the right things while design focuses on doing things right.

Uploaded by

ddivaa
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
179 views19 pages

Object Oriented Analysis and Design: Applying UML and Patterns Craig Larman

This chapter introduces object-oriented analysis and design (OOA/OOD) and the Unified Process. It discusses that UML is just a notation tool and the most important skill is assigning responsibilities to objects. It also mentions design patterns, requirements analysis, use cases, and other necessary analysis and design skills. The key difference between analysis and design is that analysis focuses on discovering the right things while design focuses on doing things right.

Uploaded by

ddivaa
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 19

Object Oriented Analysis and

Design
Chapter 1
Applying UML and Patterns
Craig Larman

NJIT
Applying UML and Patterns in
OOA/OOD

What is a good object


design?
NJIT
Applying UML
 UML is just a standard diagramming
notation. It is just a tool, not a skill that is
valuable in itself. Knowing UML helps you
communicate with others in creating
software, but the real work in this course is
learning Object-Oriented Analysis and
Design, not how to draw diagrams.
Assigning Responsibilities
 The most important skill in Object-
Oriented Analysis and Design is assigning
responsibilities to objects. That
determines how objects interact and what
classes should perform what operations.
Design Patterns
 Certain tried-and-true solutions to design
problems have been expressed as
principles of best practice, often in the
form of Design Patterns.
 A Design Pattern is a named problem
solution formula that apply excellent
design principles.
Requirements Analysis
 All Software Analysis and Design is
preceded by the analysis of requirements.
 One of the basic principles of good design
is to defer decisions as long as possible.
The more you know before you make a
design decision, the more likely it will be
that the decision is a good one.
 TFCL: Think First, Code Later!
Use Cases
 Writing Use Cases is not a specifically
Object Oriented practice. But it is a best
practice for elaborating and understanding
requirements. So we will study Use
Cases.
The Unified Process
 A standardized approach to analysis and
design helps to ensure that all necessary
tasks are understood and completed in
software development.
 This text, and the course, will focus on the
Unified Process developed at Rational
Software by Ivar Jacobsen, Grady Boch,
Jim Rumbaugh, and others.
Other Necessary Skills
 Requirements Analysis, Object-Oriented
Analysis and Object-Oriented Design are
not a complete toolkit for a software
developer. There are many other skills
necessary in Software development,
including programming. This course only
covers a subset of the necessary skills.
Assigning Responsibilities
 The “Desert Island Skill” in OOD is
assigning responsibilities to objects.
 Nine fundamental principles for doing this
will be presented as the GRASP patterns.
 GRASP is an acronym for General
Responsibility Assignment Patterns.
What is Analysis?
(Class-answer the question)

NJIT
Analysis
 Analysis is a broad term. In Software
development, we are primarily concerned
with two forms of analysis.
 Requirements Analysis is discovering the
requirements that a system must meet in
order to be successful.
 Object Analysis is investigating the object in
a domain to discover information important
to meet the requirements.
What is Design?
(Class-answer the question)

NJIT
Design
 Design emphasizes a conceptual solution
that fulfills the requirements. A design is
not an implementation, although a good
design can be implemented when it is
complete.
 There are subsets of design, including
architectural design, object design, and
database design.
Analysis and Design
 Analysis
 do the right thing
 Design
 Do the thing right
What is Object Oriented
Analysis?
 The emphasis is on finding and describing
the objects (or concepts) in the problem
domain.
 In a Library Information System, some of
the concepts include Book, Library, and
Patron.
What is Object Oriented
Design?
 The emphasis is defining software objects
and how they collaborate to fulfill the
requirements.
 In a Library Information System, a Book
software object may have a title attribute
and a getChapter method.
Implementation
 During Implementation, or Object-Oriented
Programming, design objects are
implemented, such as a book class in
Java.
 Implementation is also known as Coding
or Construction.
Example Tasks
 Define Use Cases
 Define a Domain Model
 Define Interaction Diagrams
 Define Design Class Diagrams

You might also like