版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
軟件工程
第二版
教材配套光盤
楊文龍古天龍譚火彬
電子工業(yè)出版社2006-11第6章軟件質(zhì)量與質(zhì)量保證2內(nèi)容安排軟件質(zhì)量軟件質(zhì)量保證技術(shù)方法和工具的選用正式技術(shù)評審的實(shí)施多層次的軟件測試(放在“軟件測試”介紹)標(biāo)準(zhǔn)的執(zhí)行文擋及其修改(變更)的控制(交付后的維護(hù)放在“軟件維護(hù)”介紹)度量SQA小組的活動案例介紹3軟件工程講義-6.1軟件質(zhì)量意義和定義一,軟件質(zhì)量的意義保證軟件質(zhì)量是軟件工程的首要任務(wù)必須嚴(yán)格定義軟件質(zhì)量的內(nèi)涵明確軟件質(zhì)量保證的策略建立一組軟件質(zhì)量的保證活動并付諸實(shí)施及不斷進(jìn)行改進(jìn)和完善4軟件工程講義-
軟件質(zhì)量的定義
二,軟件質(zhì)量的定義1,與明確確定的功能和性能需求的一致性2,與明確成文的開發(fā)標(biāo)準(zhǔn)的一致性3,與所有專業(yè)開發(fā)的軟件所期望的隱含的特性的一致性5軟件工程講義-6.2軟件質(zhì)量因素1,可直接度量的因素2,只能間接度量的因素3,度量和量度度量(Measurement)度量是對開發(fā)過程進(jìn)行檢測,以提高開發(fā)過程的質(zhì)量和勞動生產(chǎn)率量度(Metrics)量度是度量的結(jié)果或度量中一個項(xiàng)的抽象表示,做為評價質(zhì)量和勞動生產(chǎn)率的基礎(chǔ)6軟件工程講義-量度模型-Boehm模型7軟件工程講義-量度模型-McCall模型8軟件工程講義-量度模型-ISO模型9軟件工程講義-各因素間的影響10軟件工程講義-6.3軟件質(zhì)量保證的策略和活動
一、質(zhì)量保證策略以檢測為重點(diǎn)這是最早,也是最基本的策略,即產(chǎn)品制成以后才進(jìn)行檢測。這種檢查只能判斷產(chǎn)品質(zhì)量,但不能提高產(chǎn)品質(zhì)量以過程管理為重點(diǎn)即把質(zhì)量的保證工作的重點(diǎn)放在過程管理上,對制造過程中的每一道工序都要進(jìn)行質(zhì)量控制以新產(chǎn)品開發(fā)為重點(diǎn)因?yàn)榧窗奄|(zhì)量融進(jìn)產(chǎn)品的開發(fā)設(shè)計中。因?yàn)樵S多產(chǎn)品的質(zhì)量問題不是來自生產(chǎn)線的一道道工序中,而是源于新產(chǎn)品的開發(fā)設(shè)計階段。因此,在新產(chǎn)品的開發(fā)設(shè)計階段就應(yīng)采取強(qiáng)有力的措施,來消滅由于設(shè)計原因產(chǎn)生的質(zhì)量隱患11軟件工程講義-二、軟件質(zhì)量保證活動1技術(shù)方法和工具的選用2正式技術(shù)評審的實(shí)施3多層次軟件測試4標(biāo)準(zhǔn)的執(zhí)行5文檔及其修改的控制6度量和報告制度7記錄和記錄保存8SQA小組活動12軟件工程講義-6.4技術(shù)方法及工具的選用一、采用或不采用軟件工程方法軟件工程從1968年提出至今,軟件工程中許多技術(shù)已變得成熟。軟件工程知識體(SWEBOK)已被定義,軟件工程多個部分已有ISO標(biāo)準(zhǔn),軟件工程的發(fā)展趨勢和新技術(shù)已初顯端貌。問題:是否真正掌握軟件工程的實(shí)質(zhì)(運(yùn)用系統(tǒng)的、規(guī)范的和可定量的方法開發(fā)、運(yùn)行和維護(hù)軟件)?并在實(shí)際工作中付諸實(shí)施!當(dāng)然,軟件工程也不是包醫(yī)百病的靈丹妙藥!但目前的主要問題是,許多軟件企業(yè)不遵循軟件工程的思想操作。13軟件工程講義-二、開發(fā)過程的選用1、瀑布模型2、瀑布模型的改進(jìn)與延伸(1)原型(2)螺旋模型(3)4GT(4)混合模型3、迭代、增量到統(tǒng)一的軟件開發(fā)過程4、形式化開發(fā)模型5、Web服務(wù)14軟件工程講義-瀑布模型瀑布模型是最早提出來的軟件工程開發(fā)模式。這是一種系統(tǒng)的、分階段的線性過程這種開發(fā)過程最大的問題是要求一開始就是正確的,而且始終不變。顯然這是永遠(yuǎn)做不到的,也是違反自然規(guī)律的。另一問題是開發(fā)人員相互等待導(dǎo)致開發(fā)工作的阻塞現(xiàn)象,尤其在開發(fā)的開始和結(jié)束階段盡管如此,它不僅在歷史上起過重要作用,而且至今仍占有重要位置。它提供了一個模板,使分析、設(shè)計、編碼、測試和維護(hù)可在該模板指導(dǎo)下應(yīng)用。所以它仍然是軟件工程中應(yīng)用最廣泛的過程模型15軟件工程講義-瀑布模型的改進(jìn)與延伸-原型原型、螺旋模型、4GT和混合模型都是瀑布模型的改進(jìn)和延伸原型開發(fā)確實(shí)是為解決瀑布模型中的不確定和可變性問題而提出來的一種辦法。它與瀑布模型的不同之處,其系統(tǒng)開發(fā)不是一次完成,而是先給出一個可執(zhí)行的系統(tǒng)樣品,交用戶評價和挑剔,然后修改,直到用戶滿意為止問題是開發(fā)者很可能為了快速和亷價地獲得一個工作系統(tǒng),而對系統(tǒng)的質(zhì)量缺少考慮。這樣的原型只能堅決拋棄,并重新設(shè)計,代價太大所以有人又提出了演化式原型(高度迭代和高度動態(tài))和增量式原型(在總體設(shè)計的基礎(chǔ)上逐步完成),它們在用戶用后不被拋棄,使其演化或增量為最終系統(tǒng)拋棄主要用于輔助分析和確定用戶需求,以及解決系統(tǒng)任何部位的不確定性問題。演化可以作為一種開發(fā)方法。增量可以作為瀑布模型開發(fā)的補(bǔ)充16軟件工程講義-瀑布模型的改進(jìn)與延伸-螺旋模型螺旋模型也是一種演化過程模型。它把瀑布模型的系統(tǒng)的、階段的和順序的控制與原型中的迭代和增量開發(fā)結(jié)合起來,并用風(fēng)險分析來控制和管理風(fēng)險這種方法更加真實(shí)地反映了現(xiàn)實(shí)世界和人類解決復(fù)雜問題的思誰方法但這種方法的成敗,很大程度上取決于風(fēng)險分析技術(shù)的好壞和成熟程度17軟件工程講義-瀑布模型的改進(jìn)與延伸-4GT4GT的最大特點(diǎn)是擁有一組工具。每個工具都能使軟件開發(fā)人員在高層上定義軟件的某些特性,并由這些特性自動生成源代碼。由此來減少軟件開發(fā)時間和提高軟件開發(fā)效率4GT主要問題是,目前只用于事務(wù)處理應(yīng)用程序。另外,4GT在實(shí)現(xiàn)產(chǎn)品以后,要進(jìn)行“徹底”的測試,還要有數(shù)據(jù)庫的支持。而對于一些較大的應(yīng)用程序,還必須先制定一個系統(tǒng)的設(shè)計策略,否則難以完成必須指出,使用4GT也會產(chǎn)生瀑布模型開發(fā)中遇到的同樣問題將4GT與基于構(gòu)件的開發(fā)方法結(jié)合起來,很可能成為軟件開發(fā)的一種主流方法18軟件工程講義-瀑布模型的改進(jìn)與延伸-混合模型目前,任何一個軟件開發(fā)企業(yè)都采用混合模型開發(fā)軟件。混合模型在第二章中已經(jīng)介紹過,它是把幾種軟件開發(fā)模式組合起來,允許一個項(xiàng)目根據(jù)項(xiàng)目的特征和要求及企業(yè)自身的開發(fā)條件(技術(shù)的和管理的)選擇一條最有效的路徑這種模式的好處是:給企業(yè)的管理者和開發(fā)摸者提供了一個舞臺,使每個模型的長處都得到發(fā)揮。但必須認(rèn)識到,它對企業(yè)的管理者和技術(shù)人員提出了更高的要求19軟件工程講義-迭代、增量到統(tǒng)一開發(fā)過程自從OO技術(shù)于20世紀(jì)90年代逐步走向?qū)嶋H應(yīng)用,才真正為迭代和增量到統(tǒng)一的開發(fā)過程奠定了堅實(shí)的技術(shù)和組織基礎(chǔ),也為重用技術(shù)和基于構(gòu)件的開發(fā)模式提供了條件現(xiàn)在ISO/IEC(國際標(biāo)準(zhǔn)化組織和國際電工委員會)已制定了統(tǒng)一開發(fā)過程的標(biāo)準(zhǔn):ISO/IEC
12207(Standardforinformationtechnology-softwarelifecycleprocess)和ISO/IECTR15504informationtechnology-softwareprocessassessment)。它們對開發(fā)組織、購買者、獲取者、管理者和評估者都有了應(yīng)遵循的依據(jù)20軟件工程講義-開發(fā)過程的選用小結(jié)軟件過程的采用決定于要開發(fā)產(chǎn)品的類型、性質(zhì)和特點(diǎn)。不同的產(chǎn)品應(yīng)有不同的過程,不能只從技術(shù)角度來評價它們的優(yōu)劣。如一個科學(xué)和工程計算系統(tǒng)可用瀑布模型或形式化開發(fā)方法;一個事務(wù)處理系統(tǒng)可用原型;而一個Web站點(diǎn)可用演化模型這部分門內(nèi)容極為重要。因?yàn)殚_發(fā)過程的不同,不僅對軟件開發(fā)和維護(hù)的質(zhì)量和勞動生產(chǎn)率有重大影響,而實(shí)現(xiàn)時所采用的方法、語言和工具也不完全相同21軟件工程講義-Web服務(wù)Web服務(wù)模式的本質(zhì)是“出租”,軟件開發(fā)模式的本質(zhì)是“開發(fā)”。它們是完全不同性質(zhì)的事物,沒有可比性。所以,不在這里討論如果一個系統(tǒng)不采用自主開發(fā),而是通過Web服多公司租賃系統(tǒng),那就要了解和掌握這領(lǐng)域的知識。否則,不僅不能與Web服務(wù)公司簽訂好租賃合同,而且也無法用好Web服務(wù)公司提供的服務(wù)22軟件工程講義-三、開發(fā)方法、語言和工具的選用開發(fā)方法提供了構(gòu)造軟件的技術(shù)語言用以支持軟件的分析、設(shè)計和實(shí)現(xiàn)工具為開發(fā)方法和語言提供自動化或半自動化的支持什么樣的軟件開發(fā)過程就有什么樣的方法、語言和工具23軟件工程講義-(一)開發(fā)方法結(jié)構(gòu)化開發(fā)方法面向?qū)ο螅∣O)的開發(fā)方法形式化開發(fā)方法24軟件工程講義-1、形式化開發(fā)方法在軟件工程中研究的形式化開發(fā)方法,不是計算理論研究中的“符號十抽象公理化”的數(shù)學(xué)方法,這是由離散數(shù)學(xué)、邏輯學(xué)等課程去解決我們介紹的形式化開發(fā)方法則是用于軟件系統(tǒng)設(shè)計中的數(shù)學(xué)建模、數(shù)學(xué)驗(yàn)證和數(shù)學(xué)程序求精技術(shù)形式化開發(fā)方法的最大優(yōu)勢它提供了一種機(jī)制,能夠消除使用非形式化方法中存在的二義性、不完整性和不一致性等問題它不是通過人工的評審,而是通過數(shù)學(xué)的計算不僅提高了開發(fā)質(zhì)量,還提高了開發(fā)效率形式化開發(fā)方法的最大問題開發(fā)方法本身還不能確保開發(fā)出來的軟件都正確還不能做到支持生存期各個階段的形式化對開發(fā)機(jī)構(gòu)的開發(fā)人員、管理人員和用戶的數(shù)學(xué)素質(zhì)有很高的要求。目前多數(shù)開發(fā)機(jī)構(gòu)和用戶一時還難以做到25軟件工程講義-2、結(jié)構(gòu)化與OO開發(fā)方法Meyer提出的一個設(shè)計方法實(shí)現(xiàn)模塊化能力的五條判斷準(zhǔn)則:(1)分解性、(2)組合性、(3)可理解性、(4)連續(xù)性、(5)保護(hù)性從這五條準(zhǔn)則出發(fā),Meyer提出了模塊結(jié)構(gòu)五條基本設(shè)計原則:(1)語言(linguistic)模塊單元、(2)少的接口、(3)小的接口(弱的耦合)、(4)明確的接口、(5)信息隱藏這些設(shè)計原則適用于任何設(shè)計方法。但我們可以看到:OO設(shè)計方法比任何其它方法都更能有效地實(shí)現(xiàn)這些原則。盡管OO對象中的數(shù)據(jù)和操作仍以結(jié)構(gòu)化的方法為基礎(chǔ)來實(shí)現(xiàn)隨著時間推移,將會有更多的機(jī)構(gòu)和開發(fā)人員使用OO開發(fā)方法26軟件工程講義-(二)語言1、規(guī)格說明語言2、設(shè)計語言3、原型開發(fā)語言4、編程語言27軟件工程講義-1、規(guī)格說明語言軟件規(guī)格說明語言(specificationlanguages)記錄軟件規(guī)格說明它是對軟件系統(tǒng)或它的一個構(gòu)件行為的黑盒子描述為復(fù)雜的行為提供了一種簡單的抽象描述。黑盒子描述:是根據(jù)進(jìn)出黑盒子邊界的數(shù)據(jù)來說明的,它不涉及黑盒子內(nèi)部的機(jī)制在第五章的形式化開發(fā)方法中介紹了這種語言(基于代數(shù)的和基于邏輯的)。好處是它的精確性和自動化的潛在性。28軟件工程講義-2、設(shè)計語言軟件設(shè)計語言(designlanguages)記錄軟件設(shè)計。它是對軟件系統(tǒng)或構(gòu)件的一種白盒子描述也就是把一個構(gòu)件分解為一些更低層構(gòu)件的描述并根據(jù)數(shù)據(jù)和控制來定義它們之間的相互聯(lián)系設(shè)計語言與規(guī)格說明語言的區(qū)別設(shè)計語言用于定義分層的結(jié)構(gòu)和構(gòu)件間相互聯(lián)系的描述而規(guī)格說明語言用于定又每個構(gòu)件的接口設(shè)計語言與編程語言的區(qū)別設(shè)計語言的主要目的是文檔(描述算法和數(shù)據(jù)結(jié)構(gòu),還要描述證明、假設(shè)和約定)編程語言則要包含所有的以獲得一個有效的可執(zhí)行系統(tǒng)29軟件工程講義-3、原型開發(fā)語言原型開發(fā)語言(prototypinglanguages)使用黑盒子和白盒子的描述來定義一個系統(tǒng)的可執(zhí)行模型但是原型開發(fā)語言不要求給出系統(tǒng)各構(gòu)件的詳細(xì)算法,只要它是可描述的和可執(zhí)行的即可原型開發(fā)語言與編程語言的區(qū)別:編程語言經(jīng)過優(yōu)化,能夠生成一個時空效率都很高的工作系統(tǒng)原型開發(fā)語言可在犧牲執(zhí)行效率的情況下,能支持簡單和抽象系統(tǒng)的描述、信息的局部化、重用和適應(yīng)性,它應(yīng)方便地紀(jì)錄規(guī)格說明和設(shè)計信息,并以其最終產(chǎn)品必須是可執(zhí)行的為限制條件原型開發(fā)是一種快速構(gòu)造可執(zhí)行軟件系統(tǒng)模型的方法,這種模型叫做軟件快速原型30軟件工程講義-原型開發(fā)語言(續(xù))如何解決原型語言的可執(zhí)行問題一種基于元編程,是把原型開發(fā)語言看成是現(xiàn)有軟件的改編和相互連接,實(shí)際上是一種重用技術(shù)另一種為可執(zhí)行規(guī)格說明,它的基本思想是:如果規(guī)格說明是形式化的,而且具有操作語義,那么就有可能構(gòu)造一個能直接執(zhí)行的系統(tǒng)31軟件工程講義-4、編程語言編程語言(programminglanguages)記錄編程編程就是用編程語言把對軟件的設(shè)計表達(dá)式翻譯為計算機(jī)能夠“懂得”的形式這是計算機(jī)發(fā)展至今使用的最主要的方法,也是大家最熟悉的語言32軟件工程講義-編程語言(續(xù))評價:不算匯編語言,現(xiàn)在已開發(fā)出各種用途的高級語言有400-500種,常用的語言近30種1.一般的應(yīng)用領(lǐng)域2.算法和計算的復(fù)雜性3.軟件的運(yùn)行環(huán)境4.性能考慮5.數(shù)據(jù)結(jié)構(gòu)的復(fù)雜性6.軟件開發(fā)人員的知識7.一個好的編譯器或交義編譯器的可用性。33軟件工程講義-編程語言(續(xù))選擇:對于一個專門項(xiàng)目的編程語言的選擇必須考慮:工程特性易于把設(shè)計翻譯為代碼、編譯器效率高、源代碼的可移植性、開發(fā)工具的可用性、源代碼的可維護(hù)性都好心理特性:一致性、無二義性、緊湊性、局域性、線性34軟件工程講義-編程語言(續(xù))實(shí)際上,項(xiàng)目的應(yīng)用領(lǐng)域是語言選擇的最重要的準(zhǔn)則。因?yàn)椋恳粋€應(yīng)用領(lǐng)域都可以選擇標(biāo)準(zhǔn)語言:1.系統(tǒng)軟件:C2.實(shí)時應(yīng)用:C、Ada、匯編3.商用語言:Cobol已讓位于4GL4.工程和科學(xué)領(lǐng)域:Fortran仍然是主要語言5.嵌入式軟件:同系統(tǒng)軟件和實(shí)時軟件6.個人計算機(jī):已很少用Basic,主要用C7.人工智能應(yīng)用:更多采用Lisp、Prolog8.網(wǎng)絡(luò)軟件:Java9.學(xué)習(xí)語言:Pascal現(xiàn)在市場上使用的不是上述語言,就是上述語言的改進(jìn)、擴(kuò)展或變種35軟件工程講義-語言總結(jié)應(yīng)該看到,隨著規(guī)格說明語言、設(shè)計語言和原型開發(fā)語言,以及軟件科技的發(fā)展,傳統(tǒng)的編程語言的作用正在被縮小和代替。如果有一天,計算機(jī)能夠做到對文字、圖形、圖像和語言的完全識別,那么將會改變我們對整個編程語言的理解。但是,今天我們編程使用的大部分方法,仍然采用傳統(tǒng)的編程語言36軟件工程講義-(三)工具任何一種開發(fā)模型,如果沒有工具與環(huán)境的支持,再好的方法和語言也難以做好如何選擇一個好的工具和環(huán)境?按現(xiàn)代軟件工程的要求,一般應(yīng)考慮以下三個方面:
1.一個工具集
它應(yīng)當(dāng)是為建立、修改、測試和文檔化目標(biāo)系統(tǒng)構(gòu)件的工具集2.一個用戶界面開發(fā)者通過這個界面,可以建立、修改和查詢目標(biāo)系統(tǒng)的構(gòu)件3.一個數(shù)據(jù)庫管理系統(tǒng)它能夠管理所有形成的目標(biāo)系統(tǒng)的構(gòu)件37軟件工程講義-6.5正式技術(shù)評審的實(shí)施軟件評審是一個“過濾器”正式技術(shù)評審(FormalTechnicalReviews,F(xiàn)TR)有時稱為“走查(walkthrough)”38軟件工程講義-一、軟件缺陷的費(fèi)用影響FTR的一個明顯好處是:可以早期發(fā)現(xiàn)軟件缺陷,以便能在軟件工程過程的下一步之前得到改正許多研究表明:50-65%的缺陷來自設(shè)計,而FTR能夠發(fā)現(xiàn)設(shè)計缺陷中75%的缺陷一些大型系統(tǒng)的相對成本數(shù)據(jù)說明:如果在設(shè)計期間發(fā)現(xiàn)并改正一個錯誤所需的費(fèi)用為1的話,在測試即將開始時的費(fèi)用為6.5,在測試期間為15,而在交付使用后達(dá)到60-10039軟件工程講義-二、缺陷的擴(kuò)大和排除缺陷擴(kuò)大模型40軟件工程講義-無評審的缺陷擴(kuò)大模型41軟件工程講義-有評審的缺陷擴(kuò)大模型42軟件工程講義-三、正式技術(shù)評審(FTR)FTR的目標(biāo):1.發(fā)現(xiàn)軟件在功能、邏輯和實(shí)現(xiàn)上的錯誤2.驗(yàn)證評審的軟件符合需求3.保證軟件按照已確定的標(biāo)準(zhǔn)表述4.使軟件以統(tǒng)一方式開發(fā)5.使項(xiàng)目更易于管理FTR可以作為一個訓(xùn)練基地,使初級工程人員觀察到軟件分析、設(shè)計和實(shí)現(xiàn)不同的處理方法。也能促進(jìn)人們變得更加熟悉43軟件工程講義-
正式技術(shù)評審-評審會議
評審會議3~5人參加會前準(zhǔn)備,每個人工作量不超過2小時會議時間2小時評審結(jié)束時,必須作出決定接受該產(chǎn)品,不再作進(jìn)一步修改該產(chǎn)品錯誤嚴(yán)重,拒絕接受(改正后也必須進(jìn)行另一次評審)暫時接受該產(chǎn)品(小錯誤已經(jīng)發(fā)現(xiàn),必須改正,但沒有必要進(jìn)行另外的評審)44軟件工程講義-正式技術(shù)評審-評審報告和記錄保存評審報告和記錄保存報告評審了什么產(chǎn)品?誰評審的?發(fā)現(xiàn)了什么?結(jié)論是什么?記錄:確定該產(chǎn)品中問題的大小成為生產(chǎn)者修改錯誤時的行動項(xiàng)的校對表還要建立一個跟蹤過程,以保證問題列表中的項(xiàng)都被正確的改正了45軟件工程講義-正式技術(shù)評審-評審指南評審指南評審產(chǎn)品,不評審生產(chǎn)者建立一個議事日程,并遵循它限制爭論和辯駁說明問題大小,不要企圖解決所有提出的問題作記錄限制參與人數(shù)和堅持充分準(zhǔn)備為可能評審的產(chǎn)品開發(fā)一張檢查表為FTR安排資源和時間表對所有的評審人員進(jìn)行有意義的培訓(xùn)評審你早期的評審46軟件工程講義-6.6標(biāo)準(zhǔn)的執(zhí)行產(chǎn)品質(zhì)量是企業(yè)的生命,標(biāo)準(zhǔn)是產(chǎn)品質(zhì)量的基礎(chǔ),沒有標(biāo)準(zhǔn),就無產(chǎn)品質(zhì)量可言軟件工程的標(biāo)準(zhǔn)體系標(biāo)準(zhǔn)的類別、范圍和中國在SE中的標(biāo)準(zhǔn)ISO/IEC的軟件工程標(biāo)準(zhǔn)體系結(jié)構(gòu)框架ISO/IEC12207和ISO/IECTR15504ISO9000-3(1993)/GB/T19000.3(1994)CMM和CMMI47軟件工程講義-一,標(biāo)準(zhǔn)的類別、標(biāo)準(zhǔn)的范圍和中國在SE中的相關(guān)標(biāo)準(zhǔn)(一)標(biāo)準(zhǔn)的類別Standard(標(biāo)準(zhǔn))Specification(規(guī)范)Criterion(準(zhǔn)則)Guidance(指南)Convention(約定)48軟件工程講義-(二)標(biāo)準(zhǔn)的范圍(1)國際:ISO(國際標(biāo)準(zhǔn)化組織)
IEC(國際電子協(xié)會)區(qū)域:NATO(北大西洋公約組織)
CJK(中、日、韓)國家:GB(中國國家標(biāo)準(zhǔn))
ANSI(美國國家標(biāo)準(zhǔn)協(xié)會)
BS(英國國家標(biāo)準(zhǔn))
DIN(德國國家標(biāo)準(zhǔn))
JIS(日本工業(yè)標(biāo)準(zhǔn))49軟件工程講義-(二)標(biāo)準(zhǔn)的范圍(2)行業(yè):IEEE(美國電氣和電子工程師協(xié)會)
FIPS(美國商務(wù)部國家標(biāo)準(zhǔn)局聯(lián)邦信息標(biāo)準(zhǔn))
ACM(美國計算機(jī)協(xié)會)
DOD(美國國防部)
MIL-standard(美國軍用標(biāo)準(zhǔn))
EIA(美國電工協(xié)會)
HB(中國航空標(biāo)準(zhǔn))
GJB(中國軍用標(biāo)準(zhǔn))廠標(biāo):IBM(國際商業(yè)機(jī)器公司)
50軟件工程講義-(三)中國與SE有關(guān)的國家標(biāo)準(zhǔn)基礎(chǔ):GB/T11457-89(SE術(shù)語)開發(fā):GB8566-88(計算機(jī)軟件開發(fā)規(guī)范)文檔:GB8567-88(計算機(jī)軟件產(chǎn)品開發(fā)文件編制指南)
GB9385-88(計算機(jī)軟件需求說明文件編制規(guī)范)
GB9386-88(計算機(jī)軟件測試文件編制規(guī)范)質(zhì)量:GB/T12504-90(計算機(jī)軟件質(zhì)量保證計劃規(guī)范)管理:GB/T12605-90(計算機(jī)軟件配置計劃規(guī)范)90年以后,國家標(biāo)準(zhǔn)與國際標(biāo)準(zhǔn)從等效原則改為等同原則,均采用雙編碼。如GB/T19000.3(1994)-ISO9000-3(1993)51軟件工程講義-二、ISO/IEC的軟件工程標(biāo)準(zhǔn)體系結(jié)構(gòu)框架(一)基于軟件工程功能的標(biāo)準(zhǔn)框架(由過程模型導(dǎo)出)52軟件工程講義-類型和類別軟件產(chǎn)品從需求到產(chǎn)品的全過程涉及六種類型的標(biāo)準(zhǔn):過程、產(chǎn)品、工具、技術(shù)、資源和數(shù)據(jù)按標(biāo)準(zhǔn)的自然屬性又可分為四個類別通用、原理、要素、指南和補(bǔ)充53軟件工程講義-類型與類別的關(guān)系54軟件工程講義-過程的相關(guān)標(biāo)準(zhǔn)55軟件工程講義-相關(guān)標(biāo)準(zhǔn)說明PDAM12207/AMD112207的過程結(jié)果CD15388系統(tǒng)生存期過程IS12207軟件生存期過程FDIS14764軟件維護(hù)TR15846軟件生存期過程軟件配置管理DTR16326軟件工程項(xiàng)目管理CD15939軟件度量過程FD14598-3軟件產(chǎn)品評價第三部分:開發(fā)者過程FD14598-4軟件產(chǎn)品評價第四部分:獲取者過程IS14598-5軟件產(chǎn)品評價第五部分:評價者過程FDIS15910軟件用戶文檔過程TR15271ISO/IEC12207使用指南ISO9000-3在軟件開發(fā)、供應(yīng)和維護(hù)中的使用指南TR9294軟件文檔管理指南ISO/IEC15288計劃指南56軟件工程講義-(二)基于軟件生存期過程的標(biāo)準(zhǔn)框架57軟件工程講義-三、ISO/IEC12207和ISO/IECTR15504(一)ISO/IEC12207Standardforinformationtechnology-Softwarelifecycleprocesses1995年8月由ISO和IEC聯(lián)合推出,為開發(fā)和管理軟件提供了一個公共框架。內(nèi)容:引言介紹1.范圍2.標(biāo)準(zhǔn)的參考文獻(xiàn)3.定義4.本標(biāo)準(zhǔn)的應(yīng)用5.五個主要生存期過程6.八個支持生存期過程7.四個組織生存期過程其框架結(jié)構(gòu)見ISO/IEC的“軟件工程標(biāo)準(zhǔn)體系結(jié)構(gòu)框架”中“基于軟件生存期過程的標(biāo)準(zhǔn)框架”附件:A.裁剪過程B.裁剪指南C.過程和組織指南D.參考文獻(xiàn)58軟件工程講義-軟件生存期過程(1)核心部分為5、6、7三部分軟件生存期過程又分三個層次:1.高層為基本過程:包括獲取、供應(yīng)、開發(fā)、運(yùn)行和維護(hù)2.中層為支持過程:包括文檔編制、配置管理、質(zhì)量保證、驗(yàn)證、確認(rèn)、聯(lián)合評審、審計和問題結(jié)論3.低(底)層為組織過程:包括管理、基礎(chǔ)設(shè)施、改進(jìn)和培訓(xùn)59軟件工程講義-軟件生存期過程(2)通過簡要介紹:軟件從提出開始,要經(jīng)過若干個過程(過程),每個過程有若干個活動(子過程),而每個活動又由若干個任務(wù)(子子過程)組成。所以,軟件生存期由一系列的相關(guān)過程組成。過程是活動的集合,活動是任務(wù)的集合,任務(wù)是將輸入變換為輸出的操作?;顒拥膱?zhí)行,可以是順序的、選擇的或重復(fù)的,也可以是并行或嵌套的60軟件工程講義-過程與組織指南61軟件工程講義-12207的起因和作用(1)ISO/IEC12207標(biāo)準(zhǔn)編寫者RaghuSingh的觀點(diǎn)是,軟件生存期過程國際標(biāo)準(zhǔn)的提出是為建立一個獲取、供應(yīng)、開發(fā)、運(yùn)行和維護(hù)軟件的國際通用標(biāo)準(zhǔn)。ISO/IEC122071988年提出,1995年發(fā)布。它描述了完成軟件生存期的主要過程,以及它們之間的相互影響。62軟件工程講義-12207的起因和作用(2)按照參與IEEE和EIA合作開發(fā)出替代MIL-STD-498的商業(yè)標(biāo)準(zhǔn)的專家Moore和Tada提供資料說明,一個標(biāo)準(zhǔn)產(chǎn)生了兩個名字:IEEE試用標(biāo)準(zhǔn)1498;EIA過渡標(biāo)準(zhǔn)640。美國國家標(biāo)準(zhǔn)協(xié)會ANSI發(fā)布了第三個標(biāo)準(zhǔn):ANSI聯(lián)合標(biāo)準(zhǔn)016(J-STD-016-1995)。ISO開發(fā)的標(biāo)準(zhǔn)是ISO/IEC12207。盡管J-016只在開發(fā)過程方面提供了要求,12207則另外說明了采辦、供應(yīng)、維護(hù)和運(yùn)行。同時包括8個支持過程和4個組織過程。12207雖然用于組織和個人,但它也為供應(yīng)商和獲取方之間在軟件的開發(fā)、維護(hù)和運(yùn)行之間建立起橋梁關(guān)系。63軟件工程講義-12207的起因和作用(3)由于ISO/IEC12207為不同國家軟件的獲取方與供應(yīng)商建立了通用的術(shù)語和過程框架,而有希望成為國際商業(yè)中重要的軟件國際標(biāo)準(zhǔn)。許多國家開始采用它作為國家標(biāo)準(zhǔn)。然而,也有不少困難,尤其在美國。因?yàn)樵摌?biāo)準(zhǔn)不能為軟件開發(fā)記錄重要信息和數(shù)據(jù),也沒有為組織提供一個能夠內(nèi)部實(shí)施并符合12207的方法。美國為了更加有效地參與國際軟件市場,必須決定如何在ANSIJ-016、IEEE-STD-1074(為IEEE開發(fā)的軟件生存期過程標(biāo)準(zhǔn))和ISO12207之間作出拆衷。64軟件工程講義-12207的起因和作用(4)首先是IEEE投票采用12207標(biāo)準(zhǔn),然后是創(chuàng)建12207的工業(yè)實(shí)現(xiàn)(在美國)。為了滿足美國12207的所有要求,產(chǎn)生了一個為組織提供允許內(nèi)部使用于軟件開發(fā)、維護(hù)和運(yùn)行的美國版本。IEEE/EIA12207成為提出以下目標(biāo)的戰(zhàn)略標(biāo)準(zhǔn):代表最佳的商業(yè)實(shí)踐、適合于國防采辦的復(fù)雜需求,及與新興的全球軟件市場相符合。這是對國際標(biāo)準(zhǔn)ISO/IEC12207的改編。它為組織采用滿足商業(yè)和國防項(xiàng)目(服務(wù)于國內(nèi)和國外客戶)要求的軟件過程提供了基礎(chǔ)。65軟件工程講義-12207的起因和作用(5)這樣做的好處是:(1)集成系統(tǒng)/軟件解決方案(2)項(xiàng)目人員的有效利用(3)改進(jìn)SEI的過程能力成熟度(4)以更低的成本生產(chǎn)高質(zhì)量產(chǎn)品(5)組織對過程改進(jìn)的重視(6)質(zhì)量管理包括在組織過程中66軟件工程講義-12207的起因和作用(6)IEEE/EIA12207.0-1996Softwarelifecycleprocesses以ISO/IEC12207的原始形式,包含6個附件。IEEE/EIA12207.1-1997Softwarelifecycleprocesses-lifecycledata在記錄生存期數(shù)據(jù)方面提供附加指南。IEEE/EIA12207.2-1997Softwarelifecycleprocesses-implementationconsi-derations
對ISO/IEC12207的生存期過程在美國的實(shí)踐提供了附加的可選擇的內(nèi)容和說明。以上三個IEEE/EIA12207標(biāo)準(zhǔn)已于1998年5月被美國DOD采用,以替代MIL-STD-498。67軟件工程講義-MIL-STD-498(1)DOD于1994年發(fā)布了MIL-STD-498軟件開發(fā)和文檔化標(biāo)準(zhǔn)。它是在DOD-STD-2617A(國防系統(tǒng)軟件開發(fā))與MIL-STD-7935(信息系統(tǒng))標(biāo)準(zhǔn)的結(jié)合產(chǎn)生的一個生存期標(biāo)準(zhǔn),并糾正了2617A標(biāo)準(zhǔn)中所關(guān)注的一些問題,包括:(1)對瀑布開發(fā)模型的偏愛,(2)與增量和演化式開發(fā)模型的兼容性,(3)對正式評審和審計的依賴性,(4)與Ada和OO方法的兼容性,(5)需求和設(shè)計的區(qū)別,(6)對文檔準(zhǔn)備的強(qiáng)調(diào),(7)CASE工具的使用。68軟件工程講義-MIL-STD-498(2)為什么要在商業(yè)標(biāo)準(zhǔn)中討論498?這是因?yàn)?98對軟件質(zhì)量保證產(chǎn)生了兩個重要作用:(1)對軟件質(zhì)量要求和標(biāo)準(zhǔn)的整體集成,而不是單獨(dú)的標(biāo)準(zhǔn)。(2)商業(yè)標(biāo)準(zhǔn)的采納是通過對498的一個跨越來實(shí)現(xiàn)的。因此,許多學(xué)習(xí)和比較都是在498的基礎(chǔ)上進(jìn)行的。DOD在軟件采辦的合同中,商業(yè)標(biāo)準(zhǔn)是非常有效的和不可缺少的標(biāo)準(zhǔn)之一。DOD要求可以用商業(yè)標(biāo)準(zhǔn),除非存在不能滿足用戶要求情況下。所以,DOD要求開發(fā)出能替代498的商業(yè)標(biāo)準(zhǔn)也是順理成章的。69軟件工程講義-(二)ISO/IECTR15504ISO/IECTR15504InformationTechnology-SoftwareProcessAssessment這是ISO/IEC聯(lián)合推出ISO/IEC12207之后于1998年推出與之相對應(yīng)的ISO/IECTR15504本標(biāo)準(zhǔn)提供了一個包含整個軟件生存期過程的框架:該框架的過程參考模型范圍與ISO/IEC12207緊密映射不僅進(jìn)一步肯定了12207對軟件工程實(shí)踐的重要意義,還保證了軟件生存期過程在世界范圍內(nèi)進(jìn)行評價和對比時有了統(tǒng)一的標(biāo)準(zhǔn),也體現(xiàn)了抓源頭的思想對軟件開發(fā)組織、軟件供應(yīng)商、購買者、獲取者、管理者和評價者都有了依據(jù)這在國際軟件工程界,與12207一樣也是第一次。70軟件工程講義-ISO/IECTR15504的組成71軟件工程講義-過程與過程能力參考模型參考模型由過程量度和能力量度組成:過程度量能力度量72軟件工程講義-過程度量按過程所從事的活動不同把過程分為五個類別:用戶-供應(yīng)商過程類(CUS)工程過程類(ENG)支持過程類(SUP)管理過程類(MAN)組織過程類(ORG)每個過程類都包含有許多過程。這種分類及過程的工作通常由從事獲取、供應(yīng)、開發(fā)、維護(hù)和實(shí)施的企業(yè)嚴(yán)格遵循12207中關(guān)于軟件生存期過程的有關(guān)規(guī)定進(jìn)行。每個過程的定義都應(yīng)包含兩個部分:一是對過程目標(biāo)的描述;二是包括一條或多條關(guān)于描述的更進(jìn)一步的說明。73軟件工程講義-能力度量15504中把過程能力分為六個等級0級:不完善的(Incomplete)過程1級:已實(shí)施的(Performed)過程2級:已管理的(Managed)過程3級:已建立的(Established)過程4級:可預(yù)測的(Predictable)過程5級:優(yōu)化的(Optimizing)過程74軟件工程講義-能力度量(續(xù))每個等級中又包含有九個過程屬性:過程實(shí)施(processperformance)實(shí)施管理(performancemanagement)工作產(chǎn)品管理(workproductmanagement)過程定義(processdefinition)過程資源(processresource)過程度量(processmeasurement)過程控制(processcontrol)過程變更(processchange)持續(xù)改進(jìn)(continuousimprovement)這些屬性代表了上述所定義過程的可度量特征。75軟件工程講義-能力度量(續(xù))過程屬性達(dá)到的能力又可劃分為四個級別:N(Notachieved):未達(dá)到
P(Partiallyachieved):部分達(dá)到
L(Largelyachieved):大部分達(dá)到F(Fullyachieved):全部達(dá)到
76軟件工程講義-能力度量(續(xù))77軟件工程講義-15504的實(shí)施(1)(1)建立指導(dǎo)小組(2)設(shè)立實(shí)施的目的和目標(biāo)(3)確定待實(shí)施的過程(4)確定過程的目標(biāo)能力(5)建立過程小組(6)提供資源和時間(7)分析每個目標(biāo)過程的當(dāng)前的成熟度(8)制定每個過程的改進(jìn)計劃78軟件工程講義-15504的實(shí)施(2)(9)追蹤每個過程每個季度的改進(jìn)狀態(tài)(10)向指導(dǎo)小組報告改進(jìn)進(jìn)度(11)提供所需的額外資源(12)組織正式的評估來驗(yàn)證目標(biāo)能力級別(13)建立新的實(shí)施目的和目標(biāo)每個組織的情況都不相同,不同組織的最初過程集合也不盡相同。因此,15504的實(shí)施所采用的步驟也應(yīng)該不同。79軟件工程講義-15504的出現(xiàn)15504又名SPICE(軟件過程改進(jìn)和能力鑒定)(1998)是源于對多種模型的改進(jìn)和軟件過程的評估:(1)ISO9000(1987、1994)(2)EUESPRIT項(xiàng)目中開發(fā)的Bootstrap:Trillium(1993)(3)加拿大開發(fā)的電信業(yè)待定評估模型(4)CMU/SEI:CMM(1993)80軟件工程講義-15504開發(fā)的目的目的是提出一個軟件過程評估的國際標(biāo)準(zhǔn)。人們期望這個標(biāo)準(zhǔn)能給出使用不同的評估模型和方法的結(jié)果可比性。1990年開始著手,1995年發(fā)行了第一版,1996年又發(fā)行了第二版,ISO15504的二類技術(shù)報告(作為一種國際標(biāo)準(zhǔn)驗(yàn)收,但還沒有就報告中標(biāo)準(zhǔn)的最終定義完全達(dá)成一致)則是1998年發(fā)行的。Bootstrap和CMM模型都進(jìn)行了修正,符合現(xiàn)在的15504標(biāo)準(zhǔn)。81軟件工程講義-三、ISO9000-3(1993)-GB/T19000.3(1994)質(zhì)量管理和質(zhì)量保證標(biāo)準(zhǔn)-在軟件開發(fā)、供應(yīng)和維護(hù)中的使用指南ISO9000系列標(biāo)準(zhǔn)原為硬件制造業(yè)制定的標(biāo)準(zhǔn),不能直接用于軟件業(yè)的生產(chǎn)曾試圖用改編的9001用于軟件業(yè)的生產(chǎn)由于軟件與硬件的性質(zhì)截然不同,軟件為人工智能產(chǎn)品,實(shí)踐結(jié)果說明不行,于是以ISO9000系列標(biāo)準(zhǔn)的追加形式,專門制定了ISO9000-3。82軟件工程講義-(一)標(biāo)準(zhǔn)的目的和范圍本標(biāo)準(zhǔn)作為ISO9000/GB/T19000系列標(biāo)準(zhǔn)之一,旨在生產(chǎn)滿足需求的軟件而建議采用的控制手段和方法,即為從事軟件開發(fā)、供應(yīng)和維護(hù)的組織建立質(zhì)量管理體系提供指南本標(biāo)準(zhǔn)適用于軟件產(chǎn)品的整個生存期階段和任何生存期模型,也適用于合同提出特殊要求的產(chǎn)品83軟件工程講義-(二)標(biāo)準(zhǔn)的主要內(nèi)容本標(biāo)準(zhǔn)在給出軟件質(zhì)量管理體系要素時,沒有按照ISO9001/GB/T19991的形式給出,而是按下列三部分給出:1.質(zhì)量體系-框架2.質(zhì)量體系-生存期話動3.質(zhì)量體系-支持活動84軟件工程講義-質(zhì)量體系-框架這部分主要從管理上描述了構(gòu)成了質(zhì)量體系的組織機(jī)構(gòu)、管理職責(zé)、質(zhì)量體系的基本要求及構(gòu)成質(zhì)量體系的框架(1)領(lǐng)導(dǎo)的職責(zé)、作用和采用的手段(2)質(zhì)量體系
GB/T6583-ISO8402給質(zhì)量體系定義為:為實(shí)施質(zhì)量管理所具有的組織機(jī)構(gòu)、職責(zé)、程序、過程和資源。這一定義給出了質(zhì)量體系的五個要素,同時明確了質(zhì)量管理的核心是建立適合企業(yè)實(shí)際的質(zhì)量體系。質(zhì)量體系應(yīng)以深入細(xì)致的質(zhì)量體系文件為基礎(chǔ),應(yīng)用系統(tǒng)的有序的方法將質(zhì)量體系要素、需求和預(yù)防措施清楚地寫入文件質(zhì)量體系是貫穿產(chǎn)品整個生存期的一個綜合過程,它強(qiáng)調(diào)的是在開發(fā)過程中的質(zhì)量保證,以預(yù)防為主,而不是在問題發(fā)生后依靠糾正措施來解決問題。因此,應(yīng)按質(zhì)量體系要求制定并執(zhí)行質(zhì)量活動計劃85軟件工程講義-質(zhì)量體系-生存期話動1.合同評審2.需方需求規(guī)格說明3.開發(fā)策劃4.質(zhì)量計劃5.設(shè)計與實(shí)現(xiàn)6.測試與驗(yàn)證7.驗(yàn)收8.復(fù)制、交付和安裝9.維護(hù)86軟件工程講義-質(zhì)量體系-支持活動1.配置管理2.文檔控制3.質(zhì)量記錄4.度量5.規(guī)則和慣例6.工具和方法7.采購8.配套的軟件產(chǎn)品9.培訓(xùn)87軟件工程講義-ISO9000系列標(biāo)準(zhǔn)的制定與發(fā)布國際標(biāo)準(zhǔn)化組織質(zhì)量管理和質(zhì)量保證技術(shù)委員會(ISO/TC176),在多年協(xié)調(diào)努力的基礎(chǔ)上,總結(jié)了各國的質(zhì)量管理和質(zhì)量保證經(jīng)驗(yàn),經(jīng)過各國質(zhì)量管理專家近10年的努力工作,于1986年6月正式發(fā)布ISO8402<質(zhì)量-術(shù)語>標(biāo)準(zhǔn)、1987年2月正式發(fā)布ISO9000~9004系列標(biāo)準(zhǔn)。88軟件工程講義-ISO9000~9004系列標(biāo)準(zhǔn)ISO8402-1986質(zhì)量-術(shù)語ISO9000-1987質(zhì)量管理和質(zhì)量保證標(biāo)準(zhǔn)-選擇和使用指南ISO9001-1987質(zhì)量體系-設(shè)計/開發(fā)、安裝和服務(wù)的質(zhì)量保證模式ISO9002-1987質(zhì)量體系-生產(chǎn)和安裝的質(zhì)量保證模式(9001的子集)ISO9003-1987質(zhì)量體系-最終檢驗(yàn)和試驗(yàn)的質(zhì)量保證模式(9002的子集)ISO9004-1987質(zhì)量管理和質(zhì)量體系要素指南(質(zhì)量管理基礎(chǔ)標(biāo)準(zhǔn))89軟件工程講義-ISO9000標(biāo)準(zhǔn)制定的初衷源于組織需要評估他們的轉(zhuǎn)包商的能力或成熟度。一旦有了可用的國際標(biāo)準(zhǔn),組織就可以使用滿足ISO9000標(biāo)準(zhǔn)作為對轉(zhuǎn)包商的最低要求,從而可以預(yù)測轉(zhuǎn)包商最低限度的質(zhì)量標(biāo)準(zhǔn),也可由此而變成客戶選擇承包商或第一承包商選擇轉(zhuǎn)包商的一個鑒別器ISO9000可以應(yīng)用于各類行業(yè),包括制造業(yè)、軟件業(yè)和服務(wù)業(yè)90軟件工程講義-ISO9000-1994版1994版是1987版的修訂版。它最初是為進(jìn)行產(chǎn)品設(shè)計、開發(fā)和生產(chǎn)的制造公司所編寫的,并被服務(wù)公司和軟件公司的采用ISO9001是9002和9003的一個擴(kuò)展集,它涵蓋了整個產(chǎn)品生存期9002包含生產(chǎn)、安裝和維護(hù)標(biāo)準(zhǔn);9003包含最終審查和測試標(biāo)準(zhǔn)ISO9000-1994由一組標(biāo)準(zhǔn)和如何應(yīng)用這些標(biāo)準(zhǔn)的原則組成91軟件工程講義-1994版相關(guān)的全部標(biāo)準(zhǔn)的集合ISO8402質(zhì)量管理/保證詞匯表ISO9000-1達(dá)了選擇和使用9000的指導(dǎo)方針I(yè)SO9000-2應(yīng)用9001/2/3的指導(dǎo)方針I(yè)SO9000-3在軟件中應(yīng)用9001的指導(dǎo)方針I(yè)SO9000-4對資源進(jìn)行規(guī)劃、組織和控制,以生產(chǎn)可靠產(chǎn)品的指導(dǎo)方針I(yè)SO9001用于產(chǎn)品/服務(wù)的設(shè)計、開發(fā)、測試、安裝和維護(hù)的標(biāo)準(zhǔn)ISO9002用于生產(chǎn)、安裝和維護(hù)的標(biāo)準(zhǔn)(9001的一個子集)ISO9003用于最終審查和測試的標(biāo)準(zhǔn)(9001的一個子集)ISO9004-1實(shí)施質(zhì)量體系的指針方針I(yè)SO9004-2持續(xù)改進(jìn)的指導(dǎo)方針92軟件工程講義-1994版中20項(xiàng)條款(1)ISO9000認(rèn)證過的組織必須能夠證明它已滿足相關(guān)的條款:(1)管理人員的職責(zé)(2)質(zhì)量體系(3)合同審查(4)設(shè)計控制(5)文檔控制(6)采購(7)買方提供的產(chǎn)品(8)產(chǎn)品標(biāo)識和可追蹤性93軟件工程講義-1994版中20項(xiàng)條款(2)(9)過程控制(10)審查和測試(11)審查度量和測試裝置(12)審查和測試狀態(tài)(13)不合格產(chǎn)品的控制(14)糾正措施(15)搬運(yùn)、存儲、包裝和交付(16)質(zhì)量記錄(17)內(nèi)部質(zhì)量審核(ISO10011)(18)培訓(xùn)(19)服務(wù)(20)統(tǒng)計技術(shù)94軟件工程講義-ISO9000-2000版2000版比1994版的標(biāo)準(zhǔn)要簡單,它只有3個標(biāo)準(zhǔn):(1)ISO9000-2000(2)ISO9001-2000(3)ISO9004-2000標(biāo)準(zhǔn)包括質(zhì)量管理體系的基本原則和詞匯表。新標(biāo)準(zhǔn)中的文本比舊標(biāo)準(zhǔn)更友好,更具邏輯性。舊9001、9002和9003標(biāo)準(zhǔn)被合并成一個標(biāo)準(zhǔn)。新標(biāo)準(zhǔn)中只有5項(xiàng)條款,與舊標(biāo)準(zhǔn)中的20項(xiàng)條款比較更以客戶為關(guān)注點(diǎn)。2000版為性能改進(jìn)提供了一個指南,這有助于標(biāo)準(zhǔn)的實(shí)施。它還包括一個簡單的自我評估方法95軟件工程講義-2000版標(biāo)準(zhǔn)的5項(xiàng)條款(1)質(zhì)量管理體系-質(zhì)量管理體系的文件和實(shí)施(2)資源管理-涉及的是實(shí)施質(zhì)量管理體系所需的資源供應(yīng)(3)產(chǎn)品或服務(wù)的實(shí)現(xiàn)-實(shí)現(xiàn)產(chǎn)品或服務(wù)的過程供應(yīng)(4)管理職責(zé)-管理人員在質(zhì)量管理體系的實(shí)施中的擔(dān)負(fù)的職責(zé)(5)度量、分析和改進(jìn)-建立度量程序,以度量質(zhì)量管理體系的性能,從而確定改進(jìn)新標(biāo)準(zhǔn)的目標(biāo)是:獲得用戶需求,開發(fā)出滿足需求和符合甚至超過客戶期望的軟件,并持續(xù)地改進(jìn)以更好地為客戶服務(wù)96軟件工程講義-2000版的實(shí)施實(shí)施2000版的目標(biāo)是改進(jìn)質(zhì)量和客戶滿意度實(shí)施過程的步驟:(1)認(rèn)知培訓(xùn)(2)成立一個小組(3)建立ISO9000狀態(tài)(4)準(zhǔn)備行動計劃(5)追蹤行動計劃(6)呈交行動計劃的狀態(tài)(7)ISO9000就緒評估(8)聯(lián)系注冊人(團(tuán)體)(9)正式ISO9000審核(10)持續(xù)改進(jìn)97軟件工程講義-
ISO發(fā)布了兩個與ISO9000并立的兩個應(yīng)該關(guān)注的標(biāo)準(zhǔn)1.ISO14000環(huán)境管理體系標(biāo)準(zhǔn)(1993開始,1996發(fā)布)2.ISO18000職業(yè)安全衛(wèi)生管理體系標(biāo)準(zhǔn)(1996討論,--1999我國制定試行本)乃98軟件工程講義-四、CMMCMM(TheCapabilityMaturityModel)不是國際標(biāo)準(zhǔn),是CMU/SEI于1986年在Mitre公司的協(xié)助下,用于幫助機(jī)構(gòu)改進(jìn)其軟件過程和聯(lián)邦政府要求能提供一種用來評價軟件承制方軟件能力的方法,開始工作經(jīng)過五年的努力,于1991/1992公開發(fā)布了基線版1.0之后,1992/19931.1版、1997/19982.0版,2000推出了CMMI1.0版,它除了沿用CMM分級的形式外,還吸收了ISO/IECTR15504的一些特點(diǎn)99軟件工程講義-CMM(續(xù))CMM是一個概念模型,它給出了一個軟件機(jī)構(gòu)如何開發(fā)和維護(hù)高質(zhì)量軟件產(chǎn)品的思路CMM也是一個描述模型,它描述了一個具有某個級別的軟件機(jī)構(gòu)所具有的主要特征CMM又是一個系統(tǒng)框架,它為一個軟件機(jī)構(gòu)改進(jìn)其軟件過程能提供一種改進(jìn)的途徑100軟件工程講義-CMM結(jié)構(gòu)101軟件工程講義-CMM結(jié)構(gòu)-成熟度級別CMM的頂層為成熟度級別(五級)1級:初始級(TheInitialLevel)2級:可重復(fù)級(TheRepeatableLevel)3級:已定義級(TheDefinedLevel)4級:已管理級(TheManaged)5級:優(yōu)化級(TheOptimizingLevel)102軟件工程講義-CMM結(jié)構(gòu)-關(guān)鍵過程域(1)關(guān)鍵過程域除1級外,每個成熟度級都包含幾個關(guān)鍵過程域(KeyProcessAreas)它們確定了要實(shí)現(xiàn)一個成熟度級別所必須解決的問題和目標(biāo)處于級別3的軟件機(jī)構(gòu)一定要解決級別2和級別3中所有關(guān)鍵域中的問題;4、5級類推共有十八個關(guān)鍵過程域103軟件工程講義-CMM結(jié)構(gòu)-關(guān)鍵過程域(2)2級:需求管理軟件項(xiàng)目計劃軟件項(xiàng)目跟蹤和監(jiān)督軟件分包合同管理軟件質(zhì)量保證軟件配置管理3級:機(jī)構(gòu)過程焦點(diǎn)機(jī)構(gòu)過程定義培訓(xùn)大綱綜合軟件管理軟件產(chǎn)品工程組間協(xié)調(diào)同行評審4級:定量過程管理軟件質(zhì)量管理5級:缺陷預(yù)防技術(shù)更新管理過程變更管理104軟件工程講義-CMM結(jié)構(gòu)-共同特性每個關(guān)鍵過程由五部分組成,稱為共同特性(CommonFeatures)執(zhí)行約定(如建立機(jī)構(gòu)策略和領(lǐng)導(dǎo)關(guān)系等)執(zhí)行能力(如資源、機(jī)構(gòu)結(jié)構(gòu)和培訓(xùn)等)執(zhí)行活動(如制定計劃和規(guī)程、執(zhí)行和跟蹤及必要時采取的糾正措施等)度量和分析(如可采用的度量實(shí)例等)驗(yàn)證實(shí)現(xiàn)(如管理部門和質(zhì)量保證小組實(shí)施的評審和審核等)105軟件工程講義-CMM結(jié)構(gòu)-關(guān)鍵實(shí)踐在共同特性中的實(shí)踐,描述了要建立一個過程能力所必須完成的活動,即每一個關(guān)鍵過程都要用關(guān)鍵實(shí)踐的概念進(jìn)行描述CMM有316個關(guān)鍵實(shí)踐(KeyPractices)關(guān)鍵實(shí)踐只描述“做什么?”不規(guī)定“怎么做?”如不指定生存期模型、不規(guī)定產(chǎn)品實(shí)現(xiàn)所采用的開發(fā)方法和工具,從而可以讓各個機(jī)構(gòu)可以選擇自己的方法。但必須合理地說明關(guān)鍵實(shí)踐,以判斷是否有效地實(shí)現(xiàn)了關(guān)鍵過程域的目標(biāo)106軟件工程講義-CMM應(yīng)用-軟件過程評價與軟件能力估價(1)1,軟件過程評價(processassessment)和軟件能力估價(capabilityevaluation)的方法基本相同。但由于評價和估價的動機(jī)、目的、輸出和結(jié)果歸屬不同,使得在會談或采訪目的、訪問范圍所采集的信息和結(jié)果的表示方式,可能存在重要差別。所以,所采用的的詳細(xì)規(guī)程不同,培訓(xùn)要求也不同2,評價是在開放、合作環(huán)境中進(jìn)行的,目的在于暴露問題和幫助管理人員和技術(shù)人員改進(jìn)他們所在機(jī)構(gòu)的過程。所以,評價能否成功取決于他們對機(jī)構(gòu)改進(jìn)的支持。但更重要的是要通過各種座談會了解機(jī)杓構(gòu)的軟件過程。評價的結(jié)果除了能確定機(jī)構(gòu)所面臨的軟件過程問題外,最有價值的是明確機(jī)構(gòu)改進(jìn)軟件過程的途徑,促進(jìn)制定進(jìn)一步的行動計劃,使整個機(jī)構(gòu)關(guān)注軟件過程的改進(jìn),提高整個機(jī)構(gòu)改進(jìn)行動計劃的動力和熱情107軟件工程講義-CMM應(yīng)用-軟件過程評價與軟件能力估價(2)3,軟件能力估價是在更為面向?qū)徲嫷沫h(huán)境中進(jìn)行。估價的目的與金錢有關(guān),因?yàn)楣纼r組的推薦意見將影響挑選承制方或投放資金的多少。估價過程的重點(diǎn)在評審巳文檔化的審計記錄上,這些記錄能揭示機(jī)構(gòu)實(shí)際執(zhí)行的軟件過程4,必須指出的是:評價和估價的結(jié)果不是不可比的。因?yàn)樗鼈兌际腔贑MM的,其不同之處也是可以解釋的108軟件工程講義-CMM應(yīng)用-評價方法評價方法選擇評價小組填寫成熟度問卷進(jìn)行響應(yīng)分析現(xiàn)場訪問、會議和文檔評審提供基于CMM的調(diào)查結(jié)果清單制作關(guān)鍵過程域的剖面圖,以顯示該機(jī)構(gòu)哪些區(qū)域巳滿足,哪些區(qū)域尚未滿足關(guān)鍵過程域的目標(biāo)等109軟件工程講義-CMMICMMI為CMM的集成項(xiàng)目CMMI的目標(biāo)1,在一個模型中集成多層CMM成熟度級別,以簡化過程的改進(jìn)和評估2,要符合15504的要求CMMI有兩種發(fā)行版本110軟件工程講義-CMMI的分級版本分級版本為CMM界所熟悉,分級模型使用成熟度級別。分級版本的優(yōu)勢在于使用的機(jī)構(gòu)對其非常熟悉。過程的改進(jìn)從基本管理實(shí)踐開始,經(jīng)過連續(xù)成熟度等級路徑獲得進(jìn)展,其中每層成熟度等級為下一層級別提供了堅實(shí)的基礎(chǔ)。111軟件工程講義-CMMI的連續(xù)版本連續(xù)版本為15504界熟悉,連續(xù)模型使用能力級別。允許機(jī)構(gòu)集中在最符合機(jī)構(gòu)業(yè)務(wù)目標(biāo)的過程改進(jìn)上,同時也可以與其它機(jī)構(gòu)進(jìn)行對比。但對比的焦點(diǎn)在過程域與過程的域的比較。CMMI的連續(xù)模型與15504類似112軟件工程講義-CMMI兩個版本的異同兩種版本的表述都使用過程域、特定目標(biāo)和一般目標(biāo)、特定實(shí)踐和一般實(shí)踐,而且兩種表述使用同樣的過程域。連續(xù)版本有6個能力級別,這些能力級別是應(yīng)用于每個過程域的成熟度分級,這6個能力級別從0到5的編號,每個能力級別有一系列特定目標(biāo)和一般目標(biāo)。連續(xù)模型的能力級別為過程域的過程改進(jìn)提供了路經(jīng)。組織要把它的過程域映射到CMMI過程域中,如同15504中的那樣。113軟件工程講義-CMM與ISO標(biāo)準(zhǔn)比較CMM與ISO9000-3的設(shè)計思路不同,雖然都是著眼于軟件質(zhì)量管理和軟件過程管理,它們最大的不同是:CMM強(qiáng)調(diào)的是持續(xù)的過程改進(jìn);ISO9000-3涉及的是可接受的質(zhì)量體系最低標(biāo)準(zhǔn)還要指出的是:CMM中關(guān)于能力等級是針對每個軟件機(jī)構(gòu)的;而ISO/IECTR15504中的能力等級是針對每個過程的114軟件工程講義-小結(jié)自從20世紀(jì)70年代以來,軟件質(zhì)量要求的標(biāo)準(zhǔn)化方面已經(jīng)下做了大量的工作。這里重點(diǎn)介紹了20世紀(jì)90年代以來的商業(yè)標(biāo)準(zhǔn)以及它們的統(tǒng)一,希望大家對這些標(biāo)準(zhǔn)以及它們的現(xiàn)狀能夠有所了解。大量事實(shí)表明:建立在全面質(zhì)量管理(TQM)或持續(xù)過程改進(jìn)基礎(chǔ)上的系統(tǒng)開發(fā)本質(zhì)是一樣的。許多跨國公司,如美國波音,以軍用標(biāo)準(zhǔn)為基礎(chǔ),開發(fā)了內(nèi)部標(biāo)準(zhǔn),同時在進(jìn)一步的軟件開發(fā)過程中對其標(biāo)準(zhǔn)不斷進(jìn)行改進(jìn),建立在這些企業(yè)內(nèi)部標(biāo)準(zhǔn)和商業(yè)標(biāo)準(zhǔn)基礎(chǔ)上的軟件開發(fā)系統(tǒng),經(jīng)過多年的改進(jìn)之后,證明是有效的系統(tǒng)。115軟件工程講義-6.6文檔及其修改的控制在生產(chǎn)軟件時,修改(Change)是不可避免的,而不修改則是不正常的如果修改中有任何疏忽或處理不當(dāng),就非常容易把一個開發(fā)得很好的軟件帶入混亂!所以,只有當(dāng)每個軟件修改可以被說明、分析、跟蹤和控制,而且所有需要知道的人都被通知到時,這樣才能保證軟件修改的質(zhì)量軟件配置管理(SoftwareConfigurationManagement,SCM)就是用來對軟件文檔及其修改控制的116軟件工程講義-一、軟件配置管理軟件生存期各個階段的交付項(xiàng)(包括描述程序的文檔、和程序(源代碼或可執(zhí)行代碼),以及包含在程序內(nèi)部或外部的數(shù)據(jù))組成整體軟件配置軟件配置管理就是對這些交付項(xiàng)修改的管理,因此,不難看出:一個開發(fā)組可以生產(chǎn)出幾百或上千種獨(dú)立的交付項(xiàng),所有這些交付項(xiàng)形成一個相互依賴的層次網(wǎng)在開發(fā)和維護(hù)的各個步驟中需要不斷地再加工、修改和提高,因此任何交付項(xiàng)都可能有很多不同的版本,而且某一項(xiàng)的任何一種版本都與其它交付項(xiàng)的特定版本有關(guān)要防止相關(guān)交付項(xiàng)上下左右不一致引起的錯誤,是配置管理要具體解決的問題當(dāng)然,解決這個問題的機(jī)制非常多,以至于需要一個獨(dú)立的配置管理計劃作為質(zhì)量管理計劃的補(bǔ)充,而且應(yīng)讓全體人員都知道,應(yīng)該怎樣完成和控制他們它們的工作質(zhì)量117軟件工程講義-二、基線基線(baseline)按IEEE1990的定義為:巳經(jīng)通過正式技術(shù)評審和批準(zhǔn)的規(guī)格說明或軟件產(chǎn)品,它因此可以作進(jìn)一步開發(fā)的基礎(chǔ),并只能通過正式修改控制規(guī)程才能被修改在開發(fā)的整個過程中和交付以后,因?yàn)榘l(fā)現(xiàn)錯誤和修正錯誤、或推翻原設(shè)計,以及改變系統(tǒng)的需求等,系統(tǒng)將受到某種變更的影響,這些“干擾”自然會引起所有交付項(xiàng)存在多種版本所以必須從所有交付項(xiàng)中確定一個一致的子集作為軟件配置基線(SoftwareConfigurationBaseline),如系統(tǒng)分析、軟件項(xiàng)目計劃、軟件需求分析、軟件設(shè)計、編碼、測試和維護(hù)等基線不應(yīng)把基線看著是“快照”,也不是特定瞬間存在的時間脈沖,而是在各交付項(xiàng)版本中選定的一個。這些版本一般產(chǎn)生在不同時間,但具有在開發(fā)的某一特定步驟上相互一致的性質(zhì),這是同一狀態(tài)的一致118軟件工程講義-基線的用途1.可以作為一個檢查點(diǎn)2.可以作為區(qū)分兩個或多個分叉開發(fā)路徑的起始點(diǎn)3.對于開發(fā)組和用戶,內(nèi)部一致的基線是理想的正式評審目標(biāo)4.包含測試系統(tǒng)的基線可以正式發(fā)行,用作評價或培訓(xùn),或其它相關(guān)系統(tǒng)的輔助測試119軟件工程講義-取得基線和修改基線的路徑120軟件工程講義-三、標(biāo)識標(biāo)識(Identification):為了控制和管理軟件交付項(xiàng),每個交付項(xiàng)必須被獨(dú)立命名,然后用面向?qū)ο蟮姆椒ńM織1.基本對象:如數(shù)據(jù)模型、構(gòu)件A2.聚合對象:如軟件設(shè)計規(guī)格說明是一個聚合對象,它由數(shù)據(jù)設(shè)計、體系結(jié)構(gòu)設(shè)計、過程設(shè)計和界面設(shè)計組成。在概念上它是一個被命名的指針表,指向基本對象每個對象都具有一組唯一的標(biāo)識它的特征1.名字:一個無二義性的字符串2.描述:一個數(shù)據(jù)項(xiàng)列表。它們標(biāo)識:交付項(xiàng)類型(文檔、程序、數(shù)據(jù))、項(xiàng)目標(biāo)識符、修改/版本信息3.資源:由對象提供:處理、引用或需求的實(shí)體(數(shù)據(jù)類型、特定函數(shù))4.實(shí)現(xiàn):一個指針?;緦ο笾赶颉拔谋締卧?,聚合對象指向null121軟件工程講義-標(biāo)識(續(xù))對象的標(biāo)識還必須考慮存在于命名對象間的關(guān)系。如:E-Rdiagram1.4<part-of>datamodeldatamodel<partof>designspecification
一個對象層次中,對象間的關(guān)系都沿著層次樹的路徑是不現(xiàn)實(shí)的、在許多情況下,對象跨越對象層次的分支相互關(guān)聯(lián)。如:datamodel<interrelated>dataflowmodeldatamodel<interrelated>testcaseclassm122軟件工程講義-標(biāo)識(續(xù))對象的標(biāo)識在整個軟件開發(fā)過程中不斷在演化。一個對象在被確定基線前,它巳經(jīng)被修改多次;而在作為基線后,修改仍經(jīng)常發(fā)生,修改可以對任何版本進(jìn)行。因此,開發(fā)者如何引用版本?銷售者如何知道當(dāng)前用戶使用哪些版本?我們?nèi)绾未_定某個版本的源代碼修改巳經(jīng)反映在對應(yīng)的文檔中?等等。所有這些問題的回答:關(guān)鍵在版本的標(biāo)識123軟件工程講義-四、修改控制無控制的修改必將導(dǎo)致混亂。修改控制過程:124軟件工程講義-修改過程125軟件工程講義-五、配置審計如何保證修改控制的正確實(shí)現(xiàn),除了進(jìn)行正式的技術(shù)評審(FTR)以外,還要進(jìn)行軟件配置審計。通常檢查下列問題:(1)被批準(zhǔn)的修改報告中修改巳經(jīng)完成了嗎?(2)是否巳經(jīng)進(jìn)行了正式的技術(shù)評審?并表明技術(shù)的正確嗎?(3)軟件過程是否遵循了軟件工程標(biāo)準(zhǔn)?(4)修改是否在交付項(xiàng)中被完全實(shí)現(xiàn)?配置對象的屬性是否反映了該修改?(5)是否給出了修改者的姓名和修改的日期?(6)是否遵照了標(biāo)識修改、記錄修改和報告修改的軟件配置管理規(guī)程?(7)所有的相關(guān)交付項(xiàng)都被更新了嗎?在有些情況下,配置審計作為正式技術(shù)評審的一部分。審計一般都由質(zhì)量保證小組進(jìn)行126軟件工程講義-六、狀態(tài)報告軟件配置狀態(tài)報告是軟件配置管理的一項(xiàng)任務(wù)。它必須回答以下問題:(1)發(fā)生了什么事?(2)誰做了此事?(3)此事是什么時候發(fā)生的?(4)將影響到什么?配置狀態(tài)報告可存儲在一個聯(lián)機(jī)的數(shù)據(jù)庫中,使得軟件開發(fā)者和維護(hù)者可以通過關(guān)鍵詞分類訪問修改信息,管理者也可獲得與管理相關(guān)的信息127軟件工程講義-6.8度量與量度度量的主要目的:(1)更好的理解產(chǎn)品的質(zhì)量(2)評價過程的效率(3)改進(jìn)項(xiàng)目層完成工作的質(zhì)量討論的重點(diǎn)放在產(chǎn)品質(zhì)量的量度上。(1)傳統(tǒng)(結(jié)構(gòu)化)軟件的量度(2)面向?qū)ο筌浖牧慷?28軟件工程講義-一、傳統(tǒng)軟件的量度(一)軟件復(fù)雜性(二)軟件可靠性(三)軟件可用性(四)軟件安全性129軟件工程講義-(一)軟件復(fù)雜性軟件復(fù)雜性(complexity)是指程序的結(jié)構(gòu)、模塊、簡明、簡潔和可理解的程度1.代碼行復(fù)雜性量度2.Halstead軟件科學(xué)量度(1977)3.McCabe復(fù)雜性量度(1976)4.功能點(diǎn)復(fù)雜性量度130軟件工程講義-1.代碼行復(fù)雜性量度就是用程序代碼行(codeline)的多少來衡量程序的復(fù)雜性。這是早期,也是最簡單的計算程序復(fù)雜性的量度<100行語句的程序呈線性關(guān)系;>100行語句的程序,其出錯率以非線性方式增長。所以這種方法十分粗糙131軟件工程講義-2.Halstead軟件科學(xué)計算(1977)這種方法是根據(jù)程序中可執(zhí)行代碼行的操作符(如邏輯、算術(shù)運(yùn)算符等)和操作數(shù)(如變量名、常數(shù)等)的數(shù)量來計算程序的復(fù)雜性程序的操作符是有限的,其最大數(shù)目不會超過關(guān)鍵字的數(shù)目。而操作數(shù)的數(shù)目卻隨程序的規(guī)模的增大而增加。一般地說:操作符和操作數(shù)的量越大,程序結(jié)構(gòu)就越復(fù)雜這種方法采用了一組原始度量,它們可以在代碼生成后給出,也可在設(shè)計完成后估出設(shè):n1:程序中出現(xiàn)的不同的操作符的數(shù)目n2:程序中出現(xiàn)的不同的操作數(shù)(或操作對象)的數(shù)目N1:程序中操作符出現(xiàn)的總數(shù)N2:程序中操作數(shù)出現(xiàn)的總數(shù)132軟件工程講義-Halstead算式Halstead用這些原始度量定義了以下算式:(1)程序長度N=n1log2n1+n2log2n2(2)程序容量V=Nlog2(n1+n2)(V為信息位的容量)(3)語言級別L=(2×n2)/(n1×n2)(4)程序工作量E=V/L(5)程序編寫時間T=E/S(S為Stroud數(shù),即人判斷所需時間。一個清醒的人,每秒可進(jìn)行5-20次的最基本判斷)(6)程序潛在錯誤的數(shù)量B=Nlog2(n1+n2)/3000133軟件工程講義-3.McCabe復(fù)雜性量度(1976)McCabe認(rèn)為程序的復(fù)雜性很大程度上取決于程序流的復(fù)雜性。單一的順序程序結(jié)構(gòu)最簡單,循環(huán)和選擇結(jié)構(gòu)所構(gòu)成的環(huán)路越多,程序就越復(fù)雜這種方法以圖論為工具,先畫出程序圖,然后用該圖的環(huán)路數(shù)作為該程序復(fù)雜性的量度值。對于具有強(qiáng)連通圖的環(huán)路數(shù)V(G)可由下式給出:V(G)=e-n+2p其中:e圖中的邊數(shù)n圖中的結(jié)點(diǎn)數(shù)p圖中的聯(lián)結(jié)成分的個數(shù)134軟件工程講義-McCabe復(fù)雜性量度(續(xù))例:由上述計算方法可算得:V(G)=9-6+2=5這里選擇的五個線性無關(guān)環(huán)路為(abefa)、(aeb)、(abea)、(acfa)、(adcfa)其它任何環(huán)路都是這五個環(huán)路的線性組合135軟件工程講義-McCabe復(fù)雜性量度(續(xù))V(G)還可以用另外兩種方法求得:(1)通過計算程序圖中所有有界區(qū)域和無界區(qū)域數(shù)R來得到,所以V(G)為5(2)用判定語句的總數(shù)再加1來計算。這類復(fù)雜性是可加的,如單元A的復(fù)雜性為7(6個判定),單元B的復(fù)雜性為9(8個判定)。則單元A和單元B的復(fù)雜性為16。關(guān)于判定的個數(shù)計算,對多路分支語句(分情況語句)有如下約定:規(guī)定其判定個數(shù)為分支數(shù)減1,即一個具有5路分支的分情況語句只有4個判定。這樣,上例中兩個分情況語句可按4個判定來計算。所以,V(G)也為4+1=5McCabe建議:如果把具有多個分情況語句結(jié)構(gòu)作為例外,在一個程序結(jié)構(gòu)內(nèi),V(G)一般應(yīng)控制在10以內(nèi),3-9的范圍,則被認(rèn)為是良好的結(jié)枸和恰當(dāng)?shù)膹?fù)雜性。136軟件工程講義-4.功能點(diǎn)復(fù)雜性量度面向功能的度量是Albrecht,A.J1979年首先提出來的,使用軟件所提供的功能作為規(guī)范值。因?yàn)?,功能不能直接度量,必須通過其它直接的度量來間接地導(dǎo)出他建議的一種為功能點(diǎn)(functionpoint)的量度是基于軟件信息域的可計算的(直接的)量度和軟件復(fù)雜性的評估而給出的137軟件工程講義-功能點(diǎn)復(fù)雜度量度(續(xù))功能點(diǎn)如何計算?根據(jù)國際功能點(diǎn)用戶集團(tuán)(InternationalFunctionPointUser’sGroup,IFPUG)制定的詳細(xì)規(guī)則進(jìn)行(圖)。一般程序中有五個軟件信息域特征。138軟件工程講義-功能點(diǎn)復(fù)雜度量度(續(xù))(1)用戶輸入計算用戶每個輸入。它們向軟件提供不同的面向應(yīng)用的數(shù)據(jù)。輸入應(yīng)與查詢分別計算(2)用戶輸出計算用戶每個輸出。軟件向用戶提供不同的面向應(yīng)用的信息。這里是指報表、屏幕和出錯信息等。一個報表中的單個數(shù)據(jù)項(xiàng)不單獨(dú)計算。(3)交互查詢
一個查詢被定義為一次聯(lián)機(jī)輸入,它導(dǎo)致軟件以聯(lián)杌輸出方式產(chǎn)生實(shí)時響應(yīng)。每一個不同查詢都要計算。(4)內(nèi)部邏輯文件這里是指軟件需要使用系統(tǒng)內(nèi)部的邏輯文件。如數(shù)據(jù)庫中部分?jǐn)?shù)據(jù)或一個獨(dú)立的文件。(5)外部邏輯文件這里是指機(jī)器的可讀接口,利用這些接口可將信息從一個系統(tǒng)傳送到另一個系統(tǒng)139軟件工程講義-功能點(diǎn)復(fù)雜度量度(續(xù))有了上述五個特征的計算值,就可把每個計數(shù)與復(fù)雜性加權(quán)因子(按IFPUG制定的規(guī)則分高、中、低)相乘就可獲得小計和總計。這樣就可以得功能點(diǎn)總數(shù)按照IFPUG的規(guī)定:上面求出的功能點(diǎn)總數(shù)還要乘以一個根據(jù)整個系統(tǒng)復(fù)雜性而確定的因素影響值,對巳求出的功能點(diǎn)總數(shù)進(jìn)行上調(diào)或下調(diào),這樣才能得到最終的功能點(diǎn)數(shù)140軟件工程講義-功能點(diǎn)復(fù)雜度量度(續(xù))上、下調(diào)一般由下列十四個因素決定:(1)系統(tǒng)需要可靠的備份和恢復(fù)嗎?(2)需要數(shù)據(jù)通信嗎?(3)有分布處理功能嗎?(4)性能很關(guān)鍵嗎?(5)系統(tǒng)是否在一個現(xiàn)成的、重負(fù)的操作環(huán)境中運(yùn)行?(6)系統(tǒng)需要聯(lián)機(jī)數(shù)據(jù)登錄嗎?(7)聯(lián)機(jī)數(shù)據(jù)登錄是否需要在多屏幕或多操作之間切換以完成輸入?(8)需要聯(lián)機(jī)更新主文件嗎?(9)輸入、輸出、文件或查詢很復(fù)雜嗎?(10)內(nèi)部處理復(fù)雜嗎?(11)代碼需要被設(shè)為可重用的嗎?(12)設(shè)計中需要包括轉(zhuǎn)換和安裝嗎?(13)系統(tǒng)的設(shè)計需要支持不同組織的多次安裝嗎?(14)應(yīng)用設(shè)計方便用戶使用和修改嗎?每個問題的回答可使用從0(不重要的)到5(絕對重要的)來確定,這樣就可算出最終的功能點(diǎn)數(shù)。141軟件工程講義-功能點(diǎn)復(fù)雜度量度(續(xù))最后,有了功能點(diǎn)的最終數(shù),就可以計算出許多有用數(shù)據(jù)。這些數(shù)據(jù)是根據(jù)生產(chǎn)實(shí)際大量的統(tǒng)計數(shù)據(jù),用最小二乘法擬合給出的估算公式:質(zhì)量:必須糾正錯誤的數(shù)目=X1.25(個)人力資源:開發(fā)所需各類技術(shù)人員的總數(shù)=X/150(人)開發(fā)周期:完成任務(wù)所需的周期=X0.4(月)其中X為功能點(diǎn)的最終數(shù)。142軟件工程講義-功能點(diǎn)復(fù)雜度量度(續(xù))例:一個檢查英文單詞拼寫有否錯誤的程序輸入文件:文件名稱(檢查拼寫是否正確的文件)輸出文件:三個輸出:檢查單詞的總數(shù);找出拼寫的錯誤數(shù);列出有錯單詞的表交互查詢:用戶可通過交互式詢問,得到目前為止的處理單詞的總數(shù)一個內(nèi)部文件:詞典。一個外部文件:需要檢查的文件。這樣程序共有1+3+1+1+1=7個特征。其二,根據(jù)每個特征的復(fù)雜性(低、中、高)而賦予不同的權(quán)重。根據(jù)IFPUG制定的詳細(xì)規(guī)則,如果本例7個特征的復(fù)雜性均為中等,則其功能點(diǎn)加權(quán)和為40第三,總的功能點(diǎn)得數(shù),根據(jù)軟件系統(tǒng)復(fù)雜性而確定的因素,對功能點(diǎn)總數(shù)進(jìn)行上下調(diào)后才能給出143軟件工程講義-功能點(diǎn)復(fù)雜度量度(續(xù))從上可見,功能點(diǎn)量度的主要問題是如何計算一個要開發(fā)系統(tǒng)的功能點(diǎn)。它的好處是:如果一開始就確定了功能點(diǎn),那么開發(fā)機(jī)構(gòu)在未著手開始工作時,甚至一行代碼都沒有寫出,就可以計算出我們所有感興趣的有用數(shù)據(jù)。特別是這種方法可以定量計算從一些報導(dǎo):一個字處理程序(435000行代碼),約3500個功能點(diǎn);一個日常事務(wù)處理程序(包括字處理、表處理、數(shù)據(jù)庫應(yīng)用、統(tǒng)計工具和其它專用程序等),其功能點(diǎn)超過25000個;一個一般的操作系統(tǒng),其功能點(diǎn)多過10萬個廣心144軟件工程講義-(二)軟件可靠性軟件可靠性(Softwarer
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二四年度專業(yè)醫(yī)療機(jī)構(gòu)消毒殺菌服務(wù)合同3篇
- 2025版塔吊工程安全監(jiān)管勞務(wù)分包合同3篇
- 二零二五年度不銹鋼板材市場拓展與銷售代理合同3篇
- 2025版團(tuán)購合同范本四套全面升級的團(tuán)購服務(wù)協(xié)議3篇
- 2025-2030全球高含量硅膠布行業(yè)調(diào)研及趨勢分析報告
- 2025年鋁單板行業(yè)標(biāo)準(zhǔn)制定及加工合同4篇
- 2025年度供應(yīng)鏈金融代付款服務(wù)協(xié)議書4篇
- 2025年全球及中國醫(yī)藥營銷數(shù)字化平臺行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 二零二五版茶葉電商平臺合作銷售協(xié)議2篇
- 二零二五版股權(quán)多人轉(zhuǎn)一人變更及財務(wù)審計協(xié)議3篇
- 銷售與銷售目標(biāo)管理制度
- 人教版(2025新版)七年級下冊英語:寒假課內(nèi)預(yù)習(xí)重點(diǎn)知識默寫練習(xí)
- 2024年食品行業(yè)員工勞動合同標(biāo)準(zhǔn)文本
- 全屋整裝售后保修合同模板
- 高中生物學(xué)科學(xué)推理能力測試
- 2024年公安部直屬事業(yè)單位招聘筆試參考題庫附帶答案詳解
- 臨沂正祥建材有限公司牛心官莊鐵礦礦山地質(zhì)環(huán)境保護(hù)與土地復(fù)墾方案
- 六年級上冊數(shù)學(xué)應(yīng)用題練習(xí)100題及答案
- 死亡報告年終分析報告
- 棋牌室禁止賭博警示語
- 公轉(zhuǎn)私人轉(zhuǎn)賬協(xié)議
評論
0/150
提交評論