需求是開(kāi)發(fā)者和用戶交互的一個(gè)過(guò)程,任何一方的不投入都會(huì)導(dǎo)致項(xiàng)目的失敗。由于售前咨詢的定位,必然存在著客戶溝通和客戶合作態(tài)度的問(wèn)題(再者用戶不是專(zhuān)業(yè)人士),因而開(kāi)發(fā)者需要以積極的態(tài)度告訴客戶需求開(kāi)發(fā)的方法,以獲取客戶的支持。
軟件需求包括三個(gè)不同的層次——業(yè)務(wù)需求、用戶需求和功能需求,也包括非功能需求。業(yè)務(wù)需求反映了組織機(jī)構(gòu)或客戶對(duì)系統(tǒng)、產(chǎn)品高層次的目標(biāo)要求,在項(xiàng)目視圖與范圍文檔中予以說(shuō)明。用戶需求描述用戶使用產(chǎn)品必須要完成的任務(wù),可使用用例文檔或場(chǎng)景腳本予以說(shuō)明。功能需求定義了開(kāi)發(fā)人員必須實(shí)現(xiàn)的軟件功能,使得用戶能完成他們的任務(wù),從而滿足了業(yè)務(wù)需求。所謂特性是指邏輯上相關(guān)的功能需求的集合,給用戶提供處理能力并滿足業(yè)務(wù)需求。
3.2 UML與相關(guān)模型
UML是一種圖形化的面向?qū)ο蠼UZ(yǔ)言,通過(guò)不同的圖形表示來(lái)捕捉系統(tǒng)靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的信息,建立起對(duì)象模型。
考慮到售前咨詢過(guò)程更多的是理解和闡述客戶需求,因而可以將注意力聚焦在用例和活動(dòng)圖上,即通過(guò)層次化的用例(Use Case)模型和時(shí)序模型描述企業(yè)范圍內(nèi)各種應(yīng)用的功能需求;通過(guò)逐級(jí)分解的活動(dòng)模型(業(yè)務(wù)過(guò)程、子過(guò)程、活動(dòng))來(lái)細(xì)化描述業(yè)務(wù)。當(dāng)然也可適當(dāng)考慮類(lèi)模型的分析,借此說(shuō)明企業(yè)相關(guān)的實(shí)體和關(guān)系。
3.2.1 UML概述
UML的概念包括了UML語(yǔ)義(Semantics)和UML表示符(Notation)兩個(gè)部分,UML語(yǔ)義定義了三種模型(類(lèi)模型、狀態(tài)模型和交互模型),UML表示符提供了完整的語(yǔ)義定義,UML的表示符包括了下面的幾種主要的圖:類(lèi)圖、用例圖、順序圖、協(xié)作圖、狀態(tài)圖、活動(dòng)圖和部署圖。
三種模型從不同的視角來(lái)描述系統(tǒng):
• 類(lèi)模型。描述了系統(tǒng)內(nèi)部對(duì)象及其關(guān)系的靜態(tài)結(jié)構(gòu)——它們的標(biāo)識(shí)、與此同時(shí)其他對(duì)象的關(guān)系、屬性以及操作。類(lèi)模型提供了放置狀態(tài)模型和交互模型的基本框架。類(lèi)模型中最重要的概念是類(lèi)、關(guān)聯(lián)和泛化。
• 狀態(tài)模型。描述的是對(duì)象當(dāng)中與時(shí)間相關(guān)的內(nèi)容,如表明變化的事件,以及那些界定了事件上下文的狀態(tài)。狀態(tài)模型是由多張狀態(tài)圖所構(gòu)成的,一個(gè)類(lèi)有一張狀態(tài)圖,每張狀態(tài)圖都包含了一些重要的時(shí)序行為。
• 交互模型。描述的是對(duì)象如何協(xié)作以達(dá)成某種結(jié)果。交互模型是跨越了許多對(duì)象的整體視圖。交互可以在不同的抽象層次上建模。在高層上,用例描述的是系統(tǒng)如何與外部參與者交互(用例表示功能片段,有助于捕獲非形式化的需求);順序圖提供更多的細(xì)節(jié),顯示交互的對(duì)象,以及對(duì)象交互的時(shí)間順序;活動(dòng)圖提供最詳盡的細(xì)節(jié),以顯示某次活動(dòng)中處理步驟之間的控制流。
3.2.2 用例模型
用例是從用戶的角度看待系統(tǒng),用例標(biāo)識(shí)系統(tǒng)的功能,并根據(jù)用戶的觀點(diǎn)組織這些功能。用例模型包括參與者、用例和用例圖三部分構(gòu)成:
• 參與者(Actor)。系統(tǒng)的直接外部用戶——直接與系統(tǒng)通信的一個(gè)對(duì)象或一級(jí)對(duì)象,但并不是系統(tǒng)的一部分。
• 用例。用例是系統(tǒng)通過(guò)與參與者的交互可以提供的一段連貫的功能,每個(gè)用例會(huì)涉及一個(gè)或多個(gè)參與者以及系統(tǒng)本身。用例把與此一部分系統(tǒng)功能相關(guān)的所有行為組合在一起,包括普通主線行為、普通行為的變體、異常條件、錯(cuò)誤條件和請(qǐng)求取消。
• 用例圖。UML用一套圖形表示法來(lái)總結(jié)用例,如下圖。其中矩形包含了系統(tǒng)的用例,參與者列在矩形外面。系統(tǒng)的名稱(chēng)可以寫(xiě)在矩形的某條邊的附近。橢圓內(nèi)部的名稱(chēng)表示用例。“火柴人”圖標(biāo)表示參與者,參與者的名稱(chēng)列在圖標(biāo)下方或者臨近圖標(biāo)的地方。實(shí)線連接用例及其參與者。
<此節(jié)也需要重新編寫(xiě)>3.2 UML與相關(guān)模型
UML是一種圖形化的面向?qū)ο蠼UZ(yǔ)言,通過(guò)不同的圖形表示來(lái)捕捉系統(tǒng)靜態(tài)結(jié)構(gòu)和動(dòng)態(tài)行為的信息,建立起對(duì)象模型。
考慮到售前咨詢過(guò)程更多的是理解和闡述客戶需求,因而可以將注意力聚焦在用例和活動(dòng)圖上,即通過(guò)層次化的用例(Use Case)模型和時(shí)序模型描述企業(yè)范圍內(nèi)各種應(yīng)用的功能需求;通過(guò)逐級(jí)分解的活動(dòng)模型(業(yè)務(wù)過(guò)程、子過(guò)程、活動(dòng))來(lái)細(xì)化描述業(yè)務(wù)。當(dāng)然也可適當(dāng)考慮類(lèi)模型的分析,借此說(shuō)明企業(yè)相關(guān)的實(shí)體和關(guān)系。
3.2.1 UML概述
UML的概念包括了UML語(yǔ)義(Semantics)和UML表示符(Notation)兩個(gè)部分,UML語(yǔ)義定義了三種模型(類(lèi)模型、狀態(tài)模型和交互模型),UML表示符提供了完整的語(yǔ)義定義,UML的表示符包括了下面的幾種主要的圖:類(lèi)圖、用例圖、順序圖、協(xié)作圖、狀態(tài)圖、活動(dòng)圖和部署圖。
三種模型從不同的視角來(lái)描述系統(tǒng):
• 類(lèi)模型。描述了系統(tǒng)內(nèi)部對(duì)象及其關(guān)系的靜態(tài)結(jié)構(gòu)——它們的標(biāo)識(shí)、與此同時(shí)其他對(duì)象的關(guān)系、屬性以及操作。類(lèi)模型提供了放置狀態(tài)模型和交互模型的基本框架。類(lèi)模型中最重要的概念是類(lèi)、關(guān)聯(lián)和泛化。
• 狀態(tài)模型。描述的是對(duì)象當(dāng)中與時(shí)間相關(guān)的內(nèi)容,如表明變化的事件,以及那些界定了事件上下文的狀態(tài)。狀態(tài)模型是由多張狀態(tài)圖所構(gòu)成的,一個(gè)類(lèi)有一張狀態(tài)圖,每張狀態(tài)圖都包含了一些重要的時(shí)序行為。
• 交互模型。描述的是對(duì)象如何協(xié)作以達(dá)成某種結(jié)果。交互模型是跨越了許多對(duì)象的整體視圖。交互可以在不同的抽象層次上建模。在高層上,用例描述的是系統(tǒng)如何與外部參與者交互(用例表示功能片段,有助于捕獲非形式化的需求);順序圖提供更多的細(xì)節(jié),顯示交互的對(duì)象,以及對(duì)象交互的時(shí)間順序;活動(dòng)圖提供最詳盡的細(xì)節(jié),以顯示某次活動(dòng)中處理步驟之間的控制流。
3.2.2 用例模型
用例是從用戶的角度看待系統(tǒng),用例標(biāo)識(shí)系統(tǒng)的功能,并根據(jù)用戶的觀點(diǎn)組織這些功能。用例模型包括參與者、用例和用例圖三部分構(gòu)成:
• 參與者(Actor)。系統(tǒng)的直接外部用戶——直接與系統(tǒng)通信的一個(gè)對(duì)象或一級(jí)對(duì)象,但并不是系統(tǒng)的一部分。
• 用例。用例是系統(tǒng)通過(guò)與參與者的交互可以提供的一段連貫的功能,每個(gè)用例會(huì)涉及一個(gè)或多個(gè)參與者以及系統(tǒng)本身。用例把與此一部分系統(tǒng)功能相關(guān)的所有行為組合在一起,包括普通主線行為、普通行為的變體、異常條件、錯(cuò)誤條件和請(qǐng)求取消。
• 用例圖。UML用一套圖形表示法來(lái)總結(jié)用例,如下圖。其中矩形包含了系統(tǒng)的用例,參與者列在矩形外面。系統(tǒng)的名稱(chēng)可以寫(xiě)在矩形的某條邊的附近。橢圓內(nèi)部的名稱(chēng)表示用例。“火柴人”圖標(biāo)表示參與者,參與者的名稱(chēng)列在圖標(biāo)下方或者臨近圖標(biāo)的地方。實(shí)線連接用例及其參與者。