CSE 403: UML Class Diagram Design and Software Architecture

Verified

Added on  2022/01/20

|31
|1710
|165
Homework Assignment
AI Summary
This document provides a comprehensive overview of UML class diagrams, essential for object-oriented software design. It covers the fundamental concepts, including the purpose of UML, the elements of a class diagram (classes, attributes, methods), and the relationships between classes (generalization, association, aggregation, composition, and dependency). The document also explains how to create UML diagrams, including visibility attributes and method parameters, and offers a practical design exercise using a Texas Hold'em poker game to illustrate the application of UML class diagrams in a real-world scenario. Furthermore, it discusses the pros and cons of using class diagrams in software design and includes references to tools for creating UML diagrams. This resource is valuable for students and professionals looking to understand and apply UML class diagrams effectively.
Document Page
1
Design and UML Class Diagrams
Suggested reading:
Practical UML: A hands on introduction for developer
http://dn.codegear.com/article/31863
UML Distilled Ch. 3, by M. Fowler
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
How do people
draw / write down
software architectures?
Document Page
Example architectures
person
UW student
CSE 403
student
VerizonWireless
GPS satellite
Cell phone
sea agent
lake agent
amphibious
agent
Document Page
Big questions
What is UML?
Why should I bother? Do people really use UML?
What is a UML class diagram?
What kind of information goes into it?
How do I create it?
When should I create it?
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Design phase
design: specifying the structure of how a software
system will be written and function, without actua
writing the complete implementation
a transition from "what" the system must do, to
"how" the system will do it
What classes will we need to implement a system that
meets our requirements?
What fields and methods will each class have?
How will the classes interact with each other?
Document Page
How do we design classes?
class identification from project spec / requirement
nouns are potential classes, objects, fields
verbs are potential methods or responsibilities of a clas
CRC card exercises
write down classes' names on index cards
next to each class, list the following:
responsibilities : problems to be solved; short verb phrases
collaborators: other classes that are sent messages by this class
(asymmetric)
UML diagrams
class diagrams (today)
sequence diagrams
...
Document Page
What is UML?
UML: pictures of an OO system
programming languages are not abstract enough for O
design
UML is an open standard; lots of companies use it
What is legal UML?
a descriptive language: rigid formal syntax (like
programming)
a prescriptive language: shaped by usage and convention
it's okay to omit things from UML diagrams if they aren
needed by team/supervisor/instructor
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Uses for UML
as a sketch: to communicate aspects of system
forward design: doing UML before coding
backward design: doing UML after coding as documentation
often done on whiteboard or paper
used to get rough selective ideas
as a blueprint: a complete design to be implemented
sometimes done with CASE (Computer-Aided Software
Engineering) tools
as a programming language: with the right tools, code
be auto-generated and executed from UML
only good if this is faster than coding in a "real" language
Document Page
UML
In an effort to promote Object Oriented designs
three leading object oriented programming
researchers joined ranks to combine their
languages:
Grady Booch (BOOCH)
Jim Rumbaugh (OML: object modeling technique)
Ivar Jacobsen (OOSE: object oriented software eng
and come up with an industry standard [mid 1990’s
Document Page
UML – Unified Modeling Language
Union of all Modeling Languages
Use case diagrams
Class diagrams
Object diagrams
Sequence diagrams
Collaboration diagrams
Statechart diagrams
Activity diagrams
Component diagrams
Deployment diagrams
;.
Very big, but a nice standard that has been
embraced by the industry.
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Object diagram (≠ class diagram)
individual objects (heap layout)
objectName : type
attribute = value
lines show field
references
Class diagram:
summary of all possible object diagrams
Document Page
Object diagram example
chevron_up_icon
1 out of 31
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]