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