📄 the oo design process5.mht
字号:
concrete. They aren't an implementation specification. =
Rather,=20
they're details that will affect implementation and are =
relevant to=20
the current use case. They will guide, but not control the=20
implementation-level design.</P><A name=3D3></A>
<P><STRONG class=3Dsubhead>Summing up</STRONG><BR>So that's =
the=20
organization of a use case. Next month I'll show you how to =
apply=20
the theory by developing a few use cases for the Bank of =
Allen=20
project. Future articles will also show how to use the use =
cases for=20
UI design, and how to build a formal dynamic model from use=20
cases.</P><A name=3Dresources>
<P><STRONG class=3Dsubhead>Resources</STRONG>=20
<UL>
<LI>Ivar Jacobson, <A=20
=
href=3D"http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=3D0201=
544350&from=3DNCN454">Object-Oriented=20
Software Engineering : A Use Case Driven Approach</A> =
(Reading:=20
Addison-Wesley, 1994; ISBN: 0201544350). This book is one =
of the=20
first treatments of use cases. Though Jacobson is a =
pioneer in=20
this field, I do have some arguments with him about things =
like=20
use-case granularity. I've listed the book because it's =
seminal,=20
but it's a bit abstract for my tastes.=20
<LI>Larry Constantine and Lucy Lockwood, <A=20
=
href=3D"http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=3D0201=
924781&from=3DNCN454">Software=20
for Use</A> (Reading: Addison-Wesley, 1999; ISBN: =
0201924781).=20
This book describes a use-case-based UI-design methodology =
called=20
Usage-Centered Design. The approach is one of the best =
formal=20
UI-design methodologies going, and the first quarter of =
the book=20
is a good discussion of use-case gathering.=20
<LI>Larry Constantine and Lucy Lockwood, <A=20
=
href=3D"http://www.foruse.com/Files/Papers/structurestyle2.pdf">Structure=
=20
and Style in Use Cases for User Interface</A>. This paper =
both=20
summarizes and expands on the design approach discussed in =
Constantine and Lockwood's book. It's a good capsule =
introduction=20
to the subject.=20
<LI>Russell C. Bjork, <A=20
=
href=3D"http://www.math-cs.gordon.edu/local/courses/cs320/ATM_Example">An=
=20
Example of Object-Oriented Design: An ATM Simulation</A>. =
These=20
are wonderful course notes for a class that Dr. Bjork is =
teaching=20
at Gordon College. Though I have some criticism of some of =
the=20
documents, Bjork does present a complete set of the design =
artifacts (including use cases) that arise from the =
OO-design=20
process.=20
<LI>Kent Beck and Ward Cunningham, <A=20
href=3D"http://c2.com/doc/oopsla89/paper.html">A =
Laboratory For=20
Teaching Object-Oriented Thinking</A>. (From the OOPSLA'89 =
Conference Proceedings October 1-6, 1989, New Orleans, =
Louisiana=20
and the special issue of SIGPLAN Notices Volume 24, Number =
10,=20
October 1989.) This paper describes the original use of =
CRC cards=20
in a classroom situation. </LI></UL><A name=3Dauthor>
<P><STRONG class=3Dsubhead>About the author</STRONG> =
<BR>Allen Holub=20
is the Chief Technical Officer at NetReliance, a San =
Francisco-based=20
company that's building a secure global infrastructure for=20
conducting trusted business transactions over the Net. </P>
<P>He has worked in the computer industry since 1979, and is =
widely=20
published in magazines (<CODE>Dr. Dobb's Journal</CODE>,=20
<CODE>Programmers Journal</CODE>, <CODE>Byte</CODE>,=20
<CODE>MSJ</CODE>, among others). He writes the "Java =
Toolbox" column=20
for the online magazine <A=20
href=3D"http://www.javaworld.com/">JavaWorld</A>, and also =
writes the=20
"OO Design Process" column for the <A=20
href=3D"http://www.ibm.com/developer/components/">IBM =
developerWorks=20
Components zone</A>. He also moderates the <A=20
=
href=3D"http://forums.itworld.com/webx?230@252.JFaDaPPqabj^0@.ee6b806">IT=
world=20
Programming Theory & Practice</A> discussion group.=20
<P>Allen has <A=20
href=3D"http://www.holub.com/allenholub.html#books">eight =
books</A> to=20
his credit, the latest of which covers the traps and =
pitfalls of=20
Java threading (<A=20
=
href=3D"http://www1.fatbrain.com/asp/bookinfo/bookinfo.asp?theisbn=3D1893=
115100&from=3DNCN454"=20
target=3D_blank><I>Taming Java Threads</I></A> ). He's been =
designing=20
and building object-oriented software for longer than he =
cares to=20
remember (in C++ and Java). He teaches OO design and Java =
for the=20
University of California, Berkeley, Extension (since 1982). =
You can=20
contact Allen via his Web site <A=20
=
href=3D"http://www.holub.com/">http://www.holub.com/</A>.</P><!-- End =
paper --><BR></TD>
<TD vAlign=3Dtop width=3D8><!-- gutter--><IMG height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" =
width=3D8> </TD></TR><!-- gutter -->
<TR height=3D8 vAlign=3Dtop>
<TD vAlign=3Dtop width=3D8><!-- gutter --></TD>
<TD vAlign=3Dtop width=3D8><!-- gutter --></TD>
<TD vAlign=3Dtop width=3D8><!-- gutter --></TD></TR>
<TR height=3D8 vAlign=3Dtop>
<TD vAlign=3Dtop width=3D8><!-- gutter --></TD>
<TD vAlign=3Dtop width=3D8><!-- rate article form -->
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 =
width=3D"100%">
<TBODY>
<TR>
<TD height=3D1 width=3D"100%"><SPACER type=3D"block"=20
height=3D"1"></TD></TR>
<TR>
<TD align=3Dright width=3D"100%"><A=20
href=3D"javascript:void%20newWindow()"><IMG =
align=3Dright=20
alt=3D"e-mail it!" border=3D0 height=3D20=20
=
src=3D"http://www-106.ibm.com/developerworks/images/emailfriend2.gif"=20
width=3D86></A></TD></TR></TD><!-- Formatter, when =
paper is in folder, change above to ../../images/emailfriend2.gif -->
<TR>
<TD height=3D1 width=3D"100%"><SPACER type=3D"block"=20
height=3D"1"></TD></TR>
<TR>
<TD align=3Dleft bgColor=3D#3333cc height=3D3 =
vAlign=3Dtop=20
width=3D"100%"><IMG border=3D0 height=3D3=20
=
src=3D"http://www-106.ibm.com/developerworks/images/blueline.gif"=20
width=3D"100%"></TD></TR>
<TR vAlign=3Dtop>
<TD>
<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"OO Design Process: Use cases, an =
introduction"> <!-- paste zone here --><INPUT name=3DZone type=3Dhidden=20
value=3DComponents> <INPUT name=3DRedirectURL =
type=3Dhidden=20
=
value=3Dhttp://www.ibm.com/developer/thankyou/feedback-components.html>=20
<FONT face=3D"HELVETICA, HELV, ARIAL" =
size=3D-1><B>What do you=20
think of 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"HELVETICA, HELV, ARIAL" =
size=3D-1>Killer!=20
(5)</FONT></TD>
<TD><INPUT name=3DRating type=3Dradio =
value=3D4><FONT=20
face=3D"HELVETICA, HELV, ARIAL" size=3D-1>Good =
stuff=20
(4)</FONT></TD>
<TD><INPUT name=3DRating type=3Dradio =
value=3D3><FONT=20
face=3D"HELVETICA, HELV, ARIAL" size=3D-1>So-so; =
not bad=20
(3)</FONT></TD>
<TD><INPUT name=3DRating type=3Dradio =
value=3D2><FONT=20
face=3D"HELVETICA, HELV, ARIAL" size=3D-1>Needs =
work=20
(2)</FONT></TD>
<TD><INPUT name=3DRating type=3Dradio =
value=3D1><FONT=20
face=3D"HELVETICA, HELV, ARIAL" size=3D-1>Lame!=20
(1)</FONT></TD></TR></TBODY></TABLE><BR><FONT=20
face=3D"HELVETICA, HELV, ARIAL"=20
size=3D-1><B>Comments?</B></FONT><BR><TEXTAREA =
cols=3D52 name=3DComments rows=3D3 wrap=3Dvirtual></TEXTAREA>=20
<BR><BR><INPUT type=3Dsubmit value=3D"Submit =
feedback">=20
</FORM></FONT></P></TD></TR></TBODY></TABLE><!-- end =
rate article form --></TD>
<TD vAlign=3Dtop width=3D8><!--gutter--></TD></TR>
<TR height=3D8 vAlign=3Dtop>
<TD vAlign=3Dtop width=3D8><!--gutter--></TD>
<TD vAlign=3Dtop width=3D8><!--gutter--></TD>
<TD vAlign=3Dtop =
width=3D8><!--gutter--></TD></TR></TBODY></TABLE><!-- end content =
--></TD></TR></TBODY></TABLE><!-- FOOTER -->
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0>
<TBODY>
<TR>
<TD width=3D150>
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 width=3D150>
<TBODY>
<TR bgColor=3D#000000>
<TD class=3Dmast width=3D49><A class=3Dnav=20
href=3D"http://www.ibm.com/privacy/"=20
style=3D"COLOR: #ffffff">Privacy</A></TD>
<TD bgColor=3D#959595 width=3D1><IMG alt=3D"" border=3D0 =
height=3D20=20
src=3D"http://www.ibm.com/i/c.gif" width=3D1></TD>
<TD class=3Dmast width=3D49><A class=3Dnav=20
href=3D"http://www.ibm.com/legal/" style=3D"COLOR: =
#ffffff">Legal</A></TD>
<TD bgColor=3D#959595 width=3D1><IMG alt=3D"" border=3D0 =
height=3D20=20
src=3D"http://www.ibm.com/i/c.gif" width=3D1></TD>
<TD class=3Dmast width=3D49><A class=3Dnav=20
href=3D"http://www.ibm.com/contact/"=20
style=3D"COLOR: #ffffff">Contact</A></TD>
<TD bgColor=3D#959595 width=3D1><IMG alt=3D"" border=3D0 =
height=3D21=20
src=3D"http://www.ibm.com/i/c.gif" width=3D1></TD></TR>
<TR bgColor=3D#ffffff>
<TD width=3D49><IMG alt=3D"" border=3D0 height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" width=3D49></TD>
<TD width=3D1><IMG alt=3D"" border=3D0 height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" width=3D1></TD>
<TD width=3D49><IMG alt=3D"" border=3D0 height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" width=3D49></TD>
<TD width=3D1><IMG alt=3D"" border=3D0 height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" width=3D1></TD>
<TD width=3D49><IMG alt=3D"" border=3D0 height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" width=3D49></TD>
<TD width=3D1><IMG alt=3D"" border=3D0 height=3D1=20
src=3D"http://www.ibm.com/i/c.gif" =
width=3D1></TD></TR></TBODY></TABLE></TD>
<TD width=3D"100%">
<TABLE border=3D0 cellPadding=3D0 cellSpacing=3D0 width=3D"100%">
<TBODY>
<TR bgColor=3D#000000>
<TD><IMG alt=3D"" border=3D0 height=3D21 =
src=3D"http://www.ibm.com/i/c.gif"=20
width=3D1></TD></TR>
<TR bgColor=3D#ffffff>
<TD><IMG alt=3D"" border=3D0 height=3D1 =
src=3D"http://www.ibm.com/i/c.gif"=20
=
width=3D1></TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE></BODY></HT=
ML>
------=_NextPart_000_00B0_01C1008C.321653B0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www-106.ibm.com/developerworks/i/mast_logo.gif
R0lGODlhlgAZAJEAAABmmf///wAAAAAAACwAAAAAlgAZAAACuJSPqcvtD6OcVIKLs968+w+G4kiW
Y4Wm6sq2jgnH8kzXn4vn+q7a/g8MynjEonEnTCqXwaPzCYV4AtRqAGDNYrQaLvMLBkTHZOg0e0Vr
0Rl2+K0sy+c6ULVL3eYv1vYdDihEN0iIYren58bXh8UY+GhTKDnZcHjlp9iYdvcH6TlESUVJaYl3
qZmouXm6xff52jEZICA6O0p4tqbGybjnldYIK4wRamB7O5jbt3vK5eu4OCwthlw9WAAAOw==
------=_NextPart_000_00B0_01C1008C.321653B0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Content-Location: http://www.ibm.com/i/c.gif
R0lGODlhAQABAID/AMDAwAAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==
------=_NextPart_000_00B0_01C1008C.321653B0
Content-Type: image/gif
Content-Transfer-Encoding: base64
Con
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -