當前位置:首頁 » 軟體系統 » 軟體項目的評審確認主要可以採用

軟體項目的評審確認主要可以採用

發布時間: 2022-10-08 19:55:56

Ⅰ 軟體工程正式的技術評審知道原則有哪些

技術評審(Technical Review,TR)的目的是盡早地發現工作成果中的缺陷,並幫助開發人員及時消除
缺陷,從而有效地提高產品的質量。包括有正式技術評審和非正式技術評審。
正式技術評審的原則:

作者答復評審員的問題,
並與評審員共同查找缺陷、商討缺陷解決方案。評審結束後,作者應當及時消除工作成果中的缺陷。
1.要有嚴格的評審計劃,並遵守日程安排。
2.

評審小組

☆ 評審主持人應當具備比較高的技術水平和比較豐富的評審經驗,能夠控制評審會議的進程。評審主持人可以是項目內的技術骨幹,也可以是項目外的技術專家。評審主持人本身是一名評審員,評審結論必須有評審主持人的簽字才能生效。

☆評審員主要來源於項目內和項目外的技術人員,必要時還應當要求客戶和質量保證人員擔任評審員。
工作成果的作者不能擔任評審員。
評審員的人選以及分工都由評審主持人來確定。
評審員應當根據「檢查表」認真地查找工作成果中的缺陷,並和作者共同商討缺陷解決方案。

☆評審小組的總人數一般在3~7人之間。

記錄員:由評審主持人指定一位評審員來擔任記錄員。記錄員如實地將評審過程記錄在指定的文檔中。

Ⅱ 軟體評審主要有哪些方法

臨時評審、輪查、走查、小組評審、審查

Ⅲ 如何做軟體項目管理

在企業項目管理過程中,一個完整的項目流程主要分為以下幾步:項目啟動階段,規劃階段,執行階段,監控階段,收尾階段。在日事清中管理項目,從生成線索到完成交易到執行項目,可以讓你輕松掌控客戶的整個生命周期。可以實現分級管理,針對不同的層級設置不同的可見許可權
1、日事清的「計劃管理」通過看板的形式將計劃拆分成多個步驟或子目標,您可以實時了解團隊當前的工作進展,直觀便捷。
2.通過日事清的「任務」將責任落實到人,保證項目有效執行
「計劃管理」最終會落實在每一個具體的「任務」上,您可將工作任務合理分配至每位團隊成員的個人日程,並圍繞具體事項展開協作,從而做到任務有跟蹤、事件有反饋,使團隊效率真正得到提升。
3.通過「參與討論」進行針對性的溝通
日事清每個「任務」都有評論區,可針對性的進行實時討論與回復,從而使得團隊溝通更加高效,問題處理更加及時。

Ⅳ 軟體項目的管理流程

導語:關於軟體項目的管理流程,相關人員來了解一下吧。下面是我收集整理的軟體項目管理流程,供各位閱讀和參考。

一、 風險評估

軟體項目風險是指在整個項目周期中所涉及的成本預算、開發進度、技術難度、經濟可行性、安全管理等各方面的問題,以及由這些問題而對項目所產生的影響。項目的風險與其可行性成反比,其可行性越高,風險越低。軟體項目的可行性分為經濟可行性、業務可行性、技術可行性、法律可行性等四個方面。而軟體項目風險則分為產品規模風險、需要風險、相關性風險、管理風險、安全風險等六個方面:

1. 產品規模風險

項目的風險是與產品的規模成正比的,一般產品規模越大,問題就越突出。尤其是估算產品規模的方法,復用軟體的多少,需求變更的多少等因素與產品風險息息相關:

(1) 估算產品規模的方法

(2) 產品規模估算的信任度

(3) 產品規模與以前產品規模平均值的偏差

(4) 產品的用戶數

(5) 復用軟體的多少

(6) 產品需求變更的多少

2. 需求風險

很多項目在確定需求時都面臨著一些不確定性。當在項目早期容忍了這些不確定性,並且在項目進展過程當中得不到解決,這些問題就會對項目的成功造成很大威脅。如果不控制與需求相關的風險因素,那麼就很有可能產生錯誤的產品或者拙劣地建造預期的產品。每一種情況對產品來講都可能致命的,這些的風險因素有:

(1) 對產品缺少清晰的認識

(2) 對產品需求缺少認同

(3) 在做需求分析過程中客戶參與不夠

(4) 沒有優先需求

(5) 由於不確定的需要導致新的市場

(6) 不斷變化需求

(7) 缺少有效的需求變化管理過程

(8) 對需求的變化缺少相關分析等

3. 相關性風險

許多風險都是因為項目的外部環境或因素的相關性產生的。控制外部的相關性風險, 能緩解策略應該包括可能性計劃,以便從第二資源或協同工作資源中取得必要的組成部分,並覺察潛在的問題,與外部環境相關的因素有:

(1) 客戶供應條目或信息

(2) 交互成員或交互團體依賴性

(3) 內部或外部轉包商的關系

(4) 經驗豐富人員的可得性

(5) 項目的復用性

4. 技術風險

軟體技術的飛速發展和經驗豐富員工的缺乏,意味著項目團隊可能會因為技巧的原因影響項目的成功。 在早期,識別風險從而採取合適的預防措施是解決風險領域問題的關鍵,比如:培訓、聘請顧問以及為項目團隊招聘合適的人才等。關於技術主要有下面這些風險因素:

(1) 缺乏培訓

(2) 對方法、工具和技術理解的不夠

(3) 應用領域的經驗不足

(4) 對新的技術和開發方法應用不熟悉

5. 管理風險

盡管管理問題制約了很多項目的成功,但是不要因為風險管理計劃中沒有包括所有管理活動而感到驚奇。在大部分項目里,項目經理經常是寫項目風險管理計劃的人,他們有先天性的不足——不能檢查到自己的錯誤。因而,使項目的成功變得更加困難。如果不正視這些棘手的問題,它們就很有可能在項目進行的某個階段影響項目本身。當我們定義了項目追蹤過程並且明晰項目角色和責任,就能處理這些風險因素:

(1) 計劃和任務定義不夠充分

(2) 對實際項目狀態不了解

(3) 項目所有者和決策者分不清

(4) 不切實際的承諾

(5) 不能與員工之間的進行充分地溝通

6. 安全風險

軟體產品本身是屬於創造性的產品,產品本身的核心技術保密非常重要。但一直以來,我們在軟體這方 面的安全意識比較淡薄,對軟體產品的開發主要注重技術本身,而忽略了專利的保護。軟體行業的技術人員流動是很普遍的現象,隨著技術人員的流失、變更,很能會導致產品和新技術的泄密,致使我們的軟體產品被它公司竊取,導致項目失敗。而且在軟體方面關於知識產權的認定目前還沒有明確的一個行業規范,這也是我們 軟體項目潛在的風險。

7. 迴避風險的方式

(1) 以開發方誘導能保證需求的完整,使需求與客戶的真實期望高度一致。再以書面方便形成《用戶需求》這一重要的文檔,避免疏漏造成的損失在軟體系統的後續階段被逐步地放大。

(2) 設立監督制度,項目開發中任何較大的決定都必須有客戶參與進行的,在該項目中項目監督由項目開發中的質量監督組來實施。

(3) 需求變更需要經過統一的負責人提出,並且要用戶需求的審核領導認可,需求變更應該是定期而不是隨時的提出,而且開發方應該做好詳細的記錄,讓客戶了解需求變更的實際情況。

(4) 控制系統的復雜程度,過於簡單的系統結構,對用戶來使用比例會有明顯的折扣,甚至造成軟體壽命過短。反之,軟體結構的過於靈活和通用,必然引起軟體實現的難度增加,系統的復雜度會上升,這又會在實現和測試階段帶來風險。適當控制系統的復雜程度有利於降低開發的風險。

(5) 從軟體工程的角度看,軟體維護費用約占總費用的55%~70%,系統越大,該費用越高。對系統可維護性的輕視是大型軟體系統的最大風險。在軟體漫長的運營期內,業務規則肯定會不斷發展,科學的解決此問題的做法是不斷對軟體系統進行版本升級,在確保可維護性的前提下逐步擴展系統。

(6) 設定應急計劃,每個開發計劃都至少應該設定一個應急預案去應對出現突發情況和不可遇知的風險。

二、 成本預算

1. 成本預算方式

(1) 自上而下的預算方法

自上而下的預方法主要是依據上層、中層項目管理人員的管理經驗進行判斷,對構成項目整體成本的子項目成本進行估計,並把這些判斷估計的結果傳遞給低一層的管理人員,在此基礎上由這一層的管理人員對組成項目的子任務和子項目的成本進行估計,然後繼續向下一層傳遞他們的成本估計,直到傳遞到最低一層。

使用此預算方式,在上層的管理人員根據他們的經驗進行的費用估計分解到下層時,可能會出現下層人員認為上層的估計不足以完成相應任務的情況。這時,下層人員不一定會表達出自己的真實觀點,不一定會和上層管理人員進行理智地討論,從而得出更為合理的預算分配方案。在實際中,他們往往只能沉默地等待上層管理者自行發現問題並予以糾正,這樣往往會給項目帶來諸多問題。

自上而下更適用於項目啟動的前期,與真實費用相差在30% ~ 70%之間。

Scrum使用自上而下的成本預算方式,它不會立即精確地確定成本,而是以最大限度容納客戶對未來產品要求所產生的變更。

(2) 自下而上的預算方法

自下而上方法要求運用WBS(Work Breakdown Structure,工作分解結構)對項目的所有工作任務的時間和預算進行仔細考察。最初,預算是針對資源(團隊成員的工作時間、硬體的配置)進行的,項目經理在此之上再加上適當的間接費用(如培訓費用、管理費用、不可預見費等)以及項目要達到的利潤目標就形成了項目的總預算。自下而上的預算方法要求全面考慮所有涉及到的工作任務,更適用於項目的初期與中期,它能准備地評估項目的成本,與真實費用相差在5% ~ 10%之間。

註解:WBS

WBS是面向提交成果對項目的分解,從提交成果的列表可以確定每個提交成果需要執行的活動。Scrum會對WBS進一步細化,把一個迭代分解為一個或多個的工作包,再把工作包分解為細小的開發任務(一般開發任務的開發周期在15個工作小時以內)。

2. 確定項目支出

總體成本預算就是結合下列多個成本預算方式綜合計算的開發成本:

(1) 零基數預算

在成本預算的初期應該使用零基數的計算原則,而不可以使用類似於:以上一年總體費用加上20% 這樣粗略的方式計算項目成本。

(2) 軟硬體成本、物品成本

物品成本是指類似於:伺服器(RAM 硬碟 CPU NIC卡 RAID簇)成本、維護成本、機房租金、光纖通訊成本、軟體成本等的成本。

計算成本時需要考慮組裝硬碟需時的長短,技術人員需要具備的質素,產品供應商能否提供保證質量,管理時是否需要額外的管理人員這些多方因素。

(3) 軟體許可證成本

(4) 外包成本

當使用類似:視頻、簡訊、移動電信類服務、門戶網站等子項目時可以考慮以外包形式完成,以降低開發成本。

(5) 人力資源成本

計算人力資源成本時應該使用以最高和最低的工作效率估算平均效率的方式,計算出人力資源的平均成本。

(6) 維修保養成本

三、 客戶溝通的過程

從客戶溝通的方向出發來看,軟體項目可分為:需求識別、方案定製、項目實施、項目結束等4個不同的階段,各個階段都具有不同的溝通重點。

1. 需求識別階段

(1) 文本溝通

在需求識別的前期,應該通過問卷、原型展示、界面展示、邏輯處理展示、准化文檔模板等方式進行全方位多角度的分析,隨時將不明確之處反饋給客戶,以期待客戶解答。並以文本記錄的方式建立需要分析書,並要求客戶審核需求分析書,以達到需要分析與客戶的真實期望高度一致的結果。

