軟件架構(gòu)設(shè)計(jì)讀書筆記之需求分析

愿景分析

愿景分析都應(yīng)闡明業(yè)務(wù)需求、描述需求產(chǎn)生的背景和理由等。

上下文圖是一種“輔助說(shuō)明”需求范圍(Scope)的方式,它清晰地描述了待開(kāi)發(fā)系統(tǒng)與周圍所有事物之間的界限與聯(lián)系

待研發(fā)系統(tǒng)位于上下文圖的中心,所有和待研發(fā)系統(tǒng)有關(guān)聯(lián)關(guān)系的系統(tǒng)、環(huán)境和活動(dòng)圍繞在它的周圍。但是,上下文圖不提供系統(tǒng)內(nèi)部結(jié)構(gòu)的任何信息。上下文圖的目的是通過(guò)明確系統(tǒng)相關(guān)的外部因素和事件,促進(jìn)更完整地識(shí)別系統(tǒng)需求和約束。

愿景分析,換個(gè)角度講就是我們常說(shuō)的需求調(diào)研(愿景分析的說(shuō)法重目標(biāo),需求調(diào)研的說(shuō)法重活動(dòng))


需求分析

IEEE的軟件工程標(biāo)準(zhǔn)術(shù)語(yǔ)表將需求定義為:

1.用戶所需的解決某個(gè)問(wèn)題或達(dá)到某個(gè)目標(biāo)所要具備的條件或能力。

2.系統(tǒng)或系統(tǒng)組件為符合合同、標(biāo)準(zhǔn)、規(guī)范或其他正式文檔而必須滿足的條件或必須具備的能力。

3.上述第一項(xiàng)或第二項(xiàng)中定義的條件和能力的文檔表述。

RUP是這樣定義需求的:需求描述了系統(tǒng)必須滿足的情況或提供的能力,它就可以是直接來(lái)自客戶需要,也可以來(lái)自合同、標(biāo)準(zhǔn)、規(guī)范或其他有正規(guī)約束力的文檔(Arequirement describes a condition or either derived directly from userneeds, or stated in a contract, standard, specification, or other formallyimposed document.)。

需求捕獲vs.需求分析vs.系統(tǒng)分析

從軟件過(guò)程全局看,需求分析是一個(gè)承上啟下的階段——“上承”愿景,“下接”設(shè)計(jì)。上游,進(jìn)行愿景分析、研究可行性、輸出《愿景與范圍文檔》,需求分析要進(jìn)一步完善和細(xì)化軟件需求。后續(xù),要進(jìn)行的設(shè)計(jì)活動(dòng),以需求分析活動(dòng)定義的功能需求、質(zhì)量屬性需求以及約束性需求等為基本參考。

1.?需求捕獲

需求捕獲是獲取知識(shí)的過(guò)程,知識(shí)從無(wú)到有、從少到多。需求采集者必須理解用戶所從事的工作,并且了解用戶和客戶希望軟件系統(tǒng)在哪些方面幫助他們。

典型的需求捕獲的工作成果是一摞“需求采集卡”(如表5-1所示),其中記錄了需求類型、需求描述、需求背景、需求提出者和需求記錄者等對(duì)進(jìn)一步的需求分析非常有用的信息。


2. 需求分析

需求分析是挖掘和整理知識(shí)的過(guò)程,它在已掌握知識(shí)的基礎(chǔ)上進(jìn)行。畢竟,初步捕獲到的需求信息往往處于不同層次,也有一些主觀甚至不正確的信息。而經(jīng)過(guò)必要的需求分析工作之后,需求會(huì)更加系統(tǒng)、更加有條理、更加全面。

需求分析則對(duì)采集到的原始需求進(jìn)行分析、整理、辨別和歸納,最終形成系統(tǒng)的、明確的軟件需求。

需求分析應(yīng)交付一份明確的、規(guī)范的需求定義——《軟件需求規(guī)格說(shuō)明書》(Software Requirements Specification,SRS)。《SRS》精確地闡述了一個(gè)軟件系統(tǒng)必須提供的功能、必須達(dá)到的質(zhì)量屬性指標(biāo),以及它必須遵守的約束。

3. 系統(tǒng)分析

系統(tǒng)分析是針對(duì)系統(tǒng)所要面臨的問(wèn)題,搜集相關(guān)的資料,以了解產(chǎn)生問(wèn)題的原因所在,進(jìn)而提出解決問(wèn)題的方法與可行的邏輯方案,以滿足系統(tǒng)的需求,實(shí)現(xiàn)預(yù)定的目標(biāo)。

對(duì)于不同的系統(tǒng)分析方法,其工作成果差異很大。通過(guò)結(jié)構(gòu)化分析方法得到的最重要的工作成果是數(shù)據(jù)流圖,而面向?qū)ο蟮南到y(tǒng)分析方法得到的工作成果主要是分析類圖、魯棒圖、序列圖等——其中分析類圖描述設(shè)計(jì)的靜態(tài)方面,而魯棒圖和序列圖描述設(shè)計(jì)的動(dòng)態(tài)方面。



【問(wèn)題1】將需求捕獲和需求分析視為兩個(gè)階段,這是錯(cuò)誤的

