第4章 軟件工程_第1頁
第4章 軟件工程_第2頁
第4章 軟件工程_第3頁
第4章 軟件工程_第4頁
第4章 軟件工程_第5頁
已閱讀5頁,還剩70頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第四章軟件工程2026/1/131本章學習的主要內(nèi)容第1節(jié)軟件工程概述第2節(jié)軟件開發(fā)模型第3節(jié)軟件需求分析第4節(jié)軟件設(shè)計概述第5節(jié)項目開發(fā)過程2026/1/132第1節(jié)軟件工程概述軟件與軟件危機軟件工程學傳統(tǒng)軟件工程和面向?qū)ο筌浖こ?026/1/133軟件程序、軟件與軟件產(chǎn)品獨唱-->小合唱-->合唱-->萬人大合唱

|||簡單程序較復雜程序軟件軟件定義:軟件=程序+數(shù)據(jù)+文檔程序:按事先設(shè)計的功能和性能需求執(zhí)行的指令序列數(shù)據(jù):是程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔:與程序開發(fā)、維護和使用有關(guān)的圖文材料2026/1/134軟件開發(fā)的發(fā)展過程程序設(shè)計時代(1946-1955)硬件配置低,內(nèi)存小速度慢,穩(wěn)定性差程序以機器語言、匯編語言;程序規(guī)模小,結(jié)構(gòu)簡單軟件時代(1955-1970)計算機性能提高,產(chǎn)量上升提出軟件的概念,軟件需求猛增,開發(fā)技術(shù)能力不足軟件工程時代(1970-今)硬件已不是考慮的問題對開發(fā)方法、技術(shù)理論進行研究2026/1/135軟件開發(fā)的發(fā)展過程計算機應用發(fā)展軟件數(shù)量多規(guī)模大軟件成本高質(zhì)量低個體化軟件開發(fā)方法軟件維護困難軟件危機軟件工程2026/1/136軟件工程時代第一代軟件技術(shù)自頂向下、逐步求精的結(jié)構(gòu)化程序設(shè)計方法第二代軟件技術(shù)軟件生存周期,注重軟件測試技術(shù)第三代軟件技術(shù)需求分析方法高層定義低層實施2026/1/137軟件危機定義計算機軟件的開發(fā)和維護過程所遇到的一系列嚴重問題表現(xiàn)對軟件開發(fā)成本和進度的估算很不準確用戶很不滿意質(zhì)量很不可靠沒有適當?shù)奈臋n軟件成本比重上升供不應求:軟件開發(fā)生產(chǎn)率跟不上計算機應用迅速深入的趨勢2026/1/138硬件/軟件成本變化趨勢

硬件

軟件

100%0%1955197019852026/1/139軟件技術(shù)進步落后于需求增長2026/1/1310軟件危機原因客觀:軟件本身特點邏輯部件規(guī)模龐大主觀:不正確的開發(fā)方法忽視需求分析錯誤認為:軟件開發(fā)=程序編寫輕視軟件維護2026/1/1311軟件危機解決途徑組織管理工程項目管理方法技術(shù)措施軟件開發(fā)技術(shù)與方法軟件工具2026/1/1312軟件工程學的范疇軟件工程學指導計算機軟件開發(fā)和維護的工程學科工程管理+開發(fā)技術(shù)軟件開發(fā)技術(shù)軟件開發(fā)方法學軟件工具軟件工程管理軟件管理學軟件經(jīng)濟學軟件度量學2026/1/1313兩種程序設(shè)計方法程序設(shè)計的兩次飛躍結(jié)構(gòu)化程序設(shè)計程序=數(shù)據(jù)結(jié)構(gòu)+算法面向?qū)ο蟪绦蛟O(shè)計程序

=對象

+消息

2026/1/1314面向過程和面向?qū)ο蟮木幋a存款取款利息結(jié)算帳戶余額帳戶余額利息結(jié)算存款取款2026/1/1315兩類軟件工程方法傳統(tǒng)軟件工程軟件分析

總體設(shè)計

詳細設(shè)計

面向過程的編碼

測試

面向?qū)ο筌浖こ誊浖治雠c對象抽取

對象詳細設(shè)計

面向?qū)ο蟮木幋a

測試

2026/1/1316軟件工程的目的適用性有效性可修改性可靠性可理解性可維護性可重用性可移植性可追蹤性可互操作性2026/1/1317第2節(jié)軟件開發(fā)模型傳統(tǒng)開發(fā)模型瀑布模型(waterfallmodel)快速原型模型(rapidprototypemodel)演化開發(fā)模型增量模型(incrementalmodel)螺旋模型(spiralmodel)面向?qū)ο箝_發(fā)模型構(gòu)件集成模型(componentintegrationmodel)

形式化開發(fā)模型轉(zhuǎn)換模型(transformationalmodel)凈室模型(cleanroommodel)2026/1/1318瀑布生存周期模型計劃時期問題定義可行性分析開發(fā)時期需求分析軟件設(shè)計編碼測試運行時期軟件維護2026/1/1319瀑布模型問題定義可行性研究需求分析軟件設(shè)計編碼測試維護計劃時期開發(fā)時期運行時期2026/1/1320瀑布模型特點階段的順序性和依賴性(故也稱線性順序模型)推遲實現(xiàn)原則(寧慢求好)質(zhì)量保證存在問題不適合需求模糊的系統(tǒng)2026/1/1321瀑布模型1、瀑布模型有以下優(yōu)點

1)為項目提供了按階段劃分的檢查點。

2)當前一階段完成后,只需要去關(guān)注后續(xù)階段。

3)可在迭代模型中應用瀑布模型。2、瀑布模型有以下缺點

1)在項目各個階段之間極少有反饋。

2)只有在項目生命周期的后期才能看到結(jié)果。

3)通過過多的強制完成日期和里程碑來跟蹤各個項目階段。2026/1/1322快速原型模型原型是指模擬某種產(chǎn)品的原始模型。快速原型模型需要迅速建造一個可以運行的軟件原型;便于理解和澄清問題,使開發(fā)人員與用戶達成共識,最終在確定的客戶需求基礎(chǔ)上開發(fā)客戶滿意的軟件產(chǎn)品。快速原型模型允許在需求分析階段對軟件的需求進行初步而非完全的分析和定義,快速設(shè)計開發(fā)出軟件系統(tǒng)的原型,該原型向用戶展示待開發(fā)軟件的全部或部分功能和性能;用戶對該原型進行測試評定,給出具體改進意見以豐富細化軟件需求;開發(fā)人員據(jù)此對軟件進行修改完善,直至用戶滿意認可之后,進行軟件的完整實現(xiàn)及測試、維護。2026/1/1323快速原型模型需求分析原型開發(fā)最終系統(tǒng)設(shè)計原型評價最終系統(tǒng)實現(xiàn)用戶反饋2026/1/1324快速原型模型特點需要快速開發(fā)工具支持循環(huán)開發(fā)模式適用于用戶需求不明確的情況種類漸進型拋棄型2026/1/1325增量模型融合了瀑布模型的基本成分和原型實現(xiàn)的迭代特征,該模型采用隨著日程時間的進展而交錯的線性序列,每一個線性序列產(chǎn)生軟件的一個可發(fā)布的“增量”。當使用增量模型時,第1個增量往往是核心的產(chǎn)品,即第1個增量實現(xiàn)了基本的需求,但很多補充的特征還沒有發(fā)布??蛻魧γ恳粋€增量的使用和評估都作為下一個增量發(fā)布的新特征和功能,這個過程在每一個增量發(fā)布后不斷重復,直到產(chǎn)生了最終的完善產(chǎn)品。2026/1/1326增量模型規(guī)格說明設(shè)計實現(xiàn)和集成交付客戶規(guī)格說明設(shè)計實現(xiàn)和集成交付客戶規(guī)格說明設(shè)計實現(xiàn)和集成交付客戶規(guī)格說明設(shè)計實現(xiàn)和集成交付客戶增量1增量2增量3增量n2026/1/1327增量模型增量小而可用的軟件特點在前面增量的基礎(chǔ)上開發(fā)后面的增量每個增量的開發(fā)可用瀑布或快速原型模型迭代的思路2026/1/1328增量模型優(yōu)點人員分配靈活,剛開始不用投入大量人力資源。如果核心產(chǎn)品很受歡迎,則可增加人力實現(xiàn)下一個增量。可先發(fā)布部分功能給客戶,對客戶起到鎮(zhèn)靜劑的作用。增量能夠有計劃地管理技術(shù)風險。

缺點

1)需要軟件具備開放式的體系結(jié)構(gòu)。

2)容易退化為邊做邊改模型,從而是軟件過程的控制失去整體性。

3)如果增量包之間存在相交的情況且未很好處理,則必須做全盤系統(tǒng)分析。2026/1/1329螺旋模型2026/1/1330

將瀑布模型和快速原型模型結(jié)合起來,強調(diào)了其他模型所忽視的風險分析,特別適合于大型復雜的系統(tǒng)。螺旋模型沿螺線進行若干次迭代,將工程分為四個活動:

