第一篇:軟件工程 重點歸納
程序:能夠完成預定功能、并滿足性能要求的可執(zhí)行的指令序列。
軟件:計算機程序以及開發(fā)、使用和維護程序所需要的所有文檔,是包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。
軟件=知識+程序+文檔+數(shù)據(jù)
1、程序設(shè)計時期(1946~1956)軟件=程序
開發(fā)方式:個體
主要特征:計算機硬件=計算機
用途少,規(guī)模?。徊蛔鳛樯唐?;
開發(fā)者=使用者:自己開發(fā),自己使用。
2、程序系統(tǒng)時期(1956~1968)軟件=程序+說明
開發(fā)方式:作坊式
主要特征:程序規(guī)模增大,多人分工合作。
軟件作為商品,即程序設(shè)計者≠使用者;
程序開發(fā)和使用的文檔資料已不可缺少。
3、軟件工程時期(1968~現(xiàn)在)軟件=程序+數(shù)據(jù)+文檔
開發(fā)方式:工程化
主要特征:按工程管理的方法管理整個軟件開發(fā)過程。
軟件生產(chǎn)的進度、數(shù)量、質(zhì)量、成本與社會對軟件的需求量和希望要求甚遠,開發(fā)成本和進度難以控制,指令難以保證,與硬件發(fā)展形成強烈反差。這就是所謂的“軟件危機”。--現(xiàn)實與希望形成的巨大落差 產(chǎn)生軟件危機的原因 ●客觀原因:
軟件是手工勞動,是智力產(chǎn)品----生產(chǎn)率低。
軟件是邏輯實體,出錯容易,糾錯困難。
軟件的復雜性使得僅靠人的智力難以駕馭?!裰饔^原因
開發(fā)方式:認為開發(fā)軟件就是寫程序。
組織方式:作坊式的生產(chǎn)方式;開發(fā)無計劃、開發(fā)過程無規(guī)范、開發(fā)過程難控制。
用戶方面:對軟件需求描述不精確。
開發(fā)人員方面:對用戶需求的理解與用戶本來愿望有差異,相互之間的信息交流不及時、不準確、有誤解。
成本、進度和質(zhì)量
軟件工程三要素:過程、方法和工具
軟件生存周期包括三個時期:
軟件定義
問題定義、可行性研究、需求分析
? 需求規(guī)格說明書 ? 初步用戶手冊 ? 軟件初步測試計劃
軟件開發(fā) 概要設(shè)計、詳細設(shè)計、編碼及模塊測試、綜合測試
軟件使用和維護 改正性維護、適應(yīng)性維護、完善性維護、預防性維護
軟件過程模型--瀑布模型
軟件過程模型—螺旋模型
數(shù)據(jù)字典的內(nèi)容:
數(shù)據(jù)流
數(shù)據(jù)元素
數(shù)據(jù)存儲
處理
數(shù)據(jù)結(jié)構(gòu)的定義:描述數(shù)據(jù)結(jié)構(gòu)的組成(1)定義式
數(shù)據(jù)結(jié)構(gòu)名=數(shù)據(jù)項1+數(shù)據(jù)項2+……+數(shù)據(jù)項n 數(shù)據(jù)定義使用的符號: = 定義為
+ 和:連接兩個分量 [ ] 選擇:表示從中選擇一項。{ } 重復:表示由0個或多個組成。
m{ }n 重復:表示至少出現(xiàn)m次,至多出現(xiàn)n次。
()可選:表示其中的內(nèi)容可出現(xiàn),也可不出現(xiàn)。
IPO(Input/process/output)圖是輸入/處理/輸出的簡稱,是由IBM公司發(fā)展完善起來的一種圖形工具,能方便地描繪輸入數(shù)據(jù)、數(shù)據(jù)的處理和輸出數(shù)據(jù)之間的關(guān)系。
ER模型包括“實體”、“聯(lián)系”和“屬性”三個基本部分。
實體:是客觀世界中存在的且可以相互區(qū)分的 物。如:職工、教師、產(chǎn)品等 聯(lián)系:客觀世界中事物間的聯(lián)系。往往表示實體間發(fā)生的某種行為。屬性:是實體或聯(lián)系具有的性質(zhì),通常一個實體由若干個性質(zhì)來刻畫。
通常用“范式”(Normal Formas)定義消除數(shù)據(jù)的冗余的程度。
總體設(shè)計過程
一、系統(tǒng)體系結(jié)構(gòu)設(shè)計
二、軟件結(jié)構(gòu)設(shè)計
三、數(shù)據(jù)庫設(shè)計
四、制定測試計劃
五、書寫文檔
六、審核和復審
軟件設(shè)計原理
? 抽象——抽出事物的本質(zhì)特征而暫不考慮它們的細節(jié)。
? 抽象和求精是一對互補的概念。求精則是幫助設(shè)計者逐步揭示出低層細節(jié)。這兩個概念都有助于幫助設(shè)計者在設(shè)計演化過程中構(gòu)造出完整的設(shè)計模型。
? 模塊化
? 信息隱蔽(和局部化)——信息隱蔽是模塊設(shè)計的基本原則,局部化是實現(xiàn)信息
隱蔽的重要方法。? 模塊獨立
? 模塊的獨立程度的度量標準——內(nèi)聚:衡量一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度;耦合:衡量不同模塊彼此間互相依賴(連接)的緊密程度。
層次圖:描述軟件的層次結(jié)構(gòu)(H圖)。
層次圖中每個矩形框代表一個模塊,矩形框之間的連線表示模塊調(diào)用關(guān)系。
層次圖適合用來描繪軟件的層次結(jié)構(gòu)。HIPO圖:層次圖+IPO圖
對H圖的每個方框,都有一張IPO圖與之對應(yīng),來描述方框所代表的模塊的處理過程。并且對每個IPO圖都對應(yīng)H圖中方框相同的標記和編號,便于追蹤。
面向數(shù)據(jù)流的設(shè)計方法
? 概念
? 變換流分析設(shè)計 ? 事物流分析設(shè)計 ? 混合流分析設(shè)計 ? 設(shè)計優(yōu)化
PAD是問題分析圖(Problem Analysis Diagram)
變換流:
事務(wù)流:
概要設(shè)計小結(jié)
一、任務(wù)
1、系統(tǒng)體系結(jié)構(gòu)設(shè)計:確定系統(tǒng)的總體物理實現(xiàn)方案。
2、軟件結(jié)構(gòu)設(shè)計:確定模塊和模塊間的動態(tài)調(diào)用管理。
3、數(shù)據(jù)結(jié)構(gòu)設(shè)計(或數(shù)據(jù)庫設(shè)計):確定系統(tǒng)中數(shù)據(jù)的總體結(jié)構(gòu)。(數(shù)據(jù)庫:邏輯設(shè)計、物理設(shè)計、安全性設(shè)計)。
4、接口設(shè)計:外部接口、人機界面設(shè)計
二、設(shè)計原理
1、模塊獨立性原理:信息隱蔽、耦合、內(nèi)聚
2、思維工具:抽象
3:啟發(fā)式規(guī)則:改進軟件結(jié)構(gòu),提高系統(tǒng)質(zhì)量
三、設(shè)計工具: HIPO圖、結(jié)構(gòu)圖
四、面向數(shù)據(jù)流的設(shè)計方法----結(jié)構(gòu)化設(shè)計方法
1、從分析型的數(shù)據(jù)流圖向軟件結(jié)構(gòu)的轉(zhuǎn)換
2、從事務(wù)型的數(shù)據(jù)流圖向軟件結(jié)構(gòu)的轉(zhuǎn)換
詳細設(shè)計工具分為圖形、表格和語言三類。主要工具有: ■程序流程圖 ■盒圖(N-S圖)■PAD圖 ■判定表 ■判定樹
■過程設(shè)計語言(PDL)
McCabe方法根據(jù)程序控制流的復雜程度來定量度量程序的復雜程度,這樣度量出的結(jié)果稱為程序的環(huán)行復雜度。
用戶界面設(shè)計原則
1、置用戶于控制之下。用戶界面能夠?qū)τ脩舻牟僮髯龀銮‘數(shù)姆磻?yīng),并幫助用戶完成需要的工作。
2、減少用戶的記憶負擔。系統(tǒng)應(yīng)該“記住”有關(guān)的信息,通過默認項、快捷方式或界面視覺減少用戶的記憶負擔。
3、保持界面的一致性。用戶應(yīng)該以一致的方式展示和獲取信息。問題:
●系統(tǒng)響應(yīng)時間 ●用戶幫助設(shè)施 ●錯誤信息處理 ●命令交互
界面設(shè)計包括:
●界面對話設(shè)計
●數(shù)據(jù)輸入界面設(shè)計
●數(shù)據(jù)輸出設(shè)計(屏幕顯示設(shè)計)。
常用的界面設(shè)計元素有:
●問題描述語言
●數(shù)據(jù)表格
●圖形與圖標
●菜單
●對話框
●窗口
G.J.Myers關(guān)于軟件測試的觀點:
1、測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程。
2、好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案。
3、成功的測試是發(fā)現(xiàn)了迄今為止尚未發(fā)現(xiàn)的錯誤的測試。
E.D.Dijkstra:程序測試能證明程序中的錯誤,是為了證明程序有錯,而不是證明程序無錯。必須記?。簻y試無法說明錯誤不存在,它只能表示軟件錯誤已經(jīng)出現(xiàn)。
軟件測試準則
1、以用戶需求為基準
2、嚴格執(zhí)行測試計劃
3、測試中的群集現(xiàn)象
2-8原理:80%的錯誤可能集中在20%的模塊中。
4、程序邏輯覆蓋程度
5、第三方獨立進行測試
6、合理的輸入和不合理的輸入
7、預期輸出結(jié)果
步驟:
1、模塊測試
2、子系統(tǒng)測試
3、系統(tǒng)測試
4、驗收測試
5、平行運行
確認測試包括:
●軟件有效性測試——運用黑盒測試方法,驗證軟件是否滿足需求規(guī)格說明書列出的需求。
●軟件配置復審——保證軟件配置的所有成分都齊全,質(zhì)量符合要求,文檔與程序一致,具有完成軟件維護所必須的細節(jié),并且已經(jīng)編排好分類的目錄。、●α和β測試
●驗收測試。
白盒測試:按照程序內(nèi)部邏輯測試程序。檢查程序中的每條通路是否都能按照預定要求正常工作。這種測試完全了解程序的結(jié)構(gòu)和處理過程。因此,白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。黑盒測試主要是為了發(fā)現(xiàn)一下幾類錯誤: ●是否有不正確或遺漏了的功能;
●界面錯誤:輸入能否正確地接受?能否輸出正確的結(jié)果? ●是否有數(shù)據(jù)結(jié)構(gòu)或外部信息(如數(shù)據(jù)文件)訪問錯誤; ●性能上是否能夠滿足要求; ●是否有初始化或終止性錯誤。
軟件工程的主要目的就是要提高軟件的可維護性,減少軟件維護所需要的工作量,降低軟件系統(tǒng)的總成本。
軟件維護——軟件投入運行后,解決發(fā)生的各種故障,增強其功能,使之適應(yīng)新的環(huán)境的活動。
1、改正性維護
2、適應(yīng)性維護
3、完善性維護
4、預防性維護
維護工作量: M=p+k*exp(c-d)
P:生產(chǎn)性工作量:分析、評價、設(shè)計、修改和編碼。K:經(jīng)驗系數(shù)
C:程序復雜性系數(shù):文檔少都會引起復雜程度增加。D:維護人員對軟件的熟悉程度
維護過程
? 維護組織
? 維護報告
? 維護的事件流
? 保存維護記錄
? 評價維護活動
為了確定軟件維護的有效程度,確定軟件產(chǎn)品的質(zhì)量,同時確定維護活動的開銷,詳細記錄維護中進行的工作及工作量。主要內(nèi)容包括(18項)
? 程序標識 ? 源程序語句數(shù)
? 機器指令條數(shù) ? 使用的程序設(shè)計語言 ? 程序安裝的日期
? 安裝以來運行的次數(shù) ? 安裝以來的失效次數(shù) ? 程序變動的層次和標識 ? 每個改動耗費的人時數(shù) ? 程序改動的日期 ? 程序變動增加的源語句數(shù) ? 維護人員名字
? 程序變動而刪除的源語句數(shù) ? 維護要求表的標識
軟件配置管理(SCM)
? 維護類型 ? 維護開始時間和完成時間 ? 累計用于維護的人時數(shù)
? 與完成的維護相聯(lián)系的純效益
軟件維護和軟件配置管理之間的區(qū)別是:維護是一組軟件工程活動,它們發(fā)生于軟件已交付用戶并已投入運行之后;軟件配置管理是一組跟蹤和控制活動,它們開始于軟件開發(fā)項目開始之時,結(jié)束于軟件被淘汰之時。
軟件配置管理的主要目標是使變更更容易地被適應(yīng),并減少當變化必須發(fā)生時所需花費的工作量。
對維護活動進行度量。內(nèi)容包括:
(1)每次程序運行平均失效次數(shù)(2)用于每一類維護活動的總?cè)藭r數(shù)
(3)平均每個程序、每種語言、每種維護類型所作的程序變動次數(shù)(4)維護過程中增加或刪除一個源語句平均花費的人時數(shù)。(5)維護每種語言花費的人時數(shù)(6)一張維護要求表的平均周轉(zhuǎn)時間(7)不同維護類型所占的百分比
第二篇:軟件工程重點整理
可以把軟件開發(fā)的本質(zhì)概括為:不同抽象層術(shù)語之間,以及不同抽象層處理邏輯之間的映射 需求分析產(chǎn)生的正式文檔是需求規(guī)約
在結(jié)構(gòu)化分析方法中,表示“數(shù)據(jù)的靜態(tài)結(jié)構(gòu)”的術(shù)語是數(shù)據(jù)存儲
對模塊的寬度影響最大的因素是模塊的扇出 下列術(shù)語,可用于抽象客觀世界中事物的是類
大學由若干專業(yè)系構(gòu)成,則大學與專業(yè)的關(guān)系是組合
下列軟件測試技術(shù)中,依據(jù)程序邏輯結(jié)構(gòu)的是白盒測試技術(shù) 單元測試期間,通??紤]模塊的重要的執(zhí)行路徑
軟件基本過程指那些與軟件生產(chǎn)直接相關(guān)的活動集,可分為供應(yīng)過程、開發(fā)過程、運行過程、維護過程和獲取過程
在常見的軟件開發(fā)模型中,適用于項目的開發(fā)風險很大或客戶不能確定系統(tǒng)需求的模型是螺旋模型
CMMI 能力等級中的 3 級是已定義級
軟件生產(chǎn)率、軟件質(zhì)量滿足不了社會發(fā)展的需求,并成為其發(fā)展的制約因素,這一現(xiàn)象被稱為軟件危機
對于單一的一個需求,必須具有的基本性質(zhì):必要的、無歧義的、可測試的、可跟蹤的以及可測量的。
需求規(guī)約的基本性質(zhì)包括重要性和穩(wěn)定性程度、可修改的、完整的和一致的
在結(jié)構(gòu)化分析方法中,可采用結(jié)構(gòu)化自然語言、判定表和判定樹描述加工
用于定義數(shù)據(jù)流圖包含的所有數(shù)據(jù)流和數(shù)據(jù)存儲的數(shù)據(jù)結(jié)構(gòu),直到給出構(gòu)成以上數(shù)據(jù)的各數(shù)據(jù)項的基本數(shù)據(jù)類型的工具是數(shù)據(jù)字典
在 UML 中,用于描述關(guān)聯(lián)的一定“內(nèi)涵”的術(shù)語是關(guān)聯(lián)名 RUP 利用 UML 提供的術(shù)語和工具定義了需求獲取層、系統(tǒng)分析層、設(shè)計層和實現(xiàn)層,并給出了實現(xiàn)各層模型之間映射的基本活動以及相關(guān)的指導
軟件測試是一個有程序的過程,包括測試設(shè)計、測試執(zhí)行以及測試結(jié)果比較等
由于軟件錯誤的復雜性,在軟件工程測試中,應(yīng)綜合運用測試技
術(shù),并且應(yīng)實施合理的測試序列:
單元測試、集成測試、有效性測試和系統(tǒng)測試
《IS0/IEC 軟件生存周期過程 12207—1995》標準按過程主體把軟件生存周期過程分為基本過程、支持過程和組織過程 針對開發(fā)的 CMMI 是一個有關(guān)產(chǎn)品和服務(wù)的過程改善的成熟度模型,集成了 3 個源模型:軟件 CMM、系統(tǒng)工程 CMM和產(chǎn)品集成開發(fā) CMM
CMMI 中,遵循一個過程可達到的預期結(jié)果的程度是指過程能力
CMMI 模型基于過程途徑思想,通過過程把軟件質(zhì)量的 3 個支撐點:受訓的人員、規(guī)程和方法、工具和設(shè)備進行集成,以開發(fā)所期望的系統(tǒng)/產(chǎn)品
請簡述計算機軟件的概念以及提出軟件工程概念的目的
(1)計算機軟件一般是指計算機系統(tǒng)中的程序及其文檔(2)其中,程序是計算機任務(wù)的處理對象和處理規(guī)則的描述(3)文檔是為了理解程序所需的闡述性資料(4)軟件工程概念的提出,其目的是倡導以工程的原理、原則和方法進行軟件開發(fā),以解決出現(xiàn)的軟件危機。
請簡述初始發(fā)現(xiàn)需求的常用技術(shù)(1)自悟(2)交談(3)觀察(4)小組會(5)提煉
請敘述信息隱藏的概念及其意義
(1)信息隱藏是指在每個模塊中所包含的信息不允許其他不需要這些信息的模塊訪問(2)它是實現(xiàn)模塊低耦合的一種有效途徑(3)但是,如果一個模塊是“絕對”信息隱藏的,那么這種模塊對系統(tǒng)而言是毫無意義的
什么是驗證和確認?請敘述它們的區(qū)別
(1)驗證就是證實一個過程或項目的每一軟件工作產(chǎn)品/服務(wù)是否正確地反映了所規(guī)約的需求(2)確認就是證實所期望使用的軟件工作產(chǎn)品是否滿足其需求(3)區(qū)別:驗證是通過提供的客觀證據(jù),證實規(guī)約的需求是否得以滿足;確認是通過提供的客觀證據(jù),證實有關(guān)特定期望的使用或應(yīng)用的需求是否得以滿足
第三篇:軟件工程重點
軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,它是包括程序,數(shù)據(jù)及其相關(guān)文檔的完整集合。注意與廣義軟件概念的區(qū)別(P1)。程序是按事先設(shè)計的功能和性能要求執(zhí)行的指令序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu) 文檔是與程序開發(fā),維護和使用有關(guān)的圖文材料
軟 件的特點.軟件是一種邏輯實體,而不是具體的物理實體。因而它具有抽象性 軟件的生產(chǎn)與硬件不同,在它的開發(fā)過程中沒有明顯的制造過程,可以復制,軟件的開發(fā)和運行常受到計算機系統(tǒng)的限制,對計算機系統(tǒng)有著不同程度的依賴性 軟件的開發(fā)至今尚未完全擺脫手工藝的開發(fā)方式 本身復雜 且 成本昂貴。
軟件功能分:系統(tǒng),支撐,應(yīng)用軟件。
軟件生存期的六個步驟,即制定計劃(確定要開發(fā)軟件系統(tǒng)的總目標,給出功能、性能、可靠性以及接口等方面的要求,完成該軟件任務(wù)的可行性研究,制定出完成開發(fā)任務(wù)的實施計劃)、需求分析(對待開發(fā)軟件提出的需求進行分析并給出詳細 的定義)、設(shè)計(把各項需求轉(zhuǎn)換成軟件的體系結(jié)構(gòu),對每個模塊要完成的工作進行具體的描述,為源程序編寫打下基礎(chǔ))、程序編碼(把軟件設(shè)計轉(zhuǎn)換成計算機可 以接受的程序代碼)、測試(通過單元模塊測試和組裝測試,對各項需求進行有效性測試)及運行維護(改正性維護 適應(yīng)性維護 完善性維護)
軟件:程序和所有使程序正確運行所需要的相關(guān)文檔和配置信息。
軟件工程:是一門工程學科,不僅涉及軟件開發(fā),也涉及軟件項目管理、支持軟件生產(chǎn)的工具、方法和理論的開發(fā)等活動。
軟件過程:指制作軟件產(chǎn)品的一組活動及其結(jié)果。包括軟件描述(對軟件及其操作的一些約束)軟件開發(fā)(軟件設(shè)計和編程實現(xiàn))軟件有效性驗證(檢查保證客戶所需)軟件進化(隨不同客戶和變化市場做修改)
軟件過程模型:從一特定角度提出的軟件過程的簡化描述。1工作流模型(描述軟件過程中各種活動的序列及其輸入輸出和相互依賴性)2數(shù)據(jù)流或活動模型(軟件過程描述成一組活動,每個活動完成一定數(shù)據(jù)轉(zhuǎn)換)3角色/動作模型(描述參與人員的不同角色和各自負責的活動)
CASE是計算機輔助軟件工程的簡寫。它包括很多種類的軟件工具,覆蓋面很廣,包括支持阮娟過程活動,如需求分析、系統(tǒng)建模、調(diào)試和測試等。瀑布模型:采用一些基本過程活動,并且使用單獨的過程階段表現(xiàn)活動。包括:需求分析和定義(通過咨詢系統(tǒng)用戶建立系統(tǒng)的服務(wù)、約束和目標)系統(tǒng)和軟件設(shè)計(系統(tǒng)設(shè)計區(qū)分硬件和軟件系統(tǒng)的需求,軟件設(shè)計包括識別和描述一些基本的軟件系統(tǒng)的抽象及其之間的關(guān)系)實現(xiàn)和單元測試(檢驗每個單元是否符合描述)集成 和系統(tǒng)測試(對系統(tǒng)整體測試確保滿足需求)運行和維護。優(yōu)勢在于每個階段生成文檔,并且與其他模型相一致,問題在于將項目生硬分解成這些確切的階段。委托 事項一定要在過程的早期階段清晰給出,意味它難以響應(yīng)用戶需求的變更。
2迭代式模型:是軟件描述、開發(fā)和有效性驗證活動交替進行的開發(fā)方 法。先開發(fā)出一個原型給用戶使用,通過用戶反饋意見不斷修改系統(tǒng)直到最后成熟。基本類型(探索式開發(fā)和拋棄式原型)優(yōu)勢在于讓開發(fā)活動都能得到快速的反饋 信息,缺點在于1過程不可見(管理者要經(jīng)常性交付把握進度)2系統(tǒng)結(jié)構(gòu)通常較差(連續(xù)的變更損壞系統(tǒng)結(jié)構(gòu))
3基于組件的軟件工程(CBSE)假定系統(tǒng)的各個組件已經(jīng)存在,開發(fā)過程焦點在于集成這些組件。階段:組件分析(給出需求描述,然后搜索能滿足需求的組件)需求修改(修改需求以反映可得 到的組件)使用復用的系統(tǒng)設(shè)計(開始設(shè)計系統(tǒng)的框架)開發(fā)和集成(集成開發(fā)的組件和現(xiàn)成的組件使之成為整體)優(yōu)勢在于減少需要開發(fā)的軟件數(shù)量,降低軟件開 發(fā)成本和風險。缺點在于需求妥協(xié)的不可避免,對系統(tǒng)進化的控制不起作用。
Rational統(tǒng)一過程:是一個階段化了的模型,識別出軟件過程 當中的四個階段——開端(目標是建立系統(tǒng)的一個業(yè)務(wù)案例)細化(增進對問題域的理解,建立系統(tǒng)的體系框架)構(gòu)造(關(guān)心系統(tǒng)設(shè)計、編程和測試)轉(zhuǎn)換(關(guān)注如 何將系統(tǒng)從開發(fā)單位轉(zhuǎn)移到用戶單位使之在真實環(huán)境工作)九個工作流——業(yè)務(wù)建模(用業(yè)務(wù)用例對業(yè)務(wù)過程建模)需求(完成對系統(tǒng)需求的建模)分析和設(shè)計(使用體系結(jié)構(gòu)模型、組件模型、對象模型和序列模型來創(chuàng)建并記錄設(shè)計模型)實現(xiàn)(實現(xiàn)系統(tǒng)中的組件并將他們合理安排在子系統(tǒng)中)測試(它的執(zhí)行與實現(xiàn)緊密 聯(lián)系)部署(創(chuàng)建和分發(fā)產(chǎn)品版本并安裝到他們的工作場所)配置和變更管理(支持工作流管理對系統(tǒng)的變更)項目管理(支持工作流管理系統(tǒng)開發(fā))環(huán)境(用于提 供軟件開發(fā)團隊可用的合適軟件工具)六個基本實踐(反復的開發(fā)軟件、管理需求、使用基于組件的體系結(jié)構(gòu)、可視化模型軟件、驗證軟件質(zhì)量、控制對軟件的變 更)
軟件系統(tǒng)需求常常分為功能需求、非功能需求和領(lǐng)域需求。1功能需求——包括對系統(tǒng)應(yīng)該提供的服務(wù)、如 何對輸入作出反應(yīng)以及系統(tǒng)在特定條件下的行為的描述。應(yīng)該即、既全面(用戶所需服務(wù)都給出描述)又具有一致性(描述不能前后矛盾)2非功能需求——對系統(tǒng) 提供的服務(wù)或功能給出的約束。分類:產(chǎn)品需求(敘述產(chǎn)品行為的需求,包括可移植性和可用性需求)機構(gòu)需求(起源于客戶所在的機構(gòu)和開發(fā)者所在的機構(gòu)中的政 策和規(guī)定)外部需求(包括所有系統(tǒng)外部因素和開發(fā)過程,如操作、法律、道德需求)3領(lǐng)域需求——來自系統(tǒng)的應(yīng)用領(lǐng)域的需求,反映該領(lǐng)域的特點。
用 戶需求是從用戶角度來描述系統(tǒng)功能和非功能需求,以便讓不具備專業(yè)技術(shù)知識的用戶能看懂。編寫用戶需求的一些原則:1設(shè)計一個標準的格式,保證所有的需求 定義按照該格式書寫。2使用一致的語言。定義強制性需求要使用“必須”;定義希望性需求時使用“應(yīng)該”。3對文本加亮來突出顯示關(guān)鍵性需求。4盡量避免用 計算機專業(yè)術(shù)語。
系統(tǒng)需求:是用戶需求的擴展版,是軟件工程師開始系統(tǒng)設(shè)計的起點。僅僅描述系統(tǒng)的外部行為和對它的操作上的限制,而不包括系統(tǒng)應(yīng)該如何設(shè)計和實現(xiàn)。
信息持有者(對系統(tǒng)需求有直接或間接影響力的人)
需 求導入和分析:軟件開發(fā)技術(shù)人員要和客戶及系統(tǒng)最終用戶一起調(diào)查應(yīng)用領(lǐng)域。包括:需求發(fā)現(xiàn)(收集準備建立的系統(tǒng)和正在使用的系統(tǒng)的信息,并從這些信息當中 提取用戶和系統(tǒng)的需求)需求分類和組織、優(yōu)先排序和沖突解決、需求文檔編制(記錄需求并將它作為螺旋下一循環(huán)的輸入,產(chǎn)生形式化的或非形式化的需求文檔)
視點:需求工程的面向視點的方法將導出過程和需求本身都用視點來組織。1交互者視點(代表與系統(tǒng)直接交互的人或其他系統(tǒng))2間接視點(代表那些不使用系統(tǒng)本身但是以某種方式影響需求的信息持有者)3領(lǐng)域視點(代表領(lǐng)域和影響系統(tǒng)需求的那些約束)
場景:描述人如何與一個軟件系統(tǒng)交互。
用例:是一種基于場景的需求導出技術(shù),識別與系統(tǒng)的單個交互。
需求管理是一個對系統(tǒng)需求變更了解和控制的過程,需要跟蹤各個需求并維護他們與所依賴需求之間的關(guān)聯(lián)關(guān)系。分持久和易變的需求。
在 需求管理階段,必須決定一下內(nèi)容——需求識別、需求管理過程、可追溯策略、CASE工具支持。3類可追溯信息:1源可追溯性信息連接需求到提出需求的信息 持有者和這些需求的基本原理2需求可追溯性信息連接需求文檔中 依賴的需求3設(shè)計可追溯性信息連接需求到其實現(xiàn)的設(shè)計模塊。需求變更管理三個階段:1問題分析和變更描述階段(要對問題或變更提議進行分析以檢查它的有效 性)2變更分析和成本計算(對被提議的變更產(chǎn)生的影響進行評估并且估計系統(tǒng)設(shè)計和實現(xiàn)的成本)3變更實現(xiàn)。體系結(jié)構(gòu)設(shè)計是設(shè)法建立一個系統(tǒng)組成來滿足功能性和非功能性需求。所 開發(fā)的體系結(jié)構(gòu)模型會包括:靜態(tài)結(jié)構(gòu)模型(給出子系統(tǒng)或組件,將其作為一個個獨立的單元開發(fā))動態(tài)過程模型(給出系統(tǒng)在運行時的過程組成)接口模型(定義 每個子系統(tǒng)從它們的公共接口能得到服務(wù))關(guān)系模型(給出如子系統(tǒng)間的數(shù)據(jù)流這樣的關(guān)系)分布模型(給出子系統(tǒng)在多臺計算機上是如何分布的)模 塊化分解:將子系統(tǒng)分解為模塊,有兩種策略:1 面向?qū)ο蟮姆纸猓▽⑾到y(tǒng)分解為一組相互通信的對象)一個面向?qū)ο蟮南到y(tǒng)體系結(jié)構(gòu)模型是將系統(tǒng)看成一組松散的對象結(jié)合,這些對象都有良好的接口定義,對象請 求其他對象提供的服務(wù)。優(yōu)勢在于其對象間是松散耦合的,對對象實現(xiàn)的修改可以不影響其他對象,缺點在于對象必須明確地給出引用的其他對象的名字及其接口。2 面向功能的流水線操作(將系統(tǒng)分解為一些功能模塊,這些功能模塊接受輸入并轉(zhuǎn)換它們?yōu)檩敵鰯?shù)據(jù))好處在于1支持換換的復用2直觀,能將它們的工作理解成輸 入輸出處理3可以簡單的再系統(tǒng)中增加新的轉(zhuǎn)換4無論作為順序的還是并發(fā)的系統(tǒng),其實現(xiàn)容易。其主要缺點是需要一種適合于所有轉(zhuǎn)換的通用格式。
數(shù)據(jù)處理系統(tǒng)是批處理系統(tǒng),數(shù)據(jù)的輸入和輸出時成批地從文件或數(shù)據(jù)庫中取出或存入,而不是對用戶終端進行輸入和輸出。形成輸入—處理—輸出結(jié)構(gòu)。事務(wù)處理系統(tǒng)是設(shè)計用來處理用戶對數(shù)據(jù)庫信息的查詢或者請求更新數(shù)據(jù)庫的。
快速軟件開發(fā)的原因:新的軟件需要快速開發(fā)來順應(yīng)新的的機遇,響應(yīng)競爭壓力。事實上很多業(yè)務(wù)都寧愿犧牲一些軟件的質(zhì)量并降低某些需求來贏得快速軟件移交。還因為業(yè)務(wù)運營于一個變化的環(huán)境中,因此實際上通常不可能導出一個完全的穩(wěn)定的軟件需求。
基本特征:1描述、設(shè)計和實現(xiàn)過程是并發(fā)的2系統(tǒng)通過一系列增量開發(fā)出來3系統(tǒng)用戶界面通常是采用交互式開發(fā)系統(tǒng)開發(fā)的。
敏 捷方法的基本原則:客戶參與(客戶應(yīng)該在開發(fā)過程中始終緊密參與其中)增量式移交(軟件以增量的方式進行開發(fā),客戶指定每個增量中的包含需求)人非過程(開發(fā)團隊的技術(shù)應(yīng)該得到承認和發(fā)揚)接收變更(設(shè)計系統(tǒng)使之適應(yīng)這些變更)保持簡單性(致力于所開發(fā)的軟件和開發(fā)過程的簡單性)
極限編程 的經(jīng)驗:增量式規(guī)劃(需求記錄在腳本上,開發(fā)者將腳本分解為開發(fā)任務(wù))小版本(首先開發(fā)能提供業(yè)務(wù)價值的一個最小有用集合)簡單設(shè)計(只進行有限需求設(shè) 計)測試優(yōu)先開發(fā)(功能實現(xiàn)之前,采用一個自動單元測試框架來書寫此新功能的測試)重構(gòu)(保持代碼簡單和可維護性)結(jié)對編程(檢查彼此工作提供支持)集體 所有(配對的開發(fā)人員參與系統(tǒng)的所有方面,所有開發(fā)者享有全部代碼)連續(xù)集成(任務(wù)一完成,就將它集成到大系統(tǒng)中)可忍受速度(不能接受大量超時)在場客 戶(系統(tǒng)最終用戶的代表應(yīng)該全程滿時配合XP團隊)
檢驗和有效性驗證:實現(xiàn)過程之后,必須對所開發(fā)的程序進行驗證,它是對 這些檢查和分析過程的總稱。檢驗的作用是檢查軟件是否符合它的描述。應(yīng)該檢查系統(tǒng)是否滿足了需求所定義的功能的和非功能的需求。有效性驗證卻是一個更一般的過程,其目標是保證軟件系 統(tǒng)能滿足客戶的期待。
V&V過程中,系統(tǒng)檢查和分析有兩種互補的方法:1軟件審查或配對審查——審查可以輔之以某些對系統(tǒng)源文本或 者是相關(guān)文檔的自動分析,是一種靜態(tài)的V&V技術(shù),因為你無需再計算機上運行系統(tǒng)。2包括使用測試數(shù)據(jù)來運行軟件的實現(xiàn),檢驗軟件的輸出和它的操 作行為,測試是一種動態(tài)的V&V技術(shù)。在軟件過程的不同階段,有2中截然不同的測試類型:1有效性測試——試圖證明軟件是用戶所期望的即滿足需求 2缺陷測試——試圖使缺陷暴露出來,而不是要仿真它在實際中的使用。發(fā)現(xiàn)程序和描述的不一致。
檢驗和有效性驗證過程試圖確定軟件系統(tǒng)中存在缺陷,程序調(diào)試時一個對缺陷定位和修正的過程。
軟件測試的目標:1向開發(fā)者和用戶展示軟件滿足它的需求。2為了找出軟件中的缺陷和不足,即軟件的活動室不正確的、所不希望的或不符合它的描述的。測試過程:組件測試(單個程序組件的測試)—系統(tǒng)測試(對一組組件集成的系統(tǒng)進行測試)
系統(tǒng)測試:兩個階段1集成測試(測試小組可以深入到系統(tǒng)源代碼)自上而下集成:首先開發(fā)系統(tǒng)的框架,然后將組件加入到框架中。自下而上集成:集成基礎(chǔ)設(shè)施組件,然后添加功能組件.2發(fā)布測試(對要發(fā)布給用戶的系統(tǒng)版本進行測試)測試原則:是給測試團隊提示,以幫助他們選擇將揭示系統(tǒng)中的缺陷測試。接口測試:目標是為了檢測由于接口的錯誤或無效的接口假設(shè)所造成的故障.接口類型1參數(shù)接口(數(shù)據(jù)從一個過程傳到另外一個過程).2共享內(nèi)存接口(內(nèi)存塊為過程或函數(shù)所共享.)3程序接口(子系統(tǒng)封裝一組程序,這些程序為其他子系統(tǒng)調(diào)用.)4消息傳遞接口(子系統(tǒng)通過傳遞消息請求其他子系統(tǒng)上的服務(wù))劃分測試:由于類中成員的這些等價行為,這些類通常叫做等價劃分或者域.結(jié)構(gòu)化測試(白盒測試):根據(jù)軟件的結(jié)構(gòu)知識和實現(xiàn)知識導出測試的測試用例設(shè)計方法。路徑測試:目標是要練習組件或程序中的每一條執(zhí)行路徑。
要 點:測試只能證明系統(tǒng)中存在錯誤,它不能說明系統(tǒng)中不再有缺陷.;組件測試是組件開發(fā)者的責任,獨立的測試團隊通常執(zhí)行系統(tǒng)測試.;集成測試是最初的系統(tǒng) 測試活動,發(fā)布測試關(guān)心的是測試客戶版本,應(yīng)該驗證所要發(fā)布的系統(tǒng)滿足了它的需求.;在缺陷測試時,應(yīng)根據(jù)經(jīng)驗和準則來設(shè)計測試用例.;接口測試是要發(fā)現(xiàn) 組合組件的接口中的缺陷.;等價劃分是導出測試用例的一個方法,需要找出輸入和輸出數(shù)據(jù)集合上的劃分并用這些劃分中的數(shù)據(jù)執(zhí)行系統(tǒng).;結(jié)構(gòu)化分析依賴于分 析一個程序由此來確定路徑.;測試自動化通過使用一系列軟件工具支持測試過程,以減少測試過程的花費.什么是黑盒測試和白盒測試? 任何工程產(chǎn)品(注意是任何工程產(chǎn)品)都可以使用以下兩種方法之一進行測試。黑盒測試:已知產(chǎn)品的功能設(shè)計規(guī)格,可以進行測試證明每個實現(xiàn)了的功能是否符合要求。白盒測試:已知產(chǎn)品的內(nèi)部工作過程,可以通過測試證明每種內(nèi)部操作是否符合設(shè)計規(guī)格要求,所有內(nèi)部成分是否以經(jīng)過檢查。軟件的黑盒測試意味著測試要在軟件的接口處進行。這種方法是把測試對象看做一個黑盒子,測試人員完全不考慮程序內(nèi)部的邏輯結(jié)構(gòu)和內(nèi)部特性,只依據(jù)程序的需 求規(guī)格說明書,檢查程序的功能是否符合它的功能說明。因此黑盒測試又叫功能測試或數(shù)據(jù)驅(qū)動測試。黑盒測試主要是為了發(fā)現(xiàn)以下幾類錯誤:
1、是否有不正確或遺漏的功能?
2、在接口上,輸入是否能正確的接受?能否輸出正確的結(jié)果?
3、是否有數(shù)據(jù)結(jié)構(gòu)錯誤或外部信息(例如數(shù)據(jù)文件)訪問錯誤?
4、性能上是否能夠滿足要求?
5、是否有初始化或終止性錯誤? 軟件的白盒測試是對軟件的過程性細節(jié)做細致的檢查。這種方法是把測試對象看做一個打開的盒子,它允許測試人員利用程序內(nèi)部的邏輯結(jié)構(gòu)及有關(guān)信息,設(shè)計或選 擇測試用例,對程序所有邏輯路徑進行測試。通過在不同點檢查程序狀態(tài),確定實際狀態(tài)是否與預期的狀態(tài)一致。因此白盒測試又稱為結(jié)構(gòu)測試或邏輯驅(qū)動測試。白 盒測試主要是想對程序模塊進行如下檢查:
1、對程序模塊的所有獨立的執(zhí)行路徑至少測試一遍。
2、對所有的邏輯判定,取“真”與取“假”的兩種情況都能至少測一遍。
3、在循環(huán)的邊界和運行的界限內(nèi)執(zhí)行循環(huán)體。
4、測試內(nèi)部數(shù)據(jù)結(jié)構(gòu)的有效性,等等。以上事實說明,軟件測試有一個致命的缺陷,即測試的不完全、不徹底性。由于任何程序只能進行少量(相對于窮舉的巨大數(shù)量而言)的有限的測試,在未發(fā)現(xiàn)錯誤 時,不能說明程序中沒有錯誤。
配置管理的重要性:涉及程序和標準的發(fā)展和應(yīng)用來管理不斷發(fā)展的軟件產(chǎn)品;配置管理有時候被看做是軟件質(zhì)量管理過程的一部分;當進行配置管理時,受控系統(tǒng)有時也稱為基線,因為它們是受控進化的一個起點.四種主要配置管理活動: 配置管理規(guī)劃:描述配置管理應(yīng)該使用的標準和規(guī)劃。1配置項識別(應(yīng)該定義文檔命名規(guī)則,以便類型相同的文檔命名也類似)2配置數(shù)據(jù)庫(用于記錄與配置有關(guān)的所有信息)
變更管理:需求不斷發(fā)生變化,系統(tǒng)也相應(yīng)作出變更。關(guān)注的是對變化保持跟蹤,并確保它們用最具成本效益的方式實施.變更請求表(記錄了變更的建議、變更的請求、變更的原因以及變更的迫切性.它還記錄了變更評估、影響分析、變更成本和建議.)
版本和發(fā)布管理:是識別和追蹤一個系統(tǒng)的各個版本和發(fā)布的過程。版本 一個系統(tǒng)版本就是一個系統(tǒng)實例,在某種程度上有別于其他系統(tǒng)實例.變體 有一些版本可能在功能上沒有什么區(qū)別,只是為了不同的硬件或軟件配置而設(shè)計.發(fā)布版本: 一個系統(tǒng)的發(fā)布版本就是要分發(fā)給客戶的版本.版本管理規(guī)程應(yīng)該規(guī)定明確的標識每個組件版本的方法.三種基本的版本標識方法 1版本編號;2基于屬性的標識;3面向變更的標識.系統(tǒng)構(gòu)建:把軟件組件編譯和連接成一個程序并在特定目標配置上運行的過程.CASE工具可用于支持所有的配置管理活動.支持配置管理的CASE工具可以是一些獨立的工具分別用來支持變更管理、版本管理和系統(tǒng)構(gòu)建,也可以是集成的系統(tǒng),為所有的配置管理支持提供一個一致的接口.
第四篇:軟件工程重點總結(jié)
1、什么是軟件危機?
軟件危機泛指在計算機軟件的開發(fā)和維護過程中所遇到的一系列嚴重問題。
2、軟件危機的主要表現(xiàn)
(1)對軟件開發(fā)成本和進度的估計常常很不準確
(2)用戶對“已完成的”軟件系統(tǒng)不滿意現(xiàn)象經(jīng)常發(fā)生
(3)軟件產(chǎn)品質(zhì)量往往靠不住
(4)軟件往往是不可維護的(5)軟件通常沒有適當?shù)奈臋n資料
(6)軟件成本在計算機系統(tǒng)總成本中所占的比例逐年上升
(7)軟件開發(fā)生產(chǎn)效率提高的速度,遠遠跟不上計算機應(yīng)用迅速普及深入的趨勢
3、軟件危機產(chǎn)生的原因
(1)來自軟件自身的特點
是軟件系統(tǒng)的邏輯部件,缺乏可見性,管理和控制軟件開發(fā)過程相當困難;規(guī)模龐大、復雜,修改、維護困難。
(2)軟件開發(fā)與維護的方法不當
忽視需求分析;認為軟件開發(fā)等于程序編寫;輕視軟件維護。
4、如何消除軟件危機?
(1)對計算機軟件有一個正確的認識(軟件≠程序)
(2)必須充分認識到軟件開發(fā)不是某種個體勞動的神秘技巧,而應(yīng)該是一種組織良好、管理嚴密、各類人員協(xié)同配合、共同完成的工程項目
(3)推廣使用在實踐中總結(jié)出來的開發(fā)軟件的成功技術(shù)和方法
(4)開發(fā)和使用更好的軟件工具
5、面向?qū)ο蟮娜N模型:對象模型 動態(tài)模型 功能模型 P2166、模塊獨立性的兩個標準:耦合 內(nèi)聚 P977、軟件測試方法:黑盒測試 白盒測試 P1518、軟件調(diào)試的途徑:蠻干法 回溯法 原因排除法 P1789、可行性研究:確定問題是否有行得通的解決辦法 P3510、需求分析:準確地回答“系統(tǒng)必須干什么”這個問題 P5511、軟件成分的重用級別:代碼重用 設(shè)計結(jié)果重用 分析結(jié)果重用
可被重用的軟件成分有:項目計劃,成本估計,體系結(jié)構(gòu),需求模型和規(guī)格說明,設(shè)計,源代碼,用戶文檔和技術(shù)文檔,用戶界面,數(shù)據(jù),測試用例。
12、軟件可靠性的定義:軟件在給定的時間間隔內(nèi),按照規(guī)格說明書的規(guī)定成功地運行的概率。
軟件可用性的定義:程序在給定的時間點,按照規(guī)格說明書的規(guī)定,成功地運行的概率??煽啃耘c可用性之間的主要差別是,可靠性意味著在0到t這段時間內(nèi)系統(tǒng)沒有失效,而可用性只意味著在時刻t,系統(tǒng)是正常運行的。P17913、白盒測試:邏輯覆蓋 控制結(jié)構(gòu)測試 P162
黑盒測試:等價劃分 邊界值分析 調(diào)試 P171
環(huán)形復雜度的計算:復雜度=邊數(shù)-點數(shù)+2P13714、面向?qū)ο蟮?個子模式:對象模型 動態(tài)模型 功能模型 P232
對象模型的5個層次:主題層 類與對象層 結(jié)構(gòu)層 屬性層 服務(wù)層 P23215、軟件定義階段干什么事:確定軟件開發(fā)工程必須完成的總目標;確定工程的可行性;導
出實現(xiàn)工程目標應(yīng)該采用的策略及系統(tǒng)必須完成的功能;估計完成該工程需要的資源和成本,并制定工程進度表。
16、類和對象的關(guān)系:類是具有相同數(shù)據(jù)和相同操作的一組相似對象的定義,也就是說,類
是對具有相同屬性和行為的一個或多個對象的描述。類是支持繼承的抽象數(shù)據(jù)類型,而對象就是類的實例。P21117、UML有哪些圖? P2171、用例圖:展示系統(tǒng)外部的各類執(zhí)行者與系統(tǒng)提供的各種用例之間的關(guān)系
2、類圖:展示系統(tǒng)中類的靜態(tài)結(jié)構(gòu)
3、對象圖:是類圖的一種實例化圖
4、狀態(tài)圖:描述一類對象具有的所有可能的狀態(tài)及其轉(zhuǎn)移關(guān)系
5、時序圖:展示對象之間的一種動態(tài)協(xié)作關(guān)系
6、合作圖:從另一個角度展示對象之間的動態(tài)協(xié)作關(guān)系
7、活動圖:展示系統(tǒng)中各種活動的執(zhí)行流程
8、構(gòu)件圖:展示程序代碼的物理結(jié)構(gòu)
9、配置圖:展示軟件在硬件環(huán)境中的配置關(guān)系
18、能力成熟度模型(CMM):初始級 可重復級 已定義級 已管理級 優(yōu)化級 P31119、什么是軟件生命周期模型?試比較瀑布模型、快速原型模型、增量模型和螺旋模型的優(yōu)
缺點,說明每種模型的適用范圍。P33習題1.720、軟件的可維護性定義:維護人員理解、改正、改動或改進這個軟件的難易程度。決定可維護性的因素:可理解性 可測試性 可修改性 可移植性 可重用性。
文檔是影響可維護性的決定性因素。P19521、如何評價軟件規(guī)格說明書?
從四個方面:一致性 完整性 現(xiàn)實性 有效性 P7022、層次圖 P10223、深度:軟件結(jié)構(gòu)中控制的層數(shù) P100
寬度:軟件結(jié)構(gòu)中同一個層次上的總數(shù)的最大值
扇出:一個模塊直接控制(調(diào)用)的模塊數(shù)目
散入:一個模塊被多少個上級模塊直接調(diào)用
24、面向數(shù)據(jù)流的設(shè)計方法 P10425、類構(gòu)件的重用方式:實例重用 繼承重用 多態(tài)重用
1.什么是軟件工程?軟件工程和計算機科學有何區(qū)別?
軟件工程是指導計算機軟件開發(fā)和維護的一門工程學科。
計算機科學研究的是構(gòu)成計算機和軟件系統(tǒng)基礎(chǔ)的有關(guān)理論和方法,而軟件工程則是研究軟件制作中的實際問題。
2、流程圖與數(shù)據(jù)流圖有什么主要區(qū)別?
(1)數(shù)據(jù)流圖(date flow diagram , DFD),是SA方法中用于表示系統(tǒng)邏輯模型的一種工具,它以圖形的方式描繪數(shù)據(jù)在系統(tǒng)中流動和處理的過程,由于它只反映系統(tǒng)必須完成的邏輯功能,所以它是一種功能模型,是從數(shù)據(jù)的角度來描述一個系統(tǒng)的;而流程圖則是從對數(shù)據(jù)加工的角度來描述系統(tǒng)的;
(2)數(shù)據(jù)流圖中的箭頭是數(shù)據(jù)流,而流程圖中的箭頭則是控制流,它表達的是程序執(zhí)行的次序;
(3)數(shù)據(jù)流圖適合于宏觀地分析一個組織業(yè)務(wù)概況,而程序流程圖只適合于描述系統(tǒng)中某個加工的執(zhí)行細節(jié)。
(4)數(shù)據(jù)流程圖應(yīng)該重點描述了數(shù)據(jù)加工的過程,主要是模塊內(nèi)部,數(shù)據(jù)流圖則是描述模塊之間的關(guān)系。
3.軟件需求分析的任務(wù)是什么?有哪些主要步驟?
需求分析的基本任務(wù)是深入描述軟件的功能和性能、確定軟件設(shè)計的約束和軟件同其它系統(tǒng)元素的接口細節(jié)、定義軟件的其它有效性需求,總之,需求分析的任務(wù)就是借助于當前系統(tǒng)的邏輯模型導出目標系統(tǒng)的邏輯模型,解決目標系統(tǒng)的 “做什么” 的問題。
主要步驟:
1.問題識別
(1)功能需求:明確所開發(fā)的軟件必須具備什么樣的功能。
(2)性能需求:明確待開發(fā)的軟件的技術(shù)性能指標。
(3)環(huán)境需求:明確軟件運行時所需要的軟、硬件的要求。
(4)用戶界面需求:明確人機交互方式、輸入輸出數(shù)據(jù)格式。
2.分析與綜合,導出軟件的邏輯模型
分析人員對獲取的需求,進行一致性的分析檢查,在分析、綜合中逐步細化軟件功能,劃分成各個子功能。用圖文結(jié)合的形式,建立起新系統(tǒng)的邏輯模型。
3.編寫文檔
(1)編寫“需求規(guī)格說明書”,把雙方共同的理解與分析結(jié)果用規(guī)范的方式描述出來,作為今后各項工作的基礎(chǔ)。
(2)編寫初步用戶使用手冊,著重反映被開發(fā)軟件的用戶功能界面和用戶使用的具體要求,用戶手冊能強制分析人員從用戶使用的觀點考慮軟件。
(3)編寫確認測試計劃,作為今后確認和驗收的依據(jù)。
(4)修改完善軟件開發(fā)計劃。在需求分析階段對待開發(fā)的系統(tǒng)有了更進一步的了解,所以能更準確地估計開發(fā)成本、進度及資源要求,因此對原計劃要進行適當修正。
4.簡述結(jié)構(gòu)化分析、設(shè)計的要點:
結(jié)構(gòu)化分析方法適合于數(shù)據(jù)處理類型軟件的需求分析。
其要點是“自頂向下” 地開發(fā)系統(tǒng),由整體到各組成部分,由表及里,由抽象到具體,逐步求精.(1)模塊化
(2)由頂向下,逐步求精.(3)上層模塊分解為下層模塊,有三種不同的結(jié)構(gòu)形式,即順序結(jié)構(gòu),選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu).5.數(shù)據(jù)字典包含哪些主要內(nèi)容?
數(shù)據(jù)字典通常包括數(shù)據(jù)項、數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)存儲和處理過程五個部分.據(jù)字典內(nèi)容包括:
數(shù)據(jù)庫中所有模式對象的信息,如表、視圖、簇、及索引等。
分配多少空間,當前使用了多少空間等。
列的缺省值。
約束信息的完整性。
用戶的名字。
用戶及角色被授予的權(quán)限。
用戶訪問或使用的審計信息。
其它產(chǎn)生的數(shù)據(jù)庫信息。
6.軟件測試的目標是什么,有哪幾種主要有測試方法?
軟件測試的目標:
(1)測試是為了發(fā)現(xiàn)程序中的錯誤而執(zhí)行程序的過程;
(2)好的測試方案是極可能發(fā)現(xiàn)迄今為止尚未發(fā)現(xiàn)的錯誤的測試方案;
(3)成功的測試是發(fā)現(xiàn)了至今為止尚未發(fā)現(xiàn)的錯誤的測試。
軟件測試的方法有黑盒測試、白盒測試。
7.白盒測試主要有哪些覆蓋?
語句覆蓋、判定覆蓋、條件覆蓋、判定/條件覆蓋、條件組合覆蓋、點覆蓋、邊覆蓋、路徑覆蓋
8、選擇一種程序設(shè)計語言的主要有哪些依據(jù)?
為了使程序容易測試和維護以減少生命周期的總成本,選用的高級語言應(yīng)該有理想的模塊化機制,以及可讀性好的控制結(jié)構(gòu)和數(shù)據(jù)結(jié)構(gòu);為了便于調(diào)試和提高軟件可靠性,語言特點應(yīng)該使編譯程序能夠盡可能多地發(fā)現(xiàn)程序中的錯誤;為了降低軟件開發(fā)和維護的成本,選用的語言應(yīng)該有良好的獨立編譯機制。上述這些要求是選擇語言的理想標準,但是在實際選用語言時不能僅僅考慮理論上的標準,還必須同時考慮實用方面的各種限制。
(1)系統(tǒng)用戶的要求
(2)可以使用的編譯程序
(3)可以得到的軟件工具
(4)系統(tǒng)規(guī)模
(5)程序員的知識
(6)軟件可移植性要求
(7)軟件的應(yīng)用領(lǐng)域
9.軟件的維護的目標是什么,有哪幾種維護類型?
糾正在使用過程中暴露出來的錯誤而進行的改進性維護,適應(yīng)外部環(huán)境的變化而進行的適應(yīng)性維護,改進原有的軟件而進行的完善性維護,以及改進將來的可維護性和可靠性而進行的預防性維護。
軟件維護主要劃分為糾錯性維護、適應(yīng)性維護和完善性維護。
(1)糾錯性維護。由于前期的測試不可能揭露軟件系統(tǒng)中所有潛在的錯誤,用戶在使用軟件時仍將會遇到錯誤,診斷和改正這些錯誤的過程稱為糾錯性維護。
(2)適應(yīng)性維護。由于新的硬件設(shè)備不斷推出,操作系統(tǒng)和編譯系統(tǒng)也不斷地升級,為了使軟件能適應(yīng)新的環(huán)境而引起的程序修改和擴充活動稱為適應(yīng)性維護。
(3)完善性維護。在軟件的正常使用過程中,用戶還會不斷地提出新的需求。為了滿足用戶新的需求而增加軟件功能的活動稱為完善性維護。
10.簡述提高軟件質(zhì)量的主要措施。
復審:是在軟件生命周期每個階段結(jié)束之前,都采用一定的標準對該段產(chǎn)生的軟件配置成分進行嚴格的正式或非正式的檢測。
復查:是檢查已有的材料,以斷定在軟件生命周期某個階段的工作是否能夠開始或繼續(xù)。管理復審:是向開發(fā)組織或使用部門的管理人員提供有關(guān)項目的總體狀況、成本和進度等方面的情況,以便他們從管理角度對開發(fā)工作進行審查。
測試:包括測試計劃、測試過程和測試結(jié)果3個階段。
11.面向?qū)ο笕绾螌崿F(xiàn)模塊獨立性,其偶合和內(nèi)聚的含義是什么?
因為對象是由數(shù)據(jù)及可以對這些數(shù)據(jù)施加的操作所組成的統(tǒng)一體,而且對象是以數(shù)據(jù)為中心的,操作圍繞對其數(shù)據(jù)所需做的處理來設(shè)置,沒有無關(guān)的操作。因此,對象內(nèi)部各種元素彼此結(jié)合得很緊密。內(nèi)聚性相當強,由于完成對象所需要的元素(數(shù)據(jù)和方法)基本上都被封裝在對象內(nèi)部,它與外界的聯(lián)系自然就比較少。因此,對象之間的耦合通常比較松??傊?,面向?qū)ο笫褂脤ο蟆㈩?、繼承和消息的方法,既使用類和繼承等機制,而且對象之間僅能通過傳遞消息實現(xiàn)彼此通信來實現(xiàn)模塊的獨立性。
12.面向?qū)ο蠛兔嫦蜻^程軟件工程有哪些區(qū)別?
(1)面向過程就是分析出解決問題所需要的步驟,然后用函數(shù)把這些步驟一步一步實現(xiàn),使用的時候一個一個依次調(diào)用就可以了。面向?qū)ο笫前褬?gòu)成問題事務(wù)分解成各個對象,建立對象的目的不是為了完成一個步驟,而是為了描敘某個事物在整個解決問題的步驟中的行為。(2)面向過程是把一件事一項工程分解成為一個個小的功能,用一個個函數(shù)來實現(xiàn).面向?qū)ο笫前咽虑榭闯墒且粋€個小的對象組成的,或者說一個個小部分組成的,這些對象之間的相互關(guān)系,構(gòu)成了整個項目.在面向?qū)ο蟮乃枷胫?,萬物皆對象。而“類”,就是對象的抽象或者說是概括。
13.簡述對象、類、消息、方法的基本概念。
(1)對象是人們要進行研究的任何事物,從最簡單的整數(shù)到復雜的飛機等均可看作對象,它不僅能表示具體的事物,還能表示抽象的規(guī)則、計劃或事件。
(2)類是具有相同或相似性質(zhì)的對象的抽象。對象的抽象是類,類的具體化就是對象,也可以說類的實例是對象。類具有屬性,它是對象的狀態(tài)的抽象,用數(shù)據(jù)結(jié)構(gòu)來描述類的屬性。類具有操作,它是對象的行為的抽象,用操作名和實現(xiàn)該操作的方法來描述。
(3)對象之間進行通信的結(jié)構(gòu)叫做消息。在對象的操作中,當一個消息發(fā)送給某個對象時,消息包含接收對象去執(zhí)行某種操作的信息。發(fā)送一條消息至少要包括說明接受消息的對象名、發(fā)送給該對象的消息名(即對象名、方法名)。一般還要對參數(shù)加以說明,參數(shù)可以是認識該消息的對象所知道的變量名,或者是所有對象都知道的全局變量名。
(4)類中操作的實現(xiàn)過程叫做方法,一個方法有方法名、參數(shù)、方法體。
14.簡述面向?qū)ο蠓治鲈O(shè)計的三個模型。
答:三個模型:對象模型、動態(tài)模型、功能模型
(1)對象模型描述系統(tǒng)的靜態(tài)結(jié)構(gòu),包括類和對象,它們的屬性和操作,以及它們之間的關(guān)系。構(gòu)造對象模型的目的在于找出與應(yīng)用程序密切相關(guān)的概念。對象模型用包含對象及對象的關(guān)系圖表示。
(2)動態(tài)模型著重于系統(tǒng)的控制邏輯,考察在任何時候?qū)ο蠹捌潢P(guān)系的改變,描述這些涉及時序和改變的狀態(tài)。動態(tài)模型包括狀態(tài)圖和事件跟蹤圖。狀態(tài)圖是一個狀態(tài)和事件的網(wǎng)絡(luò),側(cè)重于描述每一類對象的動態(tài)行為。事件跟蹤圖則側(cè)重于說明系統(tǒng)執(zhí)行過程中的一個特點“場景”,也叫做腳本(scenarios),是完成系統(tǒng)某個功能的一個事件序列。腳本通常起始于一個系統(tǒng)外部的輸入事件,結(jié)束于一個系統(tǒng)外部的輸出事件。
(3)功能模型著重于系統(tǒng)內(nèi)部數(shù)據(jù)的傳送和處理。功能模型表明,通過計算,從輸出數(shù)據(jù)能得到什么樣的輸出數(shù)據(jù),但不考慮參加計算的數(shù)據(jù)按什么時序執(zhí)行。功能模型由多個數(shù)據(jù)流圖組成,它們指明從外部輸出,通過操作和內(nèi)部存儲,直到外部輸出的整個數(shù)據(jù)流情況。功能模型還包括了對象模型內(nèi)部數(shù)據(jù)間的限制。功能模型中的數(shù)據(jù)流圖往往形成一個層次結(jié)構(gòu),一個數(shù)據(jù)流圖的過程可以由下一層的數(shù)據(jù)流圖作進一步的說明。
第五篇:軟件工程重點總結(jié)
軟件的定義:軟件是計算機系統(tǒng)中與硬件相互依存的另一部分,軟件包括程序、數(shù)據(jù)及其相關(guān)文檔的完整集合。
在結(jié)構(gòu)化程序設(shè)計時代,程序的最小單位是向?qū)ο蟪绦蛟O(shè)計時代,程序的最小單位是類,在類中封裝了相關(guān)的數(shù)據(jù)及指令代碼。軟件的特性:形態(tài)特性、智能特性、開發(fā)特特性、維護特性、廢棄特性、應(yīng)用特性。軟件的分類:系統(tǒng)軟件、應(yīng)用軟件、支撐軟 軟件危機的表現(xiàn):軟件開發(fā)周期長、成本高、軟件危機發(fā)生的原因:(1)缺乏軟件開發(fā)的工作的計劃很難制定。(2)軟件人員與用戶的交流存在障礙。(3)軟件開發(fā)過程不規(guī)范,缺少方法論和規(guī)范的指導,開發(fā)人員各自為戰(zhàn),缺少整體的規(guī)劃和配合,不重視文字資料工作,軟件難以維護。(4)隨著軟件規(guī)模的增大,其復雜性往往會呈指數(shù)級升高。(5)缺少有效的軟件測評手段,提高用戶的軟件質(zhì)量差,在運行中暴露出大量的問題,輕者影響系統(tǒng)的正常使用,重者發(fā)生事故,甚至造成生命財產(chǎn)的重大損失。
首次提出“軟件工程”的概念的時間是1968年。
按工程化的原則和方法組織軟件開發(fā)工作是 軟件工程的定義:軟件工程是指導軟件開發(fā)和維護的工程性學科,它以計算機科學理論和其他相關(guān)學科的理論為指導,采用工程化的概念、原理、技術(shù)和方法進行軟件的開發(fā)和維護,把經(jīng)過時間考驗而證明是正確的管理技術(shù)和當前能夠得到的最好的技術(shù)方法結(jié)合起來,以較少的代價獲得高質(zhì)量的軟件并維護它。
軟件工程的目標是運用先進的軟件開發(fā)技術(shù) 衡量軟件的質(zhì)量的六個特性:功能性、可靠
軟件生存期的三個時期:軟件定義、軟件開定義時期的主要任務(wù)是解決“做什么”的問地滿足用戶的需要。
開發(fā)過程中的典型文檔包括:軟件需求規(guī)格計說明書、用戶手冊。
各個階段所要完成的基本任務(wù):問題定義與可行性研究、需求分析、軟件設(shè)計、程序編碼和單元測試、集成測試和系統(tǒng)測試、軟件運行和維護。
典型的軟件生存期模型包括瀑布模型、原型模型、增量模型、螺旋模型等(噴泉模型)。
瀑布模型的特點:1)階段間具有順序性和依賴性。2)推遲實現(xiàn)的觀點。3)質(zhì)量保證的觀點。
瀑布模型的優(yōu)點:①可強迫開發(fā)人員采用規(guī)范化的方法。②嚴格地規(guī)定了每個階段必須提交的文檔。③要求每個階段交出的所有產(chǎn)品都必須是經(jīng)過驗證(評審)的。
瀑布模型的缺點:①由于瀑布模型幾乎完全依賴于書面的規(guī)格說明,很可能導致最終開發(fā)出的軟件產(chǎn)品不能真正滿足用戶的需要。如果需求規(guī)格說明與用戶需求之間有差異,就會發(fā)生這種情況。②瀑布模型只適用于項目開始時需求已確定的情況。
快速原型模型的優(yōu)點:①有助于滿足用戶的互而得到驗證,據(jù)此產(chǎn)生的規(guī)格說明文檔能夠正確地描述用戶需求。③軟件產(chǎn)品的開發(fā)基本上是按線性順序進行。④因為規(guī)格說明文檔正確地描述了用戶需求,因此,在開發(fā)過程的后續(xù)階段不會因為發(fā)現(xiàn)規(guī)格說明文檔的錯誤而進行較大的返工。⑤開發(fā)人員通過建立原型系統(tǒng)已經(jīng)學到了許多東西,因此,在設(shè)計和編碼階段發(fā)生錯誤的可能性也比較小,這自然減少了在后續(xù)階段需要改正前面階段所犯錯誤的可能性。⑥快速原型的本質(zhì)是“快速”。開發(fā)人員應(yīng)該盡可能快地創(chuàng)造出原型系統(tǒng),以加速軟件開發(fā)過程,節(jié)約軟件開發(fā)成本。原型的用途是獲知用戶的真正需求,一旦需求確定了,原型可以拋棄,當然也可以在原型的基礎(chǔ)上進行開發(fā)。
增量模型的優(yōu)點:①能夠在較短的時間內(nèi)向構(gòu)件交付之日起,用戶就能做一些有用的工作。②逐步增加產(chǎn)品的功能可以使用戶有較充裕的時間學習和適應(yīng)新產(chǎn)品,從而減少全新的軟件可能給用戶組織帶來的沖擊。③項目失敗的風險較低,雖然在某些增量構(gòu)件中可能遇到一些問題,但其他增量構(gòu)件將能夠成功地交付給客戶。④優(yōu)先級最高的服務(wù)首先交付,然后再將其他增量構(gòu)件逐次集成進來。一個必然的事實是:最重要的系統(tǒng)服務(wù)將接受最多的測試。這意味著系統(tǒng)最重要的部分一般不會遭遇失敗。
螺旋模型的優(yōu)點:①對可選方案和約束條件軟件質(zhì)量作為軟件開發(fā)的一個重要目標。②減少了過多測試或測試不足所帶來的風險。③在螺旋模型中,維護只是模型的另一個周期,因而在維護和開發(fā)之間并沒有本質(zhì)區(qū)別。螺旋模型的缺點:螺旋模型是風險驅(qū)動的,因此要求軟件開發(fā)人員必須具有豐富的風險評估經(jīng)驗和這方面的專門知識,否則將出現(xiàn)真正的風險:當項目實際上正在走向災難時,開發(fā)人員可能還以為一切正常。
方法學:通常把在軟件生命周期全過程中使用的一整套技術(shù)的集合稱為方法學,也稱為范型。
軟件工程方法學三個要素:方法、工具和過傳統(tǒng)方法也稱為生命周期方法或結(jié)構(gòu)化范項任務(wù)。這種方法學把軟件生命周期的全過程依次劃分為若干個階段,然后順序地逐步完成每個階段的任務(wù)。每個階段的開始和結(jié)束都有嚴格的標準,對于任何兩個相鄰的階段而言,前一階段的結(jié)束標準就是后一階段的開始標準。在每個階段結(jié)束之前都必須進行正式評審,評審通過之后這個階段才結(jié)束,否則就需要返工,返工之后還要評審。評審的一條主要標準就是每個階段都應(yīng)該交出高質(zhì)量的工作產(chǎn)品,其中,前面階段的工作產(chǎn)品主要是文檔,如需求規(guī)格說明書、軟件設(shè)計說明書等。
面向?qū)ο蠓椒ǖ幕驹瓌t,是盡量模擬人類習慣的思維方式,使開發(fā)軟件的方法和過程盡可能接近人類認識問題和解決問題的方法與過程,從而使描述問題的問題空間與其解空間在結(jié)構(gòu)上盡可能一致。
封裝的定義:封裝是一種信息隱蔽技術(shù),就作封裝在一起。①清楚的邊界②接口③受保護的內(nèi)部實現(xiàn)
軟件需求分析階段的主要工作產(chǎn)品有“軟件需求規(guī)格說明書”和“初步的用戶手冊” 需求獲取的主要任務(wù)是與客戶或用戶溝通,想要實現(xiàn)什么,系統(tǒng)和產(chǎn)品如何滿足業(yè)務(wù)的要求,最終系統(tǒng)或產(chǎn)品如何用于日常工作
需求獲取產(chǎn)生困難的原因:系統(tǒng)的目標或范圍問題,需求不準確性問題,需求的易變問題
需求獲取活動需解決的問題:1.發(fā)現(xiàn)和分析問題,并分析問題的原因/結(jié)果關(guān)系2.與用戶進行各種方式的交流,并使用調(diào)查研究方法收集信息3.按照三個成分即數(shù)據(jù)、過程和接口觀察問題的不同側(cè)面4.將獲取的需求文檔化,形式有例圖、決策表、決策樹等 軟件需求分析階段的工作4個步驟:需求獲取,需求分析,需求定義,需求驗證
數(shù)據(jù)字典以詞條方式定義在數(shù)據(jù)模型、功能息的特性,給出它們的準確定義
設(shè)計是技術(shù)世界和人類的目標世界結(jié)合在一
軟件設(shè)計的原則:(1)分而治之(2)模塊獨立(4)復用性設(shè)計(5)靈活性設(shè)計
模塊獨立性,是指軟件系統(tǒng)中每個模塊只涉
復用是指同一事物不做修改或稍加修改就可質(zhì)量及生產(chǎn)率的重要方法,軟件復用已不再局限于軟件代碼的復用,復用范圍已經(jīng)擴展到軟件開發(fā)的各個階段,包括需求模型和規(guī)格說明、設(shè)計模型、文檔、測試用例等復用。模塊間的耦合和內(nèi)聚兩個準則來度量模塊獨的緊密程度)的度量,內(nèi)聚是模塊功能強度(一個模塊內(nèi)部各個元素彼此結(jié)合的緊密程度)的度量。模塊獨立性比較強的模塊應(yīng)是高度內(nèi)聚、松散耦合的模塊。
在最高的抽象層次上,可以使用問題所處環(huán)境的語言概括地描述問題的解決方法:在較低的抽象層次上,采用更過程化的方法,將面向問題的術(shù)語和面向?qū)崿F(xiàn)的術(shù)語結(jié)合起來描述問題的解法;在最低的抽象層次,則用某種程序設(shè)計語言來描述問題的解法。從工商管理的角度,可以將軟件設(shè)計分為兩個階段:概念設(shè)計階段和詳細設(shè)計階段。結(jié)構(gòu)圖是精確模塊結(jié)構(gòu)的圖形表示工具。清聯(lián)系。(1)模塊的條用關(guān)系和接口(2)模塊間的信息傳遞(3)輔助符號(4)結(jié)構(gòu)圖的形態(tài)特征(結(jié)構(gòu)圖的深度、寬度、扇入和扇出)過程描述工具有:圖形工具、表格工具、語
自頂向下、逐步求精方法的優(yōu)點:1)自頂向遍規(guī)律,可提高軟件開發(fā)的成功率和生產(chǎn)率2)用先全局后局部、先整體后細節(jié)、先抽象后具體的逐步求精的過程開發(fā)出來的程序具有清晰地層次結(jié)構(gòu),因此程序更容易閱讀和理解3)程序自頂向下,逐步細化,分解成樹形結(jié)構(gòu)4)程序清晰和模塊化,使得在修改和重新設(shè)計一個軟件時,可復用的代碼量最大5)程序的邏輯結(jié)構(gòu)清晰,有利于程序正確性證明6)每一步工作盡在上層結(jié)點的基礎(chǔ)上做不多的設(shè)計擴展,便于檢查7)有利于設(shè)計的分工和組織工作
軟件測試:在軟件投入生產(chǎn)性運行之前,對復審,是軟件質(zhì)量控制的關(guān)鍵步驟。軟件測試是為了發(fā)現(xiàn)錯誤而執(zhí)行程序的過程。
軟件測試的目的:①測試是程序的執(zhí)行過程,目的在于發(fā)現(xiàn)錯誤;②一個好的測試用例在于能發(fā)現(xiàn)至今未發(fā)現(xiàn)的錯誤;③一個成功的測試是發(fā)現(xiàn)了至今未發(fā)現(xiàn)的錯誤的測試。軟件測試的目標是想以最少的時間和人力系 軟件測試的原則:
1、盡早地和不斷地進行軟之對應(yīng)的預期輸出結(jié)果這兩部分組成;
3、程序員應(yīng)避免檢查自己的程序。測試過程需要三類輸入:軟件配置、測試配控制流圖是描述程序的控制流的一種圖示方
環(huán)路復雜性V(G)的計算方法:
1、環(huán)路復
2、設(shè)E為控制流圖的邊數(shù),N為圖中的結(jié)點數(shù),則V(G)=E-N+2;
3、設(shè)P為控制流圖中的判定結(jié)點數(shù),則V(G)=P+1.獨立路徑:是指包括一組以前有沒有處理的語句或條件的一條路徑。等價類劃分是一種典型的黑盒測試方法。有效等價類:是指對于軟件的規(guī)格說明來說,合理的、有意義的輸入數(shù)據(jù)構(gòu)成的集合。利用它可以檢查程序是否實現(xiàn)了規(guī)格說明預先規(guī)定的功能和性能。無效等價類:是指對于軟件的規(guī)格說明來說,軟件測試過程的4步驟:單元測試、組裝測試、確認測試和系統(tǒng)測試。
驅(qū)動模式:相當于被測模塊的主程序。它接受測試數(shù)據(jù),把這些數(shù)據(jù)傳送給被測模塊,最后再輸出實測結(jié)果。樁模塊:也叫存根模塊。用以代替被測模塊 把模塊組裝為系統(tǒng)的方式通常有:一次性組確認測試又稱有效性測試。它的任務(wù)是驗證軟件的有效性,即驗證軟件的功能和性能及其他特征是否與用戶的要求一直。對軟件的功能和性能要求在軟件需求規(guī)格說明書中已經(jīng)明確規(guī)定。
面向?qū)ο蠓治瞿P陀?個獨立的模型構(gòu)成:用類和對象表示的靜態(tài)模型(對象模型);有狀態(tài)圖和順序圖表示的動態(tài)模型(交互模型)。
以上3個模型的重要程度是不同的。用例模型是整個后續(xù)工作的基礎(chǔ),也是測試與驗收的依據(jù)。由于面向?qū)ο笙到y(tǒng)中,類、接口、及對象是軟件的基本組成單元,因此對象模型是必須建立的,也是核心模型,幾乎解決任何一個問題都需要從客觀世界實體及實體間的相互關(guān)系抽象出極有價值的對象模型;當問題涉及交互作用和時序是,動態(tài)模型是重要的。
復雜的大型系統(tǒng)的對象模型由5個層次組 在系統(tǒng)分析階段,對象建模的主要任務(wù)是建世界中的類與對象以及它們之間的關(guān)系,而非實際的軟件類或?qū)嶋H構(gòu)件。
軟件維護類型:改正性維護,適應(yīng)性維護,影響維護工作量的因素:1.系統(tǒng)規(guī)模;2.系4.數(shù)據(jù)庫技術(shù)的應(yīng)用水平;5.所采用的軟件開發(fā)技術(shù)及軟件開發(fā)工程化的程度;6.其他。針對三種典型的維護,提出策略以控制維護成本。改正性維護的策略方法:數(shù)據(jù)庫管理高級(第四代)語言。軟件維護性定義:指當對軟件實施各種類型能力。軟件維護性子特性:易分析性,易變更性,提高軟件維護性的開發(fā)技術(shù)和工具:1.使用2.實施開發(fā)階段產(chǎn)品的維護性審查;3.改進文檔。