(2) 業務邏輯溝通

在進行業務溝通時,應該了解客戶的行業語言,以促進業務分析的過程,越過應用需求和開發之間的鴻溝。溝通過程提倡以草圖或者可視信息化的方式進行, 針對不同層面的企業用戶提供最適合的操作界面。以多角度的方式思考問題,要抓住需求重點,尤其是客戶方領導所關注的創新類和實用類需求。

(3) 需求變更的規范化管理

需求變更在軟體開發類項目中是可以理解的,但必須對需求變更做好規范化的管理,以避免出現需求無止境變更的風險。需求變更必須由統一的負責人提出,並且由用戶需求的審核領導者認可。需求變更的提出應該是定期而不是隨時的,開發方應該做好詳細的文本記錄,讓客戶了解需求變更的實際情況和開發方為之所付出的成本代價。

2. 方案定製階段

該階段項目的主要任務是與客戶共同制定一個以前期明確的需求、雙方的資源、項目開始的階段、實施的時間約定、項目費用限制等為基礎的具有可操作性的項目計劃,從本階段開始爭取客戶全面參與項目的管理,並以雙方的共同利益考慮項目實施的具體計劃與風險規避。

3. 項目實施階段

在該階段,軟體項目團隊應該與客戶共同領導項目的實施。同時,項目團隊應實時評估客戶滿意度,並通過持續改進的方式提高客戶滿意度,還應要求客戶參加必要的培訓,以及在必要時檢查項目產品。在出現客戶的需求變更前,應主動與客戶溝通交流,使客戶充分了解項目的每個環節,以及變更帶來的影響,減少需求變更。如果出現客戶需求變更,應與客戶一起共同解決由變更引起的成本、進度、質量變化。

4. 結束階段

該階段主要進行項目成果的移交,並把系統交付給維護人員,幫助客戶實現商務目標,結清各種款項。完成這些工作後應該進行項目評估,審核此項目的成果並總結項目經驗。

5. 售前人員注意事項

在產品型項目作為開發成果時,相關銷售人員應該注意:對產品的推銷不應該過分承諾。如果過分承諾,會給後續的項目實施帶來困難;一旦承諾沒有兌現,也會降低客戶滿意度,影響今後合作。如果有附加承諾,一定要以文本形式記錄,讓實施項目經理知曉並傳達給項目組成員。

註解:在軟體項目中,需要明確以下四種客戶角色

A. 要明確最終使用部門和用戶,要去了解他們現有的工作方式,要讓他們知道項目的目標框架,知道項目要解決他們的哪些困難,但絕對不是全部困難,這樣可以較好的控制項目范圍。

B. 要明確需求的提出者,他或者他們要能夠代表最終客戶群體。提出產品需求的這類客戶要具有一定的技術、業務能力和權威,能夠真正代表最終客戶團隊的意願和想法,最好有IT基礎,能夠用IT語言描述問題和需求,以利於雙方的溝通、協作,避免產生歧義。

C. 要明確做需求確認的中層領導,他要把握方向。軟體開發項目是解決實際生產或者管理問題,同時 也是領導系統建設的具體實現,做需求確認的客戶領導,既要了解高層領導的系統建設要點和方向,又要諳熟具體業務和生產管理實際。如果是這樣的客戶領導來把 握和決策,對企業軟體開發項目的順利進展作用非凡。

D. 要明確誰來對成品提意見,誰來驗收。項目驗收環節,是項目的收尾環節,如果驗收的人對項目初期的需求目標不了解,會從態度和產品實際使用效果上對驗收產生負面的影響,對提供產品的企業關閉項目非常不利。根據實踐總結,由需求提出人和確認人來做項 目的驗收工作,能夠促進項目的順利完成,避免延期。

四、 需求分析

1. 需求分析的過程

需求過程包括需求開發和需求管理2個部分:

(1) 需求開發就是對開發前期的管理,與客房的溝通過程,可以分為4個階段:需求獲取、需求分析、編寫需求和需求驗證。

(2) 需求管理:就是軟體項目開發過程中控制和維持需求約定的活動。包括:變更控制、版本控制、需求跟蹤、需求狀態跟蹤。

2. 需求的層次

需求的層次包括:業務需求、用戶需求、功能需求、非功能需求等4個方面。

3. 需求開發階段的重點

(1) 提取業務對象

業務對象是指系統使用的真實對象,例如一個供應鏈管理 (Supply Chain Management ,簡稱SCM) 業務對象主要包括:生產批發商、零售商、送貨商、顧客多個層次。

(2) 提取業務流程

在了解業務邏輯的過程中,應該列舉出所開發軟體模塊的各自職能,並細化每個工作流程,深入分析業務邏輯。

(3) 性能需求

在分析的前期應該注意客戶對所開發軟體的技術性能指標,如存儲容量限制、運行時間限制、安全保密性等。

(4) 環境需求

環境需求是指軟體平台運行時所處環境的要求,如硬體方面:機型、外部設備、數據通信介面;軟體方面:系統軟體,包括操作系統、網路軟體、資料庫管理系統方面;使用方面:使用部門在制度上,操作人員上的技術水平上應具備怎樣的條件。

(5) 可靠性需求

對所開發軟體在投入運行後發生故障的概率,應該按實際的運行環境提出要求。對於重要的軟體,或是運行失效會造成嚴重後果的軟體,應提出較高的可靠性要求。

(6) 安全保密要求

在需求分析時應當在這方面恰當地做出規定,對所開發的軟體給予特殊的設計,使其在運行中,其安全保密方面的性能得到必要的保證。

(7) 用戶界面需求

為用戶界面細致地規定到達的要求。

(8) 資源使用需求

開發的軟體在運行時和開發時所需要的各種資源。

(9) 軟體成本消耗與開發進度需求

在軟體項目立項後,根據合同規定,對軟體開發的'進度和各步驟的費用提出要求,作為開發管理的依據。

(10) 開發目標需求

預先估計以後系統可能達到的目標,這樣可以比較容易對系統進行必要的補充和修改。

4. 需求分析的任務

需求分析的主要任務是藉助於當前系統的邏輯模型導出目標系統的邏輯模型,其流程如下:

(1) 確定對系統的綜合需求(功能、性能、運行、擴充需求)

(2) 製作產品需求文檔 (PRD)

(3) 分析系統的數據需求(概念模型、數據字典、規范化)

(4) 導出目標系統的詳細的邏輯模型(數據流圖、數據字典、主要功能描述)

(5) 開發原形系統

(6) 從PRD提取編制軟體需求規格說明書(SRS)

註解:SRS格式

1.引言 2系統概述(項目背景、系統目標、核心業務流程) 3.術語說明 4.系統結構(架構圖、功能圖)

5.主體功能與業務邏輯(重點) 6.介面需求(內部、外部介面、) 7.網路總體設計(拓撲網路、主機、組網)

8.運行環境(Linux、Windows、IIS、 WebLogic、Tomcat、OLAP、OLTP、JDK 8.0 、.NET Framework 4.0等)

五、 面向對象程序設計(略)

1. 設計原則

(1) SRP單一職責鏈

每個類都應該只負責做一件事。

(2) OCP開封閉合原則

軟體的實體(類、模塊、函數等)應該是可以擴展的,但是不可修改的。

(3) LSP替換原則

子類必須能替換他們的基類型。

(4) DIP依賴倒置原則

高層模塊不應該依賴於低層模塊,二者都應該依賴於介面與抽象類。抽象不應該依賴於細節,細節應依賴於對象。

(5) ISP介面隔離原則

不應該強迫客戶依賴於並未使用的介面,而應該把胖介面分離。

2. 實現UML建模

(1) 業務對象的提取

(2) 根據SRS、CRC等實現用況建模

(3) 實現業務順序圖

(4) 建立類圖,根據用況圖建立對象之間的關聯

(5) 繪制活動圖、實現協作圖、狀態圖

六、 開發管理

1. 建立項目計劃

(1) 設計總體架構

針對系統的實施需要,採取適當的且成熟的框架結構。

(2) 控制可擴展度

擴展度過大,將提高系統的復雜程度,延長開發時間;擴展度過低,會直接影響系統的二次開發與維護。控制系統的可擴展性,能提高開發效率,降低系統維護的難度。

(3) 建立基礎設施

合理分配部署軟、硬體等基礎設施所需要的時間與成本(例如:伺服器的訂購安裝、光纖接入、軟體平台訂購)。

(4) 劃分開發任務

利用WBS(Work Breakdown Structure,工作分解結構)對可交付結果進行分類與劃分。每個項目都能劃分為多個不同階段,每個階段又可以分為多個工作包(Work Package),工作包是WBS里最小的可交付結果,最後從工作包中分解出多個開發任務列表。

(5) 部署開發進度

一個項目應該按進度劃分為多個開發階段,每個階段的開發周期一般在30~60個工作日以內。在此階段內應該與客戶舉行協商會議,制定產品路線圖,在開發過程中邀請客戶積極參與並提出反饋意見。然後把該時段內的開發任務按照開發難度,依賴性,重要性等多方條件劃分為多個迭代周期。

在Scrum 敏捷軟體開發原則中,應該把每個迭代任務進一步細分為多個開發任務列表,再開發任務分配給組員各自負責,而開發時間應該控制在15個工作小時以內。如果開發時間超出15個工作小時,應該考慮把開發任務再度細化。開發任務建議應該由組員自主選擇,而不要使用強制分配的方式。

(5) 測試項目成果

每個工作包都應該同步部署測試工作,提高項目的質量。對出錯BUG的工作包應該由測試人員以文本方式記錄,向開發人員展示錯誤所在,讓開發人員及時進行修改。

2. 管理開發團隊

(1) 組建團隊

按照工作任務與項目時間的前提條件建立團隊,按團隊職責分配人員,一般團隊人數應該控制在8~12人之間。當團隊人數超過15人時,應該考慮把團隊分解成2個獨立團隊,負責不同的開發任務。

(2) 分配開發任務

在每個迭代周期內(一般是15~30個工作日),應該把每個工作包進一步細分為多個開發任務,再開發任務分配給組員各自負責,開發時間應該控制在15個工作小時以內。如果開發任務的開發時間超出15個工作小時,應該考慮把任務再度細化。而開發任務應該以自由選擇的方式分配給每個組員。

(3) 監督開發進度

在迭代的前期舉行一次會議,讓組員了解開發的進展及流程,並以自主選擇的方式分配開發任務。期間可使用Microsoft Project等工具記錄開發流程的進展,在每個工作包完成開發後應該進行性功能的測試,並以文本方式記錄測試結果。

每天舉行一次15分鍾的站立會議,讓組員交待昨天已完成的開發任務,當天將要做的任務,與開發過程中所遇到的問題。並在每周末舉行一次例行會議,交待總體進程。

在迭代末期舉行一次沖刺會議,總結項目的進展,交行已完成的任務,回顧該迭代周期內所遇到的問題,為下一個迭代做好准備。

(4) 系統測試

對每個已完成的工作包進行適時的測試,保證系統質量與性能。對測試結果進行文本的記錄,並把測試結果與績效工資收入掛鉤,並以真實數據計算組員的績效收入。

(5) 解決開發中所遇到的問題

對開發人員進行前期培訓,可適當按工作能力分配任務,指導組員的開發。當遇到問題時應該在當天的站立會議時即時提出,並在15個工作小時內解決所遇到的問題以防止問題進一步擴大。

3. 監管產品質量

(1) 質量需要的是計劃、設計而並非審查的。在產品建立的初級,必須與「質量保證」(QA)的部門進行協商,以正式文檔的方式,決定恰當的質量策略和標准。

(2) 在開發過程中使用TDD(測試驅動開發)的模式,提高開發質量。測試人員應該以文本方式記錄bug,並與開發人員共同工作的,把突出的缺陷演示給開發人員,以提高修改的效率。

(3) 在每個迭代的結束時進行一次產品效果的演示,從客戶、使用者、高層領導中收集反饋信息。在團隊內部舉行評審會議,分析測試結果,了解產品性能,為下次迭代所需要做的改進做好計劃。

4. 修改項目計劃

(1) 在產品需要識別階段,應該以文檔形式記錄產品功能與開發流程,在開發計劃需要修改時,應該與客戶共同探討,讓客戶了解計劃修改對項目進度所造成的影響。

(2) 項目計劃的修改應該由統一的負責人提出,並且由用戶需求的審核領導者認可。需求變更的提出應該是定期而不是隨時的。

(3) 計劃的變更應該做好詳細的文本記錄,讓客戶了解需求變更的實際情況和開發方為之所付出的成本代價。

七、 產品交付

1. 項目的後期審核

在項目開發最終完成後,對開發人員來說可算是放下工作的重擔,但對項目經理來說這往往是項目的關鍵時刻。前期的風險評估、成本預算、需求分析、軟體設計都是為了引導項目走向這一時刻,此時所有的目光都將投向項目管理人員。你可能發現大量而瑣碎的工作將要在幾個小時內完成,此刻項目經理更需要保持清醒與鎮定,把最後的工作視為微型項目來對待。細致地對項目進行後期的審核,分析項目成果、項目團隊的效率、可交付產品的價值,以此審核結果可作為項目管理經驗總結的一部分。

2. 質量評審

在項目交付前,應該把項目交給相關的「質量保證」(QA)部門進行質量評審,並邀請典型用戶感受產品的質量。

3. 項目的最終交付

正常情況下在項目的前期就會訂立項目交付的協議,項目交付方式分為非正式驗收與正式驗收兩種。一般在項目完成後都會先進行非正式驗收,讓客戶體會項目的質量並提出反饋意見,最後在客戶肯定產品質量後再以書面協議的形式進行正式的產品驗收。

4. 項目的最終報告

在項目的最後,應該制定項目的最終報告,此報告可以視為是對該項目一個記錄,但報告不必包含項目的所有方面。一般最終報告應該包含以下方面:

(1) 最初引進項目時的初期項目視圖

(2) 對該項目的價值評估及支持性信息

(3) 項目的范圍

(4) 項目的開發流程及WBS

(5) 項目的會議記錄

(6) 項目變更的報告及變更的理由

(7) 與項目相關的溝通過程文件

(8) 項目的審核報告與客戶驗收報告

(9) 項目成員的表現報告

(10) 項目的最終成果

Ⅳ sqa(軟體測試)5條規則

軟體質量保證(SQA)是建立一套有計劃,有系統的方法,來向管理層保證擬定出的標准、步驟、實踐和方法能夠正確地被所有項目所採用。

軟體質量保證的目的是使軟體過程對於管理人員來說是可見的。它通過對軟體產品和活動進行評審和審計來驗證軟體是合乎標準的。軟體質量保證組在項目開始時就一起參與建立計劃、標准和過程。這些將使軟體項目滿足機構方針的要求。

一、基本目標

目標 1: 軟體質量保證工作是有計劃進行的。
目標 2: 客觀地驗證軟體項目產品和工作是否遵循恰當的標准、步驟和需求。
目標 3: 將軟體質量保證工作及結果通知給相關組別和個人。
目標 4: 高級管理層接觸到在項目內部不能解決的不符合類問題。

二、QA的由來

我們知道,國外很多的大公司,QA的職責就是測試(主要是系統測試),比如IBM、CA、PeopleSoft等。其實在最初,幾乎所有的公司都是這樣的。後來,由於缺乏有效的項目計劃和項目管理,留給系統測試的時間很少(註:我以前做的一個項目,項目經理就明確告訴我系統測試就1天,沒得商量)。另外,需求變化太快,沒有完整的需求文檔,測試人員就只能根據自己的想像來測試。這樣一來,測試就很難保障產品的質量,事先預防的QA職能就應運而生。
事先預防其實是借鑒了TQM的思想,而且也符合軟體工程「缺陷越早發現越早修改越經濟」的原則。這些思想的淵源還可以追溯到中國古代的典故中,比如曲突徙薪、扁鵲論醫術等。特別是扁鵲論醫術這個典故,我偶然在國外的一篇文章中看到了(後來在林銳的文章中也看到了),常感嘆我們國人連祖先的思想文化遺產都丟的差不多了。

三、QA的現在

目前,實施CMM的企業越來越多了。CMM模型就要求建立QA角色。這里的QA類似於過程警察,主要職責是,檢查開發和管理活動是否與已定的過程策略、標准和流程一致,檢查工作產品是否遵循模板規定的內容和格式。在這些企業中,一般還要求QA獨立於項目組,以保障評價的客觀性。從國內來看,多數的QA沒有技術背景,檢查出的偏差多為雞毛蒜皮,再加上自己沒有令人信服的背景,領導也不支持,當然做起來就很困難了。

缺乏信任和支持只是一個方面,QA工作本身就很具挑戰性。它要求QA具有軟體工程的知識、軟體開發的知識、行業背景的知識、數理統計的知識、項目管理的知識、質量管理的知識等等。

我們常常遇到這樣的問題,改進到一定程度就很難突破,感覺心有餘而力不足了,就開始郁悶了。後來通過學習、培訓、交流,思想和技能得到升華,又發現了木桶中最短的那塊,然後又開始改進,然後又遇到了玻璃天花板,然後……就這樣處於郁悶的循環中。

假使我們掌握了所有的知識,能突破所有的玻璃天花板,那是不是QA就可以一帆風順了。答案是否定的。QA角色定義本身就有很大的局限性。QA充當的是過程警察的角色,無論是否有意義,都專橫地強制過程的執行,容易在項目組中造成敵對的關系,受到排擠,而且這種警察的姿態也破壞了團隊精神。如此一來,QA工作還需要的是人際關系技能,就如我以前寫的《質量平衡》和《QA應該獨立於項目組嗎?》一樣,藝術化地處理這種關系。

