面向?qū)ο蠓治鼋OA_第1頁
面向?qū)ο蠓治鼋OA_第2頁
面向?qū)ο蠓治鼋OA_第3頁
面向?qū)ο蠓治鼋OA_第4頁
面向?qū)ο蠓治鼋OA_第5頁
已閱讀5頁,還剩504頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

2024/1/161第一章軟件工程概述2024/1/162§1.1軟件工程的背景和歷史1968年由NATO(北大西洋公約組織)在德國Garmish召開的學(xué)術(shù)會(huì)議上,F(xiàn)eitzBauer首先提出了“軟件工程”概念。2024/1/163軟件工程與編程前者是一門學(xué)科,一種科學(xué)理論來指導(dǎo)軟件系統(tǒng)開發(fā),標(biāo)準(zhǔn)化,自動(dòng)化的過程考慮如何分解一個(gè)系統(tǒng),以便各人分工開發(fā);考慮如何說明每個(gè)部分的規(guī)格要求;怎樣才能易于維護(hù)單純的代碼編寫是軟件工程發(fā)展的前身是軟件工程中占據(jù)很少時(shí)間和空間的一部分2024/1/164計(jì)算機(jī)學(xué)科的發(fā)展計(jì)算機(jī)科學(xué)(CS)計(jì)算機(jī)科學(xué)(CS)計(jì)算機(jī)工程(CE)軟件工程(SE)信息系統(tǒng)(IS)計(jì)算學(xué)科(computingdiscipline)2024/1/16560年代以來工廠管理病人監(jiān)護(hù)工資統(tǒng)發(fā)圖書館管理機(jī)票預(yù)定學(xué)籍管理

早期

第二階段第三階段第四階段

面向批處理

多用戶

分布式系統(tǒng)

強(qiáng)大的桌面系統(tǒng)

有限的分布

實(shí)時(shí)

嵌入“智能”

面向?qū)ο蠹夹g(shù)

自定義軟件

數(shù)據(jù)庫

低成本硬件

專家系統(tǒng)

軟件產(chǎn)品

消費(fèi)者的影響

人工神經(jīng)網(wǎng)絡(luò)

并行計(jì)算

網(wǎng)絡(luò)計(jì)算機(jī)195019601970198019902000Evolutionofsoftware#2024/1/167為什么發(fā)展如此之快不準(zhǔn)確的時(shí)間和金錢的估算軟件質(zhì)量的低下相對硬件產(chǎn)品開發(fā)軟件開發(fā)費(fèi)用的增加維護(hù)、增強(qiáng)軟件系統(tǒng)的必要性硬件價(jià)格大幅度下降2024/1/168軟件技術(shù)面臨的問題

規(guī)模復(fù)雜性生產(chǎn)率

Windows95有1000萬行代碼

Windows2000有5000萬行代碼例:Exchange2000和Windows2000開發(fā)人員結(jié)構(gòu)Exchange2000Windows2000項(xiàng)目經(jīng)理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人2024/1/1610《人月神話》焦油坑

史前史中,沒有別的場景比巨獸在焦油坑中垂死掙扎的場面更令人震撼。上帝見證著恐龍、猛犸象、劍齒虎在焦油中掙扎。它們掙扎得越是猛烈,焦油糾纏得越緊,沒有任何猛獸足夠強(qiáng)壯或具有足夠的技巧,能夠掙脫束縛,它們最后都沉到了坑底。

2024/1/1611軟件危機(jī)的主要特征軟件開發(fā)周期大大超過規(guī)定日期;

軟件開發(fā)成本嚴(yán)重超標(biāo);

軟件質(zhì)量難于保證。2024/1/1612軟件工程的定義FritzBauer在NATO會(huì)議上給出的定義:

“軟件工程是為了經(jīng)濟(jì)地獲得可靠的和能在實(shí)際機(jī)器上高效運(yùn)行的軟件而確立和使用的健全的工程原理(方法)?!?024/1/1613軟件工程的定義(2)IEEE【IEE83】給出的軟件工程定義:

“軟件工程是開發(fā)、運(yùn)行、維護(hù)和修復(fù)軟件的系統(tǒng)方法?!?024/1/1614軟件工程的定義(3)IEEE【IEE93】給出了一個(gè)更加綜合的定義:

“將系統(tǒng)化的、規(guī)范的、可度量的方法應(yīng)用于軟件的開發(fā)、運(yùn)行和維護(hù)的過程,即將工程化應(yīng)用于軟件中?!避浖こ淌且婚T交叉學(xué)科軟件工程的主要研究內(nèi)容軟件開發(fā)技術(shù):軟件開發(fā)方法學(xué)軟件開發(fā)過程

軟件工具和軟件工程環(huán)境軟件工程管理:軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件心理學(xué)

軟件工程所包含的內(nèi)容不是一成不變的,隨著人們對軟件系統(tǒng)的研制開發(fā)和生產(chǎn)的理解。應(yīng)用發(fā)展的眼光看待它。2024/1/1616軟件工程—一種層次化技術(shù)工具方法過程質(zhì)量焦點(diǎn)Softwareengineeringlayers軟件工程三個(gè)要素:方法、工具、過程2024/1/1617軟件工程與一般工程的差異軟件是邏輯產(chǎn)品而不是實(shí)物產(chǎn)品軟件的功能依賴于硬件和軟件的運(yùn)行環(huán)境以及人們對它的操作軟件設(shè)計(jì)的復(fù)雜性軟件特征: 功能的多樣性 實(shí)現(xiàn)的多樣性 能見度低 軟件結(jié)構(gòu)合理性差智力密集及知識(shí)產(chǎn)權(quán)保護(hù)2024/1/1618軟件工程知識(shí)結(jié)構(gòu)

2001年5月ISO/IECJTC1(ISO和IEC的第一聯(lián)合技術(shù)委員會(huì))發(fā)布了《SWEBOK指南V0.95(試用版)》SWEBOK把軟件工程學(xué)科的主體知識(shí)分為10個(gè)知識(shí)領(lǐng)域。2024/1/1619軟件工程知識(shí)結(jié)構(gòu)

軟件需求軟件設(shè)計(jì)軟件構(gòu)造軟件測試軟件維護(hù)軟件配置管理軟件工程管理軟件工程過程軟件工程工具和方法軟件質(zhì)量2024/1/1620“軟件工程”課程

與其它軟件專業(yè)課的區(qū)別(1)立足于系統(tǒng)的整體。(2)講授系統(tǒng)分析、系統(tǒng)設(shè)計(jì)、測試及維護(hù)的理論和方法。(3)構(gòu)筑一個(gè)軟件系統(tǒng),實(shí)踐軟件開發(fā)全過程。2024/1/1621“軟件工程”課程教學(xué)的目標(biāo)轉(zhuǎn)變對軟件的認(rèn)識(shí):上升

程序系統(tǒng)轉(zhuǎn)變思維定式:上升

程序員系統(tǒng)工程師

(系統(tǒng)分析員)2024/1/1622軟件產(chǎn)品的標(biāo)準(zhǔn)化軟件開發(fā)過程的標(biāo)準(zhǔn)化2024/1/1623軟件的工業(yè)化生產(chǎn)過程應(yīng)具備的特點(diǎn):明確的工作步驟詳細(xì)具體的規(guī)范化文檔明確的質(zhì)量評價(jià)標(biāo)準(zhǔn)“一個(gè)好的工業(yè),應(yīng)有一套

良好的標(biāo)準(zhǔn)來配套”2024/1/1624軟件工程技術(shù)的兩個(gè)特點(diǎn)

強(qiáng)調(diào)規(guī)范化強(qiáng)調(diào)文檔化2024/1/1625§1.2軟件和軟件生命期模型(SoftwareLifeCycle)軟件產(chǎn)品或軟件系統(tǒng)從設(shè)計(jì)、投入使用到被淘汰的全過程。2024/1/1626軟件生存期的階段劃分(1)可行性研究與計(jì)劃(2)需求分析(3)總體設(shè)計(jì)(4)詳細(xì)設(shè)計(jì)(5)實(shí)現(xiàn)(6)集成測試(7)確認(rèn)測試(8)使用和維護(hù)成長期(開發(fā)期)懷孕期(計(jì)劃期)

成年期(運(yùn)行期)2024/1/1627新的國際標(biāo)準(zhǔn)定義的軟件生存過程(1995ISO/IEC12207)軟件生存期過程支持過程組織過程主要過程獲取過程供應(yīng)過程開發(fā)過程運(yùn)行過程維護(hù)過程文檔編制過程配置管理過程質(zhì)量保證過程驗(yàn)證過程確認(rèn)過程聯(lián)合評審過程審核過程問題解決過程管理過程基礎(chǔ)設(shè)施過程改進(jìn)過程培訓(xùn)過程2024/1/1628軟件工作的范圍只考慮編寫程序

涉及整個(gè)軟件生存周期擴(kuò)展到2024/1/1629

軟件開發(fā)模型是軟件開發(fā)全部過程、活動(dòng)和任務(wù)的結(jié)構(gòu)框架。它能直觀表達(dá)軟件開發(fā)全過程,明確規(guī)定要完成的主要活動(dòng)、任務(wù)和開發(fā)策略。軟件開發(fā)模型也常稱為: 軟件過程模型 軟件生存周期模型 軟件工程范型軟件開發(fā)模型可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測試定義階段開發(fā)階段維護(hù)階段瀑布模型(WaterfallModel)2024/1/1631開發(fā)軟件不僅僅是編程2024/1/1632按照傳統(tǒng)瀑布模型開發(fā)軟件的特點(diǎn)1.階段間具有順序性和依賴性。2.推遲實(shí)現(xiàn)的觀點(diǎn)。3.每個(gè)階段必須完成規(guī)定的文檔;

每個(gè)階段結(jié)束前完成文檔審查,

及早改正錯(cuò)誤。2024/1/1633原型模型(快速原型模型)原型范型用戶測試運(yùn)行原型建造/修改原型

聽取用戶意見采用原型模型的軟件生存周期分析定義系統(tǒng)需求生成原型系統(tǒng)設(shè)計(jì)程序設(shè)計(jì)編碼測試運(yùn)行和維護(hù)原型化含原型化的軟件生存期2024/1/1635§1.3軟件質(zhì)量的評價(jià)成功的標(biāo)準(zhǔn):

用戶在用用戶可很容易做完要做的事失敗的根本原因:

開發(fā)人員寫出的東西達(dá)不到用戶要求(人的問題.技術(shù)問題)2024/1/1636質(zhì)量與生產(chǎn)率質(zhì)量是軟件需求方最關(guān)心的問題,用戶即使不圖物美價(jià)廉,也要求個(gè)貨真價(jià)實(shí)

質(zhì)量與生產(chǎn)率之間有著內(nèi)在的聯(lián)系,高生產(chǎn)率必須以質(zhì)量合格為前提

質(zhì)量與生產(chǎn)率的提高就指望程序員與程序經(jīng)理

非得在質(zhì)量與生產(chǎn)率之間分個(gè)主次不可,那么應(yīng)該是質(zhì)量第一,生產(chǎn)率第二

2024/1/1637質(zhì)量與生產(chǎn)率(2)質(zhì)量直接體現(xiàn)在軟件的每段程序中,高質(zhì)量自然是開發(fā)人員的技術(shù)追求,也是職業(yè)道德的要求

高質(zhì)量對所有的用戶都有價(jià)值,而高生產(chǎn)率只對開發(fā)方有意義

如果一開始就追求高生產(chǎn)率,容易使人急功近利,留下隱患

2024/1/1638不貪污的官就是好官嗎“運(yùn)行正確”的程序就是高質(zhì)量的程序嗎?也許運(yùn)行速度很低并且浪費(fèi)內(nèi)存;也許代碼寫得一塌糊涂

2024/1/1639軟件的質(zhì)量因素

軟件的質(zhì)量因素很多,如正確性、精確性、可靠性、容錯(cuò)性、性能、效率、易用性、可理解性、簡潔性、可復(fù)用性、可擴(kuò)充性、兼容性等等(還可以列出十幾個(gè))

一般說來傾向于可維護(hù)性、可靠性、可理解性和效率2024/1/1640軟件質(zhì)量因素分類和武學(xué)分類正確性與精確性易用性可理解性與簡潔性性能與效率可復(fù)用性與可擴(kuò)充性少林派、武當(dāng)派華山派昆侖派峨嵋派崆峒派2024/1/1641正確性與精確性

機(jī)器不會(huì)主動(dòng)欺騙人,軟件運(yùn)行不正確或者不精確一般都是人造成的

需求分析錯(cuò)了,那么對客戶而言這個(gè)軟件也存在錯(cuò)誤

如果軟件沒有100%地按需求規(guī)格執(zhí)行,那么這個(gè)軟件也存在錯(cuò)誤程序員要為“正確”、“精確”四個(gè)字竭盡全力

2024/1/1642性能與效率

用戶都希望軟件的運(yùn)行速度高些(高性能),并且占用資源少些(高效率)

舊社會(huì)地主就是這么對待長工的:干活要快點(diǎn),吃得要少點(diǎn)

通過優(yōu)化算法、數(shù)據(jù)結(jié)構(gòu)和代碼組織來提高軟件系統(tǒng)的性能與效率優(yōu)化的關(guān)鍵工作是找出限制性能與效率的“瓶頸”

2024/1/1643易用性

導(dǎo)致軟件易用性差的根本原因是開發(fā)人員犯了“錯(cuò)位”的毛?。核詾橹灰约河闷饋矸奖?,用戶也一定會(huì)滿意

當(dāng)用戶真的感到軟件很好用時(shí),一股溫暖的感覺油然而生,于是就用“友好”來評價(jià)易用性

2024/1/1644可理解性與簡潔性(Note1)

開發(fā)人員只有在自己思路清晰時(shí)才可能寫出讓別人能理解的程序

編程時(shí)還要注意不可濫用技巧,應(yīng)該用自然的方式編程

簡潔是一種美

如果把學(xué)術(shù)文章寫得很簡潔,讓人很容易理解,它往往中不了

2024/1/1645可復(fù)用性與可擴(kuò)充性

一種方式是原封不動(dòng)地使用現(xiàn)成的軟件構(gòu)件

一種方式是對現(xiàn)成的軟構(gòu)件進(jìn)行必要的擴(kuò)充后再使用

可復(fù)用性好的程序一般也具有良好的可擴(kuò)充性

2024/1/1646可行性研究與計(jì)劃需求分析設(shè)計(jì)編碼運(yùn)行維護(hù)測試測試已經(jīng)開始返回上級,再…..瀑布模型的質(zhì)量保障體系2024/1/1647小結(jié)(Note2)軟件的高質(zhì)量主要是設(shè)計(jì)出來的不是“管”出來的更不能依賴質(zhì)量檢查。

2024/1/1648第二章

可行性研究與計(jì)劃2024/1/1649系統(tǒng)流程圖(Note3)輸入單據(jù)磁盤文件處理輸出單據(jù)2024/1/1650數(shù)據(jù)流程圖數(shù)據(jù)源點(diǎn)和終點(diǎn)變換數(shù)據(jù)的加工文件數(shù)據(jù)邏輯關(guān)系符號(hào):與、或、異或2024/1/1651§2.1可行性研究基本概念可行性研究的任務(wù):