(1)制定計劃:確定軟件目標,選定實施方案,弄清項目開發(fā)的限制條件;(2)風險分析:分析評估所選方案,考慮如何識別和消除風險;(3)實施工程:實施軟件開發(fā)和驗證;(4)客戶評估:評價開發(fā)工作,提出修正建議,制定下一步計劃。螺旋模型由風險驅(qū)動,強調(diào)可選方案和約束條件從而支持軟件的重用,有助于將軟件質(zhì)量作為特殊目標融入產(chǎn)品開發(fā)之中。螺旋模型2026/1/1331螺旋模型特點瀑布模型+快速原型+風險分析迭代過程一個螺旋式周期

確定目標,選擇方案,選定完成目標的策略

風險角度分析該策略

啟動一個開發(fā)階段

評價前一步的結(jié)果,計劃下一輪的工作

螺旋模型的項目適用:

對于新近開發(fā),需求不明確的情況下,適合用螺旋模型進行開發(fā),便于風險控制和需求變更!2026/1/1332螺旋模型優(yōu)點1)設(shè)計上的靈活性,可以在項目的各個階段進行變更。2)以小的分段來構(gòu)建大型系統(tǒng),使成本計算變得簡單容易。3)客戶始終參與每個階段的開發(fā),保證了項目不偏離正確方向以及項目的可控性。4)隨著項目推進,客戶始終掌握項目的最新信息,

從而他或她能夠和管理層有效地交互。5)客戶認可這種公司內(nèi)部的開發(fā)方式帶來的良好的溝通和高質(zhì)量的產(chǎn)品。

缺點很難讓用戶確信這種演化方法的結(jié)果是可以控制的。建設(shè)周期長,而軟件技術(shù)發(fā)展比較快,所以經(jīng)常出現(xiàn)軟件開發(fā)完畢后,和當前的技術(shù)水平有了較大的差距,無法滿足當前用戶需求。2026/1/1333面向?qū)ο竽P蛯ο驩bject類Class繼承Inheritance消息Message面向?qū)ο髮ο?類+繼承+消息通信2026/1/1334構(gòu)件集成模型構(gòu)件集成模型利用預先封裝好的軟件構(gòu)件來構(gòu)造應用軟件系統(tǒng),它融合了螺旋模型的很多特征,支持軟件開發(fā)的迭代方法。開發(fā)活動從描述候選類開始,通過檢查軟件系統(tǒng)處理的數(shù)據(jù)以及操作這些數(shù)據(jù)的方法,把相關(guān)的數(shù)據(jù)和方法封裝成一個類,然后到構(gòu)件庫中查找這個類。

如果已經(jīng)存在,就從庫中提取出來以供復用;

如果候選類不存在,則采用面向?qū)ο蟮姆椒ㄊ顾鼘崿F(xiàn),并把它存儲到構(gòu)件庫中。通過集成從構(gòu)件庫中提取的已有類和為了滿足應用程序的特定需要而構(gòu)建的新類,即可得到待開發(fā)軟件的第一個迭代。然后進入下一輪螺旋周期,繼續(xù)進行構(gòu)件集成的迭代。2026/1/1335構(gòu)件集成模型2026/1/1336構(gòu)件集成模型特點面向?qū)ο蠡跇?gòu)件庫融合螺旋模型特征支持軟件開發(fā)的迭代方法

軟件重用2026/1/1337轉(zhuǎn)換模型該模型結(jié)合了形式化軟件開發(fā)方法和程序自動生成技術(shù),采用形式化需求規(guī)格說明和變換技術(shù)等技術(shù)手段,生產(chǎn)目標程序系統(tǒng)。

軟件需求分析確定以后,選用某種形式化的需求規(guī)格說明語言描述軟件規(guī)格說明,可以生成形式化的規(guī)格說明。為了確認該形式化規(guī)格說明與軟件需求的一致性,還可以在形式化規(guī)格說明的基礎(chǔ)上開發(fā)一個軟件原型,讓用戶對該軟件原型系統(tǒng)的界面,功能和性能進行確認,必要時,可對形式化需求說明和原型進行修改,直到形式化規(guī)格說明能正確反映用戶需求為止。然后進行一系列的人機交互或全自動的程序變換,直到生成計算機系統(tǒng)可以接受的目標代碼。2026/1/1338轉(zhuǎn)換模型形式化規(guī)格說明與需求比較后修正變換2變換1變換n測試形式化開發(fā)記錄系統(tǒng)需求目標系統(tǒng)2026/1/1339轉(zhuǎn)換模型特點形式化軟件開發(fā)方法

形式化需求規(guī)格說明

變換技術(shù)程序自動生成技術(shù)

確保正確2026/1/1340凈室模型凈室模型是一種形式化的增量開發(fā)模型?;舅枷胧橇η笤诜治龊驮O(shè)計階段就消除錯誤,確保正確,然后在無缺陷或“潔凈”的狀態(tài)下實現(xiàn)軟件的制作。

和增量模型一樣,凈室開發(fā)把軟件看成一系列的增量,每個增量是一個形式化方法表示的“盒”。當需求收集結(jié)束后,就用盒結(jié)構(gòu)表示分析和設(shè)計模型。這種“盒”是在某個特定的抽象層次上對系統(tǒng)(或系統(tǒng)的某些方面)的一次封裝。完成了盒結(jié)構(gòu)設(shè)計之后,先對設(shè)計的軟件構(gòu)件進行正確性檢驗;通過正確性驗證后,再將形式化的盒結(jié)構(gòu)設(shè)計轉(zhuǎn)換為適當?shù)某绦蛟O(shè)計語言,并進行源代碼的正確性驗證;接著開始統(tǒng)計性使用測試,即根據(jù)統(tǒng)計樣本得出使用分布概率,按此概率進行隨機測試;以上工作全部完成后,還要對增量進行集成前的認證。2026/1/1341凈室模型需求收集盒結(jié)構(gòu)規(guī)約形式化設(shè)計統(tǒng)計性使用測試正確性證明代碼生成與檢查測試計劃認證需求收集盒結(jié)構(gòu)規(guī)約形式化設(shè)計統(tǒng)計性使用測試正確性證明代碼生成與檢查測試計劃認證需求收集盒結(jié)構(gòu)規(guī)約形式化設(shè)計統(tǒng)計性使用測試正確性證明代碼生成與檢查測試計劃認證增量1增量2增量n2026/1/1342凈室模型凈室思想在分析和設(shè)計階段消除錯誤在“潔凈”狀態(tài)下實現(xiàn)軟件制作形式化盒結(jié)構(gòu)表示分析和設(shè)計正確性驗證增量模型2026/1/1343小結(jié)軟件開發(fā)模型是不斷變化發(fā)展的各種軟件開發(fā)模型各有優(yōu)缺點選用時不必拘泥與某種模型可組合多種模型也可根據(jù)實際創(chuàng)建新的模型2026/1/1344第3節(jié)軟件需求分析需求分析的任務與步驟需求獲取的常用方法分析建模軟件需求說明結(jié)構(gòu)化分析方法面向?qū)ο蠓治龇椒?026/1/1345需求分析的任務和步驟需求分析的任務建立分析模型

編寫需求說明

需求分析的步驟需求獲取

需求提煉

需求描述

需求驗證

2026/1/1346需求獲取的常用方法聯(lián)合分析小組

用戶代表、領(lǐng)域?qū)<液拖到y(tǒng)分析員客戶訪談

充分準備,尋找共同語言循循序漸進、逐步逼近

問題分析與確認

多個來回2026/1/1347分析建模結(jié)構(gòu)化分析模型面向?qū)ο蠓治瞿P头治瞿P兔枋龉ぞ邤?shù)據(jù)流圖(DFD)、數(shù)據(jù)字典(DD)和處理規(guī)格說明(PSPEC)控制流圖(CFD)、控制規(guī)格說明(CSPEC)和狀態(tài)轉(zhuǎn)移圖(STD)實體關(guān)系圖(E-R圖)

用例圖,對象-關(guān)系圖,對象-行為圖

2026/1/1348結(jié)構(gòu)化分析模型加工說明數(shù)據(jù)對象說明CFD,STD圖DFD圖E-R圖DD控制說明2026/1/1349面向?qū)ο蠓治瞿P蛯傩?、操作、協(xié)作者對象-行為模型對象-關(guān)系模型類/對象模型使用實例2026/1/1350分析模型描述工具結(jié)構(gòu)化分析工具數(shù)據(jù)流程圖(DFD)數(shù)據(jù)字典(DD)E-R圖

面向?qū)ο蠓治龉ぞ哂美龍D,類對象圖對象-關(guān)系圖對象-行為圖2026/1/1351數(shù)據(jù)流圖DFD描述系統(tǒng)邏輯模型信息在系統(tǒng)中的流動和處理用途交流信息的工具結(jié)構(gòu)化分析和設(shè)計的工具

2026/1/1352數(shù)據(jù)流圖DFD組成符號圓框代表加工箭頭代表數(shù)據(jù)流向方框代表源點和終點雙杠表示數(shù)據(jù)文件或數(shù)據(jù)庫分層從高層到低層分解前后的數(shù)據(jù)流必須一致命名數(shù)據(jù)流處理2026/1/1353領(lǐng)書單