四、QA的未來

從某種程度上說,獨立的QA審查機制是瀑布模型的產物。隨著現代軟體開發技術的演變,螺旋模型和迭代模型的興起,QA機制正在悄然發生變化。這種變化就是從獨立專職的QA向貫穿過程的兼職QA演變。在CMMI模型中,這種兼職的QA也是被允許的。為什麼會發生這種改變呢?無論是XP、RUP還是其它先進的方法論,都是先產生架構,然後再增量開發,直到完成。這種模式中,需求和設計缺陷在各個迭代周期被所盡早發現和修復,質量也內建於架構和過程中,項目的成本和進度也得到保障。
到那時,是不是獨立的QA就不復存在了呢?有些成熟度較低的企業還是需要的,主要是保證過程執行的有效性和評價的客觀性。

五、SQA的理論探索

1、過程的認識

我們都知道一個項目的主要內容是:成本、進度、質量;良好的項目管理就是綜合三方面的因素,平衡三方面的目標,最終依照目標完成任務。項目的這三個方面是相互制約和影響的,有時對這三方面的平衡策略甚至成為一個企業級的要求,決定了企業的行為,我們知道 IBM的軟體是以質量為最重要目標的,而微軟的「足夠好的軟體」策略更是耳熟能詳,這些質量目標其實立足於企業的戰略目標。所以用於進行質量保證的SQA工作也應當立足於企業的戰略目標,從這個角度思考SQA,形成對SQA的理論認識。

軟體界已經達成共識的:影響軟體項目進度、成本、質量的因素主要是 「人、過程、技術」。首先要明確的是這三個因素中,人是第一位的。

現在許多實施 CMM的人員沉溺於CMM的理論過於強調「過程」,這是很危險的傾向。這個思想傾向在國外受到了猛烈抨擊,從某種意義上各種敏捷過程方法的提出就是對強調過程的一種反思。 「XP」中的一個思想「人比過程更重要」 是值得我們思考的。我個人的意見在進行過程改進中堅持「以人為本」,強調過程和人的和諧。

根據現代軟體工程對眾多失敗項目的調查,發現管理是項目失敗的主要原因。這個事實的重要性在於說明了 「要保證項目不失敗,我們應當更加關注管理」,注意這個事實沒有說明另外一個問題「良好的管理可以保證項目的成功」。現在很多人基於一種粗糙的邏輯,從一個事實反推到的這個結論,在邏輯上是錯誤的,這種錯誤形成了更加錯誤的做法,這點在SQA的理解上是體現較深。

如果我們考證一下歷史的沿革,應當更加容易理解 CMM的本質。CMM首先是作為一個「評估標准」出現的,主要評估的是美國國防部供應商保證質量的能力。CMM關注的軟體生產有如下特點:
(1)質量重要
(2)規模較大

這是 CMM產生的原因。它引入了「全面質量管理」的思想,尤其側重了「全面質量管理」中的「過程方法」,並且引入了「統計過程式控制制」的方法。可以說這兩個思想是CMM背後的基礎。

上面這些內容形成了我對軟體過程地位、價值的基本理解;在這個基礎上我們可以引申討論 SQA。

2、生產線的隱喻

如果將一個軟體生產類比於一個工廠的生產。那麼生產線就是過程,產品按照生產線的規定過程進行生產。 SQA的職責就是保證過程的執行,也就是保證生產線的正常執行。

抽象出管理體系模型的如下,這個模型說明了一個過程體系至少應當包含 「決策、執行、反饋」三個重要方面。

QA的職責就是確保過程的有效執行,監督項目按照過程進行項目活動;它不負責監管產品的質量,不負責向管理層提供項目的情況,不負責代表管理層進行管理,只是代表管理層來保證過程的執行。

3、SQA和其他工作的組合

在很多企業中,將 SQA的工作和QC、SEPG、組織級的項目管理者的工作混合在一起了,有時甚至更加註重其他方面的工作而沒有做好SQA的本職工作。

根據 hjhza 的意見「中國現在基本有三種QA(按照工作重點不同來分):一是過程改進型,一是配置管理型,一是測試型」。我個人認為是因為SQA工作和其他不同工作組合在一起形成的。

下面根據本人經驗對它們之間的關系進行一個說明。

4、QA和QC

兩者基本職責

QC:檢驗產品的質量,保證產品符合客戶的需求;是產品質量檢查者;
QA:審計過程的質量,保證過程被正確執行;是過程質量審計者;

注意區別檢查和審計的不同

檢查:就是我們常說的找茬,是挑毛病的;

審計:來確認項目按照要求進行的證據;仔細看看CMM中各個KPA中SQA的檢查採用的術語大量用到了「證實」,審計的內容主要是過程的;對照CMM看一下項目經理和高級管理者的審查內容,他們更加關注具體內容。

對照上面的管理體系模型,QC進行質量控制,向管理層反饋質量信息;QA則確保QC按照過程進行質量控制活動,按照過程將檢查結果向管理層匯報。這就是QA和QC工作的關系。

在這樣的分工原則下, QA只要檢查項目按照過程進行了某項活動沒有,產出了某個產品沒有;而QC來檢查產品是否符合質量要求。

如果企業原來具有 QC人員並且QA人員配備不足,可以先確定由QC兼任QA工作。但是只能是暫時的,獨立的QA人員應當具備,因為QC工作也是要遵循過程要求的,也是要被審計過程的,這種混合情況,難以保證QC工作的過程質量。

5、QA和SEPG

兩者基本職責

SEPG:制定過程,實施過程改進;
QA: 確保過程被正確執行

SEPG應當提供過程上的指導,幫助項目組制定項目過程,幫助項目組進行策劃;從而幫助項目組有效的工作,有效的執行過程。如果項目和QA對過程的理解發生爭持,SEPG作為最終仲裁者。為了進行有效過程改進,SEPG必須分析項目的數據。

QA本也要進行過程規范,那麼所有QA中最有經驗、最有能力的QA可以參加SEPG,但是要注意這兩者的區別。

如果企業的 SEPG人員具有較為深厚的開發背景,可以兼任SQA工作,這樣利於過程的不斷改進;但是由於立法、執法集於一身也容易造成SQA過於強勢,影響項目的獨立性。

管理過程比較成熟的企業,因為企業的文化和管理機制已經健全, SQA職責范圍的工作較少,往往只是針對具體項目制定明確重點的SQA計劃,這樣SQA的審計工作會大大減少,從而可以同時審計較多項目。

另一方面,由於分工的細致化,管理體系的復雜化,往往需要專職的 SEPG人員,這些人員要求了解企業的所有管理過程和運作情況,在這個基礎上才能統籌全局的進行過程改進,這時了解全局的SQA人員就是專職SEPG的主要人選;這些SQA人員將逐漸的轉化為SEPG人員,並且更加了解管理知識,而SQA工作漸漸成為他們的兼職工作。

這種情況在許多 CMM5企業比較多見,往往有時看不見SQA人員在項目組出現或者很少出現,這種SEPG和SQA的融合特別有利於組織的過程改進工作。SEPG確定過程改進內容,SQA計劃重點反映這些改進內容,從保證有效的改進,特別有利於達到CMM5的要求。從這個角度,國外的SQA人員為什麼高薪就不難理解了,也決定了當前中國SQA人員比較被輕視的原因;因為管理過程還不完善,我們的SQA人員還沒有產生這么大的價值嘛!

6、QA和組織級的監督管理

有的企業為了更好的監督管理項目,建立了一個角色,我取名為 「組織級的監督管理者」,他們的職責是對所有項目進行統一的跟蹤、監督、適當的管理,來保證管理層對所有項目的可視性、可管理性。

為了有效管理項目, 「組織級的監督管理者」必須分析項目的數據。

他們的職責對照上圖的模型,就是執行 「反饋」職能。

QA本身不進行反饋工作,最多對過程執行情況的信息進行反饋。

SQA職責最好不要和「組織級的項目管理者」的職責混合在一起,否則容易出現SAQ困境:一方面SQA不能准確定位自己的工作,另一方面過程執行者對SQA人員抱有較大戒心。

如果建立了較好的管理過程,那麼就會增強項目的可視性,從而保證企業對所有項目的較好管理;而 QA來確保這個管理過程的運行。

五、SQA的工作內容和工作方法

1、 計劃

針對具體項目制定 SQA計劃,確保項目組正確執行過程。制定SQA計劃應當注意如下幾點:

有重點:依據企業目標以及項目情況確定審計的重點
明確審計內容:明確審計哪些活動,那些產品
明確審計方式:確定怎樣進行審計
明確審計結果報告的規則:審計的結果報告給誰

2、審計/證實

依據 SQA計劃進行SQA審計工作,按照規則發布審計結果報告。

注意審計一定要有項目組人員陪同,不能搞突然襲擊。雙方要開誠布公,坦誠相對。

審計的內容:是否按照過程要求執行了相應活動,是否按照過程要求產生了相應產品。

3、問題跟蹤

對審計中發現的問題,要求項目組改進,並跟進直到解決。

六、SQA的素質

過程為中心:應當站在過程的角度來考慮問題,只要保證了過程, QA就盡到了責任。

服務精神:為項目組服務,幫助項目組確保正確執行過程

了解過程:深刻了解企業的工程,並具有一定的過程管理理論知識

了解開發:對開發工作的基本情況了解,能夠理解項目的活動

溝通技巧:善於溝通,能夠營造良好的氣氛,避免審計活動成為一種找茬活動。

七、SQA活動

軟體質量保證(SQA)是一種應用於整個軟體過程的活動,它包含:
1、一種質量管理方法
2、有效的軟體工程技術(方法和工具)
3、在整個軟體過程中採用的正式技術評審
4、一種多層次的測試策略
5、對軟體文檔及其修改的控制
6、保證軟體遵從軟體開發標准
7、度量和報告機制

SQA與兩種不同的參與者相關 —— 做技術工作的軟體工程師和負責質量保證的計劃、監督、記錄、分析及報告工作的SQA小組 。

軟體工程師通過採用可靠的技術方法和措施,進行正式的技術評審,執行計劃周密的軟體測試來考慮質量問題,並完成軟體質量保證和質量控制活動。

SQA小組的職責是輔助軟體工程小組得到高質量的最終產品。SQA小組完成:

(1)為項目准備SQA計劃。該計劃在制定項目規定項目計劃時確定,由所有感興趣的相關部門評審。
·需要進行的審計和評審;
·項目可採用的標准;
·錯誤報告和跟蹤的規程;
·由SQA小組產生的文檔;
·向軟體項目組提供的反饋數量。
(2)參與開發項目的軟體過程描述。評審過程描述以保證該過程與組織政策,內部軟體標准,外界標准以及項目計劃的其他部分相符。
(3)評審各項軟體工程活動,對其是否符合定義好的軟體過程進行核實。記錄、跟蹤與過程的偏差。
(4)審計指定的軟體工作產品,對其是否符合事先定義好的需求進行核實。對產品進行評審,識別、記錄和跟蹤出現的偏差;對是否已經改正進行核實;定期將工作結果向項目管理者報告。
(5)確保軟體工作及產品中的偏差已記錄在案,並根據預定的規程進行處理。
(6)記錄所有不符合的部分並報告給高級領導者。

八、正式技術評審(FTR)

正式技術評審是一種由軟體工程師和其他人進行的軟體質量保障活動。

1. 目標:
(1) 發現功能、邏輯或實現的錯誤
(2) 證實經過評審的軟體的確滿足需求
(3) 保證軟體的表示符合預定義的標准
(4) 得到一種一致的方式開發的軟體
(5) 使項目更易管理

2、評審會議
3-5人參加,不超過2小時,由評審主席、評審者和生產者參加,必須做出下列決定中的一個 :
(1)工作產品可不可以不經修改而被接受;
(2)由於嚴重錯誤而否決工作產品;
(3)暫時接受工作產品。

3、評審總結報告、回答
評審什麼?由誰評審?結論是什麼?
評審總結報告是項目歷史記錄的一部分,標識產品中存在問題的區域,作為行政條目檢查表以指導生產者進行改正。

4、評審指導原則
(1)評審產品,而不是評審生產者。注意客氣地指出錯誤,氣氛輕松。
(2)不要離題,限制爭論。有異議的問題不要爭論但要記錄在案。
(3)對各個問題都發表見解。問題解決應該放到評審會議之後進行。
(4)為每個要評審的工作產品建立一個檢查表。應為分析、設計、編碼、測試文檔都建立檢查表。
(5)分配資源和時間。應該將評審作為軟體工程任務加以調度。
(6)評審以前所做的評審

九、統計軟體質量保證

1、對所有錯誤進行分類統計
IES 規約不完整或規格說明錯
MCC 未理解用戶意圖
IDS 故意偏離規格說明
VPS 違背編程標准
EDR 數據表示有錯
ICI 構件介面不一致
EDL 設計邏輯有錯
IET 測試不完全或有錯
IID 不準確或不完整的文檔
PLT 設計的程序設計語言翻譯錯
HCI 不清晰或不一致的人機界面
MIS 雜項錯誤
按嚴重,一般和微小級別統計各類錯誤的次數所佔百分比,以及所有錯誤的數量及百分比。例如,建立一張類似如下的表格。

然後考慮「重要少數」的錯誤指標,提出改進意見。

2、根據軟體過程中的每個步驟計算錯誤指標。

Ei = 第i發現的錯誤總數
Si = 嚴重錯誤數
Mi = 一般錯誤數
Ti = 微小錯誤數
PS = 第i步的產品規模( LOC,設計陳述,文檔頁數)
Ws,Wm,Wt分別是嚴重,一般,微小錯誤的加權因子, 推薦取值,Ws=10,Wm=3,Wt=1
軟體工程 在過程的每一步中,計算各階段的階段指標
PIi = Ws(Si / Ei)+Wm(Mi / Ei)+Wt(Ti / Ei)
錯誤指標
Ei= ∑(i×PIi)/ PS
=(PI1 + 2PI2 + 3PI3 + … + i*PIi)/ PS
錯誤指標與上面表格中收集的信息相結合可以得出軟體質量整體改進指標。七、質量保證與檢驗
確保每個開發過程的質量,防止把軟體差錯傳播到下一個過程,因此,檢驗的目的有兩個:
1.切實搞好開發階段的管理,檢查各開發階段的質量保證。
2.預先防止軟體差錯給用戶造成損失。

檢驗的類型有:
1.供貨檢驗:對委託外單位承擔開發作業,而後買進或轉讓的構成軟體產品的部件,規格說明,半成品或產品的檢查。
2.中間檢驗 / 階段評審
目的是為了判斷是否可進入下階段進行後續開發,避免將差錯傳播到後續工作中。
3.驗收檢驗:
確認產品是否已達到可以進行產品檢驗的質量要求。
4.產品檢驗:
判定向用戶提供的軟體產品是否達到令人滿意的程度

你可以看下這些...

Ⅵ 軟體評審包括哪些內容

在軟體的生命周期內所實施的對軟體本身的評審。
評審本身根據不同的評審階段,分為需求評審,功能評審,質量評審,成本評審,維護評審等。
一般來說,評審(Peer Review)包括下面幾種

檢視(Inspection)

團隊評審(Team Review/Technical Review)

走讀(WalkThrough)

成對編程(Pair Programming)

同行檢查(Peer DeskCheck)

特別檢查(Ad hoc Review)

評審方法間的區別(1)

評審方法間的區別(2)

Ⅶ 軟體開發的一般流程是什麼_

軟體開發流程分為: 需求確認——概要設計——詳細設計——編碼——單元測試——集成測試——系統測試——維護

軟體開發是一項包括需求捕捉、需求分析、設計、實現和測試的系統工程。軟體一般是用某種程序設計語言來實現的。通常採用軟體開發工具可以進行開發。軟體分為系統軟體和應用軟體,並不只是包括可以在計算機上運行的程序,與這些程序相關的文件一般也被認為是軟體的一部分。

軟體設計思路和方法的一般過程,包括設計軟體的功能和實現的演算法和方法、軟體的總體結構設計和模塊設計、編程和調試、程序聯調和測試以及編寫、提交程序。

(7)軟體項目的評審確認主要可以採用擴展閱讀

軟體開發方面的工作。具體可分為以下方面:

1可視化編程掌握程序設計方法及可視化技術,精通一種可視化平台及其軟體開發技術。獲取Delphi程序員系列、Java初級或VB開發能手認證。 就業方向:企業、政府、社區、各類學校等可視化編程程序員。

2 WEB應用程序設計 具有美工基礎和網頁動畫設計能力,掌握互動式網頁程序的設計技術,能進行網站建設和維護。獲取Macromedia多媒體互動設計師或Delphi初級程序員或Delphi快速網路開發工程師認證。 就業方向:企業、政府、社區、各類學校等WEB應用程序員。

3軟體測試掌握軟體測試的基本原理、方法和組織管理,精通軟體測試工具。獲取ATA軟體測試工程師或Delphi初級程序員或Java初級程序員認證。 就業方向:企業、政府、社區、各類學校等軟體測試員。

4 資料庫管理 能應用關系範式進行資料庫設計,精通SQL語言,勝任資料庫伺服器管理與應用工作。獲取Oracle資料庫管理或SQL Server資料庫應用或Windows XP應用認證。 就業方向:企業、政府、社區、各類學校等部門的中、大型資料庫管理員。

5 圖形圖像製作 精通國際上流行的圖形/圖像製作工具(如CorelDraw、Photoshop、Pagemaker等)。獲取平面設計師相關的認證。 就業方向:廣告製作公司、建築設計公司、包裝裝璜設計公司、居室裝修公司、出版印刷公司。

參考資料來源:網路-軟體開發