📄 the oo design process8.mht
字号:
transaction effectively doesn't accrue interest.=20
<P>You want to show interest accrual on a daily basis, =
however, so=20
it's not sufficient to list only transactions, as would a =
real-world=20
passbook or bank statement. You really want a line item for =
every day.=20
That's a lot of line items, though. A reasonable compromise =
might be=20
to show the previous 30 days on a per-day basis, with the rest =
of the=20
passbook looking like a standard bank statement that shows =
regular=20
(but not daily) interest postings, perhaps one posting per=20
week.</P></LI></OL>
<P>So that's an entire use-case presentation. Rather than bore =
you by=20
presenting the rest of the use cases in subsequent columns, I'll =
put the=20
complete set up on my Web site (see Resources) so that you can =
inspect=20
them at your leisure. Next month we'll continue the design =
process by=20
looking at the UI design (which is essential not only because =
we'll have=20
to build it, but also because the UI serves both to validate the =
use=20
cases and provide a useful communication tool).</P><!-- Enter =
list of article resources here --><A=20
name=3Dresources>
<P><B class=3Dsubhead>Resources</B>=20
<UL>
<LI>
<P>This article continues my series on the OO-design process. =
The=20
first seven parts are:</P>
<UL>
<LI><A=20
=
href=3D"http://www-106.ibm.com/developerworks/components/library/oo-desig=
n1/index.html">Getting=20
started</A>=20
<LI><A=20
=
href=3D"http://www-106.ibm.com/developerworks/components/library/oo-desig=
n2/index.html">Beginning=20
to design software</A>=20
<LI><A=20
=
href=3D"http://www-106.ibm.com/developerworks/components/library/oo-desig=
n3.html">Refining=20
the problem definition</A>=20
<LI><A=20
=
href=3D"http://www-106.ibm.com/developerworks/components/library/co-desig=
n4.html">Verifying=20
the analysis</A>=20
<LI><A=20
=
href=3D"http://www-106.ibm.com/developerworks/components/library/co-desig=
n5.html">Use=20
cases, an introduction</A>=20
<LI><A=20
=
href=3D"http://www-106.ibm.com/developerworks/components/library/co-desig=
n6.html">Use=20
case planning</A>=20
<LI><A=20
=
href=3D"http://www-106.ibm.com/developerworks/components/library/co-desig=
n7.html">Use=20
cases applied, Part 1</A> </LI></UL><BR>
<LI>Visit Allen's Web site at <A=20
href=3D"http://www.holub.com/">http://www.holub.com/</A>.=20
<LI><A href=3D"http://www.foruse.com/">Constantine and =
Lockwood</A>=20
recommend that you represent nonlinear operations differently =
than we=20
have in this article.=20
<LI>The notion of an object being defined by its operations is =
discussed in Allen Holub, <A=20
=
href=3D"http://www.javaworld.com/javaworld/jw-07-1999/jw-07-toolbox.html"=
><I>What=20
is an Object?</I></A> (<I>JavaWorld</I>: July, 1999). =
Subsequent=20
articles in the series (all of which are indexed at <A=20
=
href=3D"http://www.holub.com/aiharticles.html">http://www.holub.com/aihar=
ticles.html</A>)=20
discuss how this philosophy is actually applied to real-world =
systems.=20
<LI>Workflow diagrams (along with the rest of UML) are =
described=20
nicely in Martin Fowler and Kendall Scott's <A=20
=
href=3D"http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=3D0201=
65783X&from=3DNCN454"><I>UML=20
Distilled, 2nd Ed</I></A>. </LI></UL><!-- Enter author bios =
here; make author heading singular or plural as needed --><A=20
name=3Dauthor1>
<P><B class=3Dsubhead>About the author</B> <BR>Allen Holub =
provides=20
consulting services in the fields of OO Design and process and =
Java=20
programming, and also provides formal training and mentoring in =
these=20
subjects.</P>
<P>He has worked in the computer industry since 1979, most =
recently as=20
Chief Technology Officer at NetReliance, Inc. (and is actively =
looking=20
for another CTO position). He is widely published. Allen has <A=20
href=3D"http://www.holub.com/allenholub.html#books">eight =
books</A> to his=20
credit, the latest of which covers the traps and pitfalls of =
Java=20
threading (<A=20
=
href=3D"http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=3D1893=
115100&from=3DNCN454"=20
target=3D_blank>Taming Java Threads</A> [Berkeley: Apress, 2000; =
ISBN=20
1893115100]).</P>
<P>Allen is also a composer, artist, and instrument-rated =
commercial=20
pilot. He holds B.A. degrees from the University of California,=20
Berkeley, in Medieval History and Computer Science.</P><BR=20
clear=3Dall><IMG alt=3D"" border=3D0 height=3D5 =
src=3D"http://www.ibm.com/i/c.gif"=20
width=3D100><BR><!-- END PAPER BODY --><BR clear=3Dall><IMG =
alt=3D"" border=3D0=20
height=3D10 src=3D"http://www.ibm.com/i/c.gif" =
width=3D100><BR><!-- REPEAT ICON LINKS AT BOTTOM OF PAGE -->
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 =
width=3D"100%">
<TBODY>
<TR vAlign=3Dtop><!-- Icon Links : Comment out Discuss, Zip, =
and PDF as appropriate; enter file sizes -->
<TD align=3Dright width=3D"100%"><NOBR><!--=0A=
<a href=3D""><img src=3D"/developerworks/i/icon-discuss.gif" =
width=3D"42" height=3D"26" border=3D"0" alt=3D""></a>=0A=
=0A=
<a =
href=3D"ftp://www6.software.ibm.com/software/developer/library/xxx.zip"><=
img src=3D"/developerworks/i/icon-zip.gif" width=3D"30" height=3D"26" =
border=3D"0" alt=3D"zip file - xxxXB"></a>=0A=
--><A=20
=
href=3D"ftp://www6.software.ibm.com/software/developer/library/co-design8=
.pdf"><IMG=20
alt=3D"PDF - 122KB" border=3D0 height=3D26=20
=
src=3D"http://www-106.ibm.com/developerworks/i/icon-pdf.gif"=20
width=3D35></A> <A =
href=3D"javascript:void%20newWindow()"><IMG alt=3D""=20
border=3D0 height=3D26=20
=
src=3D"http://www-106.ibm.com/developerworks/i/icon-email.gif"=20
width=3D46></A></NOBR></TD>
<TD width=3D5><IMG alt=3D"" border=3D0 height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" =
width=3D5></TD></TR><!-- Black Line Separator -->
<TR vAlign=3Dtop>
<TD bgColor=3D#000000 colSpan=3D2><IMG border=3D0 height=3D1 =
src=3D"http://www.ibm.com/i/c.gif" width=3D100></TD></TR>
<TR vAlign=3Dtop>
<TD bgColor=3D#ffffff colSpan=3D2><IMG border=3D0 height=3D8 =
src=3D"http://www.ibm.com/i/c.gif" =
width=3D100></TD></TR></TBODY></TABLE><!-- RATE ARTICLE FORM -->
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 =
width=3D"100%">
<TBODY>
<TR vAlign=3Dtop>
<TD><A name=3Drating>
<FORM=20
=
action=3Dhttp://www9.software.ibm.com/dworks/ratings.nsf/RateArticle?Crea=
teDocument=20
method=3Dpost><!-- paste title here --><INPUT =
name=3DArticleTitle=20
type=3Dhidden=20
value=3D"The OO design process: Use cases applied, Part =
2"> <!-- paste zone here --><INPUT name=3DZone type=3Dhidden=20
value=3DComponents> <INPUT name=3DRedirectURL =
type=3Dhidden=20
=
value=3Dhttp://www-106.ibm.com/developerworks/thankyou/feedback-component=
s.html>=20
<FONT face=3D"Arial, sans-serif" size=3D-1><B>What do you =
think of=20
this article?</B></FONT>
<P>
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 =
width=3D580>
<TBODY>
<TR vAlign=3Dtop>
<TD><INPUT name=3DRating type=3Dradio value=3D5><FONT=20
face=3D"Arial, sans-serif" size=3D-1>Killer! =
(5)</FONT></TD>
<TD><INPUT name=3DRating type=3Dradio value=3D4><FONT=20
face=3D"Arial, sans-serif" size=3D-1>Good stuff =
(4)</FONT></TD>
<TD><INPUT name=3DRating type=3Dradio value=3D3><FONT=20
face=3D"Arial, sans-serif" size=3D-1>So-so; not bad=20
(3)</FONT></TD>
<TD><INPUT name=3DRating type=3Dradio value=3D2><FONT=20
face=3D"Arial, sans-serif" size=3D-1>Needs work =
(2)</FONT></TD>
<TD><INPUT name=3DRating type=3Dradio value=3D3><FONT=20
face=3D"Arial, sans-serif" size=3D-1>Lame!=20
(1)</FONT></TD></TR></TBODY></TABLE><BR><FONT=20
face=3D"Arial, sans-serif" =
size=3D-1><B>Comments?</B></FONT><BR><TEXTAREA cols=3D60 name=3DComments =
rows=3D5 wrap=3Dvirtual></TEXTAREA>=20
<BR><BR><INPUT type=3Dsubmit value=3D"Submit feedback">=20
</FORM></FONT></P></A></TD></TR>
<TR vAlign=3Dtop>
<TD bgColor=3D#ffffff><IMG border=3D0 height=3D8=20
src=3D"http://www.ibm.com/i/c.gif" =
width=3D100></TD></TR></TBODY></TABLE><!-- END CENTER COLUMN =
--></DD></LI></OL></DD></FONT></TD><!-- RIGHT GUTTER -->
<TD width=3D1><IMG alt=3D"" border=3D0 height=3D1 =
src=3D"http://www.ibm.com/i/c.gif"=20
width=3D1></TD></TR></TBODY></TABLE><!-- END PAPER CONTENT AREA =
--><!--FOOTER--><!-- Do not changes this include -->
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 width=3D"100%">
<TBODY>
<TR bgColor=3D#000000>
<TD>
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 width=3D150>
<TBODY>
<TR bgColor=3D#000000>
<TD align=3Dmiddle width=3D49><A class=3Dnav=20
href=3D"http://www.ibm.com/privacy/" style=3D"COLOR: =
#ffffff"=20
target=3D_top><FONT color=3D#ffffff face=3D"Arial, =
sans-serif"=20
size=3D-2>Privacy</FONT></A></TD>
<TD bgColor=3D#959595 width=3D1><IMG alt=3D"" height=3D21=20
src=3D"http://www.ibm.com/i/c.gif" width=3D1></TD>
<TD align=3Dmiddle width=3D49><A class=3Dnav=20
href=3D"http://www.ibm.com/legal/" style=3D"COLOR: #ffffff"=20
target=3D_top><FONT color=3D#ffffff face=3D"Arial, =
sans-serif"=20
size=3D-2>Legal</FONT></A></TD>
<TD bgColor=3D#959595 width=3D1><IMG alt=3D"" height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" width=3D1></TD>
<TD align=3Dmiddle width=3D49><A class=3Dnav=20
href=3D"http://www.ibm.com/contact/" style=3D"COLOR: =
#ffffff"=20
target=3D_top><FONT color=3D#ffffff face=3D"Arial, =
sans-serif"=20
size=3D-2>Contact</FONT></A></TD>
<TD bgColor=3D#959595 width=3D1><IMG alt=3D"" height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" =
width=3D1></TD></TR></TBODY></TABLE></TD>
<TD>
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 width=3D"100%">
<TBODY>
<TR bgColor=3D#000000>
=
<TD></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HTML>
------=_NextPart_000_00CD_01C1008C.3F4459B0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.ibm.com/developer/i/mast_logo.gif
R0lGODlhlgAZAJEAAABmmf///wAAAAAAACwAAAAAlgAZAAACuJSPqcvtD6OcVIKLs968+w+G4kiW
Y4Wm6sq2jgnH8kzXn4vn+q7a/g8MynjEonEnTCqXwaPzCYV4AtRqAGDNYrQaLvMLBkTHZOg0e0Vr
0Rl2+K0sy+c6ULVL3eYv1vYdDihEN0iIYren58bXh8UY+GhTKDnZcHjlp9iYdvcH6TlESUVJaYl3
qZmouXm6xff52jEZICA6O0p4tqbGybjnldYIK4wRamB7O5jbt3vK5eu4OCwthlw9WAAAOw==
------=_NextPart_000_00CD_01C1008C.3F4459B0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.ibm.com/i/c.gif
R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
------=_NextPart_000_00CD_01C1008C.3F4459B0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.ibm.com/developer/i/shopibm.gif
R0lGODlhZAAZAMQAABhKezFjjBBShABSjAhShABjnABkmwBajA9yqxBzrQBrpQBlmgBnmsDAwABl
mABmmABllwBklgBjlQBjlBB7tSGEtQBrnABpmwBqmwBomgBnmQhzpf///wAAAAAAAAAAACH5BAEA
AA0ALAAAAABkABkAAAX/YCOOZGmeaKqubOu+cCzPMwNd1oRF2UP/wGCksNlQKshEYpOzSDTBqHQV
sWyWymWxqCgUJoupeGxIIM/no5aZy4zfv4L1mt0WLVaFRf8Nw/8vE2ZoZ1eGdnpOUICMKhZmdXd6
THqJeAUmBpiNnEdnHKATk4gKiZskOXITFqAHE5xiCGgTAwIDFnKVeJUNFiYToByuoAIHL14FwcLA
yq7JExPIHNA/h0XK2ByWDacjxAIcA6AAAyPI0V7oX6vQ4wTMAODhzAPtHATGNGkbXQQC/wD/rdKD
wt0Bcc2iJcTmDN47d8QOBJM4rhwNJVyYZAtWDxcKiuEoxgOF8B/JcfLq/yXjAODAymDxJAIgNi7f
DCQUuHSpRaCnzwFyupGgJU8kAVABIHJIyvIoh2KsWA5jKe+hPKYtq22ZswHUO3sNCx5EWpNsU7Mt
K8K7pbTYPX9YbcrAuGRPVAKVvAZFwYwlVoQBnI5jCt
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -