Upload
ddivaa
View
217
Download
0
Embed Size (px)
Citation preview
8/7/2019 LarmanChap1
1/19
NJIT
Object Oriented Analysis and
Design
Chapter 1
Applying UML and Patterns
Craig Larman
8/7/2019 LarmanChap1
2/19
NJIT
Applying UML and Patterns in
OOA/OOD
What is a good object
design?
8/7/2019 LarmanChap1
3/19
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 youcommunicate with others in creating
software, but the real work in this course is
learning Object-Oriented Analysis andDesign, not how to draw diagrams.
8/7/2019 LarmanChap1
4/19
Assigning Responsibilities The most important skill in Object-
Oriented Analysis and Design is assigning
responsibilities to objects. Thatdetermines how objects interact and what
classes should perform what operations.
8/7/2019 LarmanChap1
5/19
Design Patterns Certain tried-and-true solutions to design
problems have been expressed as
principles of best practice, often in theform ofDesign Patterns.
A Design Pattern is a named problem
solution formula that apply excellentdesign principles.
8/7/2019 LarmanChap1
6/19
Requirements AnalysisAll Software Analysis and Design is
preceded by the analysis of requirements.
One of the basic principles of good designis to defer decisions as long as possible.The more you know before you make adesign decision, the more likely it will be
that the decision is a good one.
TFCL: Think First, Code Later!
8/7/2019 LarmanChap1
7/19
Use Cases Writing Use Cases is not a specifically
Object Oriented practice. But it is a best
practice for elaborating and understandingrequirements. So we will study Use
Cases.
8/7/2019 LarmanChap1
8/19
The Unified ProcessA standardized approach to analysis and
design helps to ensure that all necessary
tasks are understood and completed insoftware development.
This text, and the course, will focus on the
Unified Process developed at RationalSoftware by Ivar Jacobsen, Grady Boch,
Jim Rumbaugh, and others.
8/7/2019 LarmanChap1
9/19
Other Necessary Skills Requirements Analysis, Object-Oriented
Analysis and Object-Oriented Design are
not a complete toolkit for a softwaredeveloper. There are many other skills
necessary in Software development,
including programming. This course onlycovers a subset of the necessary skills.
8/7/2019 LarmanChap1
10/19
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 forGeneral
Responsibility Assignment Patterns.
8/7/2019 LarmanChap1
11/19
NJIT
What is Analysis?
(Class-answer the question)
8/7/2019 LarmanChap1
12/19
AnalysisAnalysis 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 inorder to be successful.
Object Analysis is investigating the objectin a domain to discover informationimportant to meet the requirements.
8/7/2019 LarmanChap1
13/19
NJIT
What is Design?
(Class-answer the question)
8/7/2019 LarmanChap1
14/19
Design
Design emphasizes a conceptual solution
that fulfills the requirements. A design is
not an implementation, although a gooddesign can be implemented when it is
complete.
There are subsets of design, includingarchitectural design, object design, and
database design.
8/7/2019 LarmanChap1
15/19
Analysis and Design
Analysis
do the right thingDesign
Do th
e th
ing righ
t
8/7/2019 LarmanChap1
16/19
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.
8/7/2019 LarmanChap1
17/19
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 getChaptermethod.
8/7/2019 LarmanChap1
18/19
Implementation
During Implementation, orObject-Oriented
Programming, design objects are
implemented, such as a book class inJava.
Implementation is also known as Coding
orConstruction.
8/7/2019 LarmanChap1
19/19
Example Tasks
Define Use Cases
Define a Domain Model
Define Interaction Diagrams
Define Design Class Diagrams