將需求捕獲和需求分析視為兩個(gè)階段,這是錯(cuò)誤的。世界不是“問(wèn)題—解決方案”這么簡(jiǎn)單的模型,是“問(wèn)題—解決方案—衍生問(wèn)題—解決方案—……”才現(xiàn)實(shí)——上一級(jí)的解決方案對(duì)下一級(jí)就意味著“待解決的問(wèn)題”。于是,需求分析連帶出更多系統(tǒng)分析的工作非常正常。這種“捕獲得到全部需求,之后再集中進(jìn)行分析”的做法不務(wù)實(shí)、效果差、容易引起大量需求變更。

【問(wèn)題2】需求分析與系統(tǒng)分析混淆

需求分析,是搞清楚系統(tǒng)“做什么”。需求分析是軟件工程學(xué)中的經(jīng)典的術(shù)語(yǔ)之一,名副其實(shí)的含義應(yīng)是對(duì)用戶需求進(jìn)行分析,旨在產(chǎn)生一份明確、規(guī)范的需求定義。從這個(gè)意義上講,“分析是解決做什么而不是解決怎么做的問(wèn)題”是無(wú)可挑剔的。

系統(tǒng)分析,關(guān)注系統(tǒng)“怎么做”。更直白地說(shuō),系統(tǒng)分析 ≈ 初步的高層設(shè)計(jì)。

在“做什么”和“怎么做”的問(wèn)題上為什么會(huì)出現(xiàn)上述矛盾?究其根源,在于人們對(duì)軟件工程中“分析”這個(gè)術(shù)語(yǔ)的含義有著不同的理解——有時(shí)把它作為需求分析(Requirements Analysis)的簡(jiǎn)稱,有時(shí)是指系統(tǒng)分析(SystemsAnalysis),有時(shí)則作為需求分析和系統(tǒng)分析的總稱。

但迄今為止人們所提出的各種分析方法(包括結(jié)構(gòu)化分析和面向?qū)ο蠓治觯┲?,真正屬于需求分析的?nèi)容所占的分量并不太大;更多的內(nèi)容是給出一種系統(tǒng)建模方法(包括一種表示法和相應(yīng)的建模過(guò)程指導(dǎo)),告訴分析員如何建立一個(gè)能夠滿足(由需求定義所描述的)用戶需求的系統(tǒng)模型。分析員大量的工作是對(duì)系統(tǒng)的應(yīng)用領(lǐng)域進(jìn)行調(diào)查和研究并抽象地表示這個(gè)系統(tǒng)。確切地講,這些工作應(yīng)該叫做系統(tǒng)分析,而不是需求分析。它既是對(duì)“做什么”問(wèn)題的進(jìn)一步明確,也在相當(dāng)程度上涉及“怎么做”的問(wèn)題。


需求的全面性

觀念是行為的“向?qū)А保性鯓拥挠^念存在,就有怎樣的行為方式產(chǎn)生

二維需求觀與ADMEMS矩陣(需求層次-需求方面矩陣)


需求層次

1. 組織級(jí)需求。包含客戶或出資者要達(dá)到的業(yè)務(wù)目標(biāo)、預(yù)期投資、工期要求,以及要符合哪些標(biāo)準(zhǔn)、對(duì)哪些遺留系統(tǒng)進(jìn)行整合等約束條件?!?/p>

2. 用戶級(jí)需求。用戶使用系統(tǒng)來(lái)輔助完成哪些工作,對(duì)質(zhì)量有何要求,用戶群及所處的使用環(huán)境方面有何特殊要求?

3. 開(kāi)發(fā)級(jí)需求。開(kāi)發(fā)人員需要實(shí)現(xiàn)什么,開(kāi)發(fā)期間、維護(hù)期間有何質(zhì)量考慮,開(kāi)發(fā)團(tuán)隊(duì)的哪些情況會(huì)反過(guò)來(lái)影響架構(gòu)

從不同方面考慮需求

功能需求:更多體現(xiàn)各級(jí)直接目標(biāo)要求。

質(zhì)量屬性:運(yùn)行期質(zhì)量 + 開(kāi)發(fā)期質(zhì)量?!?/p>

約束需求:業(yè)務(wù)環(huán)境因素 + 使用環(huán)境因素 + 構(gòu)建環(huán)境因素 + 技術(shù)環(huán)境因素。

需求層次-需求方面矩陣



功能

功能需求是我們最熟悉的一類需求,它描述系統(tǒng)“應(yīng)該做什么”。

質(zhì)量

魯棒性(Robustness)。魯棒性也稱健壯性、容錯(cuò)性。魯棒性是指軟件系統(tǒng)在以下情況下仍能夠正常運(yùn)行的能力:用戶進(jìn)行了非法操作;相連的軟硬件系統(tǒng)發(fā)生了故障,以及其他非正常情況

約束

約束需求 = 業(yè)務(wù)環(huán)境因素 + 使用環(huán)境因素 + 構(gòu)建環(huán)境因素 + 技術(shù)環(huán)境因素。


從需求向設(shè)計(jì)轉(zhuǎn)化


最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容