📄 oobject102304.htm
字号:
use case)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">,以協助我們去了解抽象化。</span></font></p>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">抽象化的</span><span lang="EN-US">(abstracting)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">使用案例也有可能導致更龐大的使用案例,換言之,在一個反覆式開發過程中,會造成規劃工作益加困難。你可能要花費更多的時間去推導出</span><span lang="EN-US">(arguing)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">抽象化</span><span lang="EN-US">
<span class="GramE">–</span> </span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">而這些時間你最好是用在其他地方。</span></font></p>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">所以我的建議是去違反抽象化的原則,而盡量讓使用案例具體化</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">(</span></b><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">譯<span class="GramE">註</span></span><a title style="mso-endnote-id: edn3" href="#_edn3" name="_ednref3"><span class="MsoEndnoteReference" style="mso-special-character: footnote" lang="EN-US"><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">[</span><span style="font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ascii-font-family: Comic Sans MS; mso-hansi-font-family: Comic Sans MS; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">三</span><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">]</span></span></a><span lang="EN-US">)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">。有關上面所述及的,重點在於不要做過多的抽象並讓你的使用者得以領會,使用具體的使用案例進行解說和確認你效用無窮的抽象化作業。</span></font></p>
<h3 style="MARGIN-TOP: 9pt; TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">濫用圖型使用者介面</span><span lang="EN-US">(Abuse
by GUI)</span></font></h3>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">儘管圖型繪製工具問世不久,大多數的人們正使用這些圖型繪製工具來協助自己決定使用案例,理論上是動人的。</span><span lang="EN-US">GUI</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">對使用者而言可以更具體化;它協助我們清除容易忽略</span><span lang="EN-US">(easy-to-forget)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">細節的障礙;它讓使用者可以明瞭系統看起來應該像什麼;</span><span lang="EN-US">GUI</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">使我們容易去塑造原型;它們合理的展示並解說系統的特徵及功能。</span></font></p>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">由於上述的種種理由,我過去曾認為</span><span lang="EN-US">GUI</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">原型是一種良好的需求</span><span lang="EN-US">(requirements)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">工具,但是仍存在一些根本上的問題。當你向使用者展示</span><span lang="EN-US">GUI</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">原型時,就算那只是形同在戲劇後<span class="GramE">臺</span>留下少量的線路,但它看起來就像是近乎完成品。當然,我們知道那是潛在於後<span class="GramE">臺</span>裡面極為複雜練習的一部分,但這是非常難以讓客戶了解。</span><span lang="EN-US">GUI</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">導致不正確的進度指示且難以掌握</span><span lang="EN-US">
<span class="GramE">–</span> </span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">它也許可以正確的將一個按鈕擺放在圖形介面</span><span lang="EN-US">(UI)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">上,既使如此可能也需花費幾星期的努力。有一條鴻溝介於實際上的努力與感知上的努力<span class="GramE">之間,</span>使得它難以去成功的跨越,那也就是說將它控制在某個範圍裡是重要的。</span></font></p>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">儘管事實上</span><span lang="EN-US">GUI</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">工具似乎是如此容易使用,而且總是有許多細微的調整功能使得它看起來正確無誤。這些美好的調整功能在某些方面也限制了人們的預期,造成當一個簡單的設計構想<span class="GramE">浮</span>現時卻很難處理這些改變。</span></font></p>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">所以我現在告訴人們,如果無法完全寫好程式碼之前不要展示任何</span><span lang="EN-US">GUI</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">,使用筆<span class="GramE">和紙所繪製</span>出來的</span><span lang="EN-US">GUI</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">原型仍不失為是好的製作方式,這種方法可以讓你避免不正確的進度指示。</span></font></p>
<h3 style="MARGIN-TOP: 9pt; TEXT-JUSTIFY: inter-ideograph; TEXT-ALIGN: justify"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">濫用否定可供選擇的項目</span><span lang="EN-US">(Abuse
by Denying Choice)</span></font></h3>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">以一個高消費階層的</span><span lang="EN-US">(high-end)<a style="mso-comment-reference: 朱子_3; mso-comment-date: 20010915T2148"></a><a language="JavaScript" class="msocomanchor" id="_anchor_3" onmouseover="msoCommentShow('_anchor_3','_com_3')" onmouseout="msoCommentHide('_com_3')" href="#_msocom_3" name="_msoanchor_3">[朱子3]</a><span style="mso-special-character: comment; display: none; mso-hide: all"> </span></span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">文字處理器為例</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">(</span></b><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">譯<span class="GramE">註</span></span><a title style="mso-endnote-id: edn4" href="#_edn4" name="_ednref4"><span class="MsoEndnoteReference" style="mso-special-character: footnote" lang="EN-US"><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">[</span><span style="font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ascii-font-family: Comic Sans MS; mso-hansi-font-family: Comic Sans MS; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">四</span><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">]</span></span></a><span lang="EN-US">)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">,想像一下有關這個文字處理器的使用案例</span><span lang="EN-US">(use-cases)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">。你大概會包含「<b style="mso-bidi-font-weight: normal">變更樣式</b>」、「<b style="mso-bidi-font-weight: normal">應用樣式</b>」及「<b style="mso-bidi-font-weight: normal">從另外一個文件<span class="GramE">裏</span>匯入樣式</b>」的功能?問題在於這些使用案例並非直接點出一個使用者的需求。使用者實際上所需要的東西應該像是「<b style="mso-bidi-font-weight: normal">確保文件內前後格式的一致性</b>」,或者「<b style="mso-bidi-font-weight: normal">製作一份文件類似另外一份</b>」。我將前者的描述視為<b style="mso-bidi-font-weight: normal">系統</b>的使用案例,而後者則視為<b style="mso-bidi-font-weight: normal">使用者</b>的使用案例</span><b style="mso-bidi-font-weight: normal"><span lang="EN-US">(</span></b><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">譯<span class="GramE">註</span></span><a title style="mso-endnote-id: edn5" href="#_edn5" name="_ednref5"><span class="MsoEndnoteReference" style="mso-special-character: footnote" lang="EN-US"><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">[</span><span style="font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ascii-font-family: Comic Sans MS; mso-hansi-font-family: Comic Sans MS; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">五</span><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">]</span></span></a><span lang="EN-US">)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">。</span></font></p>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">這個問題在於直接採取系統使用案例的舉動,將否定你提供其他系統的使用案例以處理類似問題的機會。無論如何,你不能夠單單運用使用者的使用案例,因為它們無法充分地符合反覆式發展程序中排程</span><span lang="EN-US">(iterative
scheduling process)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">所需。</span></font></p>
<p class="MsoBodyTextFirstIndent"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'"><font color="#000000" size="2">對此問題我承認無法提供一個完整的答案,我將注意力放在系統的使用案例,最主要地在於他們對反覆式規劃及系統測試這些方面相當有用。無論如何,伴隨每<span class="GramE">個</span>系統使用案例的背後,我會考慮到是否另有其他使用者的使用案例存在,我對此保留一段註解,並且嘗試去提供系統使用案例的替代方案。</font></span></p>
<p class="MsoBodyTextFirstIndent"><font color="#000000" size="2"><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">使用案例是相當有價值的技術之一,且適合我們使用。我長期運用它們在我的開發工作上,而且但願我過去一開始就使用這項技術。但是需要謹記,你使用它們有何目的,並且小心提防這些陷阱。除此之外,期盼某些人寫一本有關於「怎麼製作一個好的使用案例」的好書,至少有一位積極進取的開發者</span><span lang="EN-US">(active
developer)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">確實地想要去閱讀它。</span></font></p>
<p class="MsoBodyTextFirstIndent"><span lang="EN-US"><font color="#000000" size="2"><o:p>
</o:p>
</font></span></p>
<p class="MsoNormal" style="MARGIN-TOP: 9pt; mso-layout-grid-align: none"><b style="mso-bidi-font-weight: normal"><font color="#000000" size="2"><span lang="EN-US" style="font-family: Footlight MT Light; mso-bidi-font-family: ItcKabel-Demi; mso-font-kerning: 0pt"><o:p>
</o:p>
</span></font></b></p>
</td>
</tr>
</tbody>
</table>
<p class="MsoNormal" style="MARGIN-TOP: 9pt; mso-layout-grid-align: none"><span lang="EN-US"><font color="#000000" size="2"><o:p>
</o:p>
</font></span></p>
</div>
<div style="mso-element: endnote-list">
<font color="#000000" size="2"><br clear="all">
</font>
<hr align="left" width="33%" SIZE="1">
<div id="edn1" style="mso-element: endnote">
<p class="MsoCommentText" style="MARGIN: 9pt 36pt 0pt 54pt; TEXT-INDENT: -12pt; mso-para-margin-top: 9.0pt; mso-para-margin-right: 3.0gd; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 3.5gd; mso-char-indent-count: -1.0"><a title style="mso-endnote-id: edn1" href="#_ednref1" name="_edn1"><span class="MsoEndnoteReference" style="mso-special-character: footnote" lang="EN-US"><font size="2"><font color="#000000"><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">[</span><span style="font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ascii-font-family: Comic Sans MS; mso-hansi-font-family: Comic Sans MS; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">一</span><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">]</span></font></font></span></a><font color="#000000" size="2"><span lang="EN-US">
UML 1.1 </span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">的規格已經作了變更,使用案例之間的關係包含</span><span lang="EN-US">
include</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">、</span><span lang="EN-US">extend
</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">及</span><span lang="EN-US">
generalization</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">。</span></font></p>
</div>
<div id="edn2" style="mso-element: endnote">
<p class="MsoEndnoteText" style="MARGIN: 9pt 36pt 0pt 54pt; TEXT-INDENT: -12pt; mso-para-margin-top: 9.0pt; mso-para-margin-right: 3.0gd; mso-para-margin-bottom: .0001pt; mso-para-margin-left: 3.5gd; mso-char-indent-count: -1.0"><font color="#000000" size="2"><a title style="mso-endnote-id: edn2" href="#_ednref2" name="_edn2"><span class="MsoEndnoteReference" style="mso-special-character: footnote" lang="EN-US"><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">[</span><span style="font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ascii-font-family: Comic Sans MS; mso-hansi-font-family: Comic Sans MS; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">二</span><span lang="EN-US" style="font-family: Comic Sans MS; mso-fareast-font-family: 新細明體; mso-bidi-font-family: Times New Roman; mso-font-kerning: 1.0pt; mso-ansi-language: EN-US; mso-fareast-language: ZH-TW; mso-bidi-language: AR-SA">]</span></span></a><span lang="EN-US">
</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">若想了解這句話的意思,就必須了解</span><span lang="EN-US">
use case </span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">是以參與者</span><span lang="EN-US">(actors)</span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">的觀點,去尋求系統的需求這一個關鍵。有關此可參考</span><span lang="EN-US">
Scott W. Ambler </span><span style="FONT-FAMILY: 新細明體; mso-ascii-font-family: 'Comic Sans MS'; mso-hansi-font-family: 'Comic Sans MS'">編著「最佳的</span><span lang="EN-US">
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -