[
Skip Navigation
] [
CSUSB
] / [
CNS
] / [
Comp Sci & Engineering
] / [
R J Botting
] / [
CS375
] [Search
]
[
About
] [
Contact
] [
Grades
] [
Objectives
] [
Patterns
] [
Projects
] [
Question
] [
Schedule
] [
Syllabus
]
Session: [
01
] [
02
] [
03
] [
04
] [
05
] [
06
] [
07
] [
08
] [
09
] [
10
] [
11
] [
12
] [
13
] [
14
] [
15
] [
16
] [
17
] [
18
] [
19
] [
20
]
[
Text Version
] w6.html Mon Sep 28 15:48:38 PDT 2009
Contents
Assigned Work 6: Using GRASP to design classes
Given
Deliverables
Suggested Process
Grading
Standard Definitions
Assigned Work 6: Using GRASP to design classes
Table
Version#
Date
Description
Author
0
2005-02-14
Copied from W5 and edited
RJB
1
2009-03-04
More specific rules for Interactions
RJB
(Close Table)
Given
Requirements
Vision
Business Case
Use Cases
Supplementary Specifications(if any)
Business Rules(if any)
Glossary
Domain model with classes, associations, and some attributes.
SSDs of interesting scenarios
A first logical architecture
Interaction diagrams (sequence or communication).
A design class diagram that supports the interaction diagrams.
Deliverables
At least one improved Interaction diagram (sequence or communication)
that handles a system message from your SSD.
At least one note indicate a GRASP patterns you used.
At least one improved class diagram that supports the interaction diagram.
Note: as before each interaction diagram has precisely one found message that is taken from the SSD, and all the interaction diagrams are supported by a single design class diagram.
Suggested Process
Review previous documentation.
Think and redraw diagrams: interactions+classes.
Do many
system events
each with a single interaction diagram
Accumulate methods and data into a single design class diagram!
Present interaction and class diagram showing how you used
at least one GRASP pattern.
Submit one copy of one interaction digram with one or two GRASP patterns.
Grading
It is possible, in this first piece attempt, to misapply GRASP and still get 100% of the available points.
Standard Definitions
CS202
::= See
http://cse.csusb.edu/dick/cs202/
.
CS372
::= See
http://cse.csusb.edu/dick/cs372/
.
DCD
::diagram="Design Class Diagram", shows the classes that will be implemented in code.
DRY
::
XP
="Don't Repeat Yourself".
ESSUP
::Process= See
http://www.ivarjacobson.com/essup.cfm
, Ivar Jacobsen simplified "Essential"
UP
.
Glossary
::= See
http://cse.csusb.edu/dick/cs375/uml.glossary.html
.
GoF
::="Gang of Four", [
patterns.html#GoF
]
GRASP
::
patterns
="General Responsibility Assignment Software Patterns", a set of guidelines for designing objects and classes. They take a single event that the system must handle and determine a good class to carry it out. See [
patterns.html#GRASP -- General Responsibility Assignment Software Patterns
]
Grades
::= See
http://cse.csusb.edu/dick/cs375/grading/
.
KISS
::Folk_law="Keep It Simple, Stupid", in agile processes this means never drawing a diagram or preparing a document that doesn't provide value to the clients and stakeholders. In all processes it means never designing or coding what is not needed, see
YAGNI
.
OO
::shorthand="Object-Oriented".
OOAD
::="Object-Oriented Analysis and Design", See chapter 1 in text.
patterns
::="Documented families of problems and matching solutions", see
Patterns
.
Patterns
::= See
http://cse.csusb.edu/dick/cs375/patterns.html
.
Process
::="How to develop software".
RJB
::=
The author of this document
, RJB="Richard J Botting, Comp Sci Dept, CSUSB".
RUP
::Process="Rational
UP
", a proprietary version of
UP
.
SSD
::="System Sequence Diagrams", see chapter 10.
TBA
::="To Be Announced".
UML
::="Unified Modeling Language". [
Unified_Modeling_Language
]
UP
::="Unified Process", an iterative, risk-driven, and evolutionary way to develop
OO
software.
YAGNI
::
XP
="You Ain't Gonna Need It", an
XP
slogan that stops you planning and coding for things that are not yet needed. As a rule the future is not predictable enough to program a feature until the stakeholders actually need it now. In this class it means "It won't be on the final or in quizzes".
XP
::="Extreme Programming", the ultimate iterative code-centric, user-involved process.
End