




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、軟件開發管理與質量控制前 言隨著市場經濟的進一步完善及全球經濟一體化進程加快,企事業單位面臨著激烈的市場競爭,企業內部、外部信息交流已成為企業發展、參與市場經濟競爭的迫切需要。企業引入先進的信息處理技術,增加信息共享程度,不僅會提高工作效率、降低成本,而且也會提高企業管理的科學性和自動化程度。信息已成為企業生存與發展的基礎。計算機和通信技術的迅速發展,特別是Internet 技術的發展與普及,為企業內部、企業與外部提供了快速、準確可靠的信息交流渠道,信息高速公路改變了企業與企業、企業與客戶、企業內部各級決策者與管理人員以及管理人員之間的信息交流方式,有效地促進了企業各部門之間以客戶為中心的協作
2、,為企業實現經營方式、管理模式的改變奠定了堅實的基礎。信息化企業運作管理系統已成為企事業單位參與全球市場競爭的必備的支持系統。正是由于這樣市場需求與技術發展現狀,為我國的IT行業帶來了空前發展的機遇,特別是軟件行業。軟件企業能否抓住這樣一個難得的發展機會需要多方面的努力,其中軟件開發管理與質量控制在其發展中占有重要的位置。本文試圖在這方面進行初淺的分析,可供業內人士參考。 1. 國內軟件行業發展概況 1.1 發展現狀在我國,隨著信息技術產業的迅速發展及軟件版權意識的提高,軟件越來越受到了人們的關注與重視,越來越多的人把目光投到了充滿風險與利益的軟件行業。加之我國風險投資機構的逐漸形成,都將促進
3、軟件行業以比以往更快的速度發展。人們往往把IT(信息技術)產業看作風險行業,原因可能有幾個方面,其一: 這是一個飛速發展的行業,說她飛速也并不過分,只有二十幾年發展歷史的IT行業,在世界500強企業中占有重要的位置,而當今世界上最具財富的也是IT類企業。高額的回報吸引大批企業的介入,一個企業要想在這個行業有所作為沒有一個靈活而有利的團隊加之一定的規模是難以生存的。其二: 這是一個高科技領域,這個行業的技術的生命周期一般為一年到二年,高速的技術發展勢必要求大量的科研開發經費,而科研開發是有風險的,成功與失敗只是咫尺之遙。一旦失敗,無投資殘值可言。其三: 這是一個知識密集型領域,知識就是財富也意味
4、著籠絡一批人才需要付出一定的代價。但實實在在講IT行業確實是一個高速增長的行業,雖然計算機的發明已有五十幾年的歷史,IT做為一個行業的歷史也只有二十幾年,而當今世界上最具財富的是IT類的公司,足見其成長的速度。我國軟件行業大約有十年的發展史,到現在應該說也還是個很小的行業,雖然它在國民經濟中所占的份額很小,但他對我國經濟的發展,社會的進步起著很重要的作用。目前已形成一批具有一定規模的軟件公司,如以財務軟件為代表的“用友”、“金蝶”、“安易”等,及以項目開發型為特色的“東大阿而派”、“聯想系統集成”、“北大方正”等企業。軟件收入已占有一定的市場份額。發展速度驚人。 1.2. 存在的問題 我國軟件
5、行業發展的歷史較短,加之IT行業技術發展速度快,軟件開發工具層出不窮。我國的軟件行業自身發展方面確實存在一些問題。歸納起來,有以下幾方面的問題:* 軟件開發管理不規范;* 缺乏高素質的研發管理人員和研發人員;* 缺乏合格的產品經理;* 軟件產品孤立、零散,缺乏整合性;* 軟件公司規模過小; 1). 軟件開發管理不規范目前大部分軟件公司,無論是產品型公司還是項目型公司,大部分公司沒有形成適合自己公司特點的軟件開發管理模式,雖然有些公司根據軟件工程理論建立了一些軟件開發管理規范,但并沒有從根本上解決軟件開發的質量控制問題。這樣導致軟件產品質量不穩定,軟件后期的維護、升級出現麻煩,同時最終也會損害用
6、戶的利益。同時,隨著軟件開發規模及開發隊伍的逐漸增大,軟件開發不再是向過去那樣一二個開發人員即可解決的事情。迫切需要一種開發規范來規范每個開發人員、測試人員與支持人員的工作,每個項目組成員按約定的規則準時完成自己的工作。同時采用規范化管理,專業分工也可以降低對開發人員的要求,從而降低產品研發成本。 2). 缺乏高素質的研發管理人員和研發人員 目前,我國軟件市場還處于起步與發展階段,真正稱得上商品的軟件很少,絕大多數的軟件公司的規模很小,國內軟件開發人員超過100人的公司很少。軟件公司的用戶幾乎全是國內用戶,加之國內軟件專業的學校教育與實際軟件開發脫節嚴重,開發人員工作不穩定,以及技術的高速發展
7、以及開發工具的變更,導致軟件開發人員缺乏必要的技術積累,表現為整體素質偏低。同時,由于沒有合適的內部與外部環境也很難造就高水平的研發管理人員,從軟件開發到開發管理都不能適應市場的要求。 3). 缺乏合格的產品經理產品經理在軟件產品的發展過程中起著至關重要的作用,產品經理負責產品的定位與發展方向。這就要求產品經理對產品市場、用戶需求有深刻的認識與理解,需要有一定的悟性、管理經驗與能力。同時,產品經理必須了解當今IT技術的發展狀況及發展趨勢,對相關開發工具與技術應有比較深刻的理解。對于大型應用軟件的產品經理還要求其對網絡技術、電子商務及各種硬件設備有全面的了解。這樣才能保證在決定產品特性,產品框架
8、結構、市場銷售策略與服務策略時作出合理決策。從某種程度上講,產品經理是否稱職關系著其產品的存亡。目前軟件行業急需而又缺乏正是這種產品經理。 4). 軟件產品孤立、零散,缺乏整合性;國產軟件目前稱得上產品的主要以財務軟件、防病毒軟件、家庭教學軟件及一些初級的工具軟件。總的說來基本為專用型產品、滿足特定功能,即便是專用型產品其各專項子系統大多也缺乏整體考慮。大多廠家產品不具備構成大型應用系統的整合能力,目前一些公司已開始進行這方面工作。 項目型公司大多以項目為主,產品化程度比較低。不具備推廣的條件,經濟效益較差,影響公司的發展。導致軟件產品孤立、零散,缺乏整合性在很大程度上也是軟件開發管理不規范;
9、缺乏高素質的研發管理人員和研發人員;缺乏合格的產品經理;三條原因造成的。 5). 軟件公司規模過小;目前我國軟件市場還處于起步與發展階段,絕大多數的軟件公司的規模較小,國內軟件開發人員超過100人的公司很少。軟件公司的用戶幾乎全是國內用戶。但軟件作為一個行業,他需要市場的拖動,也需要外部資金的介入,外部資金的介入給它帶來的不僅僅是金錢,更重要的是也帶來了一種管理與思維方式,這也是國內軟件公司需要的。 2 工程設計與軟件開發將軟件開發作為工程來對待是有其存在意義的,在談軟件開發管理與質量控制之前,我們先看一下工程項目的整個過程。 2.1 工程設計的階段劃分工程項目從可行性研究到最后項目建成基本包
10、括如下八個階段。最后二個階段主要是考慮與軟件開發比較而劃分的,在實際的項目實施過程一般不將其作為獨立階段考慮。因此,一般的工程項目只包括六個階段。(這里所指的工程項目可以是新建一間工廠,也可以是一個建筑工程項目)但真正屬于工程設計階段的只是前四部分,以下以化工類工廠設計為例就屬于工程設計的幾個階段的要求做以簡單扼要的介紹,希望能軟件開發管理有所幫助。1) 可行性研究在可行性研究階段一般應完成如下幾方面的工作:* 項目內容定義* 項目技術分析* 項目市場分析* 項目策略* 投資與回報分析* 已有資源分析* 其它應考慮的因素 2) 方案設計方案設計可以說是可行性研究中技術可行性的擴展。方案設計級段
11、主要完成如下幾方面的工作:* 確定整個項目的技術實現。主要包括采用的工藝流程,主要及關鍵設備參數確定及設備選型。* 基本設備布置方案* 能夠確定對建筑物、水、電、氣以及采暖通風等方面的要求。* 簡單的方案說明* 粗略的項目預算* 技術的可實現性3) 初步設計初步設計是詳細設計的前提,其目的是要根據具體項目的要求,初步確定技術實現的一些細節信息,主要完成如下幾方面的工作:* 確定工藝流程中的工藝參數和主體物流及物料平衡;編寫工藝流程說明書* 絕大部分設備的選型以及非標準的確定。并完成設備布置方案。* 建筑、水、電、氣以及采暖通風各工種均需確定初步設計方案及基本的方案說明。* 較為準確的項目預算*
12、 具體的實現技術初步設計是項目設計單位與用戶交流的基礎。4) 詳細設計詳細設計是以初步設計為基礎,完成所有的技術細節工作。* 確定工藝流程中所有的工藝參數,* 完成所有設備的選型以及非標準設備的設計。并完成所有設備及管道布置等。完成所有工程實施前的準備工作。* 建筑、水、電、氣以及采暖通風各工種均需完成詳細設計圖紙。* 詳細的流程說明與使用說明* 準確的項目預算詳細設計是項目實施的基礎。5) 工程實施項目詳細設計是工程實施的基礎,按照設計要求施工是最基本的要求。同時,在項目的實施過程中還會發現詳細設計中存在的問題,可以通過向設計單位提出修改設計要求,由設計單位完成設計修改工作。項目工程實施也可
13、采用項目監理的方式,監督施工單位按設計圖紙及施工規范施工,確保施工質量。 6) 試運行工程實施完成后便是投產試車,解決其中存在的問題,便可開始項目的試運行。在以上工程項目的各個階段中,可行性研究一般由設計單位或用戶自行完成,也可委托具有該類項目評估經驗的項目咨詢機構完成。方案設計、初步設計、詳細設計由工程設計單位完成,工程實施由工程施工單位完成。2.2. 工程設計的質量控制工程項目設計從設計單位接受用戶委托,進行工程項目設計到設計任務完成,用戶在幾個環節均有參與項目質量的控制的機會,同時設計單位有嚴格的質量控制體系確保項目設計符合相關的標準與規范。在以上的工程設計質量控制體系中,在每一設計階段
14、結束時用戶均有機會參與對工程設計質量的監督與控制,設計單位與用戶溝通的媒介是工程設計圖紙及相關的設計文檔,雙方有交換意見的共同基礎。設計單位會根據用戶的意見與建議及時調整設計,以便更好的滿足用戶的需要。多年的設計經驗證明,上述的工程設計質量控制體系是科學合理的。2.3 軟件開發與工程設計之比較按照軟件工程理論,軟件開發過程基本可以劃分為如下幾個階段:* 需求分析* 總體設計* 詳細設計* 編碼設計* 模塊集成* 軟件測試* 定版發行從上面的軟件開發階段劃分不難看出,軟件開發與工程項目設計雖然看上是二類不同的工作,但他們本質上是相同的。不妨將軟件開發與工程設計的階段加以比較,不難得出上述的結論。
15、由圖3不難可以看出軟件開發與工程項目設計之間的相似性,因此將軟件開發作為工程來管理是完全可行的。2.4 軟件開發與工程設計的差異雖然軟件開發與工程設計有其相似之處,但由于其所處的領域不同,發展歷史與人文環境也有一定的差別,完全照搬工程設計的管理模式并不可取。首先比較一下工程設計與軟件開發目前各自的現狀。1). 工程設計* 有一套完備設計標準與規范;* 大量的標準化設備可供選擇;* 大量的樣板設計可供借鑒;* 一批有經驗的設計師言傳身教;* 客戶基礎素質良好; 2). 軟件開發* 歷史較短,缺乏必要的開發管理規范;* 技術發展變化快,零部件標準有待形成;* 國內軟件產品質量意識差;軟件產業化意識
16、淡薄;* 可供借鑒的樣板少;* 缺乏高素質軟件開發與管理人才;* 客戶素質較差;正是由于工程設計與軟件開發存在上述背景差異,應此在借鑒工程設計經驗的同時,必須針對軟件開發自身的特點,制定出符合企業自身的軟件開發管理模式與相應的軟件開發管理規范。這樣才有利于我國軟件行業的健康發展。 3 . 軟件開發的組織機構 無論是項目型公司還是產品型公司,從事軟件開發的組織或公司應該有一定的軟件開發組織結構。一個合理的軟件開發組織結構是確保軟件開發質量的最基本保證,各個組織各負其責,可以確保軟件開發按擬訂的質量控制規則與軟件開發計劃進行,有利于軟件公司軟件質量與成本的控制。3.1 軟件開發組織機構設置 一般而
17、言,對于產品型軟件公司,其公司內部均會有一個類似與產品管理小組這樣的一個組織,一個專門負責產品發展的產品經理部門。而項目型公司則相對簡單一些,主要是針對項目進行定制開發,一般對項目的發展方向不做控制。但從項目開發演變為可推廣產品的另當別論。一般來講,下圖4是一個典型的軟件公司軟件開發的組織機構設置。3.2 組織機構的職責分工 在上述的組織機構中,各職能組織有各自明確的責權范圍,完成各自的本職工作,各組織相互協調完成相應的軟件開發與維護工作。公司產品管理組:對于產品型軟件公司而言,軟件產品是其生存與發展的基礎,公司對新產品立項、現有產品的發展方向及有關產品發展的重大決定均需由公司產品管理組來決定
18、。公司產品管理組一般由公司的執行總裁、技術總監、市場總監、產品經理、研發經理及其他必要人員。產品管理部門 :產品管理部門是界于研發部與市場部之間的一個橋梁部門。產品管理部門的主要職責是負責產品發展策略的制定與執行,這里的執行包括軟件開發前期的市場及需求調研,完成可行性分析報告,制定產品規格。參與軟件開發項目組,并完成相關工作。* 軟件開發前期:用戶需求分析、功能描述、運行平臺與環境、市場定位、銷量預測與售價;* 軟件開發后期:產品宣傳資料、產品培訓、促銷與支持t; 研 發 部 門:研發部是軟件開發的主體,主要任務是完成軟件或的項目的開發工作。其工作內容通過各職能組實現。主要包括:* 功能規范:
19、功能規范列表及用戶界面,確保寫出用戶手冊;* 開發活動:包括設計、編碼、模塊集成、Alpha測試與文檔;* 支持工作:軟件配置管理與問題報告數據庫;* 項目計劃:定義項目里程碑;* 軟件定版:IRL,Architecture & QA:是軟件開發的質量控制機構,主要職責是負責軟件開發過程的質量控制。在軟件開發的各個階段,根據軟件開發設計規范對階段設計結果進行質量控制。及時發現問題、解決問題,確保進入下一階段的設計符合設計規范要求。實現軟件開發全程監控。Architecture & QA為非常設機構,主要由研發經理、產品經理、資深系統分析遠、測試經理等人員組成。根據項目進展需要,
20、由研發經理召集進行項目階段評審。軟 件開 發 組: 主要由各種角色的開發人員構成,完成開發任務。CMO:(Configuration Management Officer)軟件配置管理,對于一個具有一定規模的軟件公司都會有一個軟件配置管理機構,對于小型公司一般由項目經理帶管,CMO的主要職責是進行軟件開發過程中的軟件配置管理,以及軟件定版后的維護管理。在軟件開發過程中,由于多個開發人員協同工作,需要對其工作協同管理,確保協同工作的順利進行。同時,由專人進行配置管理,使得大部分開發人員不會得到全部原代碼,也有利于軟件公司的安全保密工作。在軟件定版后,由于軟件的Bugs,功能的完善及各種原因導致的
21、對軟件的修改,版本的控制就顯得極為重要,軟件配置管理可以確保得到不同時間的軟件版本。 軟 件 測 試 組 :軟件是軟件工程的重要組成部分,軟件測試組承擔的工作主要是測試。測試模塊與集成測試由軟件開發人員完成。對于項目軟件開發,用戶的計算機技術人員參加到軟件測試與支持工作組,使用戶參與整個軟件的測試工作中。確保交付的應用系統是用戶可信賴的系統。在以上的軟件開發組織機構中,不論公司規模的大小,以上的各個職能應該是健全的。明確的責任分工有利于軟件開發的順利進行于質量控制,同時,也必將有利于公司的成本控制,降低軟件開發風險。3.3 軟件開發項目組的角色 一般來講,一個軟件開發項目組是由多個不同角色的人
22、員構成,每種角色在軟件開發中起不同的作用,各個不同角色的人員協同工作,完成軟件開發工作。典型的軟件開發項目組由下列角色構成,如圖5所示在軟件開發項目組中一般有六種角色,他們是:產品管理程序開發程序管理測試及質量保證用戶培訓后勤支援在大型軟件開發項目中,可以將每個角色賦予不同的個人。對小型項目,一個人可以肩負多個不同的角色。每種角色的人員在項目中起著同等重要的作用。每種角色都有其特定的任務及技能要求。產品管理:產品經理負責建立及更新項目的商業模型,在確定及設置項目目標方面起關鍵作用。產品經理應確保項目成員清楚理解項目商業目的,并根據商業需求的優先級確定功能規范。同時,產品經理負責高層的項目溝通,
23、如:商業項目的成本核算、合同洽談,及向相關人員通報項目進展等。程序管理:程序經理負責確定軟件特色及功能規范,根據軟件開發標準協調日常開發工作確保及時交付開發任務。協助產品經理完成項目需求文檔,并根據需求文檔起草軟件功能規范。同時負責與系統分析、規范及框架結構有關的各種活動。管理與協調與外部標準與系統的互操作性,控制項目進度。程序經理是項目組成員間溝通與協調的核心。程序開發:開發隊伍負責交付符合功能規范的軟件系統。開發隊伍應積極參與功能規范的制定,在建立項目原型時開發人員與程序經理可以同步進行并提供技術可行性。在功能規范確立后,開發人員必須與程序經理就如何解決重大疑難問題達成一致。測試與質量保證
24、:測試與質量保證是保證系統符合功能規范的保證。為保證“零誤碼”測試/QA人員應積極參與開發過程,確保開發出交付符合功能規范的軟件系統。測試/QA人員負責準備測試計劃、測試用例、自動測試程序、執行測試工作、管理并跟蹤Bug。測試工作與開發工作是獨立并行的。用戶培訓:培訓人員負責設計編寫離線及在線培訓文檔,包括演示材料。用戶培訓人員應參與用戶界面和系統的設計與構造,并參與安裝程序與安裝過程的設計。參與系統的可用性測試及設計改進,與程序管理與開發有密切的關系,并確保系統的變化及時反映到文檔中去。后勤支援:后勤支援包括確保項目順利進行的各方面工作。對于一個項目組,建立一個良好的團隊氛圍是非常重要的,每
25、個角色在項目中都是不可缺少的,項目的成功是團隊成員共同努力的結果。鼓勵成員的積極進取、高效、參與的團隊精神,提高成員的責任感,避免造成團隊或項目的成功依賴于少數個人的貢獻。 3.4 開發組人員構成 根據軟件開發項目組織的角色劃分,對于中等以下規模的軟件開發項目組基本包括如下幾類人員: 產品管理人員:(產品管理與用戶培訓角色) 軟件開發人員:(程序管理與開發角色 ) 軟件測試人員:(測試角色 )一般而言,產品管理人員同時擔負用戶培訓的角色。程序管理角色一般由項目經理承擔,而隊后勤支持角色一般由研發部和公司統一承擔,或由公司的信息系統管理人員協助完成。圖6表示項目組的人員結構及承擔的相關工作。3.
26、5 開發人員技術結構 宏觀上講,軟件開發機構基本可分為二種角色,管理角色和技術角色。不同角色各有其不同的發展方向,如圖7所示。不論是走技術路線還是管理路線,不存在那種角色地位更高的問題。高級架構設計師與部門經理具有同等的地位與待遇。 4. 軟件開發的階段劃分及目標軟件開發進行階段劃分主要有以下三方面優點:1) 有利于軟件質量控制;2) 便于項目進度控制與管理;3) 有利于項目成本費用控制;4.1 軟件開發的階段劃分雖然軟件開發與工程設計有其相似之處,但由于其所處的領域不同,發展歷史與人文環境也有一定的差別,完全照搬工程設計的管理模式也存在一些弊端。下面就國外流行的軟件開發模式與工程設計理論及原
27、始的軟件開發做以簡單比較,見圖8。原始的軟件開發模式很是簡單,有些項目連需求分析都不完整,軟件測試只是相當于模塊集成一級的測試,沒有規范的軟件測試。軟件質量取決于編程者個人的技術水平,質量無法保證,也很難控制。在滿足用戶需求方面取決于編程者個人的理解,軟件交付后經常發生大面積的修改。項目似乎完成得很快,交付后大面積的修改經常導致延誤工期,修改后的軟件缺乏必要的測試手段,往往導致極大的售后服務支持成本。造成項目表面贏利、實際虧損的局面。軟件工程理論指導下的軟件開發管理模式也存在一定的問題,那就是有些環節的可操作性較差,主要表現在需求分析到總體設計這個環節。需求分析是文檔性的描述,一般是軟件開發人
28、員對用戶需求的一種理解,這種文字描述一般很難精確可視地展現未來軟件的情況,而用戶也很難說清楚自己的需求,這就使得用戶很難鑒別需求分析的精確性。往往導致軟件交付后的大量修改。有一篇“Client / Server軟件開發常犯錯誤”的文章說得好,“用戶不知自己需要什么樣的系統,但知道不要什么樣的系統”。為避免軟件開發中需求分析到總體設計這個環節的歧異性問題,目前,國際流行的軟件開發模式中增加了FS+UI(功能規范和用戶界面)這個環節,這個環節不但解決了用戶在需求分析理解上的困難,同時也解決了軟件開發過程各種角色人員的并行工作問題,便于軟件開發工期的縮短,有利軟件開發質量與成本的控制 FS+UI(功
29、能規范和用戶界面)見后面章節 。4.2 軟件開發各階段目標以下就軟件開發階段劃分的各階段的任務與目標做以簡單描述,這是軟件公司進行質量控制的基礎。 1) 可行性分析 可行性分析是軟件項目立項的必要階段,對于項目型軟件開發,可行性分析一般由用戶自行完成,軟件公司基本在技術上給予必要的支持。對于產品型軟件開發,可行性分析是非常重要的一環,產品采用的技術、市場定位與銷售策略等直接關系著產品的生存與發展。可行性分析基本包括如下幾個方面的內容,A. 項目定義:項目定義主要是對產品定位有一個大致的描述,鉤畫出該軟件產品的運行環境、產品功能、用戶特征以及制約因數進行全面的描述,以便下一步工作的展開。B. 技
30、術分析: 此處的技術主要包括軟件的開發環境與運行環境所涉及的各方面技術,在此應對這些技術的發展狀況,成熟情況及未來的技術走勢應有細致的闡述。 C. 市場分析: 包括國內外行業發展現狀、市場格局、發展趨勢,在市場容量統計數據的基礎上,推測我們產品可能的市場占有率及銷售情況。D. 產品策略: 產品策略包括產品的技術策略與產品的市場策略。E. 投資與回報分析:項目投資總額、項目成本核算、項目收益、投資回報等。F. 已有資源分析:包括資金資源、人力資源、技術資源等的分析。G. 其它應考慮的因素 2) 需求分析需求分析是軟件項目正式實施開始的第一個階段,需求分析應該遵循可行性分析確定的基調,包括技術路線
31、、產品基本功能、產品運行環境及市場定位。需求分析主要應完成對用戶應用流程的描述,即完成商業邏輯分析。并根據商業邏輯的需要確定軟件的功能列表及描述。 3) FS+UIA. 總體描述,包括應用平臺及應用限制,.B. 功能列表C. 用戶界面FS+UI的合格與否取決于能否完成以下二方面的工作。 完成用戶手冊的編寫! 準備測試計劃、測試用例及確定驗收標準!FS+UI是產品管理部門與軟件開發部門的接口,對于項目型開發是軟件開發商與用戶責任劃分的重要依據,FS+UI不同于需求分析,它提供給用戶的是一個清晰可見的用戶界面與完整的功能說明,方便用戶的理解與確認。軟件開發據此進行下一步工作就有了堅實的基礎,避免軟
32、件交付后的大量修改工作,有利于軟件質量與進度的控制。同時,便于軟件開發并行工作的展開。FS+UI是軟件總體設計及軟件測試的基礎。 4) 總體設計總體設計的依據是FS+UI文檔,其目的是根據FS+UI要求,依據具體采用的開發工具與技術平臺確定軟件實現的對象關系與數據庫結構。并非項目組每個成員均參加總體設計,一般來講,一般中小項目總體設計為一到二個人,中大型項目一般為一個總體設計小組,由項目總設計師負責將項目進行分解為可操作的大小,交由不同設計小組完成相關功能的總體設計,總設計師負責協調各子項之間的協調關系,從而完成大型的總體設計。總體設計設計深度情況直接影響下一步的詳細設計。過細的總體設計也是不
33、必要的,少量的人員進行過細的設計必然影響整個項目的設計周期,而過粗的總體設計當然也不利于詳細設計設計任務的分配與設計展開。總體設計是軟件詳細設計及軟件集成測試的基礎。5) 詳細設計詳細設計是總體設計的繼續,主要目的是完成總體設計完成的對象內部的商業邏輯的實現設計,在總體設計完成后可以將不同的設計對象交由不同的設計人員來完成。原則上講,在開始軟件編碼之前應完成所有的設計細節,避免在編碼中進行設計工作。詳細設計是編碼及軟件模塊測試的基礎。6) 編碼編碼是軟件詳細設計的一種再現,編碼中最重要的是要遵從相關開發工具的設計規范及數據庫設計規范,另外,養成一個良好的編程習慣是一個軟件公司和軟件編程人員最基
34、本的職業素質。對于軟件應用可靠性要求嚴格的案例,所有軟件模塊必須通過模塊測試,對一般應用軟件中的重要模塊也應進行模塊測試。7) 集成集成是軟件開發中重要的一環,集成測試的依據是軟件的總體設計。如果缺乏前期的模塊測試,必然會導致集成時間的加長,同時也會加重后期的測試及問題處理的工作量。8) 測試測試是在軟件集成結束后軟件開發進入的下一個環節,它標志著軟件開發從設計級段進入軟件測試階段。一般情況下,軟件開發從設計進入測試是通過CMO來完成這一過程。為完成測試,測試部門一般包括如下幾個方面的工作。 編制測試計劃 編制測試用例 測試執行 測試結論(包括問題報告)一般而言,測試工作基本上可以分為如下幾個
35、輪回:測試是軟件公司對自身產品的一次自我測試,測試結束后,測試部門會提供一個軟件測試評價報告,這個評價報告在某種程度上決定了該軟件是否適應商業銷售。 一般來講,軟件通過測試并不意味著軟件沒有任何問題,只是意味軟件通過了可接受測試條件。軟件測試的問題報告是軟件公司售后服務與產品升級的重要參考因素之一。9) 問題處理與設計文檔改進問題處理是軟件開發組交付測試后的重要任務之一,及時解決軟件測試過程中發現的問題,以便進行下一輪測試。軟件開發人員在交付測試后的另一重要任務就是將編碼過程中對設計的修改及時反映到總體設計文檔和詳細設計文檔中去,確保定版的軟件與其設計文檔的一致性。10) IRL內部定版測試合
36、格的軟件在軟件開發部內部定版,進入產品的組裝或測試,及產品銷售。對項目型軟件開發,則進入系統的實施級段。5 過程管理與質量控制標準化5.1 軟件開發過程管理傳統的軟件開發一般遵循的是瀑布過程模型,一個階段的結束是下一個階段的開始。這種模型不適合基于對象、分布式的企業應用開發。部件的開發具有并行性,而非順序性。另外,瀑布進程模型缺乏靈活性,不適應快速原型開發工具的要求。基于里程碑的過程模型引進迭代過程模型,允許開發任務的重疊和反復,可以很好適應基于部件的軟件開發。基于里程碑的過程模型便于團隊模型中責權的劃分。便于風險評定,鼓勵快速交貨。1) 里程碑過程模型的特征:A. 里程碑過程:軟件開發過程是
37、由指導開發進程的外內部里程碑所驅動的。B. 明確責權關系:過程模型將每個里程碑與開發組的責任角色相關聯。C. 風險驅動的計劃安排:高風險部件應盡早完成。D. 評估說明:評估說明直接影響著項目的計劃與管理,在整個軟件開發過程中致關重要。2) 里程碑的制定里程碑也可以稱作項目實施計劃。對于軟件開發項目而言,一但項目立項確定,需要做的第一件事情就是確定項目實施的里程碑。根據前面我們確定的軟件開發階段劃分,在里程碑中應清楚地定義每一個階段的開始時間、結束時間、負責人,階段的提交成果由各階段的軟件開發規范確定。里程碑是公司對進行項目控制的主要依據。里程碑一旦確定,各相應負責人應確保按時交付任務。對于各不
38、同里程碑階段可以根據需要制定階段里程碑,階段里程碑一般由開發組織內部確定以便于更好管理與控制項目的進程。達到某個里程碑表明對此負有主要責任的角色完策任務。便于明確各個角色責權范圍、有利于按時完成任。軟件開發里程碑主要包括如下階段:3) CMO 軟件配置管理為確保軟件及其文檔的一致性,進行軟件配置的管理是必要的。 5.2 質量控制體系軟件開發階段劃分的目的是為了便于形成基于里程碑的軟件開發質量控制體系,每個里程碑都是一個質量控制結點,這些質量控制結點貫穿于整個軟件開發全過程,從而構成軟件開發的質量控制體系。基于里程碑的軟件開發質量控制體系可以用圖11表示。圖12表示軟件開發階段目標與質量控制的關
39、系每個具體的里程碑與軟件開發組某一具體的角色相關聯,不同的角色則隸屬于不同的業務部門,而人員業績的評估與管理歸屬各自的業務部門,因此,基于里程碑的軟件質量控制必然會演變成對角色的質量控制,這樣才能真正達到對軟件質量的控制。基于角色的質量控制體系詳見圖13在軟件開發的六種角色中,一般規模的軟件公司都會將其做以歸類,圖13是基于常見的軟件開發任務劃分方式形成的基于角色的質量控制模型。5.3 根據軟件開發的階段劃分及基于里程碑的項目管理模式,貫穿于整個軟件生命周期中的軟件開發規范基本包括如下規范:1) 可行性分析規范 (FS)2) 需求分析規范 (RS)3) 功能說明規范 (FSS)4) 用戶界面規
40、范 (UIS)5) 總體設計規范 (GDS)6) 詳細設計規范 (DDS)7) 程序編碼規范 (CS)8) 軟件測試規范 (TS)以上規范在軟件開發階段劃分章節已有簡單描述,此處不再介紹。5.4 階段審核制軟件開發階段審核制是采用基于里程碑管理模式的必然產物。在每個里程碑結束時公司質量控制機構(QA)根據相應的軟件開發管理規范及應用要求對階段成果進行評議控制,確保應用開發的順利進行,及交付的應用系統能夠滿足用戶的使用需要,確保交付的系統能夠代表公司的整體技術水平。同時也有利于規避軟件開發風險。6. 軟件維護與版本控制無論是項目型軟件開發還是產品型軟件開發,軟件的維護與版本控制都是必須值得重視的
41、。因為任何一個軟件產品或一個應用軟件開發項目或多或少存在一些值得改進的問題,這些問題可能是程序的Bug,也可能是因不能滿足用戶需要迫切需要改進的地方,對于交付運行的軟件進行后期維護成為軟件公司必不可少的工作。而由于后期維護所造成對已定版軟件的修改的管理是致關重要的。6.1 軟件維護與版本控制的意義軟件維護與版本控制的目的有三點:1). 解決由于問題處理帶來對已定版軟件的版本升級等管理問題,確保可以提供某一特定時間的版本,為用戶提供滿意的售后服務。2). 解決軟件開發過程中的版本控制問題,有利于團隊開發的協同工作問題,也有利于公司對開發項目的版本控制及知識產權的保護。3). 良好的版本控制與管理,有利于新版軟件的開發工作的進行。確保軟件產品循環漸進,逐步提高。6.2 開發過程的版本控制軟件開發過程中的版本控制一般都是基于特定的開發工具和特定的版本控制管理工具,現在絕大部分的軟件開發工具均提供這方面的功能。如Microsoft Visual Source Safe (簡稱VSS),IBM Visual 系列開發工具等,版本控制的原理大同小異,以下以VSS為例介紹軟件開發過程的版本控制模型。軟件配置管理包括軟件開發過程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 機器設備租賃合同
- 酒店宴會廳租賃協議
- 2025年度金融公司合同保密協議模板
- 山西同文職業技術學院《醫學信息收集與信息處理》2023-2024學年第一學期期末試卷
- 邵陽工業職業技術學院《電路原理B》2023-2024學年第二學期期末試卷
- 物流司機雇傭合同
- 吉林省長春市“BEST合作體”2025屆高三第九次適應性考試英語試題含解析
- 佳木斯市東風區2024-2025學年五年級數學第二學期期末統考試題含答案
- 山東體育學院《網絡文學》2023-2024學年第二學期期末試卷
- 四川省自貢市富順縣2024-2025學年第二學期初三年級一模考試數學試題試卷含解析
- 國家開放大學《人文英語3》章節測試參考答案
- 中國暈厥診斷與治療專家共識(2014 )
- 長途大客車總布置設計
- Q∕GDW 10799.6-2018 國家電網有限公司電力安全工作規程 第6部分:光伏電站部分
- T∕CAAA 002-2018 燕麥 干草質量分級
- 一年級《20以內的加減法填括號口算題(共100道)》專項練習題
- 方格網計算步驟及方法
- 課題評分表(共1頁)
- 六年級趣味數學(課堂PPT)
- 詢價單(模板)
- 關于我縣二次供水調研報告
評論
0/150
提交評論