為避免軟件開發(fā)中需求分析到總體設(shè)計這個環(huán)節(jié)的歧異性問題,目前,國際流行的軟件開發(fā)模式中增加了FS+UI(功能規(guī)范和用戶界面)這個環(huán)節(jié),這個環(huán)節(jié)不但解決了用戶在需求分析理解上的困難,同時也解決了軟件開發(fā)過程各種角色人員的并行工作問題,便于軟件開發(fā)工期的縮短,有利軟件開發(fā)質(zhì)量與成本的控制 [ FS+UI(功能規(guī)范和用戶界面)見后面章節(jié) ]。
4.2 軟件開發(fā)各階段目標(biāo)
以下軟件開發(fā)階段劃分的各階段的任務(wù)與目標(biāo)做以簡單描述,這是軟件公司進(jìn)行質(zhì)量控制的基礎(chǔ)。
1) 可行性分析
可行性分析是軟件項目立項的必要階段,對于項目型軟件開發(fā),可行性分析一般由用戶自行完成,軟件公司基本在技術(shù)上給予必要的支持。對于產(chǎn)品型軟件開發(fā),可行性分析是非常重要的一環(huán),產(chǎn)品采用的技術(shù)、市場定位與銷售策略等直接關(guān)系著產(chǎn)品的生存與發(fā)展。
可行性分析基本包括如下幾個方面的內(nèi)容,
A. 項目定義:項目定義主要是對產(chǎn)品定位有一個大致的描述,鉤畫出該軟件產(chǎn)品的運(yùn)行環(huán)境、產(chǎn)品功能、用戶特征以及制約因數(shù)進(jìn)行全面的描述,以便下一步工作的展開。
B. 技術(shù)分析: 此處的技術(shù)主要包括軟件的開發(fā)環(huán)境與運(yùn)行環(huán)境所涉及的各方面技術(shù),在此應(yīng)對這些技術(shù)的發(fā)展?fàn)顩r,成熟情況及未來的技術(shù)走勢應(yīng)有細(xì)致的闡述。
C. 市場分析: 包括國內(nèi)外行業(yè)發(fā)展現(xiàn)狀、市場格局、發(fā)展趨勢,在市場容量統(tǒng)計數(shù)據(jù)的基礎(chǔ)上,推測我們產(chǎn)品可能的市場占有率及銷售情況。
D. 產(chǎn)品策略: 產(chǎn)品策略包括產(chǎn)品的技術(shù)策略與產(chǎn)品的市場策略。
E. 投資與回報分析:項目投資總額、項目成本核算、項目收益、投資回報等。
F. 已有資源分析:包括資金資源、人力資源、技術(shù)資源等的分析。
G. 其它應(yīng)考慮的因素
2) 需求分析
需求分析是軟件項目正式實施開始的第一個階段,需求分析應(yīng)該遵循可行性分析確定的基調(diào),包括技術(shù)路線、產(chǎn)品基本功能、產(chǎn)品運(yùn)行環(huán)境及市場定位。需求分析主要應(yīng)完成對用戶應(yīng)用流程的描述,即完成商業(yè)邏輯分析。并根據(jù)商業(yè)邏輯的需要確定軟件的功能列表及描述。
3) FS+UI
A. 總體描述,包括應(yīng)用平臺及應(yīng)用限制,...
B. 功能列表
C. 用戶界面
FS+UI的合格與否取決于能否完成以下二方面的工作。
、 完成用戶手冊的編寫!
、 準(zhǔn)備測試計劃、測試用例及確定驗收標(biāo)準(zhǔn)!
FS+UI是產(chǎn)品管理部門與軟件開發(fā)部門的接口,對于項目型開發(fā)是軟件開發(fā)商與用戶責(zé)任劃分的重要依據(jù),F(xiàn)S+UI不同于需求分析,它提供給用戶的是一個清晰可見的用戶界面與完整的功能說明,方便用戶的理解與確認(rèn)。軟件開發(fā)據(jù)此進(jìn)行下一步工作有了堅實的基礎(chǔ),避免軟件交付后的大量修改工作,有利于軟件質(zhì)量與進(jìn)度的控制。同時,便于軟件開發(fā)并行工作的展開。
FS+UI是軟件總體設(shè)計及軟件α測試的基礎(chǔ)。
4) 總體設(shè)計
總體設(shè)計的依據(jù)是FS+UI文檔,其目的是根據(jù)FS+UI要求,依據(jù)具體采用的開發(fā)工具與技術(shù)平臺確定軟件實現(xiàn)的對象關(guān)系與數(shù)據(jù)庫結(jié)構(gòu)。并非項目組每個成員均參加總體設(shè)計,一般來講,一般中小項目總體設(shè)計為一到二個人,中大型項目一般為一個總體設(shè)計小組,由項目總設(shè)計師負(fù)責(zé)將項目進(jìn)行分解為可操作的大小,交由不同設(shè)計小組完成相關(guān)功能的總體設(shè)計,總設(shè)計師負(fù)責(zé)協(xié)調(diào)各子項之間的協(xié)調(diào)關(guān)系,從而完成大型的總體設(shè)計。
總體設(shè)計設(shè)計深度情況直接影響下一步的詳細(xì)設(shè)計。過細(xì)的總體設(shè)計也是不必要的,少量的人員進(jìn)行過細(xì)的設(shè)計必然影響整個項目的設(shè)計周期,而過粗的總體設(shè)計當(dāng)然也不利于詳細(xì)設(shè)計設(shè)計任務(wù)的分配與設(shè)計展開。
總體設(shè)計是軟件詳細(xì)設(shè)計及軟件集成測試的基礎(chǔ)。
5) 詳細(xì)設(shè)計
詳細(xì)設(shè)計是總體設(shè)計的繼續(xù),主要目的是完成總體設(shè)計完成的對象內(nèi)部的商業(yè)邏輯的實現(xiàn)設(shè)計,在總體設(shè)計完成后可以將不同的設(shè)計對象交由不同的設(shè)計人員來完成。原則上講,在開始軟件編碼之前應(yīng)完成所有的設(shè)計細(xì)節(jié),避免在編碼中進(jìn)行設(shè)計工作。
詳細(xì)設(shè)計是編碼及軟件模塊測試的基礎(chǔ)。
6) 編碼
編碼是軟件詳細(xì)設(shè)計的一種再現(xiàn),編碼中重要的是要遵從相關(guān)開發(fā)工具的設(shè)計規(guī)范及數(shù)據(jù)庫設(shè)計規(guī)范,另外,養(yǎng)成一個良好的編程習(xí)慣是一個軟件公司和軟件編程人員基本的職業(yè)素質(zhì)。
對于軟件應(yīng)用可靠性要求嚴(yán)格的案例,所有軟件模塊必須通過模塊測試,對一般應(yīng)用軟件中的重要模塊也應(yīng)進(jìn)行模塊測試。
7) 集成
集成是軟件開發(fā)中重要的一環(huán),集成測試的依據(jù)是軟件的總體設(shè)計。如果缺乏前期的模塊測試,必然會導(dǎo)致集成時間的加長,同時也會加重后期的α測試及問題處理的工作量。
8) α測試
α測試是在軟件集成結(jié)束后軟件開發(fā)進(jìn)入的下一個環(huán)節(jié),它標(biāo)志著軟件開發(fā)從設(shè)計級段進(jìn)入軟件測試階段。一般情況下,軟件開發(fā)從設(shè)計進(jìn)入測試是通過CMO來完成這一過程。
為完成α測試,測試部門一般包括如下幾個方面的工作。
① 編制測試計劃
、 編制測試用例
、 測試執(zhí)行
、 測試結(jié)論(包括問題報告)
一般而言,測試工作基本上可以分為如下幾個輪回:
α測試是軟件公司對自身產(chǎn)品的一次自我測試,α測試結(jié)束后,測試部門會提供一個軟件測試評價報告,這個評價報告在某種程度上決定了該軟件是否適應(yīng)商業(yè)銷售。
一般來講,軟件通過測試并不意味著軟件沒有任何問題,只是意味軟件通過了可接受測試條件。軟件測試的問題報告是軟件公司售后服務(wù)與產(chǎn)品升級的重要參考因素之一。