可行性研究的主要任務(wù)是“了解客戶的要求及現(xiàn)實(shí)環(huán)境,從技術(shù)、經(jīng)濟(jì)和社會(huì)因素等三方面研究并論證本軟件項(xiàng)目的可行性,編寫可行性研究報(bào)告,制定初步項(xiàng)目開發(fā)計(jì)劃?!?024/1/1652可行性研究的內(nèi)容(1)技術(shù)可行性(2)經(jīng)濟(jì)可行性(3)操作可行性(4)社會(huì)可行性(法律可行性)(5)抉擇2024/1/1653技術(shù)可行性(Note4)度量一個(gè)特定技術(shù)信息系統(tǒng)解決方案的實(shí)用性及技術(shù)資源的可用性考慮的問題開發(fā)風(fēng)險(xiǎn)分析資源分析相關(guān)技術(shù)的發(fā)展(現(xiàn)有技術(shù)能否實(shí)現(xiàn)新系統(tǒng),技術(shù)難點(diǎn)、建議采用技術(shù)的先進(jìn)性)2024/1/1654經(jīng)濟(jì)可行性度量系統(tǒng)解決方案的性能價(jià)格比考慮的問題成本/效益分析有形成本、效益無形成本、效益價(jià)值和成本的關(guān)系質(zhì)量與價(jià)值、成本的關(guān)系價(jià)值/成本的均衡2024/1/1655經(jīng)濟(jì)可行性考慮的問題(Note5)成本和效益的估算開發(fā)成本的估算開發(fā)效益的估算運(yùn)行成本的估算運(yùn)行效益的估算2024/1/1656成本分析代碼行技術(shù)(page19)任務(wù)估算技術(shù)(page20)總成本、總?cè)肆ο鄬φ`差在內(nèi)Putnam估算模型(page21)COCOMO模型比較復(fù)雜2024/1/1657效益分析系統(tǒng)的經(jīng)濟(jì)效益=使用新系統(tǒng)增加收入+使用心系統(tǒng)可以節(jié)省的運(yùn)行費(fèi)用總的效益和軟件生存周期有關(guān)貨幣的時(shí)間價(jià)值(page23)投資回收期(page23)投資回收率(page23)純收入(page23)投資回收率2024/1/1658系統(tǒng)開發(fā)和每年運(yùn)行費(fèi)用舉例1.系統(tǒng)開發(fā)費(fèi)用(一次).2名系統(tǒng)分析員(450小時(shí)/名,45美元/小時(shí))$40,500.5名系統(tǒng)開發(fā)人員(275小時(shí)/名,36美元/小時(shí))$49,500.1名數(shù)據(jù)庫管理員(30小時(shí)/名,42美元/小時(shí))$1,260.2名技術(shù)寫作者(120小時(shí)/名,25美元/小時(shí))$6,000.1名秘書(160小時(shí)/名,15美元/小時(shí))$2,4002024/1/1659系統(tǒng)開發(fā)和每年運(yùn)行費(fèi)用舉例.1名數(shù)據(jù)通訊專家(60小時(shí)/名,42美元/小時(shí))$2,4002名在轉(zhuǎn)換期間數(shù)據(jù)輸入人員$49,500(40小時(shí)/名,12美元/小時(shí))2024/1/1660系統(tǒng)開發(fā)和每年運(yùn)行費(fèi)用舉例培訓(xùn):三天的開發(fā)人員內(nèi)部培訓(xùn)課程$7,00030個(gè)用戶,三天的內(nèi)部培訓(xùn)課程$10,000物資:復(fù)印$500磁盤、紙張等消耗品$6502024/1/1661系統(tǒng)開發(fā)和每年運(yùn)行費(fèi)用舉例購買硬件、軟件:20臺(tái)工作站W(wǎng)indows軟件$1,00020臺(tái)工作站內(nèi)存升級$8,000網(wǎng)絡(luò)軟件$17,50020臺(tái)工作站辦公軟件產(chǎn)品$20,000系統(tǒng)開發(fā)總費(fèi)用$161,6702024/1/1662系統(tǒng)開發(fā)和每年運(yùn)行費(fèi)用舉例2.年運(yùn)行費(fèi)用(每年)人員:維護(hù)程序員/分析員(250小時(shí)/年,42美元/小時(shí))

$10,500網(wǎng)絡(luò)管理員(300小時(shí)/年,50美元/小時(shí))$15,000購買硬件、軟件升級:硬件$5,000軟件$6,000物資和雜項(xiàng)$3,500每年總運(yùn)行費(fèi)用$40,0002024/1/1663操作可行性

用戶使用可能性時(shí)間進(jìn)度可行性組織和文化上的可行性2024/1/1664社會(huì)可行性(法律可行性)開發(fā)項(xiàng)目是否會(huì)在社會(huì)上或政治上引起侵權(quán)、破壞或其它責(zé)任問題2024/1/1665可行性研究計(jì)劃的完成可行性研究計(jì)劃2024/1/1666§2.3可行性研究的步驟(page15)

(1)復(fù)查確認(rèn)系統(tǒng)目標(biāo)、規(guī)模

(2)研究正使用系統(tǒng)工作流程

(3)導(dǎo)出新系統(tǒng)高層邏輯模型

(4)重新定義問題

(5)導(dǎo)出和評價(jià)供選擇的方案

(6)推薦可行的方案

(7)草擬開發(fā)計(jì)劃

(8)編寫可行性研究報(bào)告,送審2024/1/1667第三章需求分析和規(guī)格說明2024/1/1668§3.1為什么需要需求分析開發(fā)人員往往急于求成希望對開發(fā)進(jìn)行指導(dǎo)希望開發(fā)人員對用戶的要求理解希望用戶理解開發(fā)人員測試部門有理可依2024/1/1669需求分析的任務(wù)

準(zhǔn)確地定義未來系統(tǒng)的目標(biāo),確定為了滿足用戶的需求系統(tǒng)必須做什么。用<需求規(guī)格說明書>規(guī)范的形式準(zhǔn)確地表達(dá)用戶的需求。2024/1/1670什么是用戶需求思考、涉及的幾個(gè)問題如何識(shí)別、獲取需求?

你能夠采取何種手段與用戶進(jìn)行交流溝通?何為需求建模?

你如何理解模型與建模?2024/1/1671軟件需求分析的幾個(gè)階段問題分析問題評估和方案綜合建模規(guī)約復(fù)審系統(tǒng)分析員的主要焦點(diǎn)是“做什么(what)”,不是“怎樣做(how)”2024/1/1672需求獲取面臨的挑戰(zhàn)(Note6)

客戶說不清楚需求需求易變性問題的復(fù)雜性和對問題空間理解的不完備性與不一致性2024/1/1673§3.2需求獲取的常用方法(Note7)建立分析小組領(lǐng)域?qū)<遥褐鹘窍到y(tǒng)分析員:導(dǎo)演客戶訪談問題分析與確認(rèn)某出版社系統(tǒng)調(diào)查表編號(hào)提出問題1您在哪個(gè)部門工作?2出版業(yè)務(wù)流程是什么?3您每日都處理那些文件、數(shù)據(jù)、報(bào)表?4工作中手工處理特別麻煩的事情是什么?5工作中手工處理什么問題解決不了?影響效率的問題有哪些?6您認(rèn)為提高工作效率,節(jié)省工作時(shí)間,減輕工作強(qiáng)度可采取哪些辦法?某出版社系統(tǒng)調(diào)查表編號(hào)提出問題7您的部門需要成本核算和統(tǒng)計(jì)的內(nèi)容有哪些?8您的部門采用計(jì)算機(jī)管理工作情況如何?9如何改進(jìn)業(yè)務(wù)流程使之更合理?10哪些問題是目前傳統(tǒng)手工方法根本無法解決的?11出版社計(jì)算機(jī)管理信息系統(tǒng)需要解決什么問題?2024/1/1676聽一個(gè)故事(Note8)主人公:Contoso制藥公司的高級管理長官GerhardContoso公司的信息系統(tǒng)開發(fā)小組的新管理員Cynthia內(nèi)容:客戶的需求觀

2024/1/1677誰是客戶客戶是指直接或間接從產(chǎn)品中獲得利益的個(gè)人或組織

軟件客戶包括提出要求、支付款項(xiàng)、選擇、具體說明或使用軟件產(chǎn)品的項(xiàng)目風(fēng)險(xiǎn)承擔(dān)者(stakeholder)或是獲得產(chǎn)品所產(chǎn)生的結(jié)果的人。2024/1/1678客戶與開發(fā)人員之間的合作關(guān)系(Note10)

高質(zhì)量的需求來源于客戶與開發(fā)人員之間有效的交流與合作

通常,開發(fā)人員與客戶或客戶代理人成為一種對立關(guān)系

2024/1/1679軟件客戶需求權(quán)利書(1)(Note11)

客戶有如下權(quán)利:1.要求分析人員使用符合客戶語言習(xí)慣的表達(dá)。2.要求分析人員了解客戶系統(tǒng)的業(yè)務(wù)及目標(biāo)。3.要求分析人員組織需求獲取期間所介紹的信息,并編寫軟件需求規(guī)格說明。4.要求開發(fā)人員對需求過程中所產(chǎn)生的工作結(jié)果進(jìn)行解釋說明。5.要求開發(fā)人員在整個(gè)交流過程中保持和維護(hù)一種合作的職業(yè)態(tài)度。2024/1/1680軟件客戶需求權(quán)利書(2)(Note12)6.要求開發(fā)人員對產(chǎn)品的實(shí)現(xiàn)及需求都要提供建議,拿出主意。7.描述產(chǎn)品使其具有易用、好用的特性。8.可以調(diào)整需求,允許重用已有的軟件組件。9.當(dāng)需要對需求進(jìn)行變更時(shí),對成本、影響、得失(trade-off)有個(gè)真實(shí)可信的評估。10.獲得滿足客戶功能和質(zhì)量要求的系統(tǒng),并且這些要求是開發(fā)人員同意的。

2024/1/1681軟件客戶需求義務(wù)書(1)(Note13)客戶有下列義務(wù):1.給分析人員講解業(yè)務(wù)及說明業(yè)務(wù)方面的術(shù)語等專業(yè)問題。2.抽出時(shí)間清楚地說明需求并不斷完善。3.當(dāng)說明系統(tǒng)需求時(shí),力求準(zhǔn)確詳細(xì)。4.需要時(shí)要及時(shí)對需求做出決策。5.要尊重開發(fā)人員的成本估算和對需求的可行性分析。2024/1/1682軟件客戶需求義務(wù)書(2)(Note14)6.對單項(xiàng)需求、系統(tǒng)特性或使用實(shí)例劃分優(yōu)先級。7.評審需求文檔和原型。8.一旦知道要對項(xiàng)目需求進(jìn)行變更,要馬上與開發(fā)人員聯(lián)系。9.在要求需求變更時(shí),應(yīng)遵照開發(fā)組織確定的工作過程來處理。10.尊重需求工程中開發(fā)人員采用的流程(過程)。

2024/1/1683“簽約”意味著什么

(Note15)客戶與開發(fā)人員關(guān)系中的重要部分

客戶代表經(jīng)常把“簽約”看作是毫無意義的

更為重要的是簽名是建立在一個(gè)需求協(xié)議的基線上

與你的重要客戶一起討論權(quán)利書和義務(wù)書,以達(dá)成協(xié)議,并付諸實(shí)踐2024/1/1684高質(zhì)量的需求過程帶來的好處(Note16)開發(fā)后期和整個(gè)維護(hù)階段的重做的工作大大減少

強(qiáng)調(diào)需求質(zhì)量并不能引起某些人的重視,他們錯(cuò)誤地認(rèn)為在需求上消耗多少時(shí)間就會(huì)導(dǎo)致產(chǎn)品開發(fā)推遲多少時(shí)間將選定系統(tǒng)的需求明確地分配到各軟件子系統(tǒng),強(qiáng)調(diào)采用產(chǎn)品工程的系統(tǒng)方法。這樣能簡化硬軟件的集成

2024/1/1685優(yōu)秀需求具有的特性(Note17)1.完整性

2.正確性

3.可行性

4.必要性

5.劃分優(yōu)先級

6.無二義性

7.可驗(yàn)證性

2024/1/1686§3.3需求獲取的內(nèi)容

1.用戶需求分類(1)功能性需求:

定義了系統(tǒng)做什么(描述系統(tǒng)必須支持的功能和過程)(2)非功能性需求(技術(shù)需求):

定義了系統(tǒng)工作時(shí)的特性(描述操作環(huán)境和性能目標(biāo))2024/1/1687兩類需求包括的內(nèi)容(1)功能(2)性能(3)環(huán)境(4)界面(5)用戶或人 的因素(6)文檔(7)數(shù)據(jù)(8)資源(9)安全保密(10)軟件成本消耗 與開發(fā)進(jìn)度(11)質(zhì)量保證2024/1/1688(1)功能需求

系統(tǒng)做什么?系統(tǒng)何時(shí)做什么?系統(tǒng)何時(shí)及如何修改或升級?2024/1/1689(2)性能需求軟件開發(fā)的技術(shù)性指標(biāo)例如:存儲(chǔ)容量限制執(zhí)行速度、相應(yīng)時(shí)間吞吐量2024/1/1690(3)環(huán)境需求硬件設(shè)備:機(jī)型、外設(shè)、接口、地點(diǎn)、分布、溫度、濕度、磁場干擾等軟件:操作系統(tǒng)網(wǎng)絡(luò)數(shù)據(jù)庫2024/1/1691(4)界面需求

有來自其它系統(tǒng)的輸入嗎?到自其它系統(tǒng)的輸出嗎?對數(shù)據(jù)格式有規(guī)定嗎?對數(shù)據(jù)存儲(chǔ)介質(zhì)有規(guī)定嗎?2024/1/1692(5)用戶或人的因素

用戶類型?各種用戶熟練程度?需受何種訓(xùn)練?用戶理解、使用系統(tǒng)的難度?用戶錯(cuò)誤操作系統(tǒng)的可能性?2024/1/1693(6)文檔需求

需哪些文檔?文檔針對哪些讀者?2024/1/1694(7)數(shù)據(jù)需求

輸入、輸出數(shù)據(jù)的格式?接收、發(fā)送數(shù)據(jù)的頻率?數(shù)據(jù)的準(zhǔn)確性和精度?數(shù)據(jù)流量?數(shù)據(jù)需保持的時(shí)間?2024/1/1695(8)資源需求

軟件運(yùn)行時(shí)所需的數(shù)據(jù)、軟件。內(nèi)存空間等資源。軟件開發(fā)、維護(hù)所需的人力、支撐軟件、開發(fā)設(shè)備等。2024/1/1696(9)安全保密要求

需對訪問系統(tǒng)或系統(tǒng)信息加以控制嗎?如何隔離用戶之間的數(shù)據(jù)?用戶程序如何與其它程序和操作系統(tǒng)隔離?系統(tǒng)備份要求?2024/1/1697(10)軟件成本消耗

與開發(fā)進(jìn)度需求開發(fā)有規(guī)定的時(shí)間表嗎?軟硬件投資有無限制?2024/1/1698(11)質(zhì)量保證

系統(tǒng)的可靠性要求?系統(tǒng)必須監(jiān)測和隔離錯(cuò)誤嗎?規(guī)定系統(tǒng)平均出錯(cuò)時(shí)間?出錯(cuò)后,重啟系統(tǒng)允許的時(shí)間?系統(tǒng)變化如何反映到設(shè)計(jì)中?維護(hù)是否包括對系統(tǒng)的改進(jìn)?系統(tǒng)的可移植性?2024/1/1699怎樣寫需求分析報(bào)告作報(bào)告時(shí)要先從宏觀上講一、二、三、四、五,再從細(xì)節(jié)上講A、B、C、D、E。需求分析不象偵探推理那樣從蛛絲馬跡著手。應(yīng)該先了解宏觀的問題,再了解細(xì)節(jié)的問題

如圖

S={D1,D2,D3,…Dn}Di={P1,P2,P3,…Pm}Pj={F1,F(xiàn)2,F(xiàn)3,…Fk}2024/1/16100怎樣寫需求分析報(bào)告2024/1/16101§3.4需求的開發(fā)和管理

整個(gè)軟件需求工程研究領(lǐng)域劃分為需求開發(fā)和需求管理兩部分更合適

需求工程域的層次分解示意圖

2024/1/16102需求開發(fā)(Note18)

問題獲?。╡licitation)分析(analysis)編寫規(guī)格說明(specification)驗(yàn)證(verification)

2024/1/16103知識(shí)技能

(Note19)

絕大部分的軟件開發(fā)人員都沒有接受過高效需求工程所需技能的正規(guī)培訓(xùn)培訓(xùn)需求分析人員所有的開發(fā)人員都應(yīng)接受一個(gè)基本的需求工程培訓(xùn)培訓(xùn)軟件需求的用戶代表和管理人員參與軟件開發(fā)的用戶代表應(yīng)接受為期一天左右,關(guān)于需求工程的培訓(xùn),開發(fā)管理者和客戶管理者也應(yīng)參加讓開發(fā)人員了解應(yīng)用領(lǐng)域的基本概念組織一些簡短的關(guān)于客戶業(yè)務(wù)活動(dòng)、術(shù)語、目標(biāo)等方面的討論會(huì)以幫助開發(fā)人員對應(yīng)用領(lǐng)域有個(gè)基本了解

2024/1/16104需求獲取(1)(Note20)

確定需求開發(fā)過程

編寫項(xiàng)目視圖和范圍文檔項(xiàng)目視圖

將用戶群分類并歸納各自特點(diǎn)

選擇每類用戶的產(chǎn)品代表

建立起典型用戶的核心隊(duì)伍把同類產(chǎn)品或你的產(chǎn)品的先前版本用戶代表召集起來,從他們那里收集目前產(chǎn)品的功能需求和非功能需求

2024/1/16105需求獲取(2)(Note21)讓用戶代表確定使用實(shí)例

召開應(yīng)用程序開發(fā)聯(lián)系會(huì)議

分析用戶工作流程觀察用戶執(zhí)行業(yè)務(wù)任務(wù)的過程

確定質(zhì)量屬性和其它非功能需求在功能需求之外再考慮一下非功能的質(zhì)量特點(diǎn)

通過檢查當(dāng)前系統(tǒng)的問題報(bào)告來進(jìn)一步完善

可查看需求是否有足夠的靈活性以允許重用一些已有的軟件組件

2024/1/16106需求分析(Note22)繪制系統(tǒng)關(guān)聯(lián)圖。建立數(shù)據(jù)字典。為需求建立模型。建立用戶接口原型。確定需求優(yōu)先級。

2024/1/16107需求規(guī)格說明(SRS)(Note23)采用原始模板在你的組織中要為編寫軟件需求文檔定義一種標(biāo)準(zhǔn)模板

指明需求的來源

為每項(xiàng)需求注上標(biāo)號(hào)制定一種慣例來為每項(xiàng)需求提供一個(gè)獨(dú)立的可識(shí)別的標(biāo)號(hào)或記號(hào)

記錄業(yè)務(wù)規(guī)范業(yè)務(wù)規(guī)范創(chuàng)建需求跟蹤能力矩陣

2024/1/16108需求驗(yàn)證(Note24)對需求文檔進(jìn)行正式審查

以需求為依據(jù)編寫測試用例編寫用戶手冊在需求開發(fā)早期即可起草一份用戶手冊確定合格的標(biāo)準(zhǔn)讓用戶描述什么樣的產(chǎn)品才算滿足他們的要求和適合他們使用的

2024/1/16109需求管理(Note25)確定一個(gè)選擇、分析和決策需求變更的過程

建立變更控制委員會(huì)

評估每項(xiàng)選擇的需求變更跟蹤所有受需求變更影響的工作產(chǎn)品建立需求基準(zhǔn)版本和需求控制版本文檔維護(hù)需求變更的歷史記錄記錄跟蹤每項(xiàng)需求的狀態(tài)建立一個(gè)數(shù)據(jù)庫衡量需求穩(wěn)定性記錄基準(zhǔn)需求的數(shù)量和變更數(shù)量使用需求管理工具商業(yè)化的需求管理工具

2024/1/16110項(xiàng)目管理(Note26)選擇一種合適的軟件開發(fā)方法生存周期項(xiàng)目開發(fā)計(jì)劃的進(jìn)度安排將會(huì)不斷改變發(fā)生需求變更時(shí)協(xié)商項(xiàng)目約定編寫文檔和管理與需求相關(guān)的風(fēng)險(xiǎn)跟蹤需求工程所耗的工作量

2024/1/16111分析編寫文檔評審,商議基準(zhǔn)需求說明需求變更過程管理客戶需求市場當(dāng)前基線修正后基線市場,客戶,管理項(xiàng)目環(huán)境需求開發(fā)與需求管理之間的界限(Note27)

2024/1/16112§3.5改進(jìn)需求過程(Note28)軟件開發(fā)過程的改進(jìn)有以下兩個(gè)主要目標(biāo):解決在以前項(xiàng)目或目前項(xiàng)目中遇到的問題。防止和避免你可能在將來的項(xiàng)目中要遇到的問題。2024/1/16113四條改進(jìn)軟件的原則(Note29)改進(jìn)過程應(yīng)該是革命性的、徹底的、連續(xù)的、反復(fù)的

人們和組織機(jī)構(gòu)都只有在他們獲得激勵(lì)時(shí)才愿意變更

過程變更是面向目標(biāo)的將改進(jìn)活動(dòng)看作一些小項(xiàng)目2024/1/16114過程改進(jìn)周期(Note30)

評價(jià)當(dāng)前采用的方法指定活動(dòng)改進(jìn)計(jì)劃創(chuàng)建、實(shí)驗(yàn)和實(shí)施新過程評價(jià)結(jié)果圖:軟件開發(fā)過程改進(jìn)的周期發(fā)現(xiàn)和建議活動(dòng)計(jì)劃新的過程,實(shí)驗(yàn)結(jié)果,獲得經(jīng)驗(yàn)實(shí)施情況怎樣活動(dòng)計(jì)劃的效果如何新過程是否達(dá)到預(yù)期目標(biāo)?計(jì)劃下一步的改進(jìn)周期2024/1/16115§3.6軟件需求與風(fēng)險(xiǎn)管理(Note31)聽一個(gè)故事:同樣在Contoso制藥公司主人公“化學(xué)制品跟蹤系統(tǒng)”的項(xiàng)目管理人員Dave

首席程序員Helen

首席測試員Ramesh

內(nèi)容需求工程的風(fēng)險(xiǎn)為何物?2024/1/16116軟件風(fēng)險(xiǎn)管理的要素(Note32)風(fēng)險(xiǎn)管理就是使用某些工具和步驟把項(xiàng)目風(fēng)險(xiǎn)限制在一個(gè)可接受的范圍內(nèi)。風(fēng)險(xiǎn)管理提供了一種標(biāo)準(zhǔn)的方法來指出風(fēng)險(xiǎn)并把風(fēng)險(xiǎn)因素編成文檔,評估其潛在的威脅,以及確定減少這些風(fēng)險(xiǎn)評價(jià)(riskassessment)風(fēng)險(xiǎn)避免(riskavoidance)

風(fēng)險(xiǎn)控制(riskcontrol)

2024/1/16117編寫項(xiàng)目風(fēng)險(xiǎn)文檔(Note33)2024/1/16118與需求有關(guān)的風(fēng)險(xiǎn)

下面介紹的風(fēng)險(xiǎn)因素是按需求工程中獲取、分析、編寫規(guī)格說明、驗(yàn)證和管理匯總起來的,并推薦了一些方法用于降低風(fēng)險(xiǎn)發(fā)生的可能性或減輕風(fēng)險(xiǎn)發(fā)生給項(xiàng)目帶來的影響。這張清單僅僅是一個(gè)起點(diǎn),在你做項(xiàng)目逐漸積累經(jīng)驗(yàn)過程中,加入你的風(fēng)險(xiǎn)因素清單和減輕風(fēng)險(xiǎn)的策略。使用這里提供的條目來幫助你識(shí)別需求風(fēng)險(xiǎn)并采用條件—結(jié)果的格式來書寫風(fēng)險(xiǎn)說明。2024/1/16119需求獲取

(Note34)1)產(chǎn)品視圖與范圍2)需求開發(fā)所需時(shí)間3)需求規(guī)格說明的完整性和正確性4)對革新產(chǎn)品的需求5)明確非功能需求6)客戶贊同產(chǎn)品需求7)未加說明的需求8)把已有的產(chǎn)品作為需求基線9)給出期望的解決辦法2024/1/16120需求分析(Note35)1)劃分需求優(yōu)先級2)帶來技術(shù)困難的特性3)不熟悉的技術(shù)、方法、語言、工具或硬件平臺(tái)2024/1/16121需求規(guī)格說明

(Note36)1)需求理解2)時(shí)間壓力對TBD的影響3)具有二義性的術(shù)語4)需求說明中包括了設(shè)計(jì)

2024/1/16122需求驗(yàn)證

(Note37)1)未經(jīng)驗(yàn)證的需求2)審查的有效性2024/1/16123需求管理

(Note38)1)變更需求

2)需求變更過程

3)未實(shí)現(xiàn)的需求

4)擴(kuò)充項(xiàng)目范圍

2024/1/16124建立項(xiàng)目視圖與范圍(Note39)一個(gè)項(xiàng)目可能包括一些與軟件沒有直接關(guān)系的需求,例如:硬件的購買、產(chǎn)品的安裝、維護(hù)或廣告。但在此,我們只關(guān)心與軟件產(chǎn)品有關(guān)系的業(yè)務(wù)需求。2024/1/16125通過業(yè)務(wù)需求確定項(xiàng)目視圖(Note40)項(xiàng)目視圖可以把項(xiàng)目參與者定位到一個(gè)共同和明確的方向上

項(xiàng)目視圖描述了產(chǎn)品所涉及的各個(gè)方面和在一個(gè)完美環(huán)境中最終所具有的功能

市場需求文檔

&視圖和范圍的文檔

來自各個(gè)渠道的業(yè)務(wù)需求可能會(huì)發(fā)生沖突

2024/1/16126項(xiàng)目視圖和范圍文檔的模板(Note41)a.業(yè)務(wù)需求a.1背景a.2業(yè)務(wù)機(jī)遇a.3業(yè)務(wù)目標(biāo)a.4客戶或市場需求a.5提供給客戶的價(jià)值a.6業(yè)務(wù)風(fēng)險(xiǎn)b.項(xiàng)目視圖的解決方案b.1項(xiàng)目視圖陳述b.2主要特性b.3假設(shè)和依賴環(huán)境c.范圍和局限性c.1首次發(fā)行的范圍c.2隨后發(fā)行的范圍c.3局限性和專用性d.業(yè)務(wù)環(huán)境d.1客戶概貌d.2項(xiàng)目優(yōu)先級e.產(chǎn)品成功的因素2024/1/16127計(jì)算機(jī)學(xué)科的發(fā)展計(jì)算機(jī)科學(xué)(CS)計(jì)算機(jī)科學(xué)(CS)計(jì)算機(jī)工程(CE)軟件工程(SE)信息系統(tǒng)(IS)計(jì)算學(xué)科(computingdiscipline)計(jì)算學(xué)科是研究通過在計(jì)算機(jī)上建立模型并模擬物理過程來進(jìn)行科學(xué)調(diào)查和研究的學(xué)科.學(xué)科的3個(gè)形態(tài)理論抽象(模型化)設(shè)計(jì)重復(fù)出現(xiàn)的概念綁定(binding)概念與形式模型一致性和完備性抽象層次重用……典型的學(xué)科方法:數(shù)學(xué)方法系統(tǒng)科學(xué)方法……

計(jì)算中抽象的本質(zhì)和使用。在處理復(fù)雜事務(wù)、構(gòu)造系統(tǒng)、隱藏細(xì)節(jié)和獲取重復(fù)模式方面使用抽象,通過具有不同層次的細(xì)節(jié)和指標(biāo)的抽象,能夠表達(dá)一個(gè)實(shí)體和系統(tǒng)計(jì)算機(jī)科學(xué)與技術(shù)學(xué)科的方法論2024/1/16129模型(model)模型:現(xiàn)實(shí)世界某些重要方面的表示。有時(shí)我們使用術(shù)語“抽象”來表示模型,因?yàn)槲覀儚默F(xiàn)實(shí)世界中抽象出對我們特別有用的東西。2024/1/16130抽象(模型化)源于實(shí)驗(yàn)科學(xué),主要要素為數(shù)據(jù)采集方法和假設(shè)的形式說明,模型的構(gòu)造與預(yù)測實(shí)驗(yàn)分析結(jié)果分析.在為可能的算法數(shù)據(jù)結(jié)構(gòu)和系統(tǒng)結(jié)構(gòu)等構(gòu)造模型時(shí)使用此過程.抽象的結(jié)果是概念符號(hào)模型2024/1/16131§3.4需求分析的步驟當(dāng)前系統(tǒng)目標(biāo)系統(tǒng)物理模型邏輯模型邏輯模型物理模型模型化抽象化具體化實(shí)例化怎么做做什么當(dāng)前系統(tǒng)目標(biāo)系統(tǒng)需求定義2024/1/16132邏輯模型和物理模型模型是對對象系統(tǒng)的形式化的特征抽象,概括性或近似地表示構(gòu)造模型的過程是一個(gè)抽象、分析的過程。對象系統(tǒng)模型系統(tǒng)抽象(映射)模型應(yīng)用模型構(gòu)造的過程

邏輯模型物理模型

(本質(zhì)模型、概念模型)

(實(shí)施模型、技術(shù)模型)現(xiàn)行系統(tǒng)目標(biāo)系統(tǒng)描述重要的業(yè)務(wù)功能,無論系統(tǒng)是如何實(shí)施的。描述現(xiàn)實(shí)系統(tǒng)是如何在物理上實(shí)現(xiàn)的。描述新系統(tǒng)的主要業(yè)務(wù)功能和用戶新的需求,無論系統(tǒng)應(yīng)如何實(shí)施。描述新系統(tǒng)是如何實(shí)施的(包括技術(shù))。2024/1/16134分析階段中常用的模型

(邏輯模型)數(shù)據(jù)流圖(DFD)實(shí)體―聯(lián)系圖(ERD)類圖實(shí)例圖時(shí)序圖狀態(tài)圖協(xié)作圖事件列表數(shù)據(jù)流定義數(shù)據(jù)元素定義

……2024/1/16135數(shù)據(jù)流圖

(DFD,DataFlowDiagram)(Note42)

描述邏輯模型的圖形工具,表示數(shù)據(jù)在系統(tǒng)內(nèi)的變化。

DFD可以用來表示一個(gè)系統(tǒng)或軟件在任何層次上的抽象。較大型軟件系統(tǒng)DFD分成多層(子圖、父圖概念),可以表示數(shù)據(jù)流和功能的進(jìn)一步的細(xì)節(jié)。2024/1/16136數(shù)據(jù)流程圖的表示(32)數(shù)據(jù)源點(diǎn)和終點(diǎn)變換數(shù)據(jù)的加工文件數(shù)據(jù)邏輯關(guān)系符號(hào):與、或、異或2024/1/16137畫數(shù)據(jù)流圖(page32-33)規(guī)則:由外向里畫畫系統(tǒng)的輸出、輸入化系統(tǒng)的內(nèi)部畫加工的內(nèi)部2024/1/16138應(yīng)該注意的幾個(gè)問題(34)適當(dāng)?shù)孛嫈?shù)據(jù)流而不是控制流先考慮穩(wěn)定狀態(tài)忽略瑣碎的枝節(jié)隨時(shí)準(zhǔn)備重畫2024/1/16139分層數(shù)據(jù)流圖對于大型系統(tǒng),往往使用一張數(shù)據(jù)流圖畫出所有數(shù)據(jù)流和加工是不可能的自頂向下逐層分解不要一下子引入過多細(xì)節(jié),應(yīng)該逐步增加細(xì)節(jié)例子(page35):

圖3.13(a)畫出了…..。圖3說明“產(chǎn)生新文件”……。顯然……。2024/1/16140由頂向下畫分層數(shù)據(jù)流圖(page37)描繪中應(yīng)該注意的問題:編號(hào)父圖和子圖的平衡局部文件分解的程度2024/1/16141實(shí)例——運(yùn)動(dòng)會(huì)管理系統(tǒng)自學(xué)3.3.5節(jié)(Page40)2024/1/16142數(shù)據(jù)流圖的改進(jìn)檢查數(shù)據(jù)流圖的正確性數(shù)據(jù)守恒(42)文件的使用(page42)父圖和子圖的平衡(43)提高數(shù)據(jù)流圖的易理解性簡化加工間的聯(lián)系(page43)分解的均勻(page43)適當(dāng)?shù)孛?4)重新分解(page44)2024/1/16143數(shù)據(jù)實(shí)體關(guān)聯(lián)圖(Note43)與數(shù)據(jù)流圖描繪了系統(tǒng)中發(fā)生的過程一樣,實(shí)體聯(lián)系圖(entity-relationshipdiagram,ERD)描繪了系統(tǒng)的數(shù)據(jù)關(guān)系

分析實(shí)體聯(lián)系圖有助于對業(yè)務(wù)或系統(tǒng)數(shù)據(jù)組成的理解和交互,并暗示產(chǎn)品將有必要包含一個(gè)數(shù)據(jù)庫。

實(shí)體(entity)是物理數(shù)據(jù)項(xiàng)(包括人)或者數(shù)據(jù)項(xiàng)的集合,這對所分析的業(yè)務(wù)或所要構(gòu)造的系統(tǒng)是很重要的

2024/1/16144化學(xué)制品倉庫存貨清單化學(xué)制品容器存儲(chǔ)執(zhí)行化學(xué)制品請求1MM1“化學(xué)制品跟蹤系統(tǒng)”的實(shí)體聯(lián)系圖2024/1/16145需求建模實(shí)例

酒店管理系統(tǒng)的局部DFD已預(yù)訂的入住預(yù)訂請求預(yù)訂預(yù)訂確認(rèn)未預(yù)訂的入住已預(yù)訂的入住請求未預(yù)訂的入住請求客人數(shù)據(jù)客房數(shù)據(jù)預(yù)訂確認(rèn)信息客人信息夜審結(jié)算信息財(cái)務(wù)系統(tǒng)時(shí)鐘2024/1/16146需求建模實(shí)例:

某金融貿(mào)易系統(tǒng)用例圖(UML)風(fēng)險(xiǎn)分析交易估計(jì)進(jìn)行交易進(jìn)行交易接待員酒店系統(tǒng)財(cái)務(wù)系統(tǒng)2024/1/16147需求建模實(shí)例:

用例圖舉例(UML)簽定一份保險(xiǎn)單客戶保險(xiǎn)銷售人員銷售統(tǒng)計(jì)客戶統(tǒng)計(jì)需求建模實(shí)例:

UML類圖實(shí)例(Note44)客人姓名地址身份證號(hào)碼護(hù)照號(hào)碼……預(yù)訂……入住住宿編號(hào)付款方式……退房……客房狀態(tài)日期人數(shù)……設(shè)置狀態(tài)

……客房……服務(wù)日期數(shù)量設(shè)置……讀取……服務(wù)類別名稱價(jià)格設(shè)置

……10..*10..*0..*0..11..*10..*1*2024/1/16149需求建模實(shí)例:

描述客房狀態(tài)的狀態(tài)圖(Note45)取消預(yù)定入住已預(yù)訂空閑占用維修維修完成退房換房入住事件創(chuàng)建2024/1/16150需求建模實(shí)例:

接電話的順序圖

(UML)受話者交換機(jī)遠(yuǎn)程交換機(jī)受話者拿起話筒聽通話聲撥號(hào)碼鈴響信號(hào)鈴響鈴響停止信號(hào)

拿起話筒鈴響停止<10

deabc{b-a<1}{e-d<5}{c-b<10}路徑2024/1/16151需求建模實(shí)例:

UML協(xié)作圖舉例計(jì)算機(jī)隊(duì)列打印服務(wù)器打印機(jī)打印文件

打印機(jī)忙保存打印文件打印機(jī)空閑打印文件2024/1/16152§3.5數(shù)據(jù)詞典

(DD,DataDictionary) DD是對所有與系統(tǒng)相關(guān)的數(shù)據(jù)元素的一個(gè)有組織的列表,以及精確的、嚴(yán)格的定義,使得用戶和系統(tǒng)分析員對于輸入、輸出、存儲(chǔ)成分和中間計(jì)算有共同的理解2024/1/16153詞典與數(shù)據(jù)流圖之間關(guān)系(page44)數(shù)據(jù)流圖描述了系統(tǒng)的“分解”;依靠“詞典”來說明各個(gè)成分的含義;數(shù)據(jù)流圖中所有名字的定義就構(gòu)成一本詞典;數(shù)據(jù)流圖和詞典結(jié)合在一起構(gòu)成了“需求說明書”數(shù)據(jù)流圖中出現(xiàn)的每一個(gè)數(shù)據(jù)流名、每一個(gè)文件名和每一個(gè)加工名在詞典中都應(yīng)該有一個(gè)條目給出這個(gè)名字的定義。2024/1/16154詞典條目的各種類型(page.45)四個(gè)類型條目數(shù)據(jù)流文件數(shù)據(jù)項(xiàng)(指不在分解的數(shù)據(jù)單位)加工詞典條目的實(shí)例(page46-47)結(jié)合上次自習(xí)的內(nèi)容自行學(xué)習(xí)本節(jié)2024/1/16155需求建模實(shí)例:

數(shù)據(jù)字典條目的定義預(yù)訂請求=客人數(shù)據(jù)+住宿期限+客房類別客人數(shù)據(jù)=客人姓名+地址+身份證號(hào)碼

+[護(hù)照號(hào)碼]+支付方式身份證號(hào)碼=十進(jìn)制15{數(shù)字}18護(hù)照號(hào)碼=字母+8{數(shù)字}8字母=“A”…“Z”十進(jìn)制數(shù)字=“0”…“9”2024/1/16156需求建模實(shí)例:

數(shù)據(jù)字典條目的定義F1:航班信息文件={航空公司名稱+航班號(hào)+起點(diǎn)+終點(diǎn)+日期+起飛時(shí)間+降落時(shí)間}航空公司名稱=2{字母}4

航班號(hào)=3{十進(jìn)制數(shù)字}3

字母=“A”…“Z”十進(jìn)制數(shù)字=“0”…“9”起點(diǎn)=終點(diǎn)=1{漢字}10

起飛時(shí)間=降落時(shí)間=時(shí)+分2024/1/16157需求建模實(shí)例:

數(shù)據(jù)字典條目的定義

時(shí)=“00”…“23”

分=“00”…“59”

日期=年+月+日年=[2000|2001|2002|2004]

月=“01”…“12”

日=“01”…“31”2024/1/16158§3.6小說明數(shù)據(jù)流圖中每一個(gè)基本加工(即不再進(jìn)一步被分解的加工)都必須有一個(gè)“小說明”小說明中應(yīng)精確描述用戶要求一個(gè)加工“做什么”

加工的激發(fā)條件加工邏輯加工優(yōu)先級加工執(zhí)行頻率出錯(cuò)處理2024/1/16159結(jié)構(gòu)化的語言(page51)構(gòu)成方式語態(tài)詞匯舉例2024/1/16160判定表與判定樹(56)有些問題不易用單純的語言表達(dá)判定表組成:條件樁條件條目操作樁操作條目判定樹2024/1/16161§3.7模型的作用在建模過程中了解系統(tǒng)通過抽象降低復(fù)雜性有助于回憶所有的細(xì)節(jié)有助于開發(fā)小組間的交流有助于與用戶的交流為系統(tǒng)的維護(hù)提供文檔

2024/1/16162需求分析建模方法分析建模方法結(jié)構(gòu)化分析(傳統(tǒng)建模方法)面向?qū)ο蠓治?024/1/16163模型的作用計(jì)算機(jī)世界現(xiàn)實(shí)世界影射計(jì)算機(jī)世界現(xiàn)實(shí)世界結(jié)構(gòu)化開發(fā)方法結(jié)構(gòu)化分析結(jié)構(gòu)化設(shè)計(jì)結(jié)構(gòu)化編程OOAOODOOP面向?qū)ο箝_發(fā)方法模型的作用2024/1/16165結(jié)構(gòu)化分析模型的組成結(jié)構(gòu)數(shù)據(jù)流圖

(DFD)E-R圖狀態(tài)變遷圖(STD圖)加工說明控制說明數(shù)據(jù)對象說明數(shù)據(jù)字典(DD)2024/1/16166面向?qū)ο蠓治瞿P偷慕M成結(jié)構(gòu)對象-關(guān)系模型類/對象模型對象-行為模型使用實(shí)例(UseCase)操作、屬性、協(xié)作者2024/1/16167重點(diǎn)小結(jié)2024/1/16168§3.8結(jié)構(gòu)化分析方法(StructuredAnalisys,SA)基于數(shù)據(jù)流技術(shù)的分析方法

需求獲取應(yīng)遵循的三條基本原則:分解抽象投影2024/1/16169分析模型的元素?cái)?shù)據(jù)字典(DD):模型核心(中心庫)E-R圖(ERD):數(shù)據(jù)流圖(DFD)

指明數(shù)據(jù)在系統(tǒng)中移動(dòng)時(shí)如何被變換;描述對數(shù)據(jù)流進(jìn)行變換的功能;DFD中每個(gè)功能的描述包含在加工規(guī)約(小說明)。狀態(tài)變遷圖(STD)

指明作為外部事件的結(jié)果,系統(tǒng)將如何動(dòng)作。2024/1/16170E-R圖是數(shù)據(jù)建模的基礎(chǔ)客人入住客房狀態(tài)客房服務(wù)服務(wù)類別姓名地址身份證號(hào)碼護(hù)照號(hào)碼電話……客房號(hào)床位數(shù)房間類別價(jià)格1……住宿編號(hào)住宿時(shí)間支付方式……日期,客人數(shù)狀態(tài)(已預(yù)定/占用/維修中)……日期,數(shù)量……名稱,價(jià)格……2024/1/16171將分析模型轉(zhuǎn)換為軟件設(shè)計(jì)數(shù)據(jù)字典數(shù)據(jù)流圖E-R圖狀態(tài)變遷圖加工規(guī)約控制規(guī)約數(shù)據(jù)對描

述象數(shù)據(jù)設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)接口設(shè)計(jì)過程設(shè)計(jì)分析模型設(shè)計(jì)模型2024/1/16172§3.9實(shí)例考務(wù)處理系統(tǒng)功能(1)對考生送來的報(bào)名單進(jìn)行檢查;(2)對合格的報(bào)名單編好準(zhǔn)考證號(hào)后將準(zhǔn)考證送給考生,并將匯總后的考生名單送給閱卷站;(3)對閱卷站送來的成績單進(jìn)行檢查,并根據(jù)考試中心制定的合格標(biāo)準(zhǔn)審定合格者;(4)制作考生通知單(含成績及合格/不合格標(biāo)志)送給考生;(5)按地區(qū)進(jìn)行成績分類統(tǒng)計(jì)和試題難度分析,產(chǎn)生統(tǒng)計(jì)分析表。2024/1/16173實(shí)例

考務(wù)處理系統(tǒng)功能考務(wù)處理系統(tǒng)的分層DFD如下:2024/1/16174頂層數(shù)據(jù)流圖考生考務(wù)處理系統(tǒng)考試中心閱卷站不合格報(bào)名單報(bào)名單準(zhǔn)考證考生通知單成績清單合格標(biāo)準(zhǔn)錯(cuò)誤成績清單考生名單統(tǒng)計(jì)分析表2024/1/161750層數(shù)據(jù)流圖登記報(bào)名單報(bào)名單準(zhǔn)考證1統(tǒng)計(jì)成績2不合格報(bào)名單考生通知單成統(tǒng)計(jì)分析表考生名冊績清單合格標(biāo)準(zhǔn)考生名單成績清單錯(cuò)誤2024/1/16176一層數(shù)據(jù)流圖

(a)檢查報(bào)名單報(bào)名單準(zhǔn)考證1.1編準(zhǔn)考證號(hào)1.2不合格報(bào)名單考生名冊考生名單合格報(bào)名單登記考生1.32024/1/16177一層數(shù)據(jù)流圖(b)檢查成績清單2.1審定合格者2.2考生名冊正確成績清單制作通知單2.3分析統(tǒng)計(jì)成績2.4分析試題難度2.5試題得分清單考生通知單難度分析表合格標(biāo)準(zhǔn)分類統(tǒng)計(jì)表成績清單錯(cuò)誤成績清單經(jīng)審定的成績清單S2132.22.12.33.13.2

頂層(不編號(hào))0層1層2024/1/16179數(shù)據(jù)字典舉例F1:航班信息文件={航空公司名稱+航班號(hào)+起點(diǎn)+終點(diǎn)+日期+起飛時(shí)間+降落時(shí)間}航空公司名稱=2{字母}4

航班號(hào)=3{十進(jìn)制數(shù)字}3

字母=“A”…“Z”十進(jìn)制數(shù)字=“0”…“9”起點(diǎn)=終點(diǎn)=1{漢字}10

起飛時(shí)間=降落時(shí)間=時(shí)+分2024/1/16180再來看看——

結(jié)構(gòu)化分析模型的組成結(jié)構(gòu)數(shù)據(jù)流圖

(DFD)E-R圖狀態(tài)變遷圖(STD圖)加工說明控制說明數(shù)據(jù)對象說明數(shù)據(jù)字典(DD)2024/1/16181§3.11需求分析的其他工作(page63)確定設(shè)計(jì)限制確定驗(yàn)收標(biāo)準(zhǔn)編寫“初步用戶手冊”復(fù)查需求說明書2024/1/16182補(bǔ)充知識(shí)UML語言和圖2024/1/16183UML簡介(NoteL1)UML定義由信息系統(tǒng)三位專家GradyBooch,JamesRumbaugh和IvarJacobonOMG組織采奶作為業(yè)界標(biāo)準(zhǔn)2024/1/16184UML的開發(fā)歷程(NoteL2)Booch’91其它方法OMT-1OOSEBooch’93OMT-2UML0.8UML0.9&0.91UML1.0UML1.1UML同行專家意見OMG認(rèn)證10/9510/96&9/96OMG審核,1/97OMG修正,9/97OMG采用,11/97UML1.32024/1/16185UML架構(gòu)(NoteL3)UML由圖和元模型組成元元模型層元模型層模型層用戶模型層2024/1/16186UML的模型、視圖、圖與

系統(tǒng)架構(gòu)的建模(NoteL4)用例視圖邏輯視圖并發(fā)視圖組件視圖展開視圖2024/1/16187UML與面相對象的軟件分析與設(shè)計(jì)(OOA&D)(NoteL5)標(biāo)準(zhǔn)的表示方法與軟件開發(fā)的成功經(jīng)驗(yàn)集成2024/1/16188UML的應(yīng)用領(lǐng)域(NoteL6)UML被用來為系統(tǒng)建模,它可應(yīng)用的范圍非常廣泛在不同系統(tǒng)中的應(yīng)用信息系統(tǒng)技術(shù)系統(tǒng)嵌入式實(shí)時(shí)系統(tǒng)分布式系統(tǒng)商業(yè)系統(tǒng)2024/1/16189在軟件開發(fā)不同階段的應(yīng)用(NoteL7)需求分析分析設(shè)計(jì)構(gòu)造測試2024/1/16190靜態(tài)建模:用例和用例圖(NoteL8)用例模型的基本組成:用例、角色和系統(tǒng)用例圖:風(fēng)險(xiǎn)分析交易估計(jì)進(jìn)行交易進(jìn)行交易接待員酒店系統(tǒng)財(cái)務(wù)系統(tǒng)2024/1/16191發(fā)現(xiàn)角色(NoteL9)通過回答下淚問題,可以幫助建模者發(fā)現(xiàn)角色使用系統(tǒng)主要功能的人是誰?需要借助于系統(tǒng)完成日常工作的人是誰?誰來維護(hù)、管理系統(tǒng),保證系統(tǒng)正常工作系統(tǒng)控制的硬件設(shè)備有哪些?系統(tǒng)需要與哪些其它系統(tǒng)交互?對系統(tǒng)產(chǎn)生的結(jié)果感興趣的人或事是哪些?2024/1/16192發(fā)現(xiàn)用例(NoteL10)詢問以下問題角色需要從系統(tǒng)中獲得哪種功能?角色需要做什么?角色需要讀取、產(chǎn)生、刪除、修改或存儲(chǔ)系統(tǒng)中的信息嗎?系統(tǒng)中發(fā)生的事件需要通知角色嗎?如果用系統(tǒng)的新功能處理角色的日常工作是簡化了還是提高了工作效率?2024/1/16193UML中的用例(NoteL11)2024/1/16194用例之間的關(guān)系(NoteL12)2024/1/16195描述用例

(NoteL13)2024/1/16196測試用例(NoteL14)用例可用于測試系統(tǒng)的正確性和有效性。正確性表明系統(tǒng)的實(shí)現(xiàn)符合規(guī)格說明。有效性保證開發(fā)的系統(tǒng)是用戶真正需要的系統(tǒng)2024/1/16197實(shí)現(xiàn)用例

(NoteL15)UML中實(shí)現(xiàn)用例的基本思想是用協(xié)作表示用例,而協(xié)作又被細(xì)化為用若干個(gè)圖。協(xié)作的實(shí)現(xiàn)用腳本描述。2024/1/16198第四章設(shè)計(jì)方法2024/1/16199主要內(nèi)容(Note46)▲

什么是結(jié)構(gòu)化設(shè)計(jì)▲結(jié)構(gòu)化設(shè)計(jì)方法的主要思想▲結(jié)構(gòu)化設(shè)計(jì)的重要組成部分▲結(jié)構(gòu)化設(shè)計(jì)的方法2024/1/16200結(jié)構(gòu)化設(shè)計(jì)的工作原理(Note47)結(jié)構(gòu)化設(shè)計(jì)目標(biāo)結(jié)構(gòu)化設(shè)計(jì)的優(yōu)點(diǎn)利用模塊結(jié)構(gòu)減少開發(fā)和維護(hù)軟件的費(fèi)用2024/1/16201軟件設(shè)計(jì)分為兩個(gè)階段:(1)概要設(shè)計(jì)(總體設(shè)計(jì))(Page66)確定軟件的結(jié)構(gòu)以及各組成成分(子系統(tǒng)或模塊)之間的相互關(guān)系。(2)詳細(xì)設(shè)計(jì)確定模塊內(nèi)部的算法和數(shù)據(jù)結(jié)構(gòu),產(chǎn)生描述各模塊程序過程的詳細(xì)文檔。2024/1/16202模塊模塊是魚油一定功能的可以用名詞調(diào)用的程序語句集合,如:獨(dú)立的匯編程序COBOL的段和節(jié)Pascal過程FORTRAN的子程序匯編的宏2024/1/16203控制結(jié)構(gòu)(程序結(jié)構(gòu))控制結(jié)構(gòu)是軟件模塊間關(guān)系的表示2024/1/16204控制結(jié)構(gòu)圖示:2024/1/16205控制結(jié)構(gòu)的層次規(guī)則只有一個(gè)頂層(0層)模塊

0層外任一模塊都會(huì)在它的鄰層存在一模塊與它有關(guān)同層模塊間不發(fā)生聯(lián)系2024/1/16206軟件結(jié)構(gòu)度量術(shù)語深度寬度扇出扇入(模塊的層數(shù))(同一層最大模塊數(shù))(一個(gè)模塊直接調(diào)用的模塊數(shù))(調(diào)用一個(gè)給定模塊的模塊個(gè)數(shù))2024/1/16207模塊化(Modularity)模塊化是好的軟件設(shè)計(jì)的一個(gè)基本準(zhǔn)則高層模塊從整體上把握問題,隱蔽細(xì)節(jié)復(fù)雜問題較小問題

分解可減小解題所需的總的工作分解2024/1/16208抽象(Abstraction)抽象原則應(yīng)用舉例WindowsNT一體化的I/O系統(tǒng)設(shè)計(jì)文件管理網(wǎng)絡(luò)管理設(shè)備管理高速緩沖存儲(chǔ)器OS對虛擬文件的字節(jié)流,虛擬文件可為任何設(shè)備和實(shí)體抽象2024/1/16209例:將問題(P1+P2)分解為P1,P2設(shè)函數(shù)C(x)定義問題

x

的復(fù)雜程度函數(shù)E(x)確定解決問題

x

需要的工作量對問題P1和P2,如:

C(P1)>C(P2)顯然:E(P1)>E(P2)有規(guī)律:C(P1+P2)>C(P1)+C(P2)

E(P1+P2)>E(P1)+E(P2)

"各個(gè)擊破"理論2024/1/16210模塊度(Note48)成本或工作量模塊數(shù)量軟件總成本集成成本成本/模塊M最小成本區(qū)域2024/1/16211結(jié)構(gòu)化設(shè)計(jì)的適用范圍(Note49)尤其適用于采用結(jié)構(gòu)化程序設(shè)計(jì)實(shí)現(xiàn)的系統(tǒng)結(jié)構(gòu)化設(shè)計(jì)并不是一種廣泛適用的系統(tǒng)設(shè)計(jì)技術(shù)什么人來完成設(shè)計(jì)呢?結(jié)構(gòu)化設(shè)計(jì)的結(jié)果2024/1/16212SA與SD的關(guān)系(Note50)結(jié)構(gòu)化分析的結(jié)果結(jié)構(gòu)化設(shè)計(jì)的工具數(shù)據(jù)流圖初始結(jié)構(gòu)圖生存周期字典的數(shù)據(jù)部分設(shè)計(jì)數(shù)據(jù)字典偽碼實(shí)現(xiàn)方面?zhèn)未a實(shí)體關(guān)系圖數(shù)據(jù)庫設(shè)計(jì)事務(wù)框圖分層、細(xì)化事務(wù)模型2024/1/16213SD來源于SA來源:結(jié)構(gòu)化分析來源:結(jié)構(gòu)化分析來源:結(jié)構(gòu)化分析數(shù)據(jù)流圖字典項(xiàng)偽碼實(shí)體關(guān)系圖事務(wù)框圖環(huán)境的限制質(zhì)量的標(biāo)準(zhǔn)轉(zhuǎn)化分析細(xì)化設(shè)計(jì)進(jìn)入實(shí)現(xiàn)階段初始結(jié)構(gòu)框圖2024/1/16214概要設(shè)計(jì)的基本概念將系統(tǒng)劃分成模塊(Page66)決定每個(gè)模塊的功能(Page66)決定模塊的調(diào)用關(guān)系(Page66)決定模塊的界面,即模塊間傳遞的數(shù)據(jù)(Page66)2024/1/16215結(jié)構(gòu)化設(shè)計(jì)(SD方法)概要相對獨(dú)立、單一功能的模塊(page67)塊間聯(lián)系和塊內(nèi)聯(lián)系(page67)描述方法(page68)步驟(page69)2024/1/16216結(jié)構(gòu)圖(SCStructureChart)結(jié)構(gòu)圖主要成分(page68)模塊——用方框表示,方框中寫有模塊的名字,一個(gè)模塊的名字應(yīng)適當(dāng)?shù)胤从尺@個(gè)模塊的功能,這就在某種程度上反映了塊內(nèi)聯(lián)系;調(diào)用——從一個(gè)模塊指向另一個(gè)模塊的箭頭表示前一模塊中含有對后一模塊的調(diào)用;數(shù)據(jù)——調(diào)用箭頭邊上的小箭頭表示調(diào)用時(shí)從一個(gè)模塊傳入送給另一個(gè)模塊的數(shù)據(jù),小箭頭也指出了傳送的方向。2024/1/16217結(jié)構(gòu)圖(SCStructureChart)SD方法在概要設(shè)計(jì)中的主要表達(dá)工具約定:編輯學(xué)生記錄讀學(xué)生記錄學(xué)生數(shù)據(jù)無此學(xué)生學(xué)號(hào)不加區(qū)分的數(shù)據(jù)數(shù)據(jù)信息控制信息2024/1/16218SC中的四種模塊傳入模塊(a)(b)AA傳出模塊BB變換模塊(c)CD協(xié)調(diào)模塊E(d)EFF2024/1/16219SC中的選擇調(diào)用ACBDA根據(jù)內(nèi)部判斷決定是否調(diào)用BA按另一判定結(jié)果選擇調(diào)用C或D2024/1/16220SC中的循環(huán)調(diào)用ABCA根據(jù)內(nèi)在的循環(huán)重復(fù)調(diào)用B、C等模塊2024/1/16221結(jié)構(gòu)圖(SC)舉例醫(yī)院管理系統(tǒng)門診管理藥房管理藥庫管理病房管理財(cái)務(wù)管理處方掛號(hào)處理掛號(hào)費(fèi)總計(jì)掛號(hào)單掛號(hào)費(fèi)總計(jì)出庫處理進(jìn)藥管理病歷管理處方管理常規(guī)處理2024/1/16222酒店管理信息系統(tǒng)功能結(jié)構(gòu)圖HMIS收銀管理子系統(tǒng)收銀管理子系統(tǒng)收銀管理子系統(tǒng)客人登記預(yù)定登記客房處理歷史記錄客房查詢預(yù)定查詢餐桌安排菜單作業(yè)營業(yè)結(jié)帳匯總打印各類查詢初始設(shè)置客帳處理退房處理夜審處理客帳查詢報(bào)表打印2024/1/16223大型零售商場管理信息系統(tǒng)功能結(jié)構(gòu)圖TMMIS系統(tǒng)維護(hù)POS系統(tǒng)零售實(shí)時(shí)系統(tǒng)商品進(jìn)貨管理商品批發(fā)管理商品庫存管理商品及商品帳管理顧客管理連鎖店管理財(cái)務(wù)管理人事工資管理計(jì)劃統(tǒng)計(jì)管理經(jīng)理查詢2024/1/16224信息隱蔽(InformationHiding)模塊所包含的信息,不允許其它不需要這些信息的模塊訪問,獨(dú)立的模塊間僅僅交換為完成系統(tǒng)功能而必須交換的信息。2024/1/16225塊間聯(lián)系塊間聯(lián)系大?。悍绞健⒆饔?、數(shù)量聯(lián)系方式(Page71)用過程語句調(diào)用、直接引用共用信息的作用(Page73)公用信息的數(shù)量(Page74)表格4.1(page75)2024/1/16226塊內(nèi)聯(lián)系偶然型(Page76)邏輯型(Page76)瞬時(shí)型(Page77)通訊型(Page77)順序型(Page78)功能型(Page78)2024/1/16227偶然內(nèi)聚(巧合內(nèi)聚)ABCMMOVEOTORREADFILEFMOVESTOT模塊M中的三個(gè)語句沒有任何聯(lián)系缺點(diǎn):可理解性差,可修改性差例:2024/1/16228邏輯內(nèi)聚把幾種相關(guān)功能(邏輯上相似的功能)組合在一模塊內(nèi),每次調(diào)用由傳給模塊的參數(shù)確定執(zhí)行哪種功能。2024/1/16229邏輯內(nèi)聚模塊ABCEFGABCEFGA1B1C1EFG模塊內(nèi)部邏輯E、F、G邏輯功能相似,組成新模塊EFG缺點(diǎn):增強(qiáng)了耦合程度(控制耦合)

不易修改,效率低公用代碼段公用代碼段2024/1/16230時(shí)間內(nèi)聚(經(jīng)典內(nèi)聚)模塊完成的功能必須在同一時(shí)間內(nèi)執(zhí)行,這些功能只因時(shí)間因素關(guān)聯(lián)在一起。例如:初始化系統(tǒng)模塊、系統(tǒng)結(jié)束模塊、緊急故障處理模塊等均是時(shí)間性聚合模塊.2024/1/16231過程內(nèi)聚(順序性組合)模塊內(nèi)各處理成分相關(guān),且必須以特定次序執(zhí)行2024/1/16232過程內(nèi)聚模塊讀入成績單審查成績單統(tǒng)計(jì)成績打印成績讀入并審查成績單統(tǒng)計(jì)并打印成績單2024/1/16233通信內(nèi)聚模塊內(nèi)各部分使用相同的輸入數(shù)據(jù),或產(chǎn)生相同的輸出結(jié)果2024/1/16234通信內(nèi)聚模塊例產(chǎn)生工資報(bào)表計(jì)算平均工資職工工資記錄職工工資報(bào)表平均工資產(chǎn)生職工工資報(bào)表并計(jì)算平均工資模塊2024/1/16235信息內(nèi)聚模塊完成多個(gè)功能,各功能都在同一數(shù)據(jù)結(jié)構(gòu)上操作,每一功能有唯一入口。2024/1/16236信息內(nèi)聚模塊符號(hào)

表查找登錄刪除修改幾個(gè)加工同時(shí)引用一個(gè)共同的數(shù)據(jù)2024/1/16237功能內(nèi)聚模塊僅包括為完成某個(gè)功能所必須的所有成分。模塊所有成分共同完成一個(gè)功能,缺一不可

內(nèi)聚性最強(qiáng)2024/1/16238塊間聯(lián)系無直接關(guān)系型數(shù)據(jù)耦合標(biāo)記耦合控制耦合外部耦合公共耦合內(nèi)容耦合2024/1/16239(1)無直接耦合

兩個(gè)模塊沒有直接關(guān)系(模塊1和模塊2),模塊獨(dú)立性最強(qiáng)。模塊1模塊2模塊3模塊4240(2)數(shù)據(jù)耦合

一模塊調(diào)用另一模塊時(shí),被調(diào)用模塊的輸入、輸出都是簡單的數(shù)據(jù)(若干參數(shù))。屬松散耦合。241數(shù)據(jù)耦合舉例開發(fā)票計(jì)算水費(fèi)單價(jià)數(shù)量金額242(3)標(biāo)記耦合(復(fù)合型耦合)

如兩個(gè)模塊通過傳遞數(shù)據(jù)結(jié)構(gòu)(不是簡單數(shù)據(jù),而是記錄、數(shù)組等)加以聯(lián)系,或都與一個(gè)數(shù)據(jù)結(jié)構(gòu)有關(guān)系,則稱這兩個(gè)模塊間存在標(biāo)記偶合。243標(biāo)記耦合舉例計(jì)算水電費(fèi)計(jì)算水費(fèi)計(jì)算電費(fèi)住戶情況水費(fèi)電費(fèi)住戶情況“住戶情況”是一個(gè)數(shù)據(jù)結(jié)構(gòu),圖中模塊都與此數(shù)據(jù)結(jié)構(gòu)有關(guān).“計(jì)算水費(fèi)”和“計(jì)算電費(fèi)”本無關(guān),由于引用了此數(shù)據(jù)結(jié)構(gòu)產(chǎn)生依賴關(guān)系,它們之間也是標(biāo)記偶合.244將標(biāo)記耦

溫馨提示

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

評論

0/150

提交評論