進書通知

購書單

缺書單

DFD練習—售書系統(tǒng)學生教材購銷系統(tǒng)書庫保管員2026/1/1354領(lǐng)書單進書通知

進書通知

購書單缺書單

DFD練習—售書系統(tǒng)1銷售2采購書庫保管員學生F1教材存量表

F2缺書登記表

2026/1/1355用例圖用例:是從系統(tǒng)外部可見的行為,是系統(tǒng)為某一個或幾個參與者(Actor)提供的一段完整的服務。符號表示:

系統(tǒng)名稱系統(tǒng)用例名用例角色關(guān)聯(lián)2026/1/1356UseCase圖例子保險商務系統(tǒng)簽定保險單銷售統(tǒng)計客戶統(tǒng)計客戶保險銷售員2026/1/1357用例之間的關(guān)系擴展關(guān)系使用關(guān)系組合關(guān)系《擴展》簽保險單簽汽車購買契約2026/1/1358《使用》《使用》簽保險單簽汽車保險單簽房屋保險單《包含》保單維護新建保單變更保單刪除保單《包含》《包含》對象-關(guān)系圖從E-R圖演變而來描述對象間關(guān)系學生書出版社購買來自1:11:m1:11:12026/1/1359對象-行為圖描述對象的動態(tài)行為對象狀態(tài)轉(zhuǎn)換圖事件流圖2026/1/1360對象狀態(tài)轉(zhuǎn)換圖例子加紙紙用完故障修復打印故障打印完成接到打印命令就緒打印缺紙故障2026/1/1361事件流圖例子[打印機忙]保存文件[打印機就緒]打印文件打印文件打印文件計算機打印服務器打印隊列打印機2026/1/1362軟件需求說明(SRS)1引言

1.1編寫目的

1.2項目背景

1.3術(shù)語概念定義

1.4參考資料2項目概述

2.1產(chǎn)品描述

2.2產(chǎn)品功能

2.3用戶特點

2.4一般約束

2.5假設(shè)和依據(jù)3具體需求

3.1功能需求 3.1.1功能需求1

3.1.2功能需求2

3.1.n功能需求n2026/1/13633.2外部接口需求3.2.1用戶接口

3.2.2硬件接口

3.2.3軟件接口

3.2.4通信接口3.3性能需求3.4設(shè)計約束3.4.1其他標準的約束

3.4.2硬件的限制

3.5屬性3.5.1可用性

3.5.2安全性

3.5.3可維護性3.6其他需求3.6.1數(shù)據(jù)庫

3.6.2場合適應性需求4附錄結(jié)構(gòu)化分析方法——總結(jié)基本步驟功能分解分層DFD定義數(shù)據(jù)和加工DD,PSPEC根據(jù)需要,分析復雜數(shù)據(jù)和動態(tài)模型E-R圖,CFD,CSPEC,STD編寫SRS2026/1/1364面向?qū)ο蠓治龇椒ā偨Y(jié)基本步驟定義系統(tǒng)的用例領(lǐng)域分析,建立類對象模型建立對象-關(guān)系模型建立對象-行為模型編寫SRS2026/1/1365第4節(jié)軟件設(shè)計概述4.1軟件設(shè)計的任務4.2軟件設(shè)計的基本概念4.3模塊化設(shè)計4.4設(shè)計需要處理的問題4.5設(shè)計文檔及其復審2026/1/13664.1軟件設(shè)計的任務分析模型設(shè)計模型設(shè)計文檔回答Howtodo?可以分為概要設(shè)計、詳細設(shè)計軟件設(shè)計包括數(shù)據(jù)設(shè)計體系結(jié)構(gòu)設(shè)計接口設(shè)計過程設(shè)計2026/1/13674.1軟件設(shè)計的任務數(shù)據(jù)設(shè)計信息模型軟件數(shù)據(jù)結(jié)構(gòu)體系結(jié)構(gòu)設(shè)計定義軟件部件間的關(guān)系接口設(shè)計軟件內(nèi)部、外部及與人之間的通信過程設(shè)計軟件組件的過程性描述2026/1/13684.2軟件設(shè)計的基本概念模塊(module)與構(gòu)件(component)模塊:定義輸入、輸出和特性的程序?qū)嶓w構(gòu)件:可重復使用的軟件組件抽象(abstract)與細化(refinement)抽象:分層次考慮和處理問題(數(shù)據(jù)和過程)細化:從高到低的逐步分解過程

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論