濟南軟件開(kāi)發(fā)之軟件需求分析與管理的十個問題

2016-03-09 14:03:37
    1.需求工作涉及到哪些内容
    首先需求包括了産品需求,用戶需求,軟件需求。産品需求關注的是産品的标準化和通用化,會(huì)對(duì)收集到的用戶需求進(jìn)行分類和優化,結合業界标準系統模型進(jìn)行抽象并通用化。用戶需求反映的是用戶面(miàn)臨的問題域,根據問題域用戶期望的能(néng)夠達到的解決效果;而對(duì)于軟件需求則是用軟件工程的語言結構化和文檔化的對(duì)用戶需求和産品需求的描述。
    需求工作涉及到需求開(kāi)發(fā)和需求管理。需求開(kāi)發(fā)涉及到需求調研,需求收集,需求分析,需求開(kāi)發(fā)等工作,其中的重點有業務流程,數據字典,業務規則,界面(miàn)原型。對(duì)于基于面(miàn)向(xiàng)對(duì)象的開(kāi)發(fā)方法則涉及到業務用例,系統用例(涉衆,基本流,擴展流,業務規則,界面(miàn),操作)等諸多内容。需求管理工作涉及到需求的狀态管理,變更管理,需求的跟蹤,需求的驗證和确認等重要内容。
    在我們需求分析和開(kāi)發(fā)中,最容易忽視的主要有兩(liǎng)點,一個就(jiù)是缺乏需求分析和開(kāi)發(fā)的過(guò)程,把用戶需求直接作爲了軟件需求,沒(méi)有需求建模和抽象的過(guò)程。另外一點就(jiù)是對(duì)于性能(néng),安全,易用性,可維護性和擴展性等非功能(néng)性需求沒(méi)有考慮,導緻開(kāi)發(fā)出來的系統是一個不好(hǎo)用的半成(chéng)品。CMMI把需求管理放到2級,需求開(kāi)發(fā)放到3級,實際上真正的提高需求人員的需求分析和開(kāi)發(fā)能(néng)力才是解決需求問題之道(dào)。需求分析開(kāi)發(fā)做不好(hǎo),需求變更或追蹤管的再好(hǎo)也沒(méi)有用處,在這(zhè)點上一定不能(néng)本末倒置。
    2.做好(hǎo)需求分析需要具備哪些知識
    需求分析崗位主要承擔的是系統分析員的工作,做需求分析的人員要有軟件工程基礎知識的積累,而且最好(hǎo)有一定的軟件開(kāi)發(fā)經(jīng)驗積累。自己做過(guò)設計開(kāi)發(fā)工作的才能(néng)夠體會(huì)到如何才能(néng)夠把系統做好(hǎo),如何更好(hǎo)的把軟件需求和後(hòu)續實現更好(hǎo)的銜接起(qǐ)來。有一本《軟件需求》的書講的很系統,從事(shì)需求工作的都(dōu)值得仔細閱讀。對(duì)于采用面(miàn)向(xiàng)對(duì)象的需求開(kāi)發(fā)和分析方法的,一定要熟悉RUP統一過(guò)程和用例分析和建模。
    對(duì)于管理軟件都(dōu)離不開(kāi)其涉及到的業務領域,因此要做好(hǎo)需求分析工作必須要熟悉管理軟件所涉及到的業務領域,對(duì)業務領域相關的标準模型進(jìn)行分析和研究,對(duì)業界的一些标準和最佳實踐進(jìn)行熟悉。比如做供應鏈管理系統和軟件應該熟悉業界标準的SCOR模型,做ERP的應該結合現在的業界比較大的廠商的ERP産品進(jìn)行學(xué)習,對(duì)于研發(fā)管理系統可以結合PACE和IPD等等。隻有熟悉了業務領域才可能(néng)在需求調研和分析的時候提供很多有建設性的意見,或者說需求分析人員不是被(bèi)用戶牽著(zhe)走,而是真正的可以引導用戶。
   3.需求分析的步驟和輸出有哪些
    開(kāi)始首先是需求的收集,需求收集可以通過(guò)調查表,訪談,業界标準,會(huì)議讨論溝通等多種(zhǒng)方式進(jìn)行。需求收集第一是要能(néng)夠很好(hǎo)的描述現狀,第二是要搞清楚用戶的期望。同時一定要弱化用戶期望系統怎麼(me)做,因爲用戶并不熟悉系統實現和内部原理,我們的軟件需求不僅僅考慮的是功能(néng)的實現,還(hái)需要考慮需求複用,業務抽象,可擴展和配置等多方面(miàn)的問題。
    收集回來的需求就(jiù)需要開(kāi)始進(jìn)行分析工作,分析包括了動态行爲分析和靜态數據分析。動态行爲分析涉及到用例分析,業務流程和活動輸入輸出的分析,數據流分析,業務操作規則分析。靜态數據分析設計到業務對(duì)象建模,數據字典,組織結構,權限等分析。在這(zhè)一個階段的重點就(jiù)是需求的系統化和結構化,最好(hǎo)要體現到規範的文檔中。在軟件開(kāi)發(fā)過(guò)程中我們最強調的需要文檔化的輸出就(jiù)是需求文檔和總體設計方案文檔。
    需求分析階段還(hái)有一個重點的産出就(jiù)是原型和DEMO,爲了更好(hǎo)的和用戶溝通并挖掘需求,我們需要將(jiāng)我們理解後(hòu)的想法更加形象的講述給用戶,所以原型就(jiù)顯得額外重要。不管是否是抛棄的原型,都(dōu)需要客戶看到的原型和最終實現的系統基本一緻,因此原型開(kāi)發(fā)需要投入一定的時間,并根據客戶反饋的信息不斷修正。在原型中多投入些時間,就(jiù)會(huì)多減少一份後(hòu)期需求變更引起(qǐ)的返工時間。軟件原型是降低需求變更風險的有效方法。