版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
2020年軟件設(shè)計(jì)師考試必備專題七
軟件工程專題精
?■匕?*[■??
I.
I
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材專題七:軟件工程專題
1、軟件工程知識(shí)
概述
軟件工程是指應(yīng)用計(jì)算機(jī)科學(xué)、數(shù)學(xué)及管理科學(xué)等原理,以工程化的原則和方
法來解決軟件問題的工
程。其目的是提高軟件生產(chǎn)率、提高軟件質(zhì)量、減低軟件成本。
軟件工程是1968年在德國(guó)的NATO
會(huì)議上提出的,希望用工程化的原則和方法來克服軟件危機(jī);而軟
件危機(jī)就是軟件開發(fā)和維護(hù)過程中的各種問題,由于軟件開發(fā)階段缺乏好的方
法的指導(dǎo)和好的工具的輔助,
而且缺少有關(guān)的文檔,使得大量的軟件難以維護(hù)。
軟件生命周期是指由軟件定義、軟件開發(fā)和軟件維護(hù)等階段組成的全過程,反
映軟件生存期內(nèi)各種工
作得組織以及各個(gè)階段如何銜接。下表歸納了軟件生存周期各個(gè)階段的任務(wù)
、參與人員和產(chǎn)生文檔。
常見的軟件開發(fā)模型有瀑布模型、演化模型、螺旋模型和噴泉模型等。
階段
任務(wù)
參與人員
產(chǎn)生文檔
軟件定義階段一待開發(fā)軟件要“做什么”
系統(tǒng)分析
確定待開發(fā)軟件的總體要求和
用戶、項(xiàng)目負(fù)責(zé)人、系統(tǒng)
可合并項(xiàng)目計(jì)劃書中
適用范圍,以及與之有關(guān)的硬
分析員
件、支撐軟件的要求
軟件項(xiàng)目計(jì)劃
確定待開發(fā)軟件的目標(biāo),對(duì)其進(jìn)
用戶、項(xiàng)目負(fù)責(zé)人、系統(tǒng)
可行性分析報(bào)告、項(xiàng)
行可行性分析,并對(duì)資源分配、分析員
目計(jì)劃書
進(jìn)度安排等做出合理的計(jì)劃
需求分析
確定待開發(fā)軟件的功能、性能、用戶、項(xiàng)目負(fù)責(zé)人、系統(tǒng)
需求規(guī)格說明書
界面等要求,從而確定系統(tǒng)的邏
分析員
輯模型
軟件開發(fā)階段一待開發(fā)軟件“怎么做”
概要設(shè)計(jì)
模塊分解,確定軟件的結(jié)構(gòu),模
系統(tǒng)分析員、高級(jí)程序員設(shè)計(jì)說明書、數(shù)據(jù)說
軟
塊的功能和模塊間的接口,以及
明書、模塊開發(fā)卷宗
件
全局?jǐn)?shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)
設(shè)
詳細(xì)設(shè)計(jì)
設(shè)計(jì)每個(gè)模塊的實(shí)現(xiàn)細(xì)節(jié)和局
高級(jí)程序員、程序員
計(jì)
部數(shù)據(jù)結(jié)構(gòu)的設(shè)計(jì)
編碼
用某種程序語言為每個(gè)模塊編
高級(jí)程序員、程序員
程序清單
寫程序
軟件測(cè)試
發(fā)現(xiàn)軟件中的錯(cuò)誤,并加以糾正高級(jí)程序員或系統(tǒng)分析
軟件測(cè)試計(jì)劃、軟件
員(另一部門或單位
測(cè)試用例說明,軟件
測(cè)試報(bào)告
軟件維護(hù)階段一開發(fā)后交付使用的軟件的維護(hù)
軟件維護(hù)
使軟件適應(yīng)外界環(huán)境的變化、實(shí)
維護(hù)人員
維護(hù)計(jì)劃、維護(hù)報(bào)告
現(xiàn)功能的擴(kuò)充和質(zhì)量的改善而
修改軟件
軟件由計(jì)算機(jī)程序、數(shù)據(jù)及文檔組成,同時(shí)與硬件、數(shù)據(jù)庫(kù)人、過程等共同構(gòu)
成計(jì)算機(jī)系統(tǒng)。軟件工程包括三個(gè)要素:方法、工具和過程。
主要的軟件開發(fā)方法有以下幾種方法:
生命周期法:命周期法認(rèn)為:每一個(gè)軟件系統(tǒng)都有一定的生命周期。軟件的生命
周期是指一個(gè)軟件系統(tǒng)從其提出、調(diào)查到分析、設(shè)計(jì)和有效使用,直至被淘汰或取
代的整個(gè)期間。軟件生命周期
共16頁(yè)第1頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
法就是按軟件生命周期的各個(gè)階段劃分任務(wù),按一定的規(guī)則和步驟,有效地進(jìn)行
軟件開發(fā)的
方法。
通常一個(gè)軟件系統(tǒng)的生命周期可分為五個(gè)階段:準(zhǔn)備階段、分析階段、設(shè)計(jì)階
段、實(shí)施階段、運(yùn)行與維護(hù)階段
原型法:原型法是先根據(jù)用戶的最主要要求,開發(fā)出能實(shí)現(xiàn)系統(tǒng)最基本功能的一
個(gè)原型,再根據(jù)用戶
對(duì)原型使用與評(píng)價(jià)的意見,反復(fù)修改完善原型,直到等到用戶滿意的最終系統(tǒng)為
止。
原型法分4
個(gè)階段:確定用戶需求;設(shè)計(jì)原型;使用、評(píng)價(jià)原型;修改、完善原型。
軟件分析
軟件開發(fā)模型:瀑布模型;演化模型(原型法;螺旋模型;噴泉模型(迭代和無間隙;
軟
件成本模型;可行性分析的任務(wù)是從技術(shù)上、經(jīng)濟(jì)上、使用上、法律上分析需
解決的問題是否存在可行的
解。
需求分析是軟件生存周期中相當(dāng)重要的一個(gè)階段。需求分析主要是確定待開
發(fā)軟件的功能、
性能、數(shù)據(jù)、界面等要求。具體有以下幾點(diǎn):
確定軟件系統(tǒng)的綜合要求
分析軟件系統(tǒng)的數(shù)據(jù)要求
導(dǎo)出系統(tǒng)的邏輯模型
修正項(xiàng)目開發(fā)計(jì)劃
如有必要,可開發(fā)一個(gè)原型系統(tǒng)
需求分析的基本原則是能夠表達(dá)和理解問題的信息域和功能域;以層次化的方
式進(jìn)行分解和不斷細(xì)
化;要給出系統(tǒng)的邏輯視圖和物理視圖;
描述軟件需求的方法:
功能層次模型:一般來講就是系統(tǒng)的功能圖,模塊分布圖等描述整個(gè)系統(tǒng)的功能
的分布和功能
的層次結(jié)構(gòu);
數(shù)據(jù)流模型:就是以數(shù)據(jù)流為著眼點(diǎn)的分析方法得到的模型,主要通過數(shù)據(jù)在整
個(gè)系統(tǒng)的流動(dòng)
情況來確定系統(tǒng)的主要功能主線和流程;
控制流模型:通過了解和界定系統(tǒng)中控制線,通過控制流的走向和控制的對(duì)象來
確定系統(tǒng)的功
能分布和控制與被控制的關(guān)系;
結(jié)構(gòu)化分析(SA方法是一種面向數(shù)據(jù)流的需求分析方法,它適用于分析大型數(shù)據(jù)
處理系統(tǒng)。結(jié)構(gòu)化
分析方法的基本思想是自頂向下逐層分解,這樣做能夠把一個(gè)大問題分解成若
干個(gè)小問題,經(jīng)過多次逐層
分解,每個(gè)最底層的問題都是足夠簡(jiǎn)單、容易解決的,這個(gè)過程就是分解的過程
O
結(jié)構(gòu)化方法的分析結(jié)果由數(shù)據(jù)流圖
DFD、數(shù)據(jù)詞典和加工邏輯說明幾個(gè)部分組成。其中,DFD的基本成
分有數(shù)據(jù)流(dataflow、加工(process、文件(file和源/宿(source/sink。
畫數(shù)據(jù)流圖的基本步驟:自外向內(nèi)、自頂向下、逐層細(xì)化、完善求精;
數(shù)據(jù)流圖的父圖與子圖要平衡,即輸入和輸出的數(shù)據(jù)流一致;
數(shù)據(jù)流圖中的每個(gè)加工至少有一個(gè)輸入數(shù)據(jù)流和一個(gè)輸出數(shù)據(jù)流;
局部的數(shù)據(jù)存儲(chǔ)不畫出來,只有當(dāng)局部數(shù)據(jù)存儲(chǔ)作為某些數(shù)據(jù)加工之間的數(shù)據(jù)
接口才畫出,這
有利于信息隱蔽;
畫數(shù)據(jù)流的時(shí)候不畫控制流,兩者的區(qū)別就是控制流中沒有數(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ù)流也有寫文件的數(shù)據(jù)流;
軟件開發(fā)過程中的軟件工程原則(8個(gè):
抽象;
自頂向下、逐層細(xì)化;
信息隱蔽和數(shù)據(jù)封裝;
模塊化;
局部化;
確定性;
一致性和標(biāo)準(zhǔn)化;
完備性和可驗(yàn)證性;
軟件工程基本原理(7個(gè):
按軟件生存周期分階段指定計(jì)劃并認(rèn)真實(shí)施;
堅(jiān)持進(jìn)行階段評(píng)審;
堅(jiān)持嚴(yán)格的產(chǎn)品控制;
共16頁(yè)第2頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
使用現(xiàn)代程序設(shè)計(jì)技術(shù);
明確責(zé)任,使得工作結(jié)果能夠得到清楚的審查;
用人少而精;
不斷改進(jìn)開發(fā)過程;
軟件設(shè)計(jì)
軟件設(shè)計(jì)原則:軟件設(shè)計(jì)的原則對(duì)提高軟件的設(shè)計(jì)質(zhì)量有很大的幫助。
?抽象
抽象是指忽視一個(gè)主題中與當(dāng)前目標(biāo)無關(guān)的那些方面,以便更充分地注意與當(dāng)
前目標(biāo)有關(guān)的方面。過程抽
象和數(shù)據(jù)抽象是常用的兩種主要抽象手段。
?模塊化
模塊化是指將一個(gè)待開發(fā)的軟件分解成若干個(gè)小的簡(jiǎn)單的部分——模塊,每個(gè)
模塊可獨(dú)立地開發(fā)、測(cè)試、
最后組裝成完整的軟件。這是一種復(fù)雜問題的“分而治之”的原則。
模塊是指執(zhí)行某一特定任務(wù)的數(shù)據(jù)結(jié)構(gòu)和程序代碼。一個(gè)模塊有它的外部特
征和內(nèi)部特征。
?信息隱蔽
信息隱蔽是開發(fā)整體程序結(jié)構(gòu)時(shí)使用的法則,即將每個(gè)程序的成分隱蔽或封裝
在一個(gè)單一的設(shè)計(jì)模塊中,
定義每一個(gè)模塊時(shí)盡可能少地顯露其內(nèi)部的處理。信息隱蔽原則對(duì)提高軟件
的可修改性、可測(cè)試性和可移
植性都有重要的作用。
?模塊獨(dú)立
模塊獨(dú)立是指每個(gè)模塊完成一個(gè)相對(duì)獨(dú)立的子功能,并且與其它模塊之間的聯(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)容耦合(訪問內(nèi)部數(shù)據(jù),代碼重疊或者多個(gè)入口
內(nèi)聚是指模塊內(nèi)部各元素之間聯(lián)系的緊密程度內(nèi)聚度越低模塊的獨(dú)立性越差
。按內(nèi)聚度從低到高依次有7
種內(nèi)聚種類。
偶然內(nèi)聚(模塊完成的多個(gè)任務(wù),任務(wù)之間的關(guān)系松散
邏輯內(nèi)聚(模塊完成邏輯相關(guān)的一組任務(wù)
瞬時(shí)內(nèi)聚(模塊的所有任務(wù)必須在同一時(shí)間間隔內(nèi)執(zhí)行
過程內(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語句;
模塊調(diào)用深度不能過大;
模塊的扇入(直接調(diào)用該模塊應(yīng)盡量大,扇出(直接調(diào)用下級(jí)模塊數(shù)不宜過大;
設(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來描述程序的結(jié)構(gòu)。其基本成分有模塊、調(diào)用和輸
入輸出數(shù)據(jù)。
結(jié)構(gòu)圖:
共16頁(yè)第3頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
條件調(diào)用循環(huán)調(diào)用
在需求分析階段用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ù)變換形成一條信息流。DF
D的信息流
大體可分為兩種類型:變換流和事務(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的信息流類型
根據(jù)信息流類型分別將變換流或事務(wù)流轉(zhuǎn)換成程序結(jié)構(gòu)圖
根據(jù)軟件設(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ì)的描述工具主要有圖形描述工具、語言描述工具和表格描述
工具。常用的圖形描述工具有
程序流程圖、盒圖(NS圖和問題分析圖(PAD。典型的語言描述工具是
PDL(programdesignlanguageo
典型的表格描述工具是判定表和判定樹。
面向數(shù)據(jù)結(jié)構(gòu)的Jackson方法也十分常用:
Jackson
方法是以數(shù)據(jù)結(jié)構(gòu)為設(shè)計(jì)基礎(chǔ),設(shè)計(jì)目標(biāo)是得出對(duì)程序處理過程的描述,其設(shè)計(jì)過程
是從
描繪數(shù)據(jù)結(jié)構(gòu)的Jackson圖推導(dǎo)出描繪程序結(jié)構(gòu)的Jackson
圖。這種方法最適合于詳細(xì)設(shè)計(jì)階段使用。
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圖
軟件編碼:
根據(jù)詳細(xì)設(shè)計(jì)說明書編寫程序,為開發(fā)項(xiàng)目選擇程序設(shè)計(jì)語言需要考慮的因素
有應(yīng)用領(lǐng)域、算法和計(jì)
算的復(fù)雜性、軟件運(yùn)行環(huán)境、用戶需求、數(shù)據(jù)結(jié)構(gòu)和開發(fā)人員的水平。軟件
的設(shè)計(jì)質(zhì)量與程序設(shè)計(jì)語言的
技術(shù)性能無關(guān),但在程序設(shè)計(jì)轉(zhuǎn)向程序代碼時(shí),轉(zhuǎn)化的質(zhì)量受語言性能的影響。
好的程序應(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言;C是開發(fā)系統(tǒng)的程序設(shè)計(jì)語言;
例題1:
軟件設(shè)計(jì)中劃分模塊的一個(gè)準(zhǔn)則是A。兩個(gè)模塊之間的耦合方式中,B
耦合的耦合度最高,C耦合的耦合
度最低。一個(gè)模塊內(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
_?如果一個(gè)模塊調(diào)用下層
模塊時(shí)傳遞一個(gè)數(shù)據(jù)結(jié)構(gòu),則這種耦合屬于一C_。(軟件工程
(,降低模塊的耦合度,提高模塊的內(nèi)聚性
共16頁(yè)第4頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
,減少模塊調(diào)用的層次
,避免“病態(tài)連接”
軟件測(cè)試
對(duì)源程序最基本的質(zhì)量要求是正確性和可靠性,此外還很注重軟件的易使用性
、易維護(hù)性和易移植性。
軟件測(cè)試的工作量約占軟件開發(fā)總工作量的
40%以上,其目的是盡可能多的發(fā)現(xiàn)軟件產(chǎn)品(主要是指程序
中的錯(cuò)誤和缺陷。
軟件測(cè)試是自底向上,逐步集成的過程,低一級(jí)測(cè)試為上一級(jí)測(cè)試準(zhǔn)備條件;
測(cè)試的關(guān)鍵是測(cè)試用例的設(shè)計(jì),其方法可分為兩類。
白盒測(cè)試:
白盒測(cè)試是根據(jù)程序的內(nèi)部邏輯來設(shè)計(jì)測(cè)試用例,常用的技術(shù)是邏輯覆蓋,即考
察用例測(cè)試數(shù)據(jù)運(yùn)行被測(cè)
程序時(shí)對(duì)程序邏輯的覆蓋程度。主要的覆蓋標(biāo)準(zhǔn)有6種:
I.語句覆蓋
指選擇足夠的測(cè)試用例,使被測(cè)語句的每個(gè)語句至少執(zhí)行一次。
指選擇足夠的測(cè)試用例,使每個(gè)判定的所有可能結(jié)果至少出現(xiàn)一次。
指選擇足夠的測(cè)試用例,使判定中的每個(gè)條件的所有可能結(jié)果至少出現(xiàn)一次。
IV.判定/條件覆蓋
指選擇足夠的測(cè)試用例,使判定中的每個(gè)條件的所有可能結(jié)果至少出現(xiàn)一次,并
且每個(gè)判定中條件結(jié)果的
所有可能組合也至少出現(xiàn)一次。
V.條件組合覆蓋
指選擇足夠的測(cè)試用例,使每個(gè)判定中條件結(jié)果的所有可能組合至少出現(xiàn)一次
O
VI.路徑覆蓋
指選擇足夠的測(cè)試用例,使流程圖中的每條路徑至少經(jīng)過一次。
黑盒測(cè)試:
黑盒測(cè)試時(shí)根據(jù)規(guī)格說明所規(guī)定的功能來設(shè)計(jì)測(cè)試用例,它不考慮程序的內(nèi)部
結(jié)構(gòu)和處理過程。常用的黑
盒測(cè)試技術(shù)有:
等價(jià)類劃分
邊值劃分
錯(cuò)誤猜測(cè)
軟件測(cè)試的主要步驟有單元測(cè)試、集成測(cè)試和確認(rèn)測(cè)試。
單元測(cè)試:
主要用來發(fā)現(xiàn)編碼和詳細(xì)設(shè)計(jì)中產(chǎn)生的錯(cuò)誤,一般在編碼階段,采用白盒測(cè)試。
集成測(cè)試(也稱組裝測(cè)試:
主要用來發(fā)現(xiàn)設(shè)計(jì)階段產(chǎn)生的錯(cuò)誤,是對(duì)各模塊組裝而成的程序進(jìn)行測(cè)試,主要
檢查模塊間的接口和通信,
采用黑盒測(cè)試。
集成測(cè)試按集成方式又可分成非漸增式集成和漸增式集成,而漸增式集成又可
分成自頂向下集成和自底向
上集成。
確認(rèn)測(cè)試:
檢查軟件的功能、性能和其它特征是否與用戶需求一致,它以需求規(guī)格說明書
作測(cè)試為依據(jù),采用黑盒測(cè)試
Alpha測(cè)試是在開發(fā)者的現(xiàn)場(chǎng)由客戶來實(shí)施的,從用戶角度和環(huán)境下進(jìn)行;
Beta測(cè)試是在開發(fā)者不在現(xiàn)場(chǎng)下測(cè)試,由軟件最終用戶實(shí)施;
使用各種測(cè)試方法的綜合策略:
在任何情況下都必須使用邊界值分析方法,用這種方法設(shè)計(jì)出測(cè)試用例發(fā)現(xiàn)程
序錯(cuò)誤的能力最強(qiáng);
必要時(shí)用等價(jià)類劃分方法補(bǔ)充一些測(cè)試用例;
用錯(cuò)誤推測(cè)法再追加一些測(cè)試用例
對(duì)照程序邏輯,檢查已有測(cè)試用例的邏輯覆蓋程度
如果程序的功能說明中含有輸入條件的組合情況,則選用因果圖法
例題:
軟件測(cè)試的目的是A。通常B
是在代碼編寫階段可進(jìn)行的測(cè)試,它是整個(gè)測(cè)試工作的基礎(chǔ)。
邏輯覆蓋標(biāo)準(zhǔn)主要用于
Co它主要包括條件覆蓋、條件組合(多重條件覆蓋、判定覆蓋、條件及判定覆
蓋、語句覆蓋和路徑覆蓋等幾種,其中除路徑覆蓋外最弱的覆蓋標(biāo)準(zhǔn)是
D,最強(qiáng)的覆蓋標(biāo)準(zhǔn)Eo
共16頁(yè)第5頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
A:①表明軟件的正確性②評(píng)價(jià)軟
件質(zhì)量
③盡可能發(fā)現(xiàn)軟件中錯(cuò)誤④判定軟
件是否合格
B:①系統(tǒng)測(cè)試②安裝測(cè)試③驗(yàn)收測(cè)
試④單元測(cè)試
C:①黑盒測(cè)試方法②白盒測(cè)試方法
③灰盒測(cè)試方
法④軟件驗(yàn)收方法
D、E:①條件覆蓋②條件組合覆蓋③判定覆蓋
④條件及判定覆蓋⑤語句覆蓋
A:③B:④C:②D:⑤E:②
軟件開發(fā)工具與環(huán)境(CASE
用來輔助軟件開發(fā)、運(yùn)行、維護(hù)、管理和支持等過程中的活動(dòng)的軟件稱為軟
件工具,通常也稱為CASE
(計(jì)算機(jī)輔助軟件工程工具。
整個(gè)軟件開發(fā)過程要使用很多開發(fā)工具,其中包括分析工具、設(shè)計(jì)工具、編程
工具、測(cè)試工具、維護(hù)工具等等。
軟件開發(fā)工具是指支持軟件產(chǎn)品開發(fā)的軟件系統(tǒng),它由軟件工具集和環(huán)境集成
機(jī)智構(gòu)成。工具集包括
支持軟件開發(fā)相關(guān)過程、活動(dòng)、任務(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ù)集成可由共享文件、共享數(shù)據(jù)結(jié)構(gòu)或共享信息庫(kù)等不同
的層次;
控制集成機(jī)制:支持各工具或各開發(fā)活動(dòng)之間的通信、切換、調(diào)度和協(xié)同工作,
并且支持軟
件開發(fā)過程的描述、執(zhí)行和轉(zhuǎn)接;通常消息傳送的方式實(shí)現(xiàn)控制的集成。
界面集成機(jī)制使這些工具具有統(tǒng)一的界面風(fēng)格,從而為軟件開發(fā)、維護(hù)、管理
等過程的各項(xiàng)
活動(dòng)提供連續(xù)的、一致的全方位支持。
集成型軟件開發(fā)環(huán)境由工具集和環(huán)境集成機(jī)制組成,這種環(huán)境應(yīng)該具有開放性
和可剪裁性;
環(huán)境集成機(jī)制的核心是環(huán)境數(shù)據(jù)庫(kù)。
軟件維護(hù)和軟件管理
軟件開發(fā)項(xiàng)目管理基礎(chǔ)知識(shí)(時(shí)間管理、成本管理、質(zhì)量管理、人力資源管理
、風(fēng)險(xiǎn)管理等及其常
用管理工具
軟件維護(hù)階段是指從軟件交付使用到軟件被淘汰為止的整個(gè)時(shí)期,它是在軟件
交付使用后,
為了改正軟件中隱藏的錯(cuò)誤,或者為了使軟件適應(yīng)新的環(huán)境,或者為了擴(kuò)充和完
善軟件的功能或性能而修
改軟件的過程。根據(jù)引起軟件維護(hù)的原因,軟件維護(hù)通??煞殖筛恼跃S護(hù)、
適應(yīng)性維護(hù)、完善性維護(hù)、
預(yù)防性維護(hù)。
軟件管理工作涉及到軟件開發(fā)工作的方方面面,其直接對(duì)象包括人、財(cái)、物,簡(jiǎn)
單地說,人就是指軟
件開發(fā)人員,財(cái)就是指項(xiàng)目經(jīng)費(fèi),物就是指軟件項(xiàng)目。也許還沒有關(guān)于這方面的
專門理論,但在工商管理
領(lǐng)域已經(jīng)有十分成熟的管理學(xué)理論,他山之石,能夠攻玉,所以我們完全能夠引進(jìn)
到軟件項(xiàng)目方面的管理。
作為軟件管理人員,應(yīng)該站在高處來俯瞰整個(gè)項(xiàng)目,如果有不識(shí)廬山真面目的感
覺就不太好了。有了
俯瞰全局的意識(shí)這一前提,采用適當(dāng)?shù)墓芾砑夹g(shù),項(xiàng)目開展就容易羅。軟件項(xiàng)目
的管理工作能夠分位四個(gè)
方面:軟件項(xiàng)目的計(jì)劃、軟件項(xiàng)目的組織、軟件項(xiàng)目的領(lǐng)導(dǎo)和軟件項(xiàng)目的控制.
1軟件項(xiàng)目的計(jì)劃
軟件開發(fā)項(xiàng)目的計(jì)劃包括定義項(xiàng)目的目標(biāo),以及達(dá)到目標(biāo)的方法。他涉及到項(xiàng)
目實(shí)施的各個(gè)環(huán)節(jié),帶
有全局的性質(zhì),是戰(zhàn)略性的。計(jì)劃應(yīng)力求完備,要考慮到一些未知因素和不確定
因素,考慮到可能的修改。
計(jì)劃應(yīng)力求準(zhǔn)確,盡可能提高所依據(jù)的數(shù)據(jù)的可靠程度。主要工作集中在軟件
項(xiàng)目的估算、軟件開發(fā)成本
的估算和軟件項(xiàng)目進(jìn)度安排。軟件項(xiàng)目計(jì)劃的目標(biāo)是提供一個(gè)能使項(xiàng)目管理
人員對(duì)資源、成本和進(jìn)度做出
合理估算的框架。這些估算應(yīng)在軟件項(xiàng)目開始時(shí)的一段有限時(shí)間內(nèi)作出,并隨
著項(xiàng)目的進(jìn)展進(jìn)行更新。
2軟件項(xiàng)目的估算
軟件項(xiàng)目管理過程開始于項(xiàng)目的計(jì)劃,在做項(xiàng)目計(jì)劃時(shí),第一項(xiàng)活動(dòng)是估算?,F(xiàn)
在已經(jīng)使用的使用技
術(shù)是時(shí)間和工作量的估算。因?yàn)楣浪闶瞧渌?xiàng)目計(jì)劃活動(dòng)的基石,而且項(xiàng)目計(jì)
劃又未軟件工程過程提供了
工作方向,所以我們不能沒有計(jì)劃就著手開發(fā),否則就會(huì)陷入盲目性。
估算本身帶有風(fēng)險(xiǎn),估算資源、成本和項(xiàng)目進(jìn)度時(shí)需要經(jīng)驗(yàn)、有用的歷史信息
、足夠的定量數(shù)據(jù)和作
定量度量的勇氣。估算的精確程度受到多方面的影響。首先,項(xiàng)目的復(fù)雜性對(duì)
于增加軟件計(jì)劃的不確定性
共16頁(yè)第6頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
影響很大,復(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ī)模對(duì)于估算的精確
性和功效
的影響也比較大,因?yàn)殡S著軟件規(guī)模的擴(kuò)大,軟件相同元素之間的相互依賴、相
互影響也迅速增加,因而
估算時(shí)進(jìn)行問題分解也會(huì)變得更加困難。還有項(xiàng)目的結(jié)構(gòu)化程度也影響項(xiàng)目
估算的風(fēng)險(xiǎn),這里的結(jié)構(gòu)性是
指功能分解的簡(jiǎn)便性和處理信息的層次性,結(jié)構(gòu)化程度提高,進(jìn)行精確估算的能
力就提高,相應(yīng)風(fēng)險(xiǎn)將減
少。此外,歷史信息的有效性也影響估算的風(fēng)險(xiǎn),在對(duì)過去的項(xiàng)目進(jìn)行這綜合的
軟件度量之后,就能夠借
用來比較準(zhǔn)確地進(jìn)行估算。影響估算的因素遠(yuǎn)不止這些,比如用戶需求的頻繁
變更給估算帶來非常大的影
響。
估算的依據(jù)是軟件的范圍,包括功能,性能、限制、接口和可靠性。在估算開始
之前,應(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)目計(jì)劃還要完成資源估算,包括人力資源、硬件資源和軟件資源。
在考慮各種軟件開發(fā)資
源時(shí)最重要的是人,必須考慮人員的技術(shù)水平、專業(yè)、人數(shù)以及在開發(fā)過程各
階段對(duì)各種人員的需要。硬
件資源作為一種工具投入。軟件資源包括各種幫助開發(fā)的軟件工具,比如編程
工具、管理工具、測(cè)試工具,
還有操作系統(tǒng)和數(shù)據(jù)庫(kù)等。
工作兩估算是最普遍使用的技術(shù)。經(jīng)過功能分解之后,能夠估計(jì)出每一個(gè)項(xiàng)目
任務(wù)的分解都需要花費(fèi)若干人年,總計(jì)之后就知道軟件項(xiàng)目總體工作量。下面就是
一個(gè)示意性工作量估算表。
表格1某軟件系統(tǒng)工作量估算表(單位:人日
任務(wù)
需求分析
設(shè)計(jì)
編碼
測(cè)試
小計(jì)
用戶定義
2
系統(tǒng)定義
2
廣告預(yù)定
4
10
2
劃版
5
20
制作和組版
3
5
3
1
12
總計(jì)
16
45
17
3
81
軟件開發(fā)成本的估算
軟件開發(fā)成本主要是指軟件開發(fā)過程所花費(fèi)的工作量及其相應(yīng)的代價(jià)。它不
同于其它物理產(chǎn)品的成本,
它主要包括人的勞動(dòng)的消耗,人的勞動(dòng)的消耗所需的代價(jià)就是軟件產(chǎn)品的開發(fā)
成本。
開發(fā)成本的估算方法有很多種,象簡(jiǎn)單的代碼行技術(shù),任務(wù)分解技術(shù),自動(dòng)估計(jì)成
本技術(shù),專家判定
技術(shù),還有參數(shù)方程法,標(biāo)準(zhǔn)值法,以及COCOMO模型法。其中COCOMO
(ConstructiveCostModel模型
法是一種精確、易于使用的成本估算方法,該模型按其詳細(xì)程度分為三級(jí):基本
COCOMO模型、中間COCOMO
模型和詳細(xì)COCOMO模型
軟件項(xiàng)目進(jìn)度安排
軟件項(xiàng)目的進(jìn)度安排主要是考慮軟件交付用戶使用的這一段開發(fā)時(shí)間的安排
o進(jìn)度安排的準(zhǔn)確程度可
能比成本估計(jì)的準(zhǔn)確程度更重要。軟件產(chǎn)品能夠靠重新定價(jià)或者靠大量的銷
售來彌補(bǔ)成本的增加,但進(jìn)度
安排的落空會(huì)導(dǎo)致市場(chǎng)機(jī)會(huì)的喪失或者用戶不滿意,而且也會(huì)導(dǎo)致成本的增加
。因此在考慮進(jìn)度安排時(shí)要
把人員的工作量與花費(fèi)的時(shí)間聯(lián)系起來,合理分配工作量,利用進(jìn)度安排的有效
分析方法嚴(yán)密監(jiān)視軟件開
發(fā)的進(jìn)展情況,以使得軟件開發(fā)的進(jìn)度不致被拖延。
在進(jìn)行進(jìn)度安排時(shí)要考慮的一個(gè)主要問題是任務(wù)的并行性問題。當(dāng)參加項(xiàng)目
的人數(shù)不止一人是軟件開
發(fā)工作就會(huì)出現(xiàn)并行情況。因?yàn)椴⑿腥蝿?wù)是同時(shí)發(fā)生的所以進(jìn)度計(jì)劃表必須
決定任務(wù)之間的從屬關(guān)系,確
定各個(gè)任務(wù)的先后次序和銜接,確定各個(gè)任務(wù)完成的持續(xù)時(shí)間。另外還應(yīng)注意
關(guān)鍵路徑的任務(wù),這樣能夠
確定在進(jìn)度安排中應(yīng)保證的重點(diǎn)。常用的進(jìn)度安排方法有兩種,即甘特圖(Gant
tChart法和工程網(wǎng)絡(luò)法。
參加軟件開發(fā)的人員如何組織起來,使他們發(fā)揮最大的工作效率,對(duì)成功地完成
軟件項(xiàng)目極為重要。
組織結(jié)構(gòu)
開發(fā)組織采用什么形式由軟件項(xiàng)目的特點(diǎn)決定,同時(shí)也與參加人員的素質(zhì)有關(guān)
o通常有三種組織結(jié)構(gòu)
模式:
1.
按課題組劃分的模式:把開發(fā)人員按課題組成小組,小組成員自始至終承擔(dān)課題的各
項(xiàng)任務(wù)。該模
式適用于規(guī)模不大的項(xiàng)目,并且要求小組成員在各方面有技術(shù)專長(zhǎng)。
2.
按職能劃分的模式:把開發(fā)項(xiàng)目的軟件人員按任務(wù)的工作階段劃分為若干工作小組
o要開發(fā)的軟
在每個(gè)專業(yè)小組完成階段加工后沿工序流水線向下傳遞。這種流水作業(yè)的方
式使用于多項(xiàng)目并行的情況。
3.
矩陣形模型:這種模式是以上兩種模式的復(fù)合。一方面按工作性質(zhì)成立一些專門小
組,另一方面每
一個(gè)項(xiàng)目都有它的經(jīng)理人員負(fù)責(zé)。每一個(gè)軟件開發(fā)人員屬于某一個(gè)專門小組,
有參加某一個(gè)項(xiàng)目的工作。
共16頁(yè)第7頁(yè)
項(xiàng)目階段
圖1軟件項(xiàng)目人員參與情況圖
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
該模式的優(yōu)點(diǎn)有一方面參加專門組的成員能夠在組內(nèi)交流在各個(gè)項(xiàng)目中取得
的經(jīng)驗(yàn),這更有利于發(fā)揮專業(yè)
人員的作用;另一方面,各個(gè)項(xiàng)目有專門的人員負(fù)責(zé),有利于軟件項(xiàng)目的完成。這
種模式比較適合于規(guī)模
比較大的項(xiàng)目。
組織結(jié)構(gòu)的最后一層是程序設(shè)計(jì)小組的組織形式。通常認(rèn)為程序設(shè)計(jì)工作是
按獨(dú)立的方式進(jìn)行的,程
序人員獨(dú)立地完成任務(wù)。但這并不意味著相互之間沒有聯(lián)系。一般在人數(shù)比
較少時(shí)組員之間的聯(lián)系比較簡(jiǎn)
單,但隨著人數(shù)的增加,相互之間的聯(lián)系變得負(fù)責(zé)起來。小組內(nèi)部人員的組織形
式對(duì)對(duì)生產(chǎn)率有著十分重
要的影響。
常見的小組組織形式有三種,這三種形式能夠靈活使用。
1.
主程序員制小組:相當(dāng)于組長(zhǎng)負(fù)責(zé)制,小組的核心由一位主程序員,另外配備兩到三位
技術(shù)員、一
位后援工程師組成。這種組織結(jié)構(gòu)突出主程序員的領(lǐng)導(dǎo),強(qiáng)調(diào)主程序員與其它
技術(shù)人員的聯(lián)系。
2.
民主制小組:在民主制小組中,遇到問題能夠在組員之間平等地交換換意見,工作組目
標(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í)程序員通過基層小組,管理若干位程序員
o這種結(jié)構(gòu)比較適合于項(xiàng)
目本身就是層次結(jié)構(gòu)的課題。
人員配備
合理地配備人員是成功地完成軟件項(xiàng)目的切實(shí)保證。所謂合理地配備人員應(yīng)
包括按不同階段適時(shí)運(yùn)用
人員,恰當(dāng)掌握用人標(biāo)準(zhǔn)。一般來說,軟件項(xiàng)目不同階段不同層次技術(shù)人員的參
與情況是不一樣的。下圖
是典型的軟件開發(fā)人員參與情況曲線。
在人力配備問題上,由于配置不當(dāng),很容易造成人力資源的浪費(fèi),并延誤工期。特
別是采用恒定人員
配備方案時(shí)在項(xiàng)目的開始和最后都會(huì)出現(xiàn)人力過剩,而在中期又會(huì)出現(xiàn)人力不
足的情況。
對(duì)后面兩個(gè)主題以后再討論。其實(shí)本文所討論的東西大多還沒有涉及太多管
理學(xué)方面的內(nèi)容,但這方
面確實(shí)有許多值得研究的東西,由于時(shí)間關(guān)系不能深入下去。姑且作為一個(gè)引
子吧!
面向?qū)ο蠹夹g(shù)
面向?qū)ο蟮幕靖拍?/p>
面向?qū)ο螅╫bject-oriented,OO方法是以客觀世界中的對(duì)象為中心,其分析和設(shè)計(jì)
思想符合人們的
思維方式,分析和設(shè)計(jì)的結(jié)果與客觀世界的實(shí)際比較接近,容易被人們所接受。
下面列舉幾個(gè)面向?qū)ο笤O(shè)
計(jì)方法中的重要術(shù)語,它們構(gòu)成面向?qū)ο蟮某绦蛟O(shè)計(jì)語言的核心。
?對(duì)象(Object
對(duì)象是和有數(shù)據(jù)及可對(duì)這些數(shù)據(jù)施加的操作結(jié)合在一起所構(gòu)成的獨(dú)立單位的
總稱。一個(gè)對(duì)象通??捎蓪?duì)象
名、屬性和操作三部分組成。
對(duì)象的劃分判定標(biāo)準(zhǔn):
1、
子對(duì)象之間獨(dú)立性要高,即耦合度盡量達(dá)到最低,(理想的情況是達(dá)到組件化的程度;
2、
子對(duì)象相對(duì)其它劃分方法,更易于處理。所以對(duì)于復(fù)雜的大系統(tǒng),一般都要經(jīng)過多次
的嘗試,以盡量
能找到較優(yōu)的劃分方案。對(duì)于比較簡(jiǎn)單的系統(tǒng),E-R
轉(zhuǎn)換也能的到較為滿意的劃分。
?實(shí)例(Instance
共16頁(yè)第8頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
實(shí)例是由某個(gè)特定類所描述的一個(gè)對(duì)象。
?類(Class
類是一組具有相同屬性和相同操作的對(duì)象的集合。類是面向?qū)ο蟮某绦蛟O(shè)計(jì)
語言提供的可再用軟件成分。
?方法(Method
對(duì)象所能執(zhí)行的操作稱為方法。方法是類中定義的函數(shù),描述對(duì)象執(zhí)行操作的
算法。
?消息(Message
消息是要求某個(gè)對(duì)象執(zhí)行類中定義的某個(gè)操作的規(guī)格說明。一個(gè)消息通常包
括接受對(duì)象名、調(diào)用的操作名
和適當(dāng)?shù)膮?shù)(如有必要。
主要特點(diǎn):
?封裝性
封裝性是一種信息隱蔽技術(shù),它使系統(tǒng)分析員能夠清晰地標(biāo)明他們所提供的服
務(wù)界面,用戶和應(yīng)用程序員
則只看得見對(duì)象提供的操作功能(即封裝面上的信息,看不到其中的數(shù)據(jù)或操作
代碼細(xì)節(jié)。
?多態(tài)性
多態(tài)性是指同一個(gè)操作作用于不同的對(duì)象能夠有不同的解釋,產(chǎn)生不同的執(zhí)行
結(jié)果。
?繼承性
繼承是指在某個(gè)類的層次關(guān)聯(lián)中,不同的類共享屬性和操作的一種機(jī)制。一個(gè)
父類能夠有多個(gè)子類。父類
描述了這些子類的公共屬性和操作,子類中還能夠定義其自己的屬性和操作。
如果一個(gè)子類只有唯一的一
個(gè)父類,這種繼承稱為單一繼承。如果一個(gè)子類有多個(gè)父類,能夠從多個(gè)父類中
繼承特性,這種繼承稱為
多重繼承。
?分布式對(duì)象DistributedObject
在發(fā)布實(shí)施角度上看,對(duì)象可分為三種:本地對(duì)象,遠(yuǎn)地對(duì)象,虛擬對(duì)象。
本地對(duì)象LocalObject:指分布在同一個(gè)系統(tǒng)中的對(duì)象,互稱為本地對(duì)象
遠(yuǎn)地對(duì)象RemoteObject:指分布在不同系統(tǒng)中的對(duì)象(同一個(gè)群體系統(tǒng)。
虛擬對(duì)象Virtual
Object:不同于本地和遠(yuǎn)地對(duì)象,虛擬對(duì)象不屬于真實(shí)的對(duì)象,而是一個(gè)虛設(shè)的
類型。真正的操作不在虛擬對(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ù)沒有的優(yōu)點(diǎn)。
面向?qū)ο髷?shù)據(jù)庫(kù)(OODB+關(guān)系數(shù)據(jù)庫(kù)(RDB-對(duì)象-關(guān)系數(shù)據(jù)庫(kù)(ORDB
面向?qū)ο蟮奶卣?類和繼承性,對(duì)象及對(duì)象標(biāo)識(shí)、封裝性、信息/實(shí)現(xiàn)隱蔽、狀態(tài)保持
,消息,多態(tài)性,一
般性。
面向?qū)ο蠹夹g(shù)的出現(xiàn)正是彌補(bǔ)了前述關(guān)系模型的固有局限性。
對(duì)象數(shù)據(jù)模型是有很強(qiáng)的描述復(fù)雜對(duì)象的能力,能包含更多的數(shù)據(jù)語義信息。
面向?qū)ο蠓椒珊芊奖愕谋硎厩短讓?duì)象,因而很容易表達(dá)層次數(shù)據(jù),這點(diǎn)與RDB
形成鮮明的對(duì)比,
RDB強(qiáng)迫用戶用多個(gè)關(guān)系的元組表達(dá)層次數(shù)據(jù)。
面向?qū)ο蠓椒煞奖愕臉?gòu)造各種類型、而RDB
不提供增加用戶定義數(shù)據(jù)類型的手段。
面向?qū)ο蟮姆治龇椒?/p>
面向?qū)ο蟮南到y(tǒng)分析設(shè)計(jì),看起來其實(shí)也很簡(jiǎn)單,步驟大概如下:
(1從項(xiàng)目開始,進(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)前常見的面向?qū)ο蟮姆椒ê芏?下面簡(jiǎn)單介紹三種:
PeterCoard和EdwardYourdon的OOA和OOD方法
OOA(面向?qū)ο蠓治瞿P陀?個(gè)層次和5個(gè)活動(dòng)組成:
5個(gè)層次:主題層、對(duì)象類層、結(jié)構(gòu)層、屬性層、服務(wù)層
5個(gè)活動(dòng):標(biāo)識(shí)對(duì)象類、標(biāo)識(shí)結(jié)構(gòu)、定義主題、定義屬性、定義服務(wù)
在這種方法中定義兩種對(duì)象類之間的結(jié)構(gòu):
分類結(jié)構(gòu)——反映了一般與特殊的關(guān)系
組裝結(jié)構(gòu)——反映了對(duì)象之間整體與部分的關(guān)系
OOA中的5個(gè)層次和5個(gè)活動(dòng)繼續(xù)貫穿在OOD(面向?qū)ο笤O(shè)計(jì)過程中。OOD
模型由4個(gè)部分
,即:
問題域
人機(jī)交互
共16頁(yè)第9頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
任務(wù)管理
數(shù)據(jù)管理
Booth的OOD方法
Booth認(rèn)為軟件開發(fā)是一個(gè)螺旋上升的過程。在螺旋上升的每個(gè)周期中,有4
個(gè)步驟:
標(biāo)識(shí)類和對(duì)象
確定它們的含義
標(biāo)識(shí)它們之間的關(guān)系
說明每一個(gè)類的界面和實(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),形成求解問題和建立解答的高層次策略。
對(duì)象設(shè)計(jì):在分析的基礎(chǔ)上,對(duì)象設(shè)計(jì)階段建立基于分析模型的設(shè)計(jì)模型,考慮實(shí)
現(xiàn)的細(xì)節(jié)。
實(shí)現(xiàn):將對(duì)象設(shè)計(jì)階段開發(fā)的對(duì)象類及其關(guān)系轉(zhuǎn)換成特定的程序設(shè)計(jì)語言、數(shù)
據(jù)庫(kù)或硬件的實(shí)現(xiàn)。
面向?qū)ο笤O(shè)計(jì)方法
面向?qū)ο蟮念愒O(shè)計(jì)相關(guān)原則:
1.開閉原則(theOpenClosedPrincipleOCP
一個(gè)模塊在擴(kuò)展性方面應(yīng)該是開放的而在更改性方面應(yīng)該是封閉的。因此在
進(jìn)行面向?qū)ο笤O(shè)計(jì)時(shí)要盡
量考慮接口封裝機(jī)制、抽象機(jī)制和多態(tài)技術(shù)。該原則同樣適合于非面向?qū)ο?/p>
設(shè)計(jì)的方法,是軟件工程設(shè)計(jì)
方法的重要原則之一。
2.替換原則(theLiskovSubstitutionPrincipleLSP
子類應(yīng)當(dāng)能夠替換父類并出現(xiàn)在父類能夠出現(xià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)該盡量依賴接口和抽象類,而不是
依賴于具體類。
具體類只負(fù)責(zé)相關(guān)業(yè)務(wù)的實(shí)現(xiàn),修改具體類不影響與特定業(yè)務(wù)有關(guān)的依賴關(guān)系
為此,我們?cè)谶M(jìn)行業(yè)務(wù)設(shè)計(jì)時(shí),應(yīng)盡量在接口或抽象類中定義業(yè)務(wù)方法的原型,并
通過具體的實(shí)現(xiàn)類(子類來實(shí)現(xiàn)該業(yè)務(wù)方法,業(yè)務(wù)方法內(nèi)容的修改將不會(huì)影響到運(yùn)行
時(shí)業(yè)務(wù)方法的調(diào)用。
4.接口分離原則(theInterfaceSegregationPrincipleISP
采用多個(gè)與特定客戶類有關(guān)的接口比采用一個(gè)通用的涵蓋多個(gè)業(yè)務(wù)方法的接
口要好。
ISP原則是另外一個(gè)支持諸如COM等組件化的使能技術(shù)。缺少
ISP,組件、類的可用性和移植性將大打
折扣。
這個(gè)原則的本質(zhì)相當(dāng)簡(jiǎn)單。如果你擁有一個(gè)針對(duì)多個(gè)客戶的類,為每一個(gè)客戶
創(chuàng)建特定業(yè)務(wù)接口,然后使該客戶類繼承多個(gè)特定業(yè)務(wù)接口將比直接加載客戶所需
所有方法有效。
例題:
國(guó)家標(biāo)準(zhǔn)《計(jì)算機(jī)軟件產(chǎn)品開發(fā)文件編制指南
GB8567-88》中規(guī)定,在一項(xiàng)軟件開發(fā)過程中,一般來說應(yīng)
該產(chǎn)生14種文件,其中管理人員主要使用的有
A、B、C、開發(fā)進(jìn)度月報(bào)、項(xiàng)目開發(fā)總結(jié)報(bào)告。開發(fā)人
員主要使用的有
A、B、D、數(shù)據(jù)要求說明書、概要設(shè)計(jì)說明書、詳細(xì)設(shè)計(jì)說明書、數(shù)據(jù)庫(kù)設(shè)計(jì)說
明書、
測(cè)試計(jì)劃和E。維護(hù)人員主要使用的有設(shè)計(jì)說明書、E和C。
A~E:①軟件需求說明書②項(xiàng)目開發(fā)計(jì)劃③可行性研
究報(bào)告
④模塊開發(fā)卷宗⑤測(cè)試分析報(bào)告⑥操作手冊(cè)
⑦用戶手冊(cè)
[分析]
本題綜合考查了軟件生命周期各個(gè)階段的相關(guān)知識(shí)。
大家在復(fù)習(xí)軟件工程這部分內(nèi)容的時(shí)候,除了對(duì)軟件生命周期的每個(gè)階段(如需
求分析、軟件設(shè)計(jì)、
軟件維護(hù)等的相關(guān)知識(shí)應(yīng)該仔細(xì)復(fù)習(xí)以外,對(duì)整個(gè)軟件生命周期各階段還應(yīng)有
個(gè)總體的認(rèn)識(shí)和把握。前
共16頁(yè)第
10頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
面在知識(shí)要點(diǎn)中有比較表對(duì)各階段的任務(wù)、參與人員和產(chǎn)生文檔做出了歸納
和總結(jié),大家復(fù)習(xí)的時(shí)候能夠
好好參考一下。
[答案]
A:②B:③C:④D:①E:⑤
同步輔導(dǎo)中的軟件工程部分的題目很好,大家能夠做一下,題目類型和軟考類似;
軟件質(zhì)量(重點(diǎn)
軟件質(zhì)量是指反映軟件系統(tǒng)或軟件產(chǎn)品滿足規(guī)定或隱含需求的能力的特征和
特性全體。下面從管理的
角度列出了影響軟件質(zhì)量的主要因素。
質(zhì)量因素
定義
系統(tǒng)滿足規(guī)格說明和用戶目標(biāo)的程序,即在預(yù)定環(huán)境下能正確的完成預(yù)期功
正確性
能的程序
產(chǎn)
在硬件發(fā)生故障、輸入的數(shù)據(jù)無效或操作錯(cuò)誤等意外環(huán)境下,系統(tǒng)能做出適
健壯性
品
當(dāng)響應(yīng)的程序
運(yùn)
效率
為了完成預(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)開發(fā)處理,并且為用戶滿意的概率
產(chǎn)
可理解性
理解和使用該系統(tǒng)的容易程度
品
可維修性
診斷和改正在運(yùn)行現(xiàn)場(chǎng)發(fā)現(xiàn)的錯(cuò)誤所需要的工作量的多少
修
靈活性(適應(yīng)性
修改或改進(jìn)正在運(yùn)行的系統(tǒng)需要的工作量的多少
改
軟件容易測(cè)試的程度
產(chǎn)
把程序從一種硬件配置和(或軟件系統(tǒng)環(huán)境轉(zhuǎn)移到另一種配置和環(huán)境時(shí),
可移植性
品
需要的工作量多少
轉(zhuǎn)
可再用性
在其它應(yīng)用中該程序能夠被再次使用的程度(或范圍
移
互運(yùn)行性
把該系統(tǒng)和另一個(gè)系統(tǒng)結(jié)合起來需要的工作量的多少
高質(zhì)量軟件的特性:
滿足用戶的需求。這是最重要的一點(diǎn),一個(gè)軟件如果不能夠滿足用戶的需要,設(shè)
計(jì)的再好,采用的
技術(shù)再先進(jìn),也沒有任何的意義。所以這一點(diǎn)非常的樸實(shí),但卻是軟件質(zhì)量的第
一個(gè)評(píng)判標(biāo)準(zhǔn)。
合理進(jìn)度、成本、功能關(guān)系。軟件開發(fā)中所有的管理都是圍繞著這幾個(gè)要素
在做文章的
,如何在特
定的時(shí)間內(nèi),以特定的成本,開發(fā)出特定功能的軟件。三者之間存在一種微妙的
平衡。一個(gè)高質(zhì)量的
軟件的開發(fā)過程中,項(xiàng)目成員一定能夠客觀的對(duì)待這三個(gè)因素,并通過有效的計(jì)
劃、管理、控制,使
得三者之間達(dá)成一種平衡,保證產(chǎn)出的最大化。
具備擴(kuò)展性和靈活性,能夠適應(yīng)一定程度的需求變化。當(dāng)今的社會(huì)已經(jīng)變成一
種變化速度極快的設(shè)
計(jì)了。變化就會(huì)對(duì)軟件產(chǎn)生沖擊,所以一個(gè)質(zhì)量?jī)?yōu)秀的軟件,應(yīng)該能夠在一定程
度上適應(yīng)這種變化,
并保持軟件的穩(wěn)定。
能夠有效的處理例外的情況。寫過軟件的人都知道,實(shí)現(xiàn)主體功能的工作量其
實(shí)不大,真正的工作
量都在處理各種例外。所以,一個(gè)軟件如果能夠足夠的強(qiáng)壯、足夠的魯棒,能夠
承受各種的非法情況
的沖擊,這個(gè)軟件就是高質(zhì)量的。
保持成本和性能的平衡。性能往往來源于客戶的非功能需求,是軟件質(zhì)量的一
個(gè)重要的評(píng)價(jià)因素。
但是性能問題在任何地方都存在,所以需要客觀的看待它。例如,一段性能不錯(cuò)
的代碼可能可讀性很
差,這就需要進(jìn)行平衡,如果這段代碼的性能是整個(gè)軟件的關(guān)鍵,那么取高性能而
舍棄可讀性,反之
則取可讀性而舍棄高性能。一個(gè)優(yōu)秀的軟件能夠保持成本和性能之間的平衡
O
能夠可持續(xù)的發(fā)展。很少有軟件組織只開發(fā)一個(gè)軟件的,所以,一個(gè)優(yōu)秀的軟件
在開發(fā)完成后,可
以形成知識(shí)沉淀,為軟件組織的長(zhǎng)期發(fā)展貢獻(xiàn)力量。這是一個(gè)優(yōu)秀的軟件應(yīng)該
要能夠做到的。
采用測(cè)試作為評(píng)價(jià)軟件標(biāo)準(zhǔn)的做法是非常常見的。例如,sun
公司就專門設(shè)計(jì)了測(cè)試軟件,對(duì)各個(gè)實(shí)
現(xiàn)J2EE
規(guī)范的產(chǎn)品進(jìn)行測(cè)試。使用測(cè)試作為規(guī)范的最大好處就是明確、具體。
使用測(cè)試代碼建立目標(biāo),編寫代碼完成測(cè)試目標(biāo),再制定下一個(gè)目標(biāo),如此循環(huán),
構(gòu)成了測(cè)試驅(qū)動(dòng)開發(fā)的
共16頁(yè)第
11頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
八項(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)一起來,并創(chuàng)造使員工能夠充分參與
實(shí)現(xiàn)組織目標(biāo)的環(huán)
境。
1、組織實(shí)施本原則的主要利益
2、組織實(shí)施本原則時(shí)一般要采取的主要措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則3:全員參與
各級(jí)人員是組織之本。只有他們的充分參與,才能使他們的才干為組織帶來最
大的收益。
1、織實(shí)施本原則的主要利益
2、組織實(shí)施本原則時(shí)一般要采取的主要措施
3、本原則在標(biāo)準(zhǔn)中的體現(xiàn)
原則4:過程方法
將相關(guān)的資源和活動(dòng)作為過程進(jìn)行管理,能夠更高效地得到期望的結(jié)果。
過程方法的原則不僅適用于某些較簡(jiǎn)單的過程,也適用于由許多過程構(gòu)成的過
程網(wǎng)絡(luò)。在應(yīng)用于
質(zhì)量管理體系時(shí),版IS09000
族標(biāo)準(zhǔn)建立了一個(gè)過程模式。此模式把管理職責(zé)、資源管理、產(chǎn)品實(shí)現(xiàn)、
測(cè)量、分析與改進(jìn)作為體系的四大主要過程,描述其相互關(guān)系,并以顧客要求為
輸入,提供給顧客的產(chǎn)品
為輸出,通過信息反饋來測(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)連的過程所組成的體系,有助
于提高組織的有
效性和效率。
ISO/DIS9000的列出了建立和實(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ù)和信息的邏輯分析或直覺判斷是有效決策的基礎(chǔ)。
以事實(shí)為依據(jù)做決策,可防止決策失誤。在對(duì)信息和資料做科學(xué)分析時(shí),統(tǒng)計(jì)技
術(shù)是最重要的工具之
一。統(tǒng)計(jì)技術(shù)能夠用來測(cè)量、分析和說明產(chǎn)品和過程的變異性。統(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ān)系,增強(qiáng)組織及其供方創(chuà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)
共16頁(yè)第
12頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
十三個(gè)步驟:
軟件質(zhì)量保證是指為了保證軟件系統(tǒng)或軟件產(chǎn)品最大限度的滿足用戶要求而
進(jìn)行的有計(jì)劃、有組織
的活動(dòng),其目的是產(chǎn)生高質(zhì)量的軟件。當(dāng)前有多種軟件質(zhì)量模型來描述軟件質(zhì)
量特性,如
ISO/IEC9126軟
件質(zhì)量模型、MeCall軟件質(zhì)量模型等
軟件配置管理
軟件配置管理(SCM-----SoftwareConfigurationManagement是ISO9001和
CMMLevel2中的重要組
成元素,它在軟件產(chǎn)品開發(fā)的生命周期中,提供了結(jié)構(gòu)化的、有序化的、產(chǎn)品化
的管理軟件工程的方法,
是軟件開發(fā)和維護(hù)的基礎(chǔ)。
SCM
是指通過技術(shù)及行政手段對(duì)軟件產(chǎn)品及其開發(fā)過程和生命周期進(jìn)行控制、規(guī)范的
一系列措施
和過程,它通過控制、記錄、追蹤對(duì)軟件的修改和每個(gè)修改生成的軟件組成部
件來實(shí)現(xiàn)對(duì)軟件產(chǎn)品的管理。
SCM
能夠協(xié)調(diào)軟件開發(fā)使得混亂減到最小,是一種標(biāo)識(shí)、組織和控制修改的技術(shù),目的是
使錯(cuò)誤達(dá)到最小
并最有效地提高生產(chǎn)效率。
SCM使軟件產(chǎn)品變?yōu)槭芸氐暮涂深A(yù)見的,它控制這樣幾個(gè)問題:
1.誰做的變更?
共16頁(yè)第
13頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
2.軟件有什么變更?
3.什么時(shí)間做的變更?
4.為何要變更?
通過實(shí)施
SCM,能夠達(dá)到可重用過程制度化,包括:滿足組織的政策方針、計(jì)劃和過程描述文
檔化、分配適當(dāng)
資源(包括資金,人員和工具、確定責(zé)任和權(quán)限、培訓(xùn)相關(guān)人員、通過不同級(jí)別
的管理方法和糾正活動(dòng)檢測(cè)狀態(tài)。
置于SCM
之下的工作產(chǎn)品包括發(fā)送給用戶的軟件產(chǎn)品(如軟件需求文檔,軟件代碼,用于內(nèi)部使
用的軟件工作產(chǎn)品(如過程描述,和用于創(chuàng)建工作產(chǎn)品的工具等(如操作系統(tǒng)、數(shù)
據(jù)庫(kù)、開發(fā)工具。
SCM
還用于建立和維護(hù)軟件工作產(chǎn)品基線?;€是由配置項(xiàng)及相關(guān)實(shí)體組成的,包括組
成軟件產(chǎn)品
的相關(guān)版本、設(shè)計(jì)、代碼、用戶文檔等。它是軟件生命周期中各開發(fā)階段末
尾的特定點(diǎn),即里程碑。通過
正式的技術(shù)評(píng)審而得到的軟件配置的正式文本才能成為基線,它的作用是使各
個(gè)階段工作的劃分更加明確
化,使本來連續(xù)的工作在這些點(diǎn)上斷開,以便于檢驗(yàn)和肯定階段成果。基線是配
置項(xiàng)繼續(xù)發(fā)展的一個(gè)固定
基礎(chǔ)。
實(shí)施SCM不論是對(duì)軟件開發(fā)者、測(cè)試者、項(xiàng)目經(jīng)理、QA
人員,還是客戶都將會(huì)獲得很多好處:有
助于規(guī)范團(tuán)隊(duì)各個(gè)角色的行為,同時(shí)又為各個(gè)角色之間的任務(wù)傳遞和交流提供
無縫的接合;能幫助項(xiàng)目經(jīng)
理更好地了解項(xiàng)目的進(jìn)度、開發(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ú)立部件,并使它們是可訪問的。配置
標(biāo)識(shí)的目的,是
在整個(gè)生命周期中標(biāo)識(shí)系統(tǒng)各部件并提供對(duì)軟件及其軟件產(chǎn)品的跟蹤能力。
配置變更控制:包括在軟件生命周期中控制軟件產(chǎn)品的發(fā)布和變更,目的是建立
確保軟件產(chǎn)品質(zhì)量
的機(jī)制。它回答:什么是受控的?受控產(chǎn)品怎樣變更?誰控制變更?何時(shí)接受,恢
復(fù),驗(yàn)證變更?
配置狀態(tài)統(tǒng)計(jì):包括記錄和報(bào)告變更過程,目標(biāo)是不間斷記錄所有基線項(xiàng)的狀態(tài)
和歷史,并進(jìn)行維
護(hù),它解決以下問題:系統(tǒng)已經(jīng)做了什么變更?此問題將會(huì)對(duì)多少個(gè)文件產(chǎn)生影
響?
配置審核:將驗(yàn)證軟件產(chǎn)品的構(gòu)造是否符合需求、標(biāo)準(zhǔn)、或合同的要求,目的是
根據(jù)SCM的過程和
程序,驗(yàn)證所有的軟件產(chǎn)品已經(jīng)產(chǎn)生并有正確標(biāo)識(shí)和描述,所有的變更需求都已
解決。
SCM
從應(yīng)用層次上能夠從低到高分為三級(jí):版本控制、以開發(fā)者為中心、過程驅(qū)動(dòng)。
版本控制:主要應(yīng)用于個(gè)人獨(dú)立開發(fā)或小組開發(fā),它能夠控制任何文件的版本、
實(shí)現(xiàn)分支和歸并功能、進(jìn)
行文本比較、標(biāo)記注釋和版本報(bào)告信息,主要工具有我們當(dāng)前用到的Visual
SourceSafe及IntersolvPVCSo
以開發(fā)者為中心:主要應(yīng)用于部門級(jí)開發(fā),它可用于軟件維護(hù)、不斷增加的開發(fā)
任務(wù)、并行開發(fā)、QA及測(cè)試,
它面向大型團(tuán)隊(duì)、利于交流、能最大限度地利用人力資源,主要工具為
RationalClearCase及MKSSourceIntegrityo
過程驅(qū)動(dòng):主要使用于企業(yè)級(jí)開發(fā),著重解決新的工具引入、IT
審核、管理報(bào)告、復(fù)雜的生命周
期、應(yīng)用工具包、集成解決方案、資料庫(kù)等問題,實(shí)現(xiàn)真正規(guī)范的團(tuán)隊(duì)開發(fā)。
軟件過程改進(jìn)
當(dāng)前,CMM已經(jīng)發(fā)展到CMMI(CapabilityMaturityModel
Integration,能力成熟度模型集成階段。
自20世紀(jì)80年代末以來,SEI開發(fā)了一系列涉及多個(gè)學(xué)科的CMM
標(biāo)準(zhǔn),包括系統(tǒng)工程、軟件工程、軟件
獲取、生產(chǎn)力實(shí)踐及集成產(chǎn)品和過程開發(fā),希望通過幫助組織提高人員、技術(shù)
和過程的成熟度來改善組織
整體軟件生產(chǎn)能力。然而,多個(gè)模型的同時(shí)使用限制和阻礙了組織過程改善的
能力。于是,SEI中止了對(duì)
CMMI源模型的更新,開始集中開發(fā)CMMI項(xiàng)目。CMMI項(xiàng)目融合了
SW-CMMdraftC、
EIA/IS73KSECM
以及IPD-CMM的內(nèi)容,形成了組織范圍內(nèi)過程改善的單一集成模型。預(yù)計(jì)到
年末
,CMMI
-SE/SW/IPPD/A將正式發(fā)行。CMMI
項(xiàng)目為工業(yè)界和政府部門提供了一個(gè)集成的產(chǎn)品集,主要目的是
消除不同模型之間的不一致和重復(fù),降低基于模型改善的成本。未來的CMMI
將以更加系統(tǒng)和一致的框架來
指導(dǎo)組織改善軟件過程,提高產(chǎn)品和服務(wù)的開發(fā)、獲取和維護(hù)能力。
SW-CMM主要應(yīng)用在兩大方面:能力評(píng)估和過程改善。
1.能力評(píng)估
SW-CMM
是基于政府評(píng)估軟件承包商的軟件能力發(fā)展而來的,有兩種通用的評(píng)估方法用以評(píng)
估組織軟件
過程的成熟度:軟件過程評(píng)估和軟件能力評(píng)價(jià)。
?軟件過程評(píng)估:
用于確定一個(gè)組織當(dāng)前的軟件工程過程狀態(tài)及組織所面臨的軟件過程的優(yōu)先改善
問題,
為組織領(lǐng)導(dǎo)層提供報(bào)告以獲得組織對(duì)軟件過程改善的支持。軟件過程評(píng)估集
中關(guān)注組織自身的軟件過程,
在一種合作的、開放的環(huán)境中進(jìn)行。評(píng)估的成功取決于管理者和專業(yè)人員對(duì)
組織軟件過程改善的支持。
CBA-IPI是一種軟件過程評(píng)估方法,
?軟件能力評(píng)價(jià):
用于識(shí)別合格的軟件承包商或者監(jiān)控軟件承包商開發(fā)軟件的過程狀態(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í)行軟件過程的文檔化的審核記錄。S
CE是SEI開發(fā)的一種基于
CMM面向軟件能力評(píng)價(jià)的方法。
SW-CMM分為5
個(gè)成熟度等級(jí):初始級(jí)、可重復(fù)級(jí)、已定義級(jí)、可管理級(jí)和優(yōu)化級(jí)。其中每個(gè)成熟
度等
級(jí)都是由一些關(guān)鍵過程域和關(guān)鍵實(shí)踐組成。
共16頁(yè)第
14頁(yè)
系統(tǒng)分析師(軟件設(shè)計(jì)師計(jì)算機(jī)學(xué)科部分經(jīng)典教材
CMM
的目的是幫助軟件企業(yè)對(duì)軟件工程過程進(jìn)行管理和改進(jìn),增強(qiáng)開發(fā)與改進(jìn)能力,從而
能按時(shí)地、
不超預(yù)算地開發(fā)出高質(zhì)量的軟件。企業(yè)實(shí)施CMM
模型并評(píng)估可為企業(yè)帶來如下好處:指導(dǎo)軟件組織提高軟
件開發(fā)管理能力;降低軟件承包商和采購(gòu)者的風(fēng)險(xiǎn);評(píng)估軟件承包商的軟件開發(fā)
管理能力;幫助軟件企業(yè)
識(shí)別開發(fā)和維護(hù)軟件的有效過程和關(guān)鍵實(shí)踐;幫助軟件企業(yè)識(shí)別為達(dá)到CMM
更高成熟等級(jí)所必須的關(guān)鍵實(shí)
踐;增加軟件企業(yè)的國(guó)際競(jìng)爭(zhēng)能力。
CMM
為企業(yè)的軟件過程能力提供了一個(gè)階梯式的進(jìn)化框架,階梯共有五級(jí)。第一級(jí)只是
一個(gè)起點(diǎn)
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 地下排水建設(shè)項(xiàng)目材料買賣協(xié)議典范
- 2024技術(shù)顧問服務(wù)協(xié)議系列篇
- 2024企業(yè)債務(wù)融資協(xié)議模板
- 2024屆安徽鳳臺(tái)一中高三3月教學(xué)質(zhì)量檢測(cè)試題數(shù)學(xué)試題理試題
- 2024槽棎施工質(zhì)量保障協(xié)議范本
- 2024年房產(chǎn)開發(fā)融資居間協(xié)議模板
- 2024建筑外保溫服務(wù)協(xié)議樣式
- 2024年商業(yè)交易貨樣協(xié)議模板
- 2024年度美容院加盟協(xié)議示例
- 2024全職員工派遣協(xié)議范本
- 馬原辨析題題庫(kù)
- ev3產(chǎn)品介紹(頸動(dòng)脈)
- 表格式教學(xué)設(shè)計(jì)方案模板舉例
- 720--消防自動(dòng)噴水滅火系統(tǒng)(干式)講解
- 盧森寶亞壓縮空氣泡沫系統(tǒng)
- AQL抽樣檢驗(yàn)表(標(biāo)準(zhǔn)版本2(1).0)
- 桶裝水領(lǐng)用登記表
- 安陽師范學(xué)院校級(jí)教學(xué)團(tuán)隊(duì)推薦表
- 企業(yè)中層管理人員素質(zhì)測(cè)評(píng)(附答案)
- 《新概念英語》第二冊(cè)(電子版)
- 活性焦過濾吸附法污水深處理技術(shù)
評(píng)論
0/150
提交評(píng)論