




版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
89/89專(zhuān)題七:軟件工程專(zhuān)題1、軟件工程知識(shí)1.1概述軟件工程是指應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及治理科學(xué)等原理,以工程化的原則和方法來(lái)解決軟件問(wèn)題的工程。其目的是提高軟件生產(chǎn)率、提高軟件質(zhì)量、減低軟件成本。軟件工程是1968年在德國(guó)的NATO會(huì)議上提出的,希望用工程化的原則和方法來(lái)克服軟件危機(jī);而軟件危機(jī)確實(shí)是軟件開(kāi)發(fā)和維護(hù)過(guò)程中的各種問(wèn)題,由于軟件開(kāi)發(fā)時(shí)期缺乏好的方法的指導(dǎo)和好的工具的輔助,而且缺少有關(guān)的文檔,使得大量的軟件難以維護(hù)。軟件生命周期是指由軟件定義、軟件開(kāi)發(fā)和軟件維護(hù)等時(shí)期組成的全過(guò)程,反映軟件生存期內(nèi)各種工作得組織以及各個(gè)時(shí)期如何銜接。下表歸納了軟件生存周期各個(gè)時(shí)期的任務(wù)、參與人員和產(chǎn)生文檔。
常見(jiàn)的軟件開(kāi)發(fā)模型有瀑布模型、演化模型、螺旋模型和噴泉模型等。
時(shí)期任務(wù)參與人員產(chǎn)生文檔軟件定義時(shí)期——待開(kāi)發(fā)軟件要“做什么”系統(tǒng)分析確定待開(kāi)發(fā)軟件的總體要求和適用范圍,以及與之有關(guān)的硬件、支撐軟件的要求用戶(hù)、項(xiàng)目負(fù)責(zé)人、系統(tǒng)分析員可合并項(xiàng)目打算書(shū)中軟件項(xiàng)目打算確定待開(kāi)發(fā)軟件的目標(biāo),對(duì)其進(jìn)行可行性分析,并對(duì)資源分配、進(jìn)度安排等做出合理的打算用戶(hù)、項(xiàng)目負(fù)責(zé)人、系統(tǒng)分析員可行性分析報(bào)告、項(xiàng)目打算書(shū)需求分析確定待開(kāi)發(fā)軟件的功能、性能、界面等要求,從而確定系統(tǒng)的邏輯模型用戶(hù)、項(xiàng)目負(fù)責(zé)人、系統(tǒng)分析員需求規(guī)格講明書(shū)軟件開(kāi)發(fā)時(shí)期——待開(kāi)發(fā)軟件“如何做”軟件設(shè)計(jì)概要設(shè)計(jì)模塊分解,確定軟件的結(jié)構(gòu),模塊的功能和模塊間的接口,以及全局?jǐn)?shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)系統(tǒng)分析員、高級(jí)程序員設(shè)計(jì)講明書(shū)、數(shù)據(jù)講明書(shū)、模塊開(kāi)發(fā)卷宗詳細(xì)設(shè)計(jì)設(shè)計(jì)每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)和局部數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)高級(jí)程序員、程序員編碼用某種程序語(yǔ)言為每個(gè)模塊編寫(xiě)程序高級(jí)程序員、程序員程序清單軟件測(cè)試發(fā)覺(jué)軟件中的錯(cuò)誤,并加以糾正高級(jí)程序員或系統(tǒng)分析員(另一部門(mén)或單位)軟件測(cè)試打算、軟件測(cè)試用例講明,軟件測(cè)試報(bào)告軟件維護(hù)時(shí)期—開(kāi)發(fā)后交付使用的軟件的維護(hù)軟件維護(hù)使軟件適應(yīng)外界環(huán)境的變化、實(shí)現(xiàn)功能的擴(kuò)充和質(zhì)量的改善而修改軟件維護(hù)人員維護(hù)打算、維護(hù)報(bào)告軟件由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成,同時(shí)與硬件、數(shù)據(jù)庫(kù)人、過(guò)程等共同構(gòu)成計(jì)算機(jī)系統(tǒng)。軟件工程包括三個(gè)要素:方法、工具和過(guò)程。要緊的軟件開(kāi)發(fā)方法有以下幾種方法:生命周期法:命周期法認(rèn)為:每一個(gè)軟件系統(tǒng)都有一定的生命周期。軟件的生命周期是指一個(gè)軟件系統(tǒng)從其提出、調(diào)查到分析、設(shè)計(jì)和有效使用,直至被淘汰或取代的整個(gè)期間。軟件生命周期法確實(shí)是按軟件生命周期的各個(gè)時(shí)期劃分任務(wù),按一定的規(guī)則和步驟,有效地進(jìn)行軟件開(kāi)發(fā)的方法。通常一個(gè)軟件系統(tǒng)的生命周期可分為五個(gè)時(shí)期:預(yù)備時(shí)期、分析時(shí)期、設(shè)計(jì)時(shí)期、實(shí)施時(shí)期、運(yùn)行與維護(hù)時(shí)期原型法:原型法是先依照用戶(hù)的最要緊要求,開(kāi)發(fā)出能實(shí)現(xiàn)系統(tǒng)最差不多功能的一個(gè)原型,再依照用戶(hù)對(duì)原型使用與評(píng)價(jià)的意見(jiàn),反復(fù)修改完善原型,直到等到用戶(hù)中意的最終系統(tǒng)為止。原型法分4個(gè)時(shí)期:確定用戶(hù)需求;設(shè)計(jì)原型;使用、評(píng)價(jià)原型;修改、完善原型。1.2軟件分析
軟件開(kāi)發(fā)模型:瀑布模型;演化模型(原型法);螺旋模型;噴泉模型(迭代和無(wú)間隙);軟件成本模型;可行性分析的任務(wù)是從技術(shù)上、經(jīng)濟(jì)上、使用上、法律上分析需解決的問(wèn)題是否存在可行的解。
需求分析是軟件生存周期中相當(dāng)重要的一個(gè)時(shí)期。需求分析要緊是確定待開(kāi)發(fā)軟件的功能、性能、數(shù)據(jù)、界面等要求。具體有以下幾點(diǎn):
確定軟件系統(tǒng)的綜合要求
分析軟件系統(tǒng)的數(shù)據(jù)要求
導(dǎo)出系統(tǒng)的邏輯模型
修正項(xiàng)目開(kāi)發(fā)打算
如有必要,可開(kāi)發(fā)一個(gè)原型系統(tǒng)
需求分析的差不多原則是能夠表達(dá)和理解問(wèn)題的信息域和功能域;以層次化的方式進(jìn)行分解和不斷細(xì)化;要給出系統(tǒng)的邏輯視圖和物理視圖;描述軟件需求的方法:功能層次模型:一般來(lái)講確實(shí)是系統(tǒng)的功能圖,模塊分布圖等描述整個(gè)系統(tǒng)的功能的分布和功能的層次結(jié)構(gòu);數(shù)據(jù)流模型:確實(shí)是以數(shù)據(jù)流為著眼點(diǎn)的分析方法得到的模型,要緊通過(guò)數(shù)據(jù)在整個(gè)系統(tǒng)的流淌情況來(lái)確定系統(tǒng)的要緊功能主線和流程;操縱流模型:通過(guò)了解和界定系統(tǒng)中操縱線,通過(guò)操縱流的走向和操縱的對(duì)象來(lái)確定系統(tǒng)的功能分布和操縱與被操縱的關(guān)系;結(jié)構(gòu)化分析(SA)方法是一種面向數(shù)據(jù)流的需求分析方法,它適用于分析大型數(shù)據(jù)處理系統(tǒng)。結(jié)構(gòu)化分析方法的差不多思想是自頂向下逐層分解,如此做能夠把一個(gè)大問(wèn)題分解成若干個(gè)小問(wèn)題,通過(guò)多次逐層分解,每個(gè)最底層的問(wèn)題差不多上足夠簡(jiǎn)單、容易解決的,那個(gè)過(guò)程確實(shí)是分解的過(guò)程。結(jié)構(gòu)化方法的分析結(jié)果由數(shù)據(jù)流圖DFD、數(shù)據(jù)詞典和加工邏輯講明幾個(gè)部分組成。其中,DFD的差不多成分有數(shù)據(jù)流(dataflow)、加工(process)、文件(file)和源/宿(source/sink)。
畫(huà)數(shù)據(jù)流圖的差不多步驟:自外向內(nèi)、自頂向下、逐層細(xì)化、完善求精;
數(shù)據(jù)流圖的父圖與子圖要平衡,即輸入和輸出的數(shù)據(jù)流一致;
數(shù)據(jù)流圖中的每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流;
局部的數(shù)據(jù)存儲(chǔ)不畫(huà)出來(lái),只有當(dāng)局部數(shù)據(jù)存儲(chǔ)作為某些數(shù)據(jù)加工之間的數(shù)據(jù)接口才畫(huà)出,這有利于信息隱蔽;
畫(huà)數(shù)據(jù)流的時(shí)候不畫(huà)操縱流,兩者的區(qū)不確實(shí)是操縱流中沒(méi)有數(shù)據(jù);
一個(gè)加工的數(shù)據(jù)流與輸出流不應(yīng)該同名;
同意一個(gè)加工有多條數(shù)據(jù)流流向另一個(gè)加工,也同意一個(gè)加工有兩個(gè)相同的輸出流向兩個(gè)不同的加工;
保持?jǐn)?shù)據(jù)守恒:一個(gè)加工的所有輸出數(shù)據(jù)必須能從該加工的所有的輸入流中獲得;
在整套數(shù)據(jù)流圖中,每個(gè)文件都必須既有讀文件的數(shù)據(jù)流也有寫(xiě)文件的數(shù)據(jù)流;軟件開(kāi)發(fā)過(guò)程中的軟件工程原則(8個(gè)):
抽象;
自頂向下、逐層細(xì)化;
信息隱蔽和數(shù)據(jù)封裝;
模塊化;
局部化;
確定性;
一致性和標(biāo)準(zhǔn)化;
完備性和可驗(yàn)證性;軟件工程差不多原理(7個(gè)):
按軟件生存周期分時(shí)期指定打算并認(rèn)真實(shí)施;
堅(jiān)持進(jìn)行時(shí)期評(píng)審;
堅(jiān)持嚴(yán)格的產(chǎn)品操縱;
使用現(xiàn)代程序設(shè)計(jì)技術(shù);
明確責(zé)任,使得工作結(jié)果能夠得到清晰的審查;
用人少而精;
不斷改進(jìn)開(kāi)發(fā)過(guò)程;1.3軟件設(shè)計(jì)軟件設(shè)計(jì)原則:軟件設(shè)計(jì)的原則對(duì)提高軟件的設(shè)計(jì)質(zhì)量有專(zhuān)門(mén)大的關(guān)心。◆抽象抽象是指忽視一個(gè)主題中與當(dāng)前目標(biāo)無(wú)關(guān)的那些方面,以便更充分地注意與當(dāng)前目標(biāo)有關(guān)的方面。過(guò)程抽象和數(shù)據(jù)抽象是常用的兩種要緊抽象手段?!裟K化模塊化是指將一個(gè)待開(kāi)發(fā)的軟件分解成若干個(gè)小的簡(jiǎn)單的部分——模塊,每個(gè)模塊可獨(dú)立地開(kāi)發(fā)、測(cè)試、最后組裝成完整的軟件。這是一種復(fù)雜問(wèn)題的“分而治之”的原則。模塊是指執(zhí)行某一特定任務(wù)的數(shù)據(jù)結(jié)構(gòu)和程序代碼。一個(gè)模塊有它的外部特征和內(nèi)部特征?!粜畔㈦[蔽信息隱蔽是開(kāi)發(fā)整體程序結(jié)構(gòu)時(shí)使用的法則,立即每個(gè)程序的成分隱蔽或封裝在一個(gè)單一的設(shè)計(jì)模塊中,定義每一個(gè)模塊時(shí)盡可能少地顯露其內(nèi)部的處理。信息隱蔽原則對(duì)提高軟件的可修改性、可測(cè)試性和可移植性都有重要的作用。◆模塊獨(dú)立模塊獨(dú)立是指每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的子功能,同時(shí)與其他模塊之間的聯(lián)系簡(jiǎn)單。衡量模塊獨(dú)立程度的度量標(biāo)準(zhǔn)有兩個(gè):耦合和內(nèi)聚。耦合是指模塊之間聯(lián)系的緊密程度。耦合度越高則模塊的獨(dú)立性越差。按耦合度從低到高依次有7種耦合方式。
非直接耦合(獨(dú)立運(yùn)行)
數(shù)據(jù)耦合(用參數(shù)表傳遞簡(jiǎn)單數(shù)據(jù))
標(biāo)記耦合(傳遞數(shù)據(jù)結(jié)構(gòu)或者一部分)
操縱耦合(傳遞的信息包括操縱模塊的信息)
外部耦合(模塊與軟件之外的環(huán)境有關(guān))
公共耦合(多個(gè)模塊引用同一全局的數(shù)據(jù)區(qū))
內(nèi)容耦合(訪問(wèn)內(nèi)部數(shù)據(jù),代碼重疊或者多個(gè)入口)內(nèi)聚是指模塊內(nèi)部各元素之間聯(lián)系的緊密程度內(nèi)聚度越低模塊的獨(dú)立性越差。按內(nèi)聚度從低到高依次有7種內(nèi)聚種類(lèi)。
偶然內(nèi)聚(模塊完成的多個(gè)任務(wù),任務(wù)之間的關(guān)系松散)
邏輯內(nèi)聚(模塊完成邏輯相關(guān)的一組任務(wù))
瞬時(shí)內(nèi)聚(模塊的所有任務(wù)必須在同一時(shí)刻間隔內(nèi)執(zhí)行)
過(guò)程內(nèi)聚(模塊的處理元素相關(guān)而且按照特定的次序執(zhí)行)
通信內(nèi)聚(模塊的所有元素集中在一個(gè)數(shù)據(jù)結(jié)構(gòu)區(qū)域上)
順序內(nèi)聚(模塊的處理元素相關(guān),必須順序執(zhí)行)
功能內(nèi)聚(模塊完成單一的功能,各個(gè)部分協(xié)調(diào)工作,而且不可缺少)模塊分解原則:
滿足信息隱蔽;
盡量?jī)?nèi)聚度高,模塊間偶合度低;
模塊大小在(50-100語(yǔ)句);
模塊調(diào)用深度不能過(guò)大;
模塊的扇入(直接調(diào)用該模塊)應(yīng)盡量大,扇出(直接調(diào)用下級(jí)模塊數(shù))不宜過(guò)大;
設(shè)計(jì)單入口和單出口的模塊;
模塊的作用域應(yīng)在操縱域之內(nèi):作用域:受模塊內(nèi)一個(gè)判定阻礙的所有的模塊的集合;操縱域:該模塊本身和被該模塊直接或間接調(diào)用的所有的模塊的集合;
模塊的功能應(yīng)是能夠預(yù)測(cè)的,相同輸入得到相同輸出結(jié)構(gòu)化設(shè)計(jì)方法結(jié)構(gòu)化設(shè)計(jì)(SD)方法是一種面向數(shù)據(jù)流的設(shè)計(jì)方法,它能夠與SA方法銜接。結(jié)構(gòu)化設(shè)計(jì)采納結(jié)構(gòu)圖(SC)來(lái)描述程序的結(jié)構(gòu)。其差不多成分有模塊、調(diào)用和輸入/輸出數(shù)據(jù)。結(jié)構(gòu)圖:
條件調(diào)用
循環(huán)調(diào)用
在需求分析時(shí)期用SA方法產(chǎn)生了數(shù)據(jù)流圖(DFD)。面向數(shù)據(jù)流的設(shè)計(jì)能夠方便的將DFD轉(zhuǎn)換成程序結(jié)構(gòu)圖。DFD從系統(tǒng)的輸入數(shù)據(jù)流到系統(tǒng)的輸出數(shù)據(jù)流的一連串連續(xù)變換形成一條信息流。DFD的信息流大體可分為兩種類(lèi)型:變換流和事務(wù)流。與之對(duì)應(yīng)的也存在兩種分析,變換分析和事務(wù)分析。變換分析是從變換流型的DFD導(dǎo)出程序結(jié)構(gòu)圖,而事務(wù)分析則是從事務(wù)流行型的DFD導(dǎo)出程序結(jié)構(gòu)圖。SD方法的具體設(shè)計(jì)步驟為:
復(fù)查并精化數(shù)據(jù)流圖
確定DFD的信息流類(lèi)型
依照信息流類(lèi)型分不將變換流或事務(wù)流轉(zhuǎn)換成程序結(jié)構(gòu)圖
依照軟件設(shè)計(jì)的原則對(duì)程序結(jié)構(gòu)圖作改進(jìn)結(jié)構(gòu)化程序設(shè)計(jì)結(jié)構(gòu)化程序(SP)設(shè)計(jì)采納自頂向下逐步求精的設(shè)計(jì)方法和單入口單出口的操縱結(jié)構(gòu)。結(jié)構(gòu)化程序設(shè)計(jì)的描述工具要緊有圖形描述工具、語(yǔ)言描述工具和表格描述工具。常用的圖形描述工具有程序流程圖、盒圖(NS圖)和問(wèn)題分析圖(PAD)。典型的語(yǔ)言描述工具是PDL(programdesignlanguage)。典型的表格描述工具是判定表和判定樹(shù)。面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法也十分常用:
Jackson方法是以數(shù)據(jù)結(jié)構(gòu)為設(shè)計(jì)基礎(chǔ),設(shè)計(jì)目標(biāo)是得出對(duì)程序處理過(guò)程的描述,其設(shè)計(jì)過(guò)程是從描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖推導(dǎo)出描繪程序結(jié)構(gòu)的Jackson圖。這種方法最適合于詳細(xì)設(shè)計(jì)時(shí)期使用。Jackson方法的具體設(shè)計(jì)步驟為:
分析并確定輸入和輸出的數(shù)據(jù)的邏輯結(jié)構(gòu),并用Jackson圖表示
找出輸入數(shù)據(jù)結(jié)構(gòu)與輸出數(shù)據(jù)結(jié)構(gòu)間有對(duì)應(yīng)關(guān)系的數(shù)據(jù)單元
從描述數(shù)據(jù)結(jié)構(gòu)的Jackson圖導(dǎo)出描述程序結(jié)構(gòu)的Jackson圖軟件編碼:依照詳細(xì)設(shè)計(jì)講明書(shū)編寫(xiě)程序,為開(kāi)發(fā)項(xiàng)目選擇程序設(shè)計(jì)語(yǔ)言需要考慮的因素有應(yīng)用領(lǐng)域、算法和計(jì)算的復(fù)雜性、軟件運(yùn)行環(huán)境、用戶(hù)需求、數(shù)據(jù)結(jié)構(gòu)和開(kāi)發(fā)人員的水平。軟件的設(shè)計(jì)質(zhì)量與程序設(shè)計(jì)語(yǔ)言的技術(shù)性能無(wú)關(guān),但在程序設(shè)計(jì)轉(zhuǎn)向程序代碼時(shí),轉(zhuǎn)化的質(zhì)量受語(yǔ)言性能的阻礙。好的程序應(yīng)該具有模塊化結(jié)構(gòu),系統(tǒng)應(yīng)該有較高的模塊獨(dú)立性。從應(yīng)用領(lǐng)域看,COBOL適合商業(yè)領(lǐng)域;FORTRAN適合科學(xué)計(jì)算;PROLOG和LISP適合人工智能領(lǐng)域;SMALLTALK、C++、JAVA是面向?qū)ο笳Z(yǔ)言;C是開(kāi)發(fā)系統(tǒng)的程序設(shè)計(jì)語(yǔ)言;例題1:軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是A。兩個(gè)模塊之間的耦合方式中,B耦合的耦合度最高,C耦合的耦合度最低。一個(gè)模塊內(nèi)部的內(nèi)聚種類(lèi)中D內(nèi)聚的內(nèi)聚度最高,E內(nèi)聚的內(nèi)聚度最低。A:①低內(nèi)聚低耦合
②低內(nèi)聚高耦合
③高內(nèi)聚低耦合
④高內(nèi)聚高耦合B:①數(shù)據(jù)
②非直接
③操縱
④內(nèi)容C:①數(shù)據(jù)
②非直接
③操縱
④內(nèi)容D:①偶然
②邏輯
③功能
④過(guò)程E:①偶然
②邏輯
③功能
④過(guò)
A3
B4
C2
D3
E1
例題2關(guān)于程序模塊優(yōu)化的啟發(fā)式規(guī)則有若干條,以下規(guī)則中不符合優(yōu)化原則的是__B__。假如一個(gè)模塊調(diào)用下層模塊時(shí)傳遞一個(gè)數(shù)據(jù)結(jié)構(gòu),則這種耦合屬于_C_。(軟件工程)(30)A.通過(guò)模塊的合并和分解,降低模塊的耦合度,提高模塊的內(nèi)聚性B.提高上層模塊的扇出,減少模塊調(diào)用的層次C.將模塊的作用范圍限制在模塊的操縱范圍之內(nèi)D.降低模塊之間接口的復(fù)雜性,幸免“病態(tài)連接”(31)A.簡(jiǎn)單耦合B.直接耦合C.標(biāo)記耦合D.操縱耦合1.4軟件測(cè)試對(duì)源程序最差不多的質(zhì)量要求是正確性和可靠性,此外還專(zhuān)門(mén)注重軟件的易使用性、易維護(hù)性和易移植性。軟件測(cè)試的工作量約占軟件開(kāi)發(fā)總工作量的40%以上,其目的是盡可能多的發(fā)覺(jué)軟件產(chǎn)品(要緊是指程序)中的錯(cuò)誤和缺陷。軟件測(cè)試是自底向上,逐步集成的過(guò)程,低一級(jí)測(cè)試為上一級(jí)測(cè)試預(yù)備條件;測(cè)試的關(guān)鍵是測(cè)試用例的設(shè)計(jì),其方法可分為兩類(lèi)。白盒測(cè)試:白盒測(cè)試是依照程序的內(nèi)部邏輯來(lái)設(shè)計(jì)測(cè)試用例,常用的技術(shù)是邏輯覆蓋,即考察用例測(cè)試數(shù)據(jù)運(yùn)行被測(cè)程序時(shí)對(duì)程序邏輯的覆蓋程度。要緊的覆蓋標(biāo)準(zhǔn)有6種:I.
語(yǔ)句覆蓋指選擇足夠的測(cè)試用例,使被測(cè)語(yǔ)句的每個(gè)語(yǔ)句至少執(zhí)行一次。II.判定覆蓋指選擇足夠的測(cè)試用例,使每個(gè)判定的所有可能結(jié)果至少出現(xiàn)一次。III.條件覆蓋指選擇足夠的測(cè)試用例,使判定中的每個(gè)條件的所有可能結(jié)果至少出現(xiàn)一次。IV.判定/條件覆蓋指選擇足夠的測(cè)試用例,使判定中的每個(gè)條件的所有可能結(jié)果至少出現(xiàn)一次,同時(shí)每個(gè)判定中條件結(jié)果的所有可能組合也至少出現(xiàn)一次。V.
條件組合覆蓋指選擇足夠的測(cè)試用例,使每個(gè)判定中條件結(jié)果的所有可能組合至少出現(xiàn)一次。VI.路徑覆蓋指選擇足夠的測(cè)試用例,使流程圖中的每條路徑至少通過(guò)一次。黑盒測(cè)試:黑盒測(cè)試時(shí)依照規(guī)格講明所規(guī)定的功能來(lái)設(shè)計(jì)測(cè)試用例,它不考慮程序的內(nèi)部結(jié)構(gòu)和處理過(guò)程。常用的黑盒測(cè)試技術(shù)有:
等價(jià)類(lèi)劃分
邊值劃分
錯(cuò)誤推測(cè)軟件測(cè)試的要緊步驟有單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試。單元測(cè)試:要緊用來(lái)發(fā)覺(jué)編碼和詳細(xì)設(shè)計(jì)中產(chǎn)生的錯(cuò)誤,一般在編碼時(shí)期,采納白盒測(cè)試。集成測(cè)試(也稱(chēng)組裝測(cè)試):要緊用來(lái)發(fā)覺(jué)設(shè)計(jì)時(shí)期產(chǎn)生的錯(cuò)誤,是對(duì)各模塊組裝而成的程序進(jìn)行測(cè)試,要緊檢查模塊間的接口和通信,采納黑盒測(cè)試。集成測(cè)試按集成方式又可分成非漸增式集成和漸增式集成,而漸增式集成又可分成自頂向下集成和自底向上集成。確認(rèn)測(cè)試:檢查軟件的功能、性能和其他特征是否與用戶(hù)需求一致,它以需求規(guī)格講明書(shū)作測(cè)試為依據(jù),采納黑盒測(cè)試Alpha測(cè)試是在開(kāi)發(fā)者的現(xiàn)場(chǎng)由客戶(hù)來(lái)實(shí)施的,從用戶(hù)角度和環(huán)境下進(jìn)行;Beta測(cè)試是在開(kāi)發(fā)者不在現(xiàn)場(chǎng)下測(cè)試,由軟件最終用戶(hù)實(shí)施;使用各種測(cè)試方法的綜合策略:
在任何情況下都必須使用邊界值分析方法,用這種方法設(shè)計(jì)出測(cè)試用例發(fā)覺(jué)程序錯(cuò)誤的能力最強(qiáng);
必要時(shí)用等價(jià)類(lèi)劃分方法補(bǔ)充一些測(cè)試用例;
用錯(cuò)誤推測(cè)法再追加一些測(cè)試用例
對(duì)比程序邏輯,檢查已有測(cè)試用例的邏輯覆蓋程度
假如程序的功能講明中含有輸入條件的組合情況,則選用因果圖法例題:軟件測(cè)試的目的是A。通常B是在代碼編寫(xiě)時(shí)期可進(jìn)行的測(cè)試,它是整個(gè)測(cè)試工作的基礎(chǔ)。邏輯覆蓋標(biāo)準(zhǔn)要緊用于C。它要緊包括條件覆蓋、條件組合(多重條件)覆蓋、判定覆蓋、條件及判定覆蓋、語(yǔ)句覆蓋和路徑覆蓋等幾種,其中除路徑覆蓋外最弱的覆蓋標(biāo)準(zhǔn)是D,最強(qiáng)的覆蓋標(biāo)準(zhǔn)E。A:
①表明軟件的正確性
②評(píng)價(jià)軟件質(zhì)量
③盡可能發(fā)覺(jué)軟件中錯(cuò)誤
④判定軟件是否合格B:
①系統(tǒng)測(cè)試
②安裝測(cè)試
③驗(yàn)收測(cè)試
④單元測(cè)試C:
①黑盒測(cè)試方法
②白盒測(cè)試方法
③灰盒測(cè)試方法
④軟件驗(yàn)收方法D、E:
①條件覆蓋
②條件組合覆蓋
③判定覆蓋
④條件及判定覆蓋
⑤語(yǔ)句覆蓋A:③
B:④
C:②
D:⑤
E:②1.5軟件開(kāi)發(fā)工具與環(huán)境(CASE)用來(lái)輔助軟件開(kāi)發(fā)、運(yùn)行、維護(hù)、治理和支持等過(guò)程中的活動(dòng)的軟件稱(chēng)為軟件工具,通常也稱(chēng)為CASE(計(jì)算機(jī)輔助軟件工程)工具。整個(gè)軟件開(kāi)發(fā)過(guò)程要使用專(zhuān)門(mén)多開(kāi)發(fā)工具,其中包括分析工具、設(shè)計(jì)工具、編程工具、測(cè)試工具、維護(hù)工具等等。軟件開(kāi)發(fā)工具是指支持軟件產(chǎn)品開(kāi)發(fā)的軟件系統(tǒng),它由軟件工具集和環(huán)境集成機(jī)智構(gòu)成。工具集包括支持軟件開(kāi)發(fā)相關(guān)過(guò)程、活動(dòng)、任務(wù)的軟件工具;環(huán)境集成機(jī)智為工具集成和軟件開(kāi)發(fā)、維護(hù)和治理提供統(tǒng)一的支持。軟件開(kāi)發(fā)環(huán)境是把一組相關(guān)的工具集成在環(huán)境中,提供數(shù)據(jù)集成、操縱集成和界面集成等機(jī)制。其中:
數(shù)據(jù)集成機(jī)制:提供統(tǒng)一的數(shù)據(jù)模式和數(shù)據(jù)接口規(guī)范,需要相互協(xié)同的工具通過(guò)這種統(tǒng)一的規(guī)范交換數(shù)據(jù)。數(shù)據(jù)集成可由共享文件、共享數(shù)據(jù)結(jié)構(gòu)或共享信息庫(kù)等不同的層次;
操縱集成機(jī)制:支持各工具或各開(kāi)發(fā)活動(dòng)之間的通信、切換、調(diào)度和協(xié)同工作,同時(shí)支持軟件開(kāi)發(fā)過(guò)程的描述、執(zhí)行和轉(zhuǎn)接;通常消息傳送的方式實(shí)現(xiàn)操縱的集成。
界面集成機(jī)制使這些工具具有統(tǒng)一的界面風(fēng)格,從而為軟件開(kāi)發(fā)、維護(hù)、治理等過(guò)程的各項(xiàng)活動(dòng)提供連續(xù)的、一致的全方位支持。集成型軟件開(kāi)發(fā)環(huán)境由工具集和環(huán)境集成機(jī)制組成,這種環(huán)境應(yīng)該具有開(kāi)放性和可剪裁性;環(huán)境集成機(jī)制的核心是環(huán)境數(shù)據(jù)庫(kù)。1.6軟件維護(hù)和軟件治理軟件開(kāi)發(fā)項(xiàng)目治理基礎(chǔ)知識(shí)(時(shí)刻治理、成本治理、質(zhì)量治理、人力資源治理、風(fēng)險(xiǎn)治理等)及其常用治理工具
軟件維護(hù)時(shí)期是指從軟件交付使用到軟件被淘汰為止的整個(gè)時(shí)期,它是在軟件交付使用后,為了改正軟件中隱藏的錯(cuò)誤,或者為了使軟件適應(yīng)新的環(huán)境,或者為了擴(kuò)充和完善軟件的功能或性能而修改軟件的過(guò)程。依照引起軟件維護(hù)的緣故,軟件維護(hù)通??煞殖筛恼跃S護(hù)、適應(yīng)性維護(hù)、完善性維護(hù)、預(yù)防性維護(hù)。軟件治理工作涉及到軟件開(kāi)發(fā)工作的方方面面,其直接對(duì)象包括人、財(cái)、物,簡(jiǎn)單地講,人確實(shí)是指軟件開(kāi)發(fā)人員,財(cái)確實(shí)是指項(xiàng)目經(jīng)費(fèi),物確實(shí)是指軟件項(xiàng)目。也許還沒(méi)有關(guān)于這方面的專(zhuān)門(mén)理論,但在工商治理領(lǐng)域差不多有十分成熟的治理學(xué)理論,他山之石,能夠攻玉,因此我們完全能夠引進(jìn)到軟件項(xiàng)目方面的治理。作為軟件治理人員,應(yīng)該站在高處來(lái)俯瞰整個(gè)項(xiàng)目,假如有不識(shí)廬山真面目的感受就不太好了。有了俯瞰全局的意識(shí)這一前提,采納適當(dāng)?shù)闹卫砑夹g(shù),項(xiàng)目開(kāi)展就容易羅。軟件項(xiàng)目的治理工作能夠分位四個(gè)方面:軟件項(xiàng)目的打算、軟件項(xiàng)目的組織、軟件項(xiàng)目的領(lǐng)導(dǎo)和軟件項(xiàng)目的操縱.1軟件項(xiàng)目的打算軟件開(kāi)發(fā)項(xiàng)目的打算包括定義項(xiàng)目的目標(biāo),以及達(dá)到目標(biāo)的方法。他涉及到項(xiàng)目實(shí)施的各個(gè)環(huán)節(jié),帶有全局的性質(zhì),是戰(zhàn)略性的。打算應(yīng)力求完備,要考慮到一些未知因素和不確定因素,考慮到可能的修改。打算應(yīng)力求準(zhǔn)確,盡可能提高所依據(jù)的數(shù)據(jù)的可靠程度。要緊工作集中在軟件項(xiàng)目的估算、軟件開(kāi)發(fā)成本的估算和軟件項(xiàng)目進(jìn)度安排。軟件項(xiàng)目打算的目標(biāo)是提供一個(gè)能使項(xiàng)目治理人員對(duì)資源、成本和進(jìn)度做出合理估算的框架。這些估算應(yīng)在軟件項(xiàng)目開(kāi)始時(shí)的一段有限時(shí)刻內(nèi)作出,并隨著項(xiàng)目的進(jìn)展進(jìn)行更新。2軟件項(xiàng)目的估算軟件項(xiàng)目治理過(guò)程開(kāi)始于項(xiàng)目的打算,在做項(xiàng)目打算時(shí),第一項(xiàng)活動(dòng)是估算。現(xiàn)在差不多使用的使用技術(shù)是時(shí)刻和工作量的估算。因?yàn)楣来_實(shí)是其他項(xiàng)目打算活動(dòng)的基石,而且項(xiàng)目打算又未軟件工程過(guò)程提供了工作方向,因此我們不能沒(méi)有打算就著手開(kāi)發(fā),否則就會(huì)陷入盲目性。估算本身帶有風(fēng)險(xiǎn),估算資源、成本和項(xiàng)目進(jìn)度時(shí)需要經(jīng)驗(yàn)、有用的歷史信息、足夠的定量數(shù)據(jù)和作定量度量的勇氣。估算的精確程度受到多方面的阻礙。首先,項(xiàng)目的復(fù)雜性關(guān)于增加軟件打算的不確定性阻礙專(zhuān)門(mén)大,復(fù)雜性越高,估算的風(fēng)險(xiǎn)就越高。復(fù)雜性是相對(duì)度量的,他與項(xiàng)目參加人員的經(jīng)驗(yàn)有關(guān),比如假如讓搞MIS的項(xiàng)目組去搞操作系統(tǒng)設(shè)計(jì)顯然增加了復(fù)雜性。其次,項(xiàng)目的規(guī)模關(guān)于估算的精確性和功效的阻礙也比較大,因?yàn)殡S著軟件規(guī)模的擴(kuò)大,軟件相同元素之間的相互依靠、相互阻礙也迅速增加,因而估算時(shí)進(jìn)行問(wèn)題分解也會(huì)變得更加困難。還有項(xiàng)目的結(jié)構(gòu)化程度也阻礙項(xiàng)目估算的風(fēng)險(xiǎn),那個(gè)地點(diǎn)的結(jié)構(gòu)性是指功能分解的簡(jiǎn)便性和處理信息的層次性,結(jié)構(gòu)化程度提高,進(jìn)行精確估算的能力就提高,相應(yīng)風(fēng)險(xiǎn)將減少。此外,歷史信息的有效性也阻礙估算的風(fēng)險(xiǎn),在對(duì)過(guò)去的項(xiàng)目進(jìn)行這綜合的軟件度量之后,就能夠借用來(lái)比較準(zhǔn)確地進(jìn)行估算。阻礙估算的因素遠(yuǎn)不止這些,比如用戶(hù)需求的頻繁變更給估算帶來(lái)特不大的阻礙。估算的依據(jù)是軟件的范圍,包括功能,性能、限制、接口和可靠性。在估算開(kāi)始之前,應(yīng)對(duì)軟件的功能進(jìn)行評(píng)價(jià),并對(duì)其進(jìn)行適當(dāng)?shù)募?xì)化以便提供更詳細(xì)的細(xì)節(jié)。由于成本和進(jìn)度的估算都與功能有關(guān),因此常常采納功能分解的方法。性能的考慮要緊包括處理和響應(yīng)時(shí)刻的需求。約束條件則標(biāo)識(shí)外部硬件、可用存儲(chǔ)和其他現(xiàn)有系統(tǒng)對(duì)軟件的限制。另外軟件項(xiàng)目打算還要完成資源估算,包括人力資源、硬件資源和軟件資源。在考慮各種軟件開(kāi)發(fā)資源時(shí)最重要的是人,必須考慮人員的技術(shù)水平、專(zhuān)業(yè)、人數(shù)以及在開(kāi)發(fā)過(guò)程各時(shí)期對(duì)各種人員的需要。硬件資源作為一種工具投入。軟件資源包括各種關(guān)心開(kāi)發(fā)的軟件工具,比如編程工具、治理工具、測(cè)試工具,還有操作系統(tǒng)和數(shù)據(jù)庫(kù)等。工作兩估確實(shí)是最普遍使用的技術(shù)。通過(guò)功能分解之后,能夠可能出每一個(gè)項(xiàng)目任務(wù)的分解都需要花費(fèi)若干人年,總計(jì)之后就明白軟件項(xiàng)目總體工作量。下面確實(shí)是一個(gè)示意性工作量估算表。表格1某軟件系統(tǒng)工作量估算表(單位:人日)任務(wù)需求分析設(shè)計(jì)編碼測(cè)試小計(jì)用戶(hù)定義2510.58.5系統(tǒng)定義2510.58.5廣告預(yù)定41020.516.5劃版520100.535.5制作和組版353112總計(jì)164517381軟件開(kāi)發(fā)成本的估算軟件開(kāi)發(fā)成本要緊是指軟件開(kāi)發(fā)過(guò)程所花費(fèi)的工作量及其相應(yīng)的代價(jià)。它不同于其他物理產(chǎn)品的成本,它要緊包括人的勞動(dòng)的消耗,人的勞動(dòng)的消耗所需的代價(jià)確實(shí)是軟件產(chǎn)品的開(kāi)發(fā)成本。開(kāi)發(fā)成本的估算方法有專(zhuān)門(mén)多種,象簡(jiǎn)單的代碼行技術(shù),任務(wù)分解技術(shù),自動(dòng)可能成本技術(shù),專(zhuān)家判定技術(shù),還有參數(shù)方程法,標(biāo)準(zhǔn)值法,以及COCOMO模型法。其中COCOMO(ConstructiveCostModel)模型法是一種精確、易于使用的成本估算方法,該模型按其詳細(xì)程度分為三級(jí):差不多COCOMO模型、中間COCOMO模型和詳細(xì)COCOMO模型軟件項(xiàng)目進(jìn)度安排軟件項(xiàng)目的進(jìn)度安排要緊是考慮軟件交付用戶(hù)使用的這一段開(kāi)發(fā)時(shí)刻的安排。進(jìn)度安排的準(zhǔn)確程度可能比成本可能的準(zhǔn)確程度更重要。軟件產(chǎn)品能夠靠重新定價(jià)或者靠大量的銷(xiāo)售來(lái)彌補(bǔ)成本的增加,但進(jìn)度安排的落空會(huì)導(dǎo)致市場(chǎng)機(jī)會(huì)的喪失或者用戶(hù)不中意,而且也會(huì)導(dǎo)致成本的增加。因此在考慮進(jìn)度安排時(shí)要把人員的工作量與花費(fèi)的時(shí)刻聯(lián)系起來(lái),合理分配工作量,利用進(jìn)度安排的有效分析方法嚴(yán)密監(jiān)視軟件開(kāi)發(fā)的進(jìn)展情況,以使得軟件開(kāi)發(fā)的進(jìn)度不致被拖延。在進(jìn)行進(jìn)度安排時(shí)要考慮的一個(gè)要緊問(wèn)題是任務(wù)的并行性問(wèn)題。當(dāng)參加項(xiàng)目的人數(shù)不止一人是軟件開(kāi)發(fā)工作就會(huì)出現(xiàn)并行情況。因?yàn)椴⑿腥蝿?wù)是同時(shí)發(fā)生的因此進(jìn)度打算表必須決定任務(wù)之間的從屬關(guān)系,確定各個(gè)任務(wù)的先后次序和銜接,確定各個(gè)任務(wù)完成的持續(xù)時(shí)刻。另外還應(yīng)注意關(guān)鍵路徑的任務(wù),如此能夠確定在進(jìn)度安排中應(yīng)保證的重點(diǎn)。常用的進(jìn)度安排方法有兩種,即甘特圖(GanttChart)法和工程網(wǎng)絡(luò)法。3.軟件項(xiàng)目的組織參加軟件開(kāi)發(fā)的人員如何組織起來(lái),使他們發(fā)揮最大的工作效率,對(duì)成功地完成軟件項(xiàng)目極為重要。組織結(jié)構(gòu)開(kāi)發(fā)組織采納什么形式由軟件項(xiàng)目的特點(diǎn)決定,同時(shí)也與參加人員的素養(yǎng)有關(guān)。通常有三種組織結(jié)構(gòu)模式:
1.按課題組劃分的模式:把開(kāi)發(fā)人員按課題組成小組,小組成員自始至終承擔(dān)課題的各項(xiàng)任務(wù)。該模式適用于規(guī)模不大的項(xiàng)目,同時(shí)要求小組成員在各方面有技術(shù)專(zhuān)長(zhǎng)。
2.按職能劃分的模式:把開(kāi)發(fā)項(xiàng)目的軟件人員按任務(wù)的工作時(shí)期劃分為若干工作小組。要開(kāi)發(fā)的軟件在每個(gè)專(zhuān)業(yè)小組完成時(shí)期加工后沿工序流水線向下傳遞。這種流水作業(yè)的方式使用于多項(xiàng)目并行的情況。
3.矩陣形模型:這種模式是以上兩種模式的復(fù)合。一方面按工作性質(zhì)成立一些專(zhuān)門(mén)小組,另一方面每一個(gè)項(xiàng)目都有它的經(jīng)理人員負(fù)責(zé)。每一個(gè)軟件開(kāi)發(fā)人員屬于某一個(gè)專(zhuān)門(mén)小組,有參加某一個(gè)項(xiàng)目的工作。該模式的優(yōu)點(diǎn)有一方面參加專(zhuān)門(mén)組的成員能夠在組內(nèi)交流在各個(gè)項(xiàng)目中取得的經(jīng)驗(yàn),這更有利于發(fā)揮專(zhuān)業(yè)人員的作用;另一方面,各個(gè)項(xiàng)目有專(zhuān)門(mén)的人員負(fù)責(zé),有利于軟件項(xiàng)目的完成。這種模式比較適合于規(guī)模比較大的項(xiàng)目。組織結(jié)構(gòu)的最后一層是程序設(shè)計(jì)小組的組織形式。通常認(rèn)為程序設(shè)計(jì)工作是按獨(dú)立的方式進(jìn)行的,程序人員獨(dú)立地完成任務(wù)。但這并不意味著相互之間沒(méi)有聯(lián)系。一般在人數(shù)比較少時(shí)組員之間的聯(lián)系比較簡(jiǎn)單,但隨著人數(shù)的增加,相互之間的聯(lián)系變得負(fù)責(zé)起來(lái)。小組內(nèi)部人員的組織形式對(duì)對(duì)生產(chǎn)率有著十分重要的阻礙。常見(jiàn)的小組組織形式有三種,這三種形式能夠靈活使用。
1.主程序員制小組:相當(dāng)于組長(zhǎng)負(fù)責(zé)制,小組的核心由一位主程序員,另外配備兩到三位技術(shù)員、一位后援工程師組成。這種組織結(jié)構(gòu)突出主程序員的領(lǐng)導(dǎo),強(qiáng)調(diào)主程序員與其他技術(shù)人員的聯(lián)系。
2.民主制小組:在民主制小組中,遇到問(wèn)題能夠在組員之間平等地交換換意見(jiàn),工作組目標(biāo)的制定以及決定的作出都由全體人員參加。這種組織形式強(qiáng)調(diào)發(fā)揮每個(gè)成員的積極性,并要求每個(gè)成員發(fā)揮主動(dòng)精神和協(xié)作精神。
3.層次式小組:在層次式小組中,組內(nèi)人員分位三級(jí):組長(zhǎng)(項(xiàng)目負(fù)責(zé)人)一人負(fù)責(zé)全組工作,他直接領(lǐng)導(dǎo)兩到三名高級(jí)程序員,每位高級(jí)程序員通過(guò)基層小組,治理若干位程序員。這種結(jié)構(gòu)比較適合于項(xiàng)目本身確實(shí)是層次結(jié)構(gòu)的課題。人員配備合理地配備人員是成功地完成軟件項(xiàng)目的切實(shí)保證。所謂合理地配備人員應(yīng)包括按不同時(shí)期適時(shí)運(yùn)用人員,恰當(dāng)掌握用人標(biāo)準(zhǔn)。一般來(lái)講,軟件項(xiàng)目不同時(shí)期不同層次技術(shù)人員的參與情況是不一樣的。下圖是典型的軟件開(kāi)發(fā)人員參與情況曲線。在人力配備問(wèn)題上,由于配置不當(dāng),專(zhuān)門(mén)容易造成人力資源的白費(fèi),并延誤工期。特不是采納恒定人員配備方案時(shí)在項(xiàng)目的開(kāi)始和最后都會(huì)出現(xiàn)人力過(guò)剩,而在中期又會(huì)出現(xiàn)人力不足的情況。4.軟件項(xiàng)目的領(lǐng)導(dǎo)5.軟件項(xiàng)目的操縱對(duì)后面兩個(gè)主題以后再討論。事實(shí)上本文所討論的東西大多還沒(méi)有涉及太多治理學(xué)方面的內(nèi)容,但這方面確實(shí)有許多值得研究的東西,由于時(shí)刻關(guān)系不能深入下去。姑且作為一個(gè)引子吧!
1.7面向?qū)ο蠹夹g(shù)1.7.1面向?qū)ο蟮牟畈欢喔拍蠲嫦驅(qū)ο螅╫bject-oriented,OO)方法是以客觀世界中的對(duì)象為中心,其分析和設(shè)計(jì)思想符合人們的思維方式,分析和設(shè)計(jì)的結(jié)果與客觀世界的實(shí)際比較接近,容易被人們所同意。下面列舉幾個(gè)面向?qū)ο笤O(shè)計(jì)方法中的重要術(shù)語(yǔ),它們構(gòu)成面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言的核心?!魧?duì)象(Object)對(duì)象是和有數(shù)據(jù)及可對(duì)這些數(shù)據(jù)施加的操作結(jié)合在一起所構(gòu)成的獨(dú)立單位的總稱(chēng)。一個(gè)對(duì)象通??捎蓪?duì)象名、屬性和操作三部分組成。對(duì)象的劃分判定標(biāo)準(zhǔn):1、
子對(duì)象之間獨(dú)立性要高,即耦合度盡量達(dá)到最低,(理想的情況是達(dá)到組件化的程度);2、
子對(duì)象相對(duì)其他劃分方法,更易于處理。因此關(guān)于復(fù)雜的大系統(tǒng),一般都要通過(guò)多次的嘗試,以盡量能找到較優(yōu)的劃分方案。關(guān)于比較簡(jiǎn)單的系統(tǒng),E-R轉(zhuǎn)換也能的到較為中意的劃分?!魧?shí)例(Instance)實(shí)例是由某個(gè)特定類(lèi)所描述的一個(gè)對(duì)象。◆類(lèi)(Class)類(lèi)是一組具有相同屬性和相同操作的對(duì)象的集合。類(lèi)是面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言提供的可再用軟件成分?!舴椒ǎ∕ethod)對(duì)象所能執(zhí)行的操作稱(chēng)為方法。方法是類(lèi)中定義的函數(shù),描述對(duì)象執(zhí)行操作的算法?!粝ⅲ∕essage)消息是要求某個(gè)對(duì)象執(zhí)行類(lèi)中定義的某個(gè)操作的規(guī)格講明。一個(gè)消息通常包括同意對(duì)象名、調(diào)用的操作名和適當(dāng)?shù)膮?shù)(如有必要)。要緊特點(diǎn):◆封裝性封裝性是一種信息隱蔽技術(shù),它使系統(tǒng)分析員能夠清晰地標(biāo)明他們所提供的服務(wù)界面,用戶(hù)和應(yīng)用程序員則只看得見(jiàn)對(duì)象提供的操作功能(即封裝面上的信息),看不到其中的數(shù)據(jù)或操作代碼細(xì)節(jié)。◆多態(tài)性多態(tài)性是指同一個(gè)操作作用于不同的對(duì)象能夠有不同的解釋?zhuān)a(chǎn)生不同的執(zhí)行結(jié)果?!衾^承性繼承是指在某個(gè)類(lèi)的層次關(guān)聯(lián)中,不同的類(lèi)共享屬性和操作的一種機(jī)制。一個(gè)父類(lèi)能夠有多個(gè)子類(lèi)。父類(lèi)描述了這些子類(lèi)的公共屬性和操作,子類(lèi)中還能夠定義其自己的屬性和操作。假如一個(gè)子類(lèi)只有唯一的一個(gè)父類(lèi),這種繼承稱(chēng)為單一繼承。假如一個(gè)子類(lèi)有多個(gè)父類(lèi),能夠從多個(gè)父類(lèi)中繼承特性,這種繼承稱(chēng)為多重繼承。◆分布式對(duì)象DistributedObject在公布實(shí)施角度上看,對(duì)象可分為三種:本地對(duì)象,遠(yuǎn)地對(duì)象,虛擬對(duì)象。本地對(duì)象LocalObject:指分布在同一個(gè)系統(tǒng)中的對(duì)象,互稱(chēng)為本地對(duì)象遠(yuǎn)地對(duì)象RemoteObject:指分布在不同系統(tǒng)中的對(duì)象(同一個(gè)群體系統(tǒng))。虛擬對(duì)象VirtualObject:不同于本地和遠(yuǎn)地對(duì)象,虛擬對(duì)象不屬于真實(shí)的對(duì)象,而是一個(gè)虛設(shè)的類(lèi)型。真正的操作不在虛擬對(duì)象本身,只是遠(yuǎn)地對(duì)象在本地的映射。本地和遠(yuǎn)地對(duì)象是相互的關(guān)系。而虛擬對(duì)象只是一種映射,用于關(guān)聯(lián)本地和遠(yuǎn)地對(duì)象,起到分布和負(fù)載均衡的作用。面向?qū)ο髷?shù)據(jù)庫(kù)技術(shù):是面向?qū)ο蠹夹g(shù)和數(shù)據(jù)庫(kù)技術(shù)的有機(jī)的結(jié)合,它有著關(guān)系數(shù)據(jù)庫(kù)沒(méi)有的優(yōu)點(diǎn)。面向?qū)ο髷?shù)據(jù)庫(kù)(OODB)+關(guān)系數(shù)據(jù)庫(kù)(RDB)→對(duì)象-關(guān)系數(shù)據(jù)庫(kù)(ORDB)面向?qū)ο蟮奶卣鳎侯?lèi)和繼承性,對(duì)象及對(duì)象標(biāo)識(shí)、封裝性、信息/實(shí)現(xiàn)隱蔽、狀態(tài)保持,消息,多態(tài)性,一般性。
面向?qū)ο蠹夹g(shù)的出現(xiàn)正是彌補(bǔ)了前述關(guān)系模型的固有局限性。
對(duì)象數(shù)據(jù)模型是有專(zhuān)門(mén)強(qiáng)的描述復(fù)雜對(duì)象的能力,能包含更多的數(shù)據(jù)語(yǔ)義信息。
面向?qū)ο蠓椒蓪?zhuān)門(mén)方便的表示嵌套對(duì)象,因而專(zhuān)門(mén)容易表達(dá)層次數(shù)據(jù),這點(diǎn)與RDB形成鮮亮的對(duì)比,RDB強(qiáng)迫用戶(hù)用多個(gè)關(guān)系的元組表達(dá)層次數(shù)據(jù)。
面向?qū)ο蠓椒煞奖愕臉?gòu)造各種類(lèi)型、而RDB不提供增加用戶(hù)定義數(shù)據(jù)類(lèi)型的手段。1.7.2面向?qū)ο蟮姆治龇椒嫦驅(qū)ο蟮南到y(tǒng)分析設(shè)計(jì),看起來(lái)事實(shí)上也專(zhuān)門(mén)簡(jiǎn)單,步驟大概如下:(1)從項(xiàng)目開(kāi)始,進(jìn)行步驟(2)。(2)對(duì)系統(tǒng)進(jìn)行分析,假如它在一定的要求下可解決,則停止分析,進(jìn)行設(shè)計(jì);假如它在一定的要求下不可解決,則對(duì)它進(jìn)行劃分。(3)步驟(2)假如有分析結(jié)果,則對(duì)其中每一個(gè)子對(duì)象,進(jìn)行步驟(2)。邊界條件(也即上面提到的“一定要求”,對(duì)象劃分的原則):
子對(duì)象之間獨(dú)立性要高,即耦合度盡量達(dá)到最低,(理想的情況是達(dá)到組件化的程度);
子對(duì)象相對(duì)其他劃分方法,更易于處理(如實(shí)現(xiàn),維護(hù)等)。當(dāng)前常見(jiàn)的面向?qū)ο蟮姆椒▽?zhuān)門(mén)多,下面簡(jiǎn)單介紹三種:PeterCoard和EdwardYourdon的OOA和OOD方法OOA(面向?qū)ο蠓治觯┠P陀?個(gè)層次和5個(gè)活動(dòng)組成:
5個(gè)層次:主題層、對(duì)象類(lèi)層、結(jié)構(gòu)層、屬性層、服務(wù)層
5個(gè)活動(dòng):標(biāo)識(shí)對(duì)象類(lèi)、標(biāo)識(shí)結(jié)構(gòu)、定義主題、定義屬性、定義服務(wù)在這種方法中定義兩種對(duì)象類(lèi)之間的結(jié)構(gòu):分類(lèi)結(jié)構(gòu)——反映了一般與專(zhuān)門(mén)的關(guān)系組裝結(jié)構(gòu)——反映了對(duì)象之間整體與部分的關(guān)系OOA中的5個(gè)層次和5個(gè)活動(dòng)接著貫穿在OOD(面向?qū)ο笤O(shè)計(jì))過(guò)程中。OOD模型由4個(gè)部分,即:
問(wèn)題域
人機(jī)交互
任務(wù)治理
數(shù)據(jù)治理Booth的OOD方法Booth認(rèn)為軟件開(kāi)發(fā)是一個(gè)螺旋上升的過(guò)程。在螺旋上升的每個(gè)周期中,有4個(gè)步驟:
標(biāo)識(shí)類(lèi)和對(duì)象
確定它們的含義
標(biāo)識(shí)它們之間的關(guān)系
講明每一個(gè)類(lèi)的界面和實(shí)現(xiàn)OMT方法OMT(對(duì)象建模技術(shù))定義了3種模型:
對(duì)象模型
描述系統(tǒng)中對(duì)象的靜態(tài)結(jié)構(gòu)、對(duì)象之間的關(guān)系、對(duì)象的屬性、對(duì)象的操作。它為動(dòng)態(tài)模型和功能模型提供了差不多的框架。用對(duì)象圖表示。
動(dòng)態(tài)模型:
描述與時(shí)刻和操作順序有關(guān)的系統(tǒng)特征——激發(fā)事件、事件序列、確定事件先后關(guān)系的狀態(tài)以及事件和狀態(tài)的組織。用狀態(tài)圖表示。
功能模型:描述與值的變換有關(guān)的系統(tǒng)特征——功能、映射、約束和函數(shù)依靠。用數(shù)據(jù)流圖表示。
OMT方法有4個(gè)步驟分析:這是OMT方法的第一步,其目的是建立可理解的現(xiàn)實(shí)世界模型。系統(tǒng)設(shè)計(jì):確定整個(gè)系統(tǒng)的體系結(jié)構(gòu),形成求解問(wèn)題和建立解答的高層次策略。對(duì)象設(shè)計(jì):在分析的基礎(chǔ)上,對(duì)象設(shè)計(jì)時(shí)期建立基于分析模型的設(shè)計(jì)模型,考慮實(shí)現(xiàn)的細(xì)節(jié)。實(shí)現(xiàn):將對(duì)象設(shè)計(jì)時(shí)期開(kāi)發(fā)的對(duì)象類(lèi)及其關(guān)系轉(zhuǎn)換成特定的程序設(shè)計(jì)語(yǔ)言、數(shù)據(jù)庫(kù)或硬件的實(shí)現(xiàn)。1.7.3面向?qū)ο笤O(shè)計(jì)方法面向?qū)ο蟮念?lèi)設(shè)計(jì)相關(guān)原則:1.開(kāi)閉原則(theOpenClosedPrincipleOCP)一個(gè)模塊在擴(kuò)展性方面應(yīng)該是開(kāi)放的而在更改性方面應(yīng)該是封閉的。因此在進(jìn)行面向?qū)ο笤O(shè)計(jì)時(shí)要盡量考慮接口封裝機(jī)制、抽象機(jī)制和多態(tài)技術(shù)。該原則同樣適合于非面向?qū)ο笤O(shè)計(jì)的方法,是軟件工程設(shè)計(jì)方法的重要原則之一。2.替換原則(theLiskovSubstitutionPrincipleLSP)子類(lèi)應(yīng)當(dāng)能夠替換父類(lèi)并出現(xiàn)在父類(lèi)能夠出現(xiàn)的任何地點(diǎn)。那個(gè)原則是Liskov于1987年提出的設(shè)計(jì)原則。它同樣能夠從BertrandMeyer的DBC(DesignbyContract)的概念推出。3.依靠原則(theDependencyInversionPrincipleDIP)在進(jìn)行業(yè)務(wù)設(shè)計(jì)時(shí),與特定業(yè)務(wù)有關(guān)的依靠關(guān)系應(yīng)該盡量依靠接口和抽象類(lèi),而不是依靠于具體類(lèi)。具體類(lèi)只負(fù)責(zé)相關(guān)業(yè)務(wù)的實(shí)現(xiàn),修改具體類(lèi)不阻礙與特定業(yè)務(wù)有關(guān)的依靠關(guān)系。為此,我們?cè)谶M(jìn)行業(yè)務(wù)設(shè)計(jì)時(shí),應(yīng)盡量在接口或抽象類(lèi)中定義業(yè)務(wù)方法的原型,并通過(guò)具體的實(shí)現(xiàn)類(lèi)(子類(lèi))來(lái)實(shí)現(xiàn)該業(yè)務(wù)方法,業(yè)務(wù)方法內(nèi)容的修改將可不能阻礙到運(yùn)行時(shí)業(yè)務(wù)方法的調(diào)用。4.接口分離原則(theInterfaceSegregationPrincipleISP)采納多個(gè)與特定客戶(hù)類(lèi)有關(guān)的接口比采納一個(gè)通用的涵蓋多個(gè)業(yè)務(wù)方法的接口要好。ISP原則是另外一個(gè)支持諸如COM等組件化的使能技術(shù)。缺少I(mǎi)SP,組件、類(lèi)的可用性和移植性將大打折扣。那個(gè)原則的本質(zhì)相當(dāng)簡(jiǎn)單。假如你擁有一個(gè)針對(duì)多個(gè)客戶(hù)的類(lèi),為每一個(gè)客戶(hù)創(chuàng)建特定業(yè)務(wù)接口,然后使該客戶(hù)類(lèi)繼承多個(gè)特定業(yè)務(wù)接口將比直接加載客戶(hù)所需所有方法有效。例題:國(guó)家標(biāo)準(zhǔn)《計(jì)算機(jī)軟件產(chǎn)品開(kāi)發(fā)文件編制指南GB8567-88》中規(guī)定,在一項(xiàng)軟件開(kāi)發(fā)過(guò)程中,一般來(lái)講應(yīng)該產(chǎn)生14種文件,其中治理人員要緊使用的有A、B、C、開(kāi)發(fā)進(jìn)度月報(bào)、項(xiàng)目開(kāi)發(fā)總結(jié)報(bào)告。開(kāi)發(fā)人員要緊使用的有A、B、D、數(shù)據(jù)要求講明書(shū)、概要設(shè)計(jì)講明書(shū)、詳細(xì)設(shè)計(jì)講明書(shū)、數(shù)據(jù)庫(kù)設(shè)計(jì)講明書(shū)、測(cè)試打算和E。維護(hù)人員要緊使用的有設(shè)計(jì)講明書(shū)、E和C。
A~E:①軟件需求講明書(shū)
②項(xiàng)目開(kāi)發(fā)打算
③可行性研究報(bào)告④模塊開(kāi)發(fā)卷宗
⑤測(cè)試分析報(bào)告
⑥操作手冊(cè)⑦用戶(hù)手冊(cè)[分析]
本題綜合考查了軟件生命周期各個(gè)時(shí)期的相關(guān)知識(shí)。
大伙兒在復(fù)習(xí)軟件工程這部分內(nèi)容的時(shí)候,除了對(duì)軟件生命周期的每個(gè)時(shí)期(如需求分析、軟件設(shè)計(jì)、軟件維護(hù)等)的相關(guān)知識(shí)應(yīng)該認(rèn)真復(fù)習(xí)以外,對(duì)整個(gè)軟件生命周期各時(shí)期還應(yīng)有個(gè)總體的認(rèn)識(shí)和把握。前面在知識(shí)要點(diǎn)中有比較表對(duì)各時(shí)期的任務(wù)、參與人員和產(chǎn)生文檔做出了歸納和總結(jié),大伙兒復(fù)習(xí)的時(shí)候能夠好好參考一下。[答案]A:②
B:③
C:④
D:①
E:⑤同步輔導(dǎo)中的軟件工程部分的題目專(zhuān)門(mén)好,大伙兒能夠做一下,題目類(lèi)型和軟考類(lèi)似;
1.8軟件質(zhì)量(重點(diǎn))軟件質(zhì)量是指反映軟件系統(tǒng)或軟件產(chǎn)品滿足規(guī)定或隱含需求的能力的特征和特性全體。下面從治理的角度列出了阻礙軟件質(zhì)量的要緊因素。
質(zhì)量因素定義產(chǎn)品運(yùn)行正確性系統(tǒng)滿足規(guī)格講明和用戶(hù)目標(biāo)的程序,即在預(yù)定環(huán)境下能正確的完成預(yù)期功能的程序健壯性在硬件發(fā)生故障、輸入的數(shù)據(jù)無(wú)效或操作錯(cuò)誤等意外環(huán)境下,系統(tǒng)能做出適當(dāng)響應(yīng)的程序效率為了完成預(yù)定的功能,系統(tǒng)需要的計(jì)算資源的多少完整性(安全性)對(duì)未經(jīng)授權(quán)的人使用軟件或數(shù)據(jù)的企圖,系統(tǒng)能夠操縱(禁止)的程序可用性系統(tǒng)在完成預(yù)定應(yīng)該完成的功能時(shí)令人中意的程度風(fēng)險(xiǎn)按預(yù)定的成本和進(jìn)度將系統(tǒng)開(kāi)發(fā)處理,同時(shí)為用戶(hù)中意的概率產(chǎn)品修改可理解性理解和使用該系統(tǒng)的容易程度可維修性診斷和改正在運(yùn)行現(xiàn)場(chǎng)發(fā)覺(jué)的錯(cuò)誤所需要的工作量的多少靈活性(適應(yīng)性)修改或改進(jìn)正在運(yùn)行的系統(tǒng)需要的工作量的多少可測(cè)試性軟件容易測(cè)試的程度產(chǎn)品轉(zhuǎn)移可移植性把程序從一種硬件配置和(或)軟件系統(tǒng)環(huán)境轉(zhuǎn)移到另一種配置和環(huán)境時(shí),需要的工作量多少可再用性在其他應(yīng)用中該程序能夠被再次使用的程度(或范圍)互運(yùn)行性把該系統(tǒng)和另一個(gè)系統(tǒng)結(jié)合起來(lái)需要的工作量的多少
高質(zhì)量軟件的特性:
滿足用戶(hù)的需求。這是最重要的一點(diǎn),一個(gè)軟件假如不能夠滿足用戶(hù)的需要,設(shè)計(jì)的再好,采納的技術(shù)再先進(jìn),也沒(méi)有任何的意義。因此這一點(diǎn)特不的樸實(shí),但卻是軟件質(zhì)量的第一個(gè)評(píng)判標(biāo)準(zhǔn)。
合理進(jìn)度、成本、功能關(guān)系。軟件開(kāi)發(fā)中所有的治理差不多上圍繞著這幾個(gè)要素在做文章的,如何在特定的時(shí)刻內(nèi),以特定的成本,開(kāi)發(fā)出特定功能的軟件。三者之間存在一種微妙的平衡。一個(gè)高質(zhì)量的軟件的開(kāi)發(fā)過(guò)程中,項(xiàng)目成員一定能夠客觀的對(duì)待這三個(gè)因素,并通過(guò)有效的打算、治理、操縱,使得三者之間達(dá)成一種平衡,保證產(chǎn)出的最大化。
具備擴(kuò)展性和靈活性,能夠適應(yīng)一定程度的需求變化。當(dāng)今的社會(huì)差不多變成一種變化速度極快的設(shè)計(jì)了。變化就會(huì)對(duì)軟件產(chǎn)生沖擊,因此一個(gè)質(zhì)量?jī)?yōu)秀的軟件,應(yīng)該能夠在一定程度上適應(yīng)這種變化,并保持軟件的穩(wěn)定。
能夠有效的處理例外的情況。寫(xiě)過(guò)軟件的人都明白,實(shí)現(xiàn)主體功能的工作量事實(shí)上不大,真正的工作量都在處理各種例外。因此,一個(gè)軟件假如能夠足夠的強(qiáng)壯、足夠的魯棒,能夠承受各種的非法情況的沖擊,那個(gè)軟件確實(shí)是高質(zhì)量的。
保持成本和性能的平衡。性能往往來(lái)源于客戶(hù)的非功能需求,是軟件質(zhì)量的一個(gè)重要的評(píng)價(jià)因素。然而性能問(wèn)題在任何地點(diǎn)都存在,因此需要客觀的看待它。例如,一段性能不錯(cuò)的代碼可能可讀性專(zhuān)門(mén)差,這就需要進(jìn)行平衡,假如這段代碼的性能是整個(gè)軟件的關(guān)鍵,那么取高性能而舍棄可讀性,反之則取可讀性而舍棄高性能。一個(gè)優(yōu)秀的軟件能夠保持成本和性能之間的平衡。
能夠可持續(xù)的進(jìn)展。專(zhuān)門(mén)少有軟件組織只開(kāi)發(fā)一個(gè)軟件的,因此,一個(gè)優(yōu)秀的軟件在開(kāi)發(fā)完成后,能夠形成知識(shí)沉淀,為軟件組織的長(zhǎng)期進(jìn)展貢獻(xiàn)力量。這是一個(gè)優(yōu)秀的軟件應(yīng)該要能夠做到的。采納測(cè)試作為評(píng)價(jià)軟件標(biāo)準(zhǔn)的做法是特不常見(jiàn)的。例如,sun公司就專(zhuān)門(mén)設(shè)計(jì)了測(cè)試軟件,對(duì)各個(gè)實(shí)現(xiàn)J2EE規(guī)范的產(chǎn)品進(jìn)行測(cè)試。使用測(cè)試作為規(guī)范的最大好處確實(shí)是明確、具體。
使用測(cè)試代碼建立目標(biāo),編寫(xiě)代碼完成測(cè)試目標(biāo),再制定下一個(gè)目標(biāo),如此循環(huán),構(gòu)成了測(cè)試驅(qū)動(dòng)開(kāi)發(fā)的工作流程。1.8.1八項(xiàng)質(zhì)量治理原則為了成功地領(lǐng)導(dǎo)和運(yùn)作一個(gè)組織,需要采納一種系統(tǒng)和透明的方式進(jìn)行治理。針對(duì)所有相關(guān)方的需求,實(shí)施并保持持續(xù)改進(jìn)其業(yè)績(jī)的治理體系,使組織獲得成功。組織為實(shí)現(xiàn)質(zhì)量目標(biāo),應(yīng)遵循以下八項(xiàng)質(zhì)量治理原則。
原則1:以顧客為中心
組織依存于其顧客。因此,組織應(yīng)理解顧客當(dāng)前的和以后的需求,滿足顧客要求并爭(zhēng)取超越顧客期望。
1、組織實(shí)施本原則的要緊利益
2、組織實(shí)施本原則時(shí)一般要采取的要緊措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則2:領(lǐng)導(dǎo)作用
領(lǐng)導(dǎo)將本組織的宗旨、方向和內(nèi)部環(huán)境統(tǒng)一起來(lái),并制造使職員能夠充分參與實(shí)現(xiàn)組織目標(biāo)的環(huán)境。
1、組織實(shí)施本原則的要緊利益
2、組織實(shí)施本原則時(shí)一般要采取的要緊措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則3:全員參與
各級(jí)人員是組織之本。只有他們的充分參與,才能使他們的才能為組織帶來(lái)最大的收益。
1、織實(shí)施本原則的要緊利益
2、組織實(shí)施本原則時(shí)一般要采取的要緊措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則4:過(guò)程方法
將相關(guān)的資源和活動(dòng)作為過(guò)程進(jìn)行治理,能夠更高效地得到期望的結(jié)果。
過(guò)程方法的原則不僅適用于某些較簡(jiǎn)單的過(guò)程,也適用于由許多過(guò)程構(gòu)成的過(guò)程網(wǎng)絡(luò)。在應(yīng)用于質(zhì)量治理體系時(shí),2000版ISO9000族標(biāo)準(zhǔn)建立了一個(gè)過(guò)程模式。此模式把治理職責(zé)、資源治理、產(chǎn)品實(shí)現(xiàn)、測(cè)量、分析與改進(jìn)作為體系的四大要緊過(guò)程,描述其相互關(guān)系,并以顧客要求為輸入,提供給顧客的產(chǎn)品為輸出,通過(guò)信息反饋來(lái)測(cè)定的顧客中意度,評(píng)價(jià)質(zhì)量治理體系的業(yè)績(jī)。
1、實(shí)施本原則的要緊利益
2、組織實(shí)施本原則時(shí)一般要采取的要緊措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則5:治理的系統(tǒng)方法
針對(duì)設(shè)定的目標(biāo),識(shí)不、理解并治理一個(gè)由相互關(guān)連的過(guò)程所組成的體系,有助于提高組織的有效性和效率。
ISO/DIS9000的3.3列出了建立和實(shí)施質(zhì)量治理體系的十三個(gè)步驟:
1、實(shí)施本原則的要緊利益
2、組織實(shí)施本原則時(shí)一般要采取的要緊措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則6:持續(xù)改進(jìn)
持續(xù)改進(jìn)是組織的一個(gè)永恒的目標(biāo)。
1、實(shí)施本原則的要緊利益
2、組織實(shí)施本原則時(shí)一般要采取的要緊措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則7:基于事實(shí)的決策方法
對(duì)數(shù)據(jù)和信息的邏輯分析或直覺(jué)推斷是有效決策的基礎(chǔ)。
以事實(shí)為依據(jù)做決策,可防止決策失誤。在對(duì)信息和資料做科學(xué)分析時(shí),統(tǒng)計(jì)技術(shù)是最重要的工具之一。統(tǒng)計(jì)技術(shù)能夠用來(lái)測(cè)量、分析和講明產(chǎn)品和過(guò)程的變異性。統(tǒng)計(jì)技術(shù)能夠?yàn)槌掷m(xù)改進(jìn)的決策提供依據(jù)。
1、實(shí)施本原則的要緊利益
2、組織實(shí)施本原則時(shí)一般要采取的要緊措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則8:互利的供方關(guān)系
通過(guò)互利的關(guān)系,增強(qiáng)組織及其供方制造價(jià)值的能力。
供方提供的產(chǎn)品將對(duì)組織向顧客提供中意的產(chǎn)品可能產(chǎn)生重要的阻礙,一次處理好與供方的關(guān)系,阻礙到組織能否持續(xù)穩(wěn)定地提供顧客中意地產(chǎn)品。對(duì)供方不能只講操縱,不講合作互利。特不對(duì)關(guān)鍵供方,更要建立互利關(guān)系。這對(duì)組織和供方雙方差不多上有利的。
1、實(shí)施本原則的要緊利益
2、組織實(shí)施本原則時(shí)一般要采取的要緊措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)1.8.2十三個(gè)步驟:
軟件質(zhì)量保證是指為了保證軟件系統(tǒng)或軟件產(chǎn)品最大限度的滿足用戶(hù)要求而進(jìn)行的有打算、有組織的活動(dòng),其目的是產(chǎn)生高質(zhì)量的軟件。目前有多種軟件質(zhì)量模型來(lái)描述軟件質(zhì)量特性,如ISO/IEC9126軟件質(zhì)量模型、McCall軟件質(zhì)量模型等1.9軟件配置治理軟件配置治理(SCM——SoftwareConfigurationManagement)是ISO9001和CMMLevel2中的重要組成元素,它在軟件產(chǎn)品開(kāi)發(fā)的生命周期中,提供了結(jié)構(gòu)化的、有序化的、產(chǎn)品化的治理軟件工程的方法,是軟件開(kāi)發(fā)和維護(hù)的基礎(chǔ)。
SCM是指通過(guò)技術(shù)及行政手段對(duì)軟件產(chǎn)品及其開(kāi)發(fā)過(guò)程和生命周期進(jìn)行操縱、規(guī)范的一系列措施和過(guò)程,它通過(guò)操縱、記錄、追蹤對(duì)軟件的修改和每個(gè)修改生成的軟件組成部件來(lái)實(shí)現(xiàn)對(duì)軟件產(chǎn)品的治理。SCM能夠協(xié)調(diào)軟件開(kāi)發(fā)使得混亂減到最小,是一種標(biāo)識(shí)、組織和操縱修改的技術(shù),目的是使錯(cuò)誤達(dá)到最小并最有效地提高生產(chǎn)效率。
SCM使軟件產(chǎn)品變?yōu)槭芸氐暮涂深A(yù)見(jiàn)的,它操縱如此幾個(gè)問(wèn)題:
1.誰(shuí)做的變更?
2.軟件有什么變更?
3.什么時(shí)刻做的變更?
4.為何要變更?
通過(guò)實(shí)施SCM,能夠達(dá)到可重用過(guò)程制度化,包括:滿足組織的政策方針、打算和過(guò)程描述文檔化、分配適當(dāng)資源(包括資金,人員和工具)、確定責(zé)任和權(quán)限、培訓(xùn)相關(guān)人員、通過(guò)不同級(jí)不的治理方法和糾正活動(dòng)檢測(cè)狀態(tài)。
置于SCM之下的工作產(chǎn)品包括發(fā)送給用戶(hù)的軟件產(chǎn)品(如軟件需求文檔,軟件代碼),用于內(nèi)部使用的軟件工作產(chǎn)品(如過(guò)程描述),和用于創(chuàng)建工作產(chǎn)品的工具等(如操作系統(tǒng)、數(shù)據(jù)庫(kù)、開(kāi)發(fā)工具)。
SCM還用于建立和維護(hù)軟件工作產(chǎn)品基線?;€是由配置項(xiàng)及相關(guān)實(shí)體組成的,包括組成軟件產(chǎn)品的相關(guān)版本、設(shè)計(jì)、代碼、用戶(hù)文檔等。它是軟件生命周期中各開(kāi)發(fā)時(shí)期末尾的特定點(diǎn),即里程碑。通過(guò)正式的技術(shù)評(píng)審而得到的軟件配置的正式文本才能成為基線,它的作用是使各個(gè)時(shí)期工作的劃分更加明確化,使本來(lái)連續(xù)的工作在這些點(diǎn)上斷開(kāi),以便于檢驗(yàn)和確信時(shí)期成果?;€是配置項(xiàng)接著進(jìn)展的一個(gè)固定基礎(chǔ)。
實(shí)施SCM不論是對(duì)軟件開(kāi)發(fā)者、測(cè)試者、項(xiàng)目經(jīng)理、QA人員,依舊客戶(hù)都將會(huì)獲得專(zhuān)門(mén)多好處:有助于規(guī)范團(tuán)隊(duì)各個(gè)角色的行為,同時(shí)又為各個(gè)角色之間的任務(wù)傳遞和交流提供無(wú)縫的接合;能關(guān)心項(xiàng)目經(jīng)理更好地了解項(xiàng)目的進(jìn)度、開(kāi)發(fā)人員的負(fù)荷、工作效率和產(chǎn)品質(zhì)量狀況、交付日期等信息。
SCM分為四大功能領(lǐng)域:配置標(biāo)識(shí)、變更操縱、配置狀態(tài)統(tǒng)計(jì)、配置審核。
配置標(biāo)識(shí):包括標(biāo)識(shí)軟件系統(tǒng)的結(jié)構(gòu),標(biāo)識(shí)獨(dú)立部件,并使它們是可訪問(wèn)的。配置標(biāo)識(shí)的目的,是在整個(gè)生命周期中標(biāo)識(shí)系統(tǒng)各部件并提供對(duì)軟件及其軟件產(chǎn)品的跟蹤能力。
配置變更操縱:包括在軟件生命周期中操縱軟件產(chǎn)品的公布和變更,目的是建立確保軟件產(chǎn)品質(zhì)量的機(jī)制。它回答:什么是受控的?受控產(chǎn)品如何樣變更?誰(shuí)操縱變更?何時(shí)同意,恢復(fù),驗(yàn)證變更?
配置狀態(tài)統(tǒng)計(jì):包括記錄和報(bào)告變更過(guò)程,目標(biāo)是不間斷記錄所有基線項(xiàng)的狀態(tài)和歷史,并進(jìn)行維護(hù),它解決以下問(wèn)題:系統(tǒng)差不多做了什么變更?此問(wèn)題將會(huì)對(duì)多少個(gè)文件產(chǎn)生阻礙?
配置審核:將驗(yàn)證軟件產(chǎn)品的構(gòu)造是否符合需求、標(biāo)準(zhǔn)、或合同的要求,目的是依照SCM的過(guò)程和程序,驗(yàn)證所有的軟件產(chǎn)品差不多產(chǎn)生并有正確標(biāo)識(shí)和描述,所有的變更需求都已解決。
SCM從應(yīng)用層次上能夠從低到高分為三級(jí):版本操縱、以開(kāi)發(fā)者為中心、過(guò)程驅(qū)動(dòng)。
版本操縱:要緊應(yīng)用于個(gè)人獨(dú)立開(kāi)發(fā)或小組開(kāi)發(fā),它能夠操縱任何文件的版本、實(shí)現(xiàn)分支和歸并功能、進(jìn)行文本比較、標(biāo)記注釋和版本報(bào)告信息,要緊工具有我們目前用到的VisualSourceSafe及IntersolvPVCS。
以開(kāi)發(fā)者為中心:要緊應(yīng)用于部門(mén)級(jí)開(kāi)發(fā),它可用于軟件維護(hù)、不斷增加的開(kāi)發(fā)任務(wù)、并行開(kāi)發(fā)、QA及測(cè)試,它面向大型團(tuán)隊(duì)、利于交流、能最大限度地利用人力資源,要緊工具為RationalClearCase及MKSSourceIntegrity。
過(guò)程驅(qū)動(dòng):要緊使用于企業(yè)級(jí)開(kāi)發(fā),著重解決新的工具引入、IT審核、治理報(bào)告、復(fù)雜的生命周期、應(yīng)用工具包、集成解決方案、資料庫(kù)等問(wèn)題,實(shí)現(xiàn)真正規(guī)范的團(tuán)隊(duì)開(kāi)發(fā)。1.10軟件過(guò)程改進(jìn)目前,CMM差不多進(jìn)展到CMMI(CapabilityMaturityModelIntegration,能力成熟度模型集成)時(shí)期。自20世紀(jì)80年代末以來(lái),SEI開(kāi)發(fā)了一系列涉及多個(gè)學(xué)科的CMM標(biāo)準(zhǔn),包括系統(tǒng)工程、軟件工程、軟件獵取、生產(chǎn)力實(shí)踐及集成產(chǎn)品和過(guò)程開(kāi)發(fā),希望通過(guò)關(guān)心組織提高人員、技術(shù)和過(guò)程的成熟度來(lái)改善組織整體軟件生產(chǎn)能力。然而,多個(gè)模型的同時(shí)使用限制和阻礙了組織過(guò)程改善的能力。因此,SEI中止了對(duì)CMMI源模型的更新,開(kāi)始集中開(kāi)發(fā)CMMI項(xiàng)目。CMMI項(xiàng)目融合了SW-CMMv2.0draftC、EIA/IS731、SECM以及IPD-CMMv0.98的內(nèi)容,形成了組織范圍內(nèi)過(guò)程改善的單一集成模型??赡艿?001年末,CMMI-SE/SW/IPPD/Aver1.1將正式發(fā)行。CMMI項(xiàng)目為工業(yè)界和政府部門(mén)提供了一個(gè)集成的產(chǎn)品集,要緊目的是消除不同模型之間的不一致和重復(fù),降低基于模型改善的成本。以后的CMMI將以更加系統(tǒng)和一致的框架來(lái)指導(dǎo)組織改善軟件過(guò)程,提高產(chǎn)品和服務(wù)的開(kāi)發(fā)、獵取和維護(hù)能力。SW-CMM要緊應(yīng)用在兩大方面:能力評(píng)估和過(guò)程改善。1.能力評(píng)估SW-CMM是基于政府評(píng)估軟件承包商的軟件能力進(jìn)展而來(lái)的,有兩種通用的評(píng)估方法用以評(píng)估組織軟件過(guò)程的成熟度:軟件過(guò)程評(píng)估和軟件能力評(píng)價(jià)。●軟件過(guò)程評(píng)估:用于確定一個(gè)組織當(dāng)前的軟件工程過(guò)程狀態(tài)及組織所面臨的軟件過(guò)程的優(yōu)先改善問(wèn)題,為組織領(lǐng)導(dǎo)層提供報(bào)告以獲得組織對(duì)軟件過(guò)程改善的支持。軟件過(guò)程評(píng)估集中關(guān)注組織自身的軟件過(guò)程,在一種合作的、開(kāi)放的環(huán)境中進(jìn)行。評(píng)估的成功取決于治理者和專(zhuān)業(yè)人員對(duì)組織軟件過(guò)程改善的支持。CBA-IPI是一種軟件過(guò)程評(píng)估方法,●軟件能力評(píng)價(jià):用于識(shí)不合格的軟件承包商或者監(jiān)控軟件承包商開(kāi)發(fā)軟件的過(guò)程狀態(tài)。軟件能力評(píng)價(jià)集中關(guān)注識(shí)不在預(yù)算和進(jìn)度要求范圍內(nèi)完成制造出高質(zhì)量的軟件產(chǎn)品的軟件合同及相關(guān)風(fēng)險(xiǎn)。評(píng)價(jià)在一種審核的環(huán)境中進(jìn)行,重點(diǎn)在于揭示組織實(shí)際執(zhí)行軟件過(guò)程的文檔化的審核記錄。SCE是SEI開(kāi)發(fā)的一種基于CMM面向軟件能力評(píng)價(jià)的方法。SW-CMM分為5個(gè)成熟度等級(jí):初始級(jí)、可重復(fù)級(jí)、已定義級(jí)、可治理級(jí)和優(yōu)化級(jí)。其中每個(gè)成熟度等級(jí)差不多上由一些關(guān)鍵過(guò)程域和關(guān)鍵實(shí)踐組成。CMM的目的是關(guān)心軟件企業(yè)對(duì)軟件工程過(guò)程進(jìn)行治理和改進(jìn),增強(qiáng)開(kāi)發(fā)與改進(jìn)能力,從而能按時(shí)地、不超預(yù)算地開(kāi)發(fā)出高質(zhì)量的軟件。企業(yè)實(shí)施CMM模型并評(píng)估可為企業(yè)帶來(lái)如下好處:指導(dǎo)軟件組織提高軟件開(kāi)發(fā)治理能力;降低軟件承包商和采購(gòu)者的風(fēng)險(xiǎn);評(píng)估軟件承包商的軟件開(kāi)發(fā)治理能力;關(guān)心軟件企業(yè)識(shí)不開(kāi)發(fā)和維護(hù)軟件的有效過(guò)程和關(guān)鍵實(shí)踐;關(guān)心軟件企業(yè)識(shí)不為達(dá)到CMM更高成熟等級(jí)所必須的關(guān)鍵實(shí)踐;增加軟件企業(yè)的國(guó)際競(jìng)爭(zhēng)能力。CMM為企業(yè)的軟件過(guò)程能力提供了一個(gè)階梯式的進(jìn)化框架,階梯共有五級(jí)。第一級(jí)只是一個(gè)起點(diǎn),任何預(yù)備按CMM體系進(jìn)化的企業(yè)都自然處于那個(gè)起點(diǎn)上,并通過(guò)它向第二級(jí)邁進(jìn)。除第一級(jí)外,每一級(jí)都設(shè)定了一組目標(biāo)(Goals),假如達(dá)到了這組目標(biāo),則表明達(dá)到了那個(gè)成熟級(jí)不,能夠向下一級(jí)不邁進(jìn)。除了初始級(jí)不以外,CMM的每個(gè)成熟級(jí)不的實(shí)現(xiàn)都定義成可操作的,每一級(jí)包含了實(shí)現(xiàn)這一級(jí)目標(biāo)的若干關(guān)鍵過(guò)程域(KPA),共有18個(gè)關(guān)鍵過(guò)程域(KPA)分布于2、3、4、5級(jí)當(dāng)中,如下表所示。
成熟級(jí)關(guān)鍵過(guò)程域(KPA)5、優(yōu)化級(jí)(Optimizing)缺陷預(yù)防(DefectPrevention)技術(shù)變更治理(TechnologyChangeManagement)過(guò)程變更治理(ProcessChangeManagement)4、治理級(jí)(Managed)量化過(guò)程治理(QuantitativeProcessManagement)軟件質(zhì)量治理(SoftwareQualityManagement)3、定義級(jí)(Defined)軟件機(jī)構(gòu)過(guò)程關(guān)注點(diǎn)(OrganizationProcessFocus)組織過(guò)程定義(OrganizationProcessDe
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 激光超聲檢測(cè)技術(shù)在高強(qiáng)度材料缺陷表征中的應(yīng)用
- 民國(guó)文學(xué)作品賞析
- 基于項(xiàng)目制與課程競(jìng)賽融合的高校創(chuàng)新創(chuàng)業(yè)教育模式研究
- 體育健康教練崗位面試問(wèn)題及答案
- 結(jié)構(gòu)工程技術(shù)人員崗位面試問(wèn)題及答案
- 木材在建筑中的環(huán)保工藝-洞察闡釋
- 視頻質(zhì)量控制與數(shù)字化解決方案-洞察闡釋
- 流動(dòng)人口與移民政策的挑戰(zhàn)-洞察闡釋
- 電子商務(wù)平臺(tái)的支付系統(tǒng)安全研究-洞察闡釋
- 地緣政治學(xué)視角下的邊疆資源爭(zhēng)奪分析-洞察闡釋
- 品管圈PDCA改善案例-呼吸科提高住院患者痰標(biāo)本送檢合格率
- 鼻窒課件教學(xué)課件
- 健身教練獨(dú)立承包協(xié)議(2024年版)
- 職場(chǎng)溝通:職場(chǎng)溝通與人際關(guān)系處理(山東管理學(xué)院)知到智慧樹(shù)章節(jié)答案
- 商業(yè)步行街物業(yè)管理方案
- 日語(yǔ)被動(dòng)態(tài)練習(xí)
- 鋼板樁安全技術(shù)交底
- 旅游大數(shù)據(jù)與智慧旅游教學(xué)大綱
- 金屬?gòu)U棄物生物冶金提取與利用
- 湖南省長(zhǎng)沙2024年七年級(jí)下冊(cè)生物期末試卷附答案
- 2023-2024學(xué)年第二學(xué)期期末學(xué)業(yè)質(zhì)量檢測(cè)八年級(jí)語(yǔ)文試卷
評(píng)論
0/150
提交評(píng)論