
2017-1分析師論?:論需求分析?法及應(yīng)?
本?以“鐵路公安派出所業(yè)務(wù)管理系統(tǒng)”項(xiàng)?的開發(fā)為背景,著重論述了需求分析?法中的?向?qū)ο蠓治龅恼麄€(gè)過程。
該項(xiàng)?的建設(shè)?標(biāo)是:(1)建?槍?彈藥管理數(shù)據(jù)中?,存儲(chǔ)槍?彈藥的信息和出?庫的記錄數(shù)據(jù)。(2)合理安排和管理派出所值班備勤警?。(3)建?執(zhí)法場(chǎng)所管理數(shù)據(jù)中?,對(duì)執(zhí)法場(chǎng)所的監(jiān)管更加合理化、及時(shí)化。(4)顯?屏顯?統(tǒng)計(jì)信息。系統(tǒng)需要考慮到推?到其?管轄區(qū)的派出所,并于將來對(duì)接智能槍彈管理系統(tǒng),系統(tǒng)需具有良好的擴(kuò)展性和松耦合性。
在項(xiàng)?開展期間,我擔(dān)任了系統(tǒng)分析、系統(tǒng)設(shè)計(jì)與數(shù)據(jù)庫管理等?量?作。在項(xiàng)?需求分析和設(shè)計(jì)階段,我著重考慮好系統(tǒng)的框架和原型,為項(xiàng)?組及其他分析員進(jìn)?下?步的細(xì)化分析奠定了堅(jiān)實(shí)的基礎(chǔ)。
需求分析的?作通常包括以下?個(gè)??:
1. 繪制系統(tǒng)上下?范圍關(guān)系圖
?于定義系統(tǒng)與系統(tǒng)外部實(shí)體間的界限和接?的簡(jiǎn)單模型,它可以需求確定?個(gè)范圍。項(xiàng)?需要對(duì)接公安局現(xiàn)有的警鐘系統(tǒng),并對(duì)在執(zhí)法場(chǎng)所拘留時(shí)間到的嫌疑?予以釋放,所以系統(tǒng)外部實(shí)體包括警鐘系統(tǒng)和系統(tǒng)時(shí)鐘。
2. 創(chuàng)建系統(tǒng)原型
通過快速開發(fā)?具開發(fā)?個(gè)拋棄式原型,將幫助?戶更好理解所要解決的問題,更好理解系統(tǒng)。我是使?axure 9.0快速進(jìn)?頁?的簡(jiǎn)單跳轉(zhuǎn)。
3. 分析需求的可?性。
對(duì)所有獲得的需求進(jìn)?成本、性能和技術(shù)實(shí)現(xiàn)??的可?性研究,以及這些需求項(xiàng)是否與其他的需求項(xiàng)有沖突,是否有對(duì)外的依賴關(guān)系等。
4. 確定需求的優(yōu)先級(jí)
對(duì)于需求優(yōu)先級(jí)的描述,可以采?滿意度和不滿意度指標(biāo)進(jìn)?說明。其中滿意度表?當(dāng)需求被實(shí)現(xiàn)時(shí)?戶的滿意程度。不滿意度表?當(dāng)需求未被實(shí)現(xiàn)時(shí)?戶的不滿意程度。
5. 為需求建?模型
即建?分析模型,這些模型的表現(xiàn)形式主要是圖表加上少量的?字描述。根據(jù)采?的分析?法不同,采?的圖也將不同。需求分析模型主要描述系統(tǒng)的數(shù)據(jù)、功能、?戶界?和運(yùn)?的外部?為,它是系統(tǒng)的?種邏輯表?技術(shù),并不涉及軟件的具體實(shí)現(xiàn)細(xì)需求分析模型可以幫助系統(tǒng)分析師理解系統(tǒng),使需求分析任務(wù)更加容易實(shí) 。同 時(shí)它也是以后進(jìn)?軟件設(shè)計(jì)的基礎(chǔ) 為軟件設(shè)計(jì)提供了系統(tǒng)的表?視圖。
6. 創(chuàng)建數(shù)據(jù)
數(shù)據(jù)字典是對(duì)系統(tǒng)?到的所有數(shù)據(jù)項(xiàng)和結(jié)構(gòu)進(jìn)?定義, 確保開發(fā)?員使?了統(tǒng)?的數(shù)據(jù)定義。因?yàn)樯婕暗綐?信息,我特意參考了下《槍?管理信息規(guī)范》標(biāo)準(zhǔn)來定義槍?代號(hào)等字段。
7. 使?QFD(Quality Function Deployment,質(zhì)量功能展開)?法
將產(chǎn)品特性、屬性與對(duì)?戶的重要性聯(lián)系起來。
考慮到?戶要求系統(tǒng)將來可以拓展到管理?派出所,我們采?多租戶的ABP(ASP.NET Boilerplate)框架。ABP是?個(gè)開源的基于
DDD(Domain-Driven Design,領(lǐng)域驅(qū)動(dòng)設(shè)計(jì))的強(qiáng)?架構(gòu)模型。為了系統(tǒng)的可?性,我們選擇跨平臺(tái)的 core,并前后端分離的angular版本的ABP。因?yàn)锳BP本?是使??向?qū)ο笤O(shè)計(jì)的,為了接下來在整個(gè)系統(tǒng)?命周期中更好地與系統(tǒng)設(shè)計(jì)、系統(tǒng)實(shí)施銜接,所以在需求分析階段,我采?OOA?法對(duì)系統(tǒng)進(jìn)?分析。
OOA主要使?UML(Unified Modeling Languge)進(jìn)?建模。在項(xiàng)?中,我使?Microsoft Office Visio 2013 來繪制分析中所需的UML圖。OOA過程主要分為?例模型、領(lǐng)域模型和分析模型。
1. ?例模型
?戶模型主要是從?戶的?度去建模。
(1)識(shí)別參與者
參與者是與系統(tǒng)交互的所有事物。這?有?戶(警員、后勤?員)、警鐘系統(tǒng)、提醒關(guān)押嫌疑?時(shí)間到的時(shí)鐘
(2)合并需求獲得?例
將參與者找到之后,需要為每?個(gè)參與者確定?例。將需求分配給相關(guān)參與者,如警?排班分配給?隊(duì)隊(duì)長;槍?出?庫分配給倉庫管理員。其次,進(jìn)?合并操作。將識(shí)別到的參與者與合并?成的?例通過?例圖的形式整理出來,獲得?例模型的框架。需注意業(yè)務(wù)?例(Business U Ca)和系統(tǒng)?例(System U Ca)。?如告警是系統(tǒng)?例,?審核是業(yè)務(wù)?例。
(3)細(xì)化?例描述
?例模型的主要?作是形成?例規(guī)約(U Ca Specification)。?例模板定義了?例規(guī)約的結(jié)果。
(4)調(diào)整?例模型
建?初步?例后,還需要??例之間的關(guān)系(主要是關(guān)聯(lián)、依賴(包含、拓展)和泛化)來調(diào)整?例模型。把?些公共信息抽取出來,使系統(tǒng)松耦合,更易維護(hù)。?如權(quán)限管理?例,只有審核?員才具有槍?申請(qǐng)審核功能、導(dǎo)出警?排班信息為拓展?例。
2. 分析模型
(1)定義概念類
OOA的中?任務(wù)是找到系統(tǒng)中的對(duì)象或類。在命名上,因?yàn)锳BP的實(shí)體需映射到數(shù)據(jù)庫表的實(shí)體集DbSet(?般使?復(fù)數(shù)),所以在實(shí)體類命名中,我們采?名詞單數(shù)。例如槍?Gun,我們可命名對(duì)應(yīng)的DbSet為Guns,那么槍?的數(shù)據(jù)庫表就為Guns。ABP可以在實(shí)體類中使?數(shù)據(jù)標(biāo)注修改表名或者重載DbContext的OnModelCreating?法統(tǒng)?為所有的表添加表名前綴,所以我們定義在定義類名時(shí)盡量簡(jiǎn)潔。
(2)確定類之間的關(guān)系
類之間的關(guān)系可分為關(guān)聯(lián)、依賴、泛化、實(shí)現(xiàn)、聚合、組合等。因?yàn)镈DD的類都繼承?實(shí)體類Entity或者Entity的?類
(FullAuditedEntity、AuditedEntity),所以,類之間泛化少,以關(guān)聯(lián)為主。槍?類中包含了彈藥信息,屬于組合關(guān)系。類圖組合在?起可形成領(lǐng)域模型。
(3)為類添加職能
類的職能包括:類的成員變量或?qū)傩浴㈩惖某蓡T?法。?個(gè)實(shí)體類對(duì)應(yīng)定領(lǐng)域?qū)拥腅ntity(實(shí)體),DD
D中的實(shí)體定義中,實(shí)體并不是通過它們的屬性定義的,?是通過?連串的連續(xù)性事件和標(biāo)識(shí)定義的。因此我們每個(gè)實(shí)體都賦予?個(gè)唯?標(biāo)識(shí)的Id,對(duì)屬性并未很嚴(yán)格,反?在成員?法上多做豐富。
(4)建?交互圖
多個(gè)對(duì)象的?為通常采?對(duì)象交互來表?。UML2.0提供的交互圖有順序圖、交互概覽圖、通信圖和定時(shí)圖。我?visio畫出參與對(duì)象(警員?戶、申請(qǐng)審核者、倉庫管理員)在槍?申請(qǐng)信息、申請(qǐng)審核信息、槍?出庫信息、槍??庫信息的順序圖等。
將?向?qū)ο蟮姆治?法與基于DDD的ABP框架結(jié)合起來,使整個(gè)開發(fā)過程都很清晰流暢。但是因?yàn)锳BP本??集成的,靈活化?難度?,我們?cè)陂_發(fā)中也遇到了各種難題。?如為了跨平臺(tái)使?的entityframework core,數(shù)據(jù)庫映射策略只?持TPH(table per Hierarchy)不像ef 6?持TPC和TPT。不過,在整個(gè)過程中,我們也體會(huì)到了DDD的優(yōu)越性。