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