📄 lib0010.html
字号:
<html>
<META http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<head>
<title>Chapter 2: Defining the Project</title>
<link rel="STYLESHEET" type="text/css" href="images/xpolecat.css">
<link rel="STYLESHEET" type="text/css" href="images/ie.content.css">
</head>
<body>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td><div STYLE="MARGIN-LEFT: 0.15in;"><a href="toc.html"><img src="images/teamlib.gif" width="62" height="15" border="0" align="absmiddle" alt="Team LiB"></a></div></td>
<td align="right"><div STYLE="MARGIN-LEFT: 0.15in;">
<a href="LiB0009.html"><img src="images/previous.gif" width="62" height="15" border="0" align="absmiddle" alt="Previous Section"></a>
<a href="LiB0011.html"><img src="images/next.gif" width="41" height="15" border="0" align="absmiddle" alt="Next Section"></a>
</div></td></tr></table>
<br>
<div class="chapter">
<a name="ch02"></a>
<h1 class="chapter-title"><span class="chapter-titlelabel">Chapter 2: </span>Defining the Project</h1><div class="section">
<h2 class="sect2-title">
<a name="60"></a>Overview</h2>
<a name="61"></a><a name="IDX-15"></a>
<p class="para">The first step in developing any application is performing analysis to define its purpose, scope, and objectives. A J2EE application is no exception. Including analysis in the development process is basic common sense, but I'm continually amazed at how many projects muddle through without defining their targets first.</p>
<p class="para">The technical architect is not directly involved in defining the project; that is the job of the project manager, business analyst, and end user. However, the architect <i class="emphasis">is</i> responsible for ensuring that the project is defined with enough consistency and detail that it can be physically designed and implemented. Because most other members of the J2EE development team don't know what information is required to design and implement an application, the technical architect often facilitates project definition discussions.</p>
<p class="para">
<b class="bold">The technical architect must possess analysis skills.</b> Without analysis skills, an architect cannot recognize weak points and gaps in project definition. Although an architect who lacks analysis skills will likely catch most problems in project definition during the construction phase, by then it's more expensive to make changes.</p>
<p class="para">I can hear the groans of developers as I write. Technical people want to hear more about coding techniques than project definition and analysis-gathering strategies. I completely understand. There's nothing I like more <a name="62"></a><a name="IDX-16"></a>than producing good code that does something useful. However, to get good code, you need good analysis and good project definition. My experience is that the probability of getting useful code without doing decent analysis first is slim to none.</p>
<div class="highlights">
<p class="first-para">
<b class="bold">Use cases are an important tool in analysis.</b> The Unified Modeling Language (UML) specification was created to describe and document analysis and designs for systems that use object-oriented languages such as Java. The main construct UML has for describing what an application will accomplish is the <i class="emphasis">use case</i>. This chapter defines the term <i class="emphasis">use case,</i> guides you through writing use cases for a project, lists some common mistakes made in creating use cases and how to avoid them, and presents and discusses an example of use cases written for one project.</p>
<p class="para">This chapter does not contain a comprehensive synopsis of use cases with respect to the UML specification. I present the subset of the specification that is commonly used and is practical. For a thorough treatment of the UML specification, see <a href="LiB0017.html#80" target="_parent" class="chapterjump">Booch, Rumbaugh, and Jacobson (1999)</a>.</p>
<p class="para">Although some developers distinguish between use cases and requirements, I see no difference. Requirements are the specific features, written in business terms, that an application must provide. Therefore, requirements typically are use cases written in summary form.</p>
<p class="para">If you're using Extreme Programming (XP), you create stories rather than use cases. Nonetheless, you will still find this chapter useful. Despite the more granular nature of the stories most XP users create compared with UML use cases, I consider the constructs of the story and the use case to be conceptually identical. The major difference is that the granularity of the story enables one pair of programmers to implement it in three weeks' time versus the larger time frame usually needed for one programmer to implement a use case.</p>
<p class="para">
<b class="bold">Additionally, I like to prototype the user interfaces.</b> A prototype is an excellent vehicle for enabling the business side and developers to understand the target of a development project. I usually have no trouble getting the business side interested in the prototyping process because it concretely represents what they're going to get. Prototyping also helps refine the use cases.</p>
<p class="last-para">Once you've defined a project's use cases (or stories), you can create a fairly detailed definition of the project, written in business terms, that both developers and businesspeople can understand. This allows the business side and any management stakeholders to provide feedback early. Getting a formal <a name="63"></a><a name="IDX-17"></a>sign-off for the use cases in a particular project enables the project manager to contain project scope.</p>
</div>
</div>
</div><br>
<table width="100%" border="0" cellspacing="0" cellpadding="0">
<tr><td><div STYLE="MARGIN-LEFT: 0.15in;"><a href="toc.html"><img src="images/teamlib.gif" width="62" height="15" border="0" align="absmiddle" alt="Team LiB"></a></div></td>
<td align="right"><div STYLE="MARGIN-LEFT: 0.15in;">
<a href="LiB0009.html"><img src="images/previous.gif" width="62" height="15" border="0" align="absmiddle" alt="Previous Section"></a>
<a href="LiB0011.html"><img src="images/next.gif" width="41" height="15" border="0" align="absmiddle" alt="Next Section"></a>
</div></td></tr></table>
</body></html>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -