質量管理:大型軟件開發(fā)過程的質量管理體系
一、軟件產品質量的特點
按照ISO 9126的定義,軟件的質量通??梢詮囊韵铝鶄€方面去衡量(定義)
·功用性(Functionality),即軟件是否滿足了客戶功能要求;
·可靠性(Reliability),即軟件是否能夠-直在-個穩(wěn)定的狀態(tài)上滿足可用性;
·可用性(Usability),即衡量用戶能夠使用軟件需要多大的努力;
·效率(Efficiency),即衡量軟件正常運行需要耗費多少物理資源;
·可維護性(Maintainability),即衡量對已經完成的軟件進行調整需要多大的努力;
·可移植性(Portability),即衡量軟件是否能夠方便地部署到不同的運行環(huán)境中。
可見,同其它產品相比,軟件產品的質量有其明顯的特殊性。
第一,很難制定具體的、數量化的產品質量標準,所以沒有相應的國際標推、國家標準或行業(yè)標淮。對軟件產品而言,無法制定諸如"合格率"、"一次通過率"、"PPM"、"壽命"之類的質量目標。每千行的缺陷數量是通用的度量方法,但缺陷的等級、種類、性質、影響不同,不能說每千行缺陷數量小的軟件,一定比該數量大的軟件質量更好。至于軟件的可擴充性、可維護性、可靠性等,也很難量化,不好衡量。軟件質量指標的量化手段需要在實踐中不斷總結。
第二,軟件產品質量沒有絕對的合格/不合格界限,軟件不可能做到"零缺陷",對軟件的測試不可能窮盡所有情況,有缺陷的軟件仍然可以使用。軟件產品的不完善可通過維護和升級問題來解決。
第三,軟件產品之間很難進行橫向的質量對比,很難說這個產品比那個產品好多少。不同軟件之間的質量也無法直接比較,所以沒有什么"國際領先"、"國內領先"的提法。
第四,滿足了用戶需求的軟件質量,就是好的軟件質量。如果軟件在技術上很先進,界面很漂亮,功能也很多,但不是用戶所需要的,仍不能算軟件質量好??蛻舻囊笮桦p方確認,而且這種需求一開始可能是不完整、不明確的,隨著開發(fā)的進行不斷調整。
第五,軟件的類型不同,軟件質量的衡量標準的側重點也不同。例如,對于實時系統而言,效率(Efficiency)會是衡量軟件質量的首要要素,對于一些需要軟件使用者(用戶)與軟件本身進行大量交互的系統,對可用性(Usability)就提出了較高的要求。
二、軟件產品質量管理的特點
1.軟件質量管理應該貫穿軟件開發(fā)的全過程,而不僅僅是軟件本身
軟件質量不僅僅是一些測試數據、統計數據、客戶滿意度調查回函等等,衡量一個軟件質量的好壞,應該首先考慮完成該軟件生產的整個過程是否達到了一定質量要求。在軟件開發(fā)實踐中,軟件質量控制可以依靠流程管理(如缺陷處理過程、開發(fā)文檔控制管理、發(fā)布過程等),嚴格按軟件工程執(zhí)行,來保證質量。例如:
·通過從"用戶功能確認書"到"軟件詳細設計"過程的過程定義、控制和不斷改善,確保軟件的"功用性";
·通過測試部門的"系統測試"、"回歸測試"過程的定義、執(zhí)行和不斷改善,確保軟件的"可靠性"和"可用性";
·通過測試部門的"性能測試",確保軟件的"效率";
·通過軟件架構的設計過程及開發(fā)中代碼、文檔的實現過程,確保軟件的"可維護性";
·通過引入適當的編程方法、編程工具和設計思路,確保軟件的"可移植性"等等。
2 .對開發(fā)文檔的評審是產品檢驗的重要方式
由于軟件是在計算機上執(zhí)行的代碼,離開軟件的安裝、使用說明文檔等則寸步難行,所以開發(fā)過程中的很多文檔資料也作為產品的組成部分,需要像對產品一樣進行檢驗,而對文檔資料的評審就構成了產品檢驗的重要方式。
3 .運用技術手段保證質量
利用多種工具軟件進行質量保證的各種工作,如用CVS軟件進行配置管理和文檔管理、用MR軟件進行變更控制、用RATIONAL ROSE軟件進行軟件開發(fā)等。采用先進的系統分析方法和軟件設計方法(OOA、OOD、軟件復用等)來促進軟件質量的提高。
4 .應用質量管理思想滿足顧客需要
·缺陷預防
一 分析過去遇到過的缺陷并采用響應的措施以避免這些類型的缺陷以后再次出現。
一 規(guī)劃缺陷預防活動。
一 找出并確定引起缺陷的通常原因。
一 對引起缺陷的通常原因劃分優(yōu)先級并系統地消除。
·緊緊扣住用戶需求
用戶分為兩種顧客(Customer)和使用者(User)。前者是付錢的,而后者才是使用者。兩者的要求有時是不同的。所以兩方面的要求都要滿足。 ·采用快速原型法,盡快演示(Demo)給用戶并及時獲取用戶的反饋,根據用戶的反饋不斷修改軟件,而不是全部完工后再最后交給用戶。否則,要改的地方可能很多。甚至推翻重來。
·充分設計之后再編碼,防止因考慮不周而返工。
·牢牢控制對缺陷的修改
要用專門的軟件,記錄和跟蹤軟件缺陷的修復。缺陷跟蹤記錄包括:發(fā)現人、缺陷描述、修復人、修復記錄、確認人、確認結論,通過后才關閉該記錄。
·充分進行軟件的系統測試
軟件編碼、單元測試、集成測試后,還要進行充分的系統測試、回歸測試,待軟件穩(wěn)定、不再出現新的缺陷后,再考慮軟件出廠。
· 恰當掌握軟件的放行標淮
并不是零缺陷的軟件才是質量高的軟件,軟件零缺陷幾乎是不可能的,對遺留的缺陷要充分進行分析,只要能滿足用戶需求,軟件遺留的缺陷可以在今后升級中解決。
三、大型軟件開發(fā)的質量管理體系
所謂"大型軟件開發(fā)",通常指那些開發(fā)過程資源消耗較大、開發(fā)時間跨度長、技術復雜的軟件開發(fā)過程。例如"集中告警監(jiān)控軟件"NetGuard"在開發(fā)過程中,需要30到40名軟件工程師花費半年左右的時間;技術上,"NetGuard"與其它多達20多家的電信設備提供商的系統的接口進行互聯,并且,作為告警集中監(jiān)控系統,實時性要求很高。大型軟件開發(fā)流程可采用螺旋式增量開發(fā)方式,示意如下:
圖中各階段的輸出點也是質量控制點,有相應的輸出文檔和軟件代碼,均需要得到QM的確認。
除了上述7個階段外,還有項目管理(PM)、變更控制、需求控制、文檔控制、用戶滿意度管理等貫穿整個流程。
軟件企業(yè)實施ISO 9001,以保證軟件產品的質量,總經理應親自抓質量體系??偨浝硪贫ㄆ髽I(yè)的質量方針和質量目標、配備足夠的人力、物力資源,明確各崗位的質量職責,并保證質量體系的運行。
1.質量管理部門的職責
由于軟件的專業(yè)性和復雜性,質量管理可實行"檢、監(jiān)、控"三分離的職責設置:"質量檢驗"部門是"系統測試部",負責軟件質量的檢驗(功能、性能測試、回歸測試等)b"質量管理部"的角色和功能定位為:在管理者代表的領導下,獨立:擴企業(yè)的運行之外、規(guī)劃、監(jiān)督、指導和改進公司質量體系的運行,檢查開發(fā)結果是否符合規(guī)定,可以更全面、客觀、公正地觀察企業(yè)的運際而各部門經理推動該部門的質量管理工作,負行政責任。
質量管理部的具體職能是:制定質量管理工作計劃;對各部門的質量管理工作提出建議指導跟蹤、內審、分析質量體系的運行;控制軟件和開發(fā)文檔的版本;確認軟件產品的測試結果;組織質量體系的改進。
根據能力成熟度模型(Capability Maturity Model,簡稱CMM),質量管理部可開展三個小組的話動、即SEPG(軟件工程過程小組)、SCM(軟件配置管理小組)、SQA(軟件質量保證小組)。這些小組的成員都是兼職的,是各部門的資深開發(fā)人員。在質量管理部的領導下,這些小組可以把CMM的原則運用到公司開發(fā)流程的改進中。例如分析質量體系各種過程的運行數據,提出對過程的改進方案。
質量管理部對產品質量進行確認。雖然對軟件產品的測試、檢驗是由專門的部門完成的,但質量管理部要對其進行確認,例如采購的驗收、軟件的測試等是否按程序文件的規(guī)定完成并達到規(guī)定的質量要求,開發(fā)文檔的編寫是否符合規(guī)定等。
質量管理部的一項重要工作,是控制軟件和開發(fā)文檔的版本。軟件產品的版本非常復雜,相應的開發(fā)文檔數量多、版本也很復雜,如果軟件或文檔的版本搞錯了,會給使用帶來麻煩,所以版本控制是軟件產品質量的重要部分。
對顧客滿意程度進行搜集、分析和評價是質量管理部的另一項重要工作。"以顧客為關注焦點"是ISO9000質量管理體系的八項原則之一,公司對顧客的服務的部門有市場營銷部、產品開發(fā)部、工程部等,而對顧客服務的效果、顧客滿意程度的調查、搜集、分析和評價,則應由質量管理部進行(正如運動員不能同時又是裁判一樣)。
2.基于IS09001標準和CMM原則的開發(fā)流程管理
基于ISO9001標淮,并吸收CMM的原則,制定的程序文件和指導書,以及記錄這些流程操作的記錄表格,應涵蓋合同評審、采購、項目管理、軟件開發(fā)、變更控制、設計評審、文檔控制、測試控制、不合格品控制、現場安裝、售后服務、技術支持、培訓管理等軟件開發(fā)的全過程,保證質量體系有效性的管理評審、內審、文件/記錄控制、糾正/預防措施控制等程序文件,應為各項操作提供科學合理的指導,以此構成完整嚴密的質量保證體系。
對于部分模塊外包給其它公司開發(fā),公司應首先嚴格審核承包商的資格,包括人員、設備、資質、以往業(yè)績、管理水平等,與其簽訂外包合同后,則對承包商進行相同軟件的開發(fā)過程監(jiān)控和驗收。
軟件開發(fā)同樣應建立嚴密的售后服務方面的流程,如技術支持流程、現場技術支持流程、用戶本地化技術支持流程、用戶走訪流程、用戶滿意調查等,為用戶提供全方位的、周到的服務,真正體現ISO9001"讓顧客滿意"的精神。
按照ISO 9126的定義,軟件的質量通??梢詮囊韵铝鶄€方面去衡量(定義)
·功用性(Functionality),即軟件是否滿足了客戶功能要求;
·可靠性(Reliability),即軟件是否能夠-直在-個穩(wěn)定的狀態(tài)上滿足可用性;
·可用性(Usability),即衡量用戶能夠使用軟件需要多大的努力;
·效率(Efficiency),即衡量軟件正常運行需要耗費多少物理資源;
·可維護性(Maintainability),即衡量對已經完成的軟件進行調整需要多大的努力;
·可移植性(Portability),即衡量軟件是否能夠方便地部署到不同的運行環(huán)境中。
可見,同其它產品相比,軟件產品的質量有其明顯的特殊性。
第一,很難制定具體的、數量化的產品質量標準,所以沒有相應的國際標推、國家標準或行業(yè)標淮。對軟件產品而言,無法制定諸如"合格率"、"一次通過率"、"PPM"、"壽命"之類的質量目標。每千行的缺陷數量是通用的度量方法,但缺陷的等級、種類、性質、影響不同,不能說每千行缺陷數量小的軟件,一定比該數量大的軟件質量更好。至于軟件的可擴充性、可維護性、可靠性等,也很難量化,不好衡量。軟件質量指標的量化手段需要在實踐中不斷總結。
第二,軟件產品質量沒有絕對的合格/不合格界限,軟件不可能做到"零缺陷",對軟件的測試不可能窮盡所有情況,有缺陷的軟件仍然可以使用。軟件產品的不完善可通過維護和升級問題來解決。
第三,軟件產品之間很難進行橫向的質量對比,很難說這個產品比那個產品好多少。不同軟件之間的質量也無法直接比較,所以沒有什么"國際領先"、"國內領先"的提法。
第四,滿足了用戶需求的軟件質量,就是好的軟件質量。如果軟件在技術上很先進,界面很漂亮,功能也很多,但不是用戶所需要的,仍不能算軟件質量好??蛻舻囊笮桦p方確認,而且這種需求一開始可能是不完整、不明確的,隨著開發(fā)的進行不斷調整。
第五,軟件的類型不同,軟件質量的衡量標準的側重點也不同。例如,對于實時系統而言,效率(Efficiency)會是衡量軟件質量的首要要素,對于一些需要軟件使用者(用戶)與軟件本身進行大量交互的系統,對可用性(Usability)就提出了較高的要求。
二、軟件產品質量管理的特點
1.軟件質量管理應該貫穿軟件開發(fā)的全過程,而不僅僅是軟件本身
軟件質量不僅僅是一些測試數據、統計數據、客戶滿意度調查回函等等,衡量一個軟件質量的好壞,應該首先考慮完成該軟件生產的整個過程是否達到了一定質量要求。在軟件開發(fā)實踐中,軟件質量控制可以依靠流程管理(如缺陷處理過程、開發(fā)文檔控制管理、發(fā)布過程等),嚴格按軟件工程執(zhí)行,來保證質量。例如:
·通過從"用戶功能確認書"到"軟件詳細設計"過程的過程定義、控制和不斷改善,確保軟件的"功用性";
·通過測試部門的"系統測試"、"回歸測試"過程的定義、執(zhí)行和不斷改善,確保軟件的"可靠性"和"可用性";
·通過測試部門的"性能測試",確保軟件的"效率";
·通過軟件架構的設計過程及開發(fā)中代碼、文檔的實現過程,確保軟件的"可維護性";
·通過引入適當的編程方法、編程工具和設計思路,確保軟件的"可移植性"等等。
2 .對開發(fā)文檔的評審是產品檢驗的重要方式
由于軟件是在計算機上執(zhí)行的代碼,離開軟件的安裝、使用說明文檔等則寸步難行,所以開發(fā)過程中的很多文檔資料也作為產品的組成部分,需要像對產品一樣進行檢驗,而對文檔資料的評審就構成了產品檢驗的重要方式。
3 .運用技術手段保證質量
利用多種工具軟件進行質量保證的各種工作,如用CVS軟件進行配置管理和文檔管理、用MR軟件進行變更控制、用RATIONAL ROSE軟件進行軟件開發(fā)等。采用先進的系統分析方法和軟件設計方法(OOA、OOD、軟件復用等)來促進軟件質量的提高。
4 .應用質量管理思想滿足顧客需要
·缺陷預防
一 分析過去遇到過的缺陷并采用響應的措施以避免這些類型的缺陷以后再次出現。
一 規(guī)劃缺陷預防活動。
一 找出并確定引起缺陷的通常原因。
一 對引起缺陷的通常原因劃分優(yōu)先級并系統地消除。
·緊緊扣住用戶需求
用戶分為兩種顧客(Customer)和使用者(User)。前者是付錢的,而后者才是使用者。兩者的要求有時是不同的。所以兩方面的要求都要滿足。 ·采用快速原型法,盡快演示(Demo)給用戶并及時獲取用戶的反饋,根據用戶的反饋不斷修改軟件,而不是全部完工后再最后交給用戶。否則,要改的地方可能很多。甚至推翻重來。
·充分設計之后再編碼,防止因考慮不周而返工。
·牢牢控制對缺陷的修改
要用專門的軟件,記錄和跟蹤軟件缺陷的修復。缺陷跟蹤記錄包括:發(fā)現人、缺陷描述、修復人、修復記錄、確認人、確認結論,通過后才關閉該記錄。
·充分進行軟件的系統測試
軟件編碼、單元測試、集成測試后,還要進行充分的系統測試、回歸測試,待軟件穩(wěn)定、不再出現新的缺陷后,再考慮軟件出廠。
· 恰當掌握軟件的放行標淮
并不是零缺陷的軟件才是質量高的軟件,軟件零缺陷幾乎是不可能的,對遺留的缺陷要充分進行分析,只要能滿足用戶需求,軟件遺留的缺陷可以在今后升級中解決。
三、大型軟件開發(fā)的質量管理體系
所謂"大型軟件開發(fā)",通常指那些開發(fā)過程資源消耗較大、開發(fā)時間跨度長、技術復雜的軟件開發(fā)過程。例如"集中告警監(jiān)控軟件"NetGuard"在開發(fā)過程中,需要30到40名軟件工程師花費半年左右的時間;技術上,"NetGuard"與其它多達20多家的電信設備提供商的系統的接口進行互聯,并且,作為告警集中監(jiān)控系統,實時性要求很高。大型軟件開發(fā)流程可采用螺旋式增量開發(fā)方式,示意如下:
圖中各階段的輸出點也是質量控制點,有相應的輸出文檔和軟件代碼,均需要得到QM的確認。
除了上述7個階段外,還有項目管理(PM)、變更控制、需求控制、文檔控制、用戶滿意度管理等貫穿整個流程。
軟件企業(yè)實施ISO 9001,以保證軟件產品的質量,總經理應親自抓質量體系??偨浝硪贫ㄆ髽I(yè)的質量方針和質量目標、配備足夠的人力、物力資源,明確各崗位的質量職責,并保證質量體系的運行。
1.質量管理部門的職責
由于軟件的專業(yè)性和復雜性,質量管理可實行"檢、監(jiān)、控"三分離的職責設置:"質量檢驗"部門是"系統測試部",負責軟件質量的檢驗(功能、性能測試、回歸測試等)b"質量管理部"的角色和功能定位為:在管理者代表的領導下,獨立:擴企業(yè)的運行之外、規(guī)劃、監(jiān)督、指導和改進公司質量體系的運行,檢查開發(fā)結果是否符合規(guī)定,可以更全面、客觀、公正地觀察企業(yè)的運際而各部門經理推動該部門的質量管理工作,負行政責任。
質量管理部的具體職能是:制定質量管理工作計劃;對各部門的質量管理工作提出建議指導跟蹤、內審、分析質量體系的運行;控制軟件和開發(fā)文檔的版本;確認軟件產品的測試結果;組織質量體系的改進。
根據能力成熟度模型(Capability Maturity Model,簡稱CMM),質量管理部可開展三個小組的話動、即SEPG(軟件工程過程小組)、SCM(軟件配置管理小組)、SQA(軟件質量保證小組)。這些小組的成員都是兼職的,是各部門的資深開發(fā)人員。在質量管理部的領導下,這些小組可以把CMM的原則運用到公司開發(fā)流程的改進中。例如分析質量體系各種過程的運行數據,提出對過程的改進方案。
質量管理部對產品質量進行確認。雖然對軟件產品的測試、檢驗是由專門的部門完成的,但質量管理部要對其進行確認,例如采購的驗收、軟件的測試等是否按程序文件的規(guī)定完成并達到規(guī)定的質量要求,開發(fā)文檔的編寫是否符合規(guī)定等。
質量管理部的一項重要工作,是控制軟件和開發(fā)文檔的版本。軟件產品的版本非常復雜,相應的開發(fā)文檔數量多、版本也很復雜,如果軟件或文檔的版本搞錯了,會給使用帶來麻煩,所以版本控制是軟件產品質量的重要部分。
對顧客滿意程度進行搜集、分析和評價是質量管理部的另一項重要工作。"以顧客為關注焦點"是ISO9000質量管理體系的八項原則之一,公司對顧客的服務的部門有市場營銷部、產品開發(fā)部、工程部等,而對顧客服務的效果、顧客滿意程度的調查、搜集、分析和評價,則應由質量管理部進行(正如運動員不能同時又是裁判一樣)。
2.基于IS09001標準和CMM原則的開發(fā)流程管理
基于ISO9001標淮,并吸收CMM的原則,制定的程序文件和指導書,以及記錄這些流程操作的記錄表格,應涵蓋合同評審、采購、項目管理、軟件開發(fā)、變更控制、設計評審、文檔控制、測試控制、不合格品控制、現場安裝、售后服務、技術支持、培訓管理等軟件開發(fā)的全過程,保證質量體系有效性的管理評審、內審、文件/記錄控制、糾正/預防措施控制等程序文件,應為各項操作提供科學合理的指導,以此構成完整嚴密的質量保證體系。
對于部分模塊外包給其它公司開發(fā),公司應首先嚴格審核承包商的資格,包括人員、設備、資質、以往業(yè)績、管理水平等,與其簽訂外包合同后,則對承包商進行相同軟件的開發(fā)過程監(jiān)控和驗收。
軟件開發(fā)同樣應建立嚴密的售后服務方面的流程,如技術支持流程、現場技術支持流程、用戶本地化技術支持流程、用戶走訪流程、用戶滿意調查等,為用戶提供全方位的、周到的服務,真正體現ISO9001"讓顧客滿意"的精神。
相關欄目:
相關文章:
- 1趙秀池:通州區(qū)高端產業(yè)導入存在激烈競爭
- 22015年安全工程師考試《安全產生技術》練習題(39)
- 3衛(wèi)生間地面防水隔離層隱蔽工程驗收記錄
- 4某高層住宅樓工程創(chuàng)優(yōu)細部做法及常見問題(PPT)
- 52015年我國房地產市場分析:走向分化格局
- 62015年安全工程師《安全生產法及相關法律知識》試題9
- 7朱锫:在建筑中發(fā)現那些平常卻又重要的道理
- 82015年安全工程師考試《安全生產技術》題解14
- 9深圳某綜合性建筑創(chuàng)魯班獎策劃書(魯班獎 鋼骨柱框筒混合結構)
- 10項目管理中的復盤主要做哪些事情
- 11淺談對當前代建制的體系認識
- 12質量管理,你把好你那一道關了嘛?
- 13林志宏:品質建筑設計“先行者”
- 14[天津]辦公樓項目創(chuàng)優(yōu)工程質量計劃
- 15項目質量管理:項目管理中的質量管理分析
- 16立足市場,加強陶企品牌建設迫在眉睫
- 17時評:政府搬遷,樓市就漲?
- 18時評:BIM帶來的“甜頭”
- 192015年安全工程師《安全產生法》模擬題(11)
- 20北京某科研綜合樓優(yōu)質工程策劃書(爭創(chuàng)魯班獎)
- 21項目中的財務管理
- 22彭培根:城市里不一定 到處都是高樓大廈
- 23工程施工技術檔案資料復核與檢查方法
- 24安全工程師《法律法規(guī)相關知識》習題精選(12)
- 25時評:“山寨產業(yè)園”折射“建筑之殤” 打假迫在眉睫
- 26北京節(jié)能計算表格(適用于公共建筑)
- 272015年安全工程師《安全生產法及相關知識》(30)
- 28安全工程師考試法律法規(guī)相關知識精選習題(3)
- 29馮雅:綠色建筑是住宅產業(yè)化的方向
- 30濕空氣參數計算軟件
上一篇:質量管理八項原則及其應用指南
相關系統
聯系方式
成都公司:成都市成華區(qū)建設南路160號1層9號
重慶公司:重慶市江北區(qū)紅旗河溝華創(chuàng)商務大廈18樓