用戶調研的目的是收集需求;
用戶調研的方法是直接面對面與用戶交流,最好能親身體驗用戶工作開展的過程,注重了解工作的細節。
用戶調研的結束標志是完成了需求分析設計文檔,并且得到用戶的認可。在工程前期開展好用戶調研對于工程的順利進行和完成非常重要。
用戶調研的人員應當集中、固定,具有多方面的經驗,如:客戶交流經驗、程序設計經驗、系統分析經驗等,但調研人員數量不能太多,并能對重大問題進行獨立決策。一般用戶調研人員3人左右即可。
2. 關于需求分析
需求分析的目的是明確用戶需要實現的內容。
可以采取多樣的需求分析方法和技術,但是根本上必須描述清楚用戶的業務工作、軟件需求?梢杂泻芏嗟男枨蠓治龅臉藴屎鸵幏犊梢圆捎,也可以自己根據實際情況制定需求分析的規范。
需求分析的人員可與調研人員重合,但要增加軟件分析人員,并為調研人員提出調研的內容和方向。
需求分析結束的標志是程序員能夠開始進行程序設計,并和建立系統原型的工作結合起來進行,因此只有程序員才能評判需求調研的質量。
關于需求分析階段投入的時間一定不能少于全部工程時間的30%,當然40%會更好,否則很難保證需求分析的深度和質量。
需求分析階段至少建立三類組織:調研組、需求分析組、原型開發組(可分成多個小組),統一由項目經理負責。
3. 關于建立系統原型
建立系統原型是完成需求分析的補充手段,目的是明確和確定用戶需求,引導用戶提出更具體的內容。
建立系統原型要求使用適當的工具和容易的軟件環境,滿足快速開發的要求。
系統原型一般不作為將來軟件系統實現的基礎,因為此時的原型系統只考慮反映用戶需求的情況,缺乏統一的考慮因此最好在設計、實現階段重新開始。
避免使用戶產生"軟件開發已經開始,并會很快完成"的觀點,一定要明確此時軟件還在前期的分析階段,距離設計、實現還有很長的距離。
4. 關于建立總體實施方案
建立系統的總體實施方案是必須的,目的是使甲乙雙方共同認可工程的實施計劃,保持一定的耐心和總體意識。
總體實施方案應在需求分析基本完成的基礎上開始。
總體實施方案應說明:任務量、計劃進度、資金、實施階段、各階段結束的標志和開始的條件、完成時提交的內容。
總體建設方案應在項目經理、甲方負責人、乙方負責人共同認可的情況下,投入實施指導,否則要繼續調整,此時項目經理一定要做好乙方負責人的工作,爭取更多的時間(應為從乙方負責人的角度希望項目能夠盡快的結束。)
一旦總體實施方案確定,就必須按照實施方案的階段安排逐步開展工作,并進行量化和考核,如果某一個階段沒有完成,則必須對照檢討,采取措施。否則將造成項目實施組織的混亂,因為大家無法再按照一致的實施方案開展工作了,為工程項目的順利開展提出了警告。
5. 關于建立組織機構、制度
一定要明確組織機構是必不可少的,不要回避和擱置這個問題。
只有建立了工程組織機構和管理制度,才具備完成項目的基礎,因為工作的完成歸根結底是人的協作。
由于大型項目需要的人員比較多,因此沒有完善的組織機構和制度是無法協調好各個部分的工作的。
組織機構的建立應在項目開始需求調研的時候就開始著手建立,在眾多制度中"個人激勵制度"是影響最大的一個制度。
二、軟件系統實現
1. 系統設計
a. 關于系統的體系結構
系統體系結構的確定是為軟件需求服務的。沒有必要為了結構而結構。在不同情況下采取不同的體系結構是明智的。體系結構的確定受到軟件用戶數量、運行環境、更新維護要求、軟件分布等外部因素的影響。
b. 關于各種分析方法
目前有很多系統設計的方法,選擇某一方法(OMT、UML、OO)要根據系統的特點來確定。針對信息系統而言,可以自己制定合適的分析設計方法,因為目前雖然有很多的方法,但不太適合信息系統建設的要求。在信息系統設計的時候要靈活應用各種分析方法,照搬哪一種方法都不太合適。(至少在現階段信息系統開發水平下)
c. 關于文檔
在實際工作中的體會是:文檔很重要,但是經常和編程工作產生矛盾,不能得到及時的更新。為此在項目進行過程中,需要確定當前工程文檔的各種標準,以及工程需要哪幾類文檔,文檔提交和發布的時機等內容。這些文檔包括:工作規范、分析設計文檔、工作計劃文檔、日志文檔、任務分配考核文檔等。
d. 關于軟件設計水平的定位
在軟件工程開發工程中,不是采取越多新技術越好,軟件的設計也不要走入"盡量提高水平"的誤區。由于負責軟件設計的技術人員客觀上具有追求完美的特點,主觀上盡力想將系統設計的完美,因此會造成軟件實現需要的工作量增大,同時用戶又不一定接受這些內容。在考慮軟件水平的時候,主要考慮:新技術的采用和成熟技術的采用要成比例。
e. 考慮到系統用戶的特點了嗎
系統的設計起主導作用之一的因素是用戶的特點。不論什么特點的用戶都采用一致的設計思路、風格、特點不是太好的選擇。脫離對用戶實際情況的考慮的設計太學術化。并且在設計的時候要照顧到系統的可維護性、易用性、實現的容易性等問題。
原則之一是:能簡化設計就簡化,降低設計的復雜度。不要采用太復雜的設計。因為,這樣的設計不便于理解、和維護。
文章來源于領測軟件測試網 http://www.k11sc111.com/