版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
2024/1/161第一章軟件工程概述2024/1/162§1.1軟件工程的背景和歷史1968年由NATO(北大西洋公約組織)在德國Garmish召開的學術會議上,FeitzBauer首先提出了“軟件工程”概念。2024/1/163軟件工程與編程前者是一門學科,一種科學理論來指導軟件系統開發(fā),標準化,自動化的過程考慮如何分解一個系統,以便各人分工開發(fā);考慮如何說明每個部分的規(guī)格要求;怎樣才能易于維護單純的代碼編寫是軟件工程發(fā)展的前身是軟件工程中占據很少時間和空間的一部分2024/1/164計算機學科的發(fā)展計算機科學(CS)計算機科學(CS)計算機工程(CE)軟件工程(SE)信息系統(IS)計算學科(computingdiscipline)2024/1/16560年代以來工廠管理病人監(jiān)護工資統發(fā)圖書館管理機票預定學籍管理
早期
第二階段第三階段第四階段
面向批處理
多用戶
分布式系統
強大的桌面系統
有限的分布
實時
嵌入“智能”
面向對象技術
自定義軟件
數據庫
低成本硬件
專家系統
軟件產品
消費者的影響
人工神經網絡
并行計算
網絡計算機195019601970198019902000Evolutionofsoftware#2024/1/167為什么發(fā)展如此之快不準確的時間和金錢的估算軟件質量的低下相對硬件產品開發(fā)軟件開發(fā)費用的增加維護、增強軟件系統的必要性硬件價格大幅度下降2024/1/168軟件技術面臨的問題
規(guī)模復雜性生產率
Windows95有1000萬行代碼
Windows2000有5000萬行代碼例:Exchange2000和Windows2000開發(fā)人員結構Exchange2000Windows2000項目經理25人約250人開發(fā)人員140人約1700人測試人員350人約3200人2024/1/1610《人月神話》焦油坑
史前史中,沒有別的場景比巨獸在焦油坑中垂死掙扎的場面更令人震撼。上帝見證著恐龍、猛犸象、劍齒虎在焦油中掙扎。它們掙扎得越是猛烈,焦油糾纏得越緊,沒有任何猛獸足夠強壯或具有足夠的技巧,能夠掙脫束縛,它們最后都沉到了坑底。
2024/1/1611軟件危機的主要特征軟件開發(fā)周期大大超過規(guī)定日期;
軟件開發(fā)成本嚴重超標;
軟件質量難于保證。2024/1/1612軟件工程的定義FritzBauer在NATO會議上給出的定義:
“軟件工程是為了經濟地獲得可靠的和能在實際機器上高效運行的軟件而確立和使用的健全的工程原理(方法)?!?024/1/1613軟件工程的定義(2)IEEE【IEE83】給出的軟件工程定義:
“軟件工程是開發(fā)、運行、維護和修復軟件的系統方法。”2024/1/1614軟件工程的定義(3)IEEE【IEE93】給出了一個更加綜合的定義:
“將系統化的、規(guī)范的、可度量的方法應用于軟件的開發(fā)、運行和維護的過程,即將工程化應用于軟件中?!避浖こ淌且婚T交叉學科軟件工程的主要研究內容軟件開發(fā)技術:軟件開發(fā)方法學軟件開發(fā)過程
軟件工具和軟件工程環(huán)境軟件工程管理:軟件管理學軟件經濟學軟件心理學
軟件工程所包含的內容不是一成不變的,隨著人們對軟件系統的研制開發(fā)和生產的理解。應用發(fā)展的眼光看待它。2024/1/1616軟件工程—一種層次化技術工具方法過程質量焦點Softwareengineeringlayers軟件工程三個要素:方法、工具、過程2024/1/1617軟件工程與一般工程的差異軟件是邏輯產品而不是實物產品軟件的功能依賴于硬件和軟件的運行環(huán)境以及人們對它的操作軟件設計的復雜性軟件特征: 功能的多樣性 實現的多樣性 能見度低 軟件結構合理性差智力密集及知識產權保護2024/1/1618軟件工程知識結構
2001年5月ISO/IECJTC1(ISO和IEC的第一聯合技術委員會)發(fā)布了《SWEBOK指南V0.95(試用版)》SWEBOK把軟件工程學科的主體知識分為10個知識領域。2024/1/1619軟件工程知識結構
軟件需求軟件設計軟件構造軟件測試軟件維護軟件配置管理軟件工程管理軟件工程過程軟件工程工具和方法軟件質量2024/1/1620“軟件工程”課程
與其它軟件專業(yè)課的區(qū)別(1)立足于系統的整體。(2)講授系統分析、系統設計、測試及維護的理論和方法。(3)構筑一個軟件系統,實踐軟件開發(fā)全過程。2024/1/1621“軟件工程”課程教學的目標轉變對軟件的認識:上升
程序系統轉變思維定式:上升
程序員系統工程師
(系統分析員)2024/1/1622軟件產品的標準化軟件開發(fā)過程的標準化2024/1/1623軟件的工業(yè)化生產過程應具備的特點:明確的工作步驟詳細具體的規(guī)范化文檔明確的質量評價標準“一個好的工業(yè),應有一套
良好的標準來配套”2024/1/1624軟件工程技術的兩個特點
強調規(guī)范化強調文檔化2024/1/1625§1.2軟件和軟件生命期模型(SoftwareLifeCycle)軟件產品或軟件系統從設計、投入使用到被淘汰的全過程。2024/1/1626軟件生存期的階段劃分(1)可行性研究與計劃(2)需求分析(3)總體設計(4)詳細設計(5)實現(6)集成測試(7)確認測試(8)使用和維護成長期(開發(fā)期)懷孕期(計劃期)
成年期(運行期)2024/1/1627新的國際標準定義的軟件生存過程(1995ISO/IEC12207)軟件生存期過程支持過程組織過程主要過程獲取過程供應過程開發(fā)過程運行過程維護過程文檔編制過程配置管理過程質量保證過程驗證過程確認過程聯合評審過程審核過程問題解決過程管理過程基礎設施過程改進過程培訓過程2024/1/1628軟件工作的范圍只考慮編寫程序
涉及整個軟件生存周期擴展到2024/1/1629
軟件開發(fā)模型是軟件開發(fā)全部過程、活動和任務的結構框架。它能直觀表達軟件開發(fā)全過程,明確規(guī)定要完成的主要活動、任務和開發(fā)策略。軟件開發(fā)模型也常稱為: 軟件過程模型 軟件生存周期模型 軟件工程范型軟件開發(fā)模型可行性研究與計劃需求分析設計編碼運行維護測試定義階段開發(fā)階段維護階段瀑布模型(WaterfallModel)2024/1/1631開發(fā)軟件不僅僅是編程2024/1/1632按照傳統瀑布模型開發(fā)軟件的特點1.階段間具有順序性和依賴性。2.推遲實現的觀點。3.每個階段必須完成規(guī)定的文檔;
每個階段結束前完成文檔審查,
及早改正錯誤。2024/1/1633原型模型(快速原型模型)原型范型用戶測試運行原型建造/修改原型
聽取用戶意見采用原型模型的軟件生存周期分析定義系統需求生成原型系統設計程序設計編碼測試運行和維護原型化含原型化的軟件生存期2024/1/1635§1.3軟件質量的評價成功的標準:
用戶在用用戶可很容易做完要做的事失敗的根本原因:
開發(fā)人員寫出的東西達不到用戶要求(人的問題.技術問題)2024/1/1636質量與生產率質量是軟件需求方最關心的問題,用戶即使不圖物美價廉,也要求個貨真價實
質量與生產率之間有著內在的聯系,高生產率必須以質量合格為前提
質量與生產率的提高就指望程序員與程序經理
非得在質量與生產率之間分個主次不可,那么應該是質量第一,生產率第二
2024/1/1637質量與生產率(2)質量直接體現在軟件的每段程序中,高質量自然是開發(fā)人員的技術追求,也是職業(yè)道德的要求
高質量對所有的用戶都有價值,而高生產率只對開發(fā)方有意義
如果一開始就追求高生產率,容易使人急功近利,留下隱患
2024/1/1638不貪污的官就是好官嗎“運行正確”的程序就是高質量的程序嗎?也許運行速度很低并且浪費內存;也許代碼寫得一塌糊涂
2024/1/1639軟件的質量因素
軟件的質量因素很多,如正確性、精確性、可靠性、容錯性、性能、效率、易用性、可理解性、簡潔性、可復用性、可擴充性、兼容性等等(還可以列出十幾個)
一般說來傾向于可維護性、可靠性、可理解性和效率2024/1/1640軟件質量因素分類和武學分類正確性與精確性易用性可理解性與簡潔性性能與效率可復用性與可擴充性少林派、武當派華山派昆侖派峨嵋派崆峒派2024/1/1641正確性與精確性
機器不會主動欺騙人,軟件運行不正確或者不精確一般都是人造成的
需求分析錯了,那么對客戶而言這個軟件也存在錯誤
如果軟件沒有100%地按需求規(guī)格執(zhí)行,那么這個軟件也存在錯誤程序員要為“正確”、“精確”四個字竭盡全力
2024/1/1642性能與效率
用戶都希望軟件的運行速度高些(高性能),并且占用資源少些(高效率)
舊社會地主就是這么對待長工的:干活要快點,吃得要少點
通過優(yōu)化算法、數據結構和代碼組織來提高軟件系統的性能與效率優(yōu)化的關鍵工作是找出限制性能與效率的“瓶頸”
2024/1/1643易用性
導致軟件易用性差的根本原因是開發(fā)人員犯了“錯位”的毛?。核詾橹灰约河闷饋矸奖悖脩粢惨欢〞M意
當用戶真的感到軟件很好用時,一股溫暖的感覺油然而生,于是就用“友好”來評價易用性
2024/1/1644可理解性與簡潔性(Note1)
開發(fā)人員只有在自己思路清晰時才可能寫出讓別人能理解的程序
編程時還要注意不可濫用技巧,應該用自然的方式編程
簡潔是一種美
如果把學術文章寫得很簡潔,讓人很容易理解,它往往中不了
2024/1/1645可復用性與可擴充性
一種方式是原封不動地使用現成的軟件構件
一種方式是對現成的軟構件進行必要的擴充后再使用
可復用性好的程序一般也具有良好的可擴充性
2024/1/1646可行性研究與計劃需求分析設計編碼運行維護測試測試已經開始返回上級,再…..瀑布模型的質量保障體系2024/1/1647小結(Note2)軟件的高質量主要是設計出來的不是“管”出來的更不能依賴質量檢查。
2024/1/1648第二章
可行性研究與計劃2024/1/1649系統流程圖(Note3)輸入單據磁盤文件處理輸出單據2024/1/1650數據流程圖數據源點和終點變換數據的加工文件數據邏輯關系符號:與、或、異或2024/1/1651§2.1可行性研究基本概念可行性研究的任務:
可行性研究的主要任務是“了解客戶的要求及現實環(huán)境,從技術、經濟和社會因素等三方面研究并論證本軟件項目的可行性,編寫可行性研究報告,制定初步項目開發(fā)計劃。”2024/1/1652可行性研究的內容(1)技術可行性(2)經濟可行性(3)操作可行性(4)社會可行性(法律可行性)(5)抉擇2024/1/1653技術可行性(Note4)度量一個特定技術信息系統解決方案的實用性及技術資源的可用性考慮的問題開發(fā)風險分析資源分析相關技術的發(fā)展(現有技術能否實現新系統,技術難點、建議采用技術的先進性)2024/1/1654經濟可行性度量系統解決方案的性能價格比考慮的問題成本/效益分析有形成本、效益無形成本、效益價值和成本的關系質量與價值、成本的關系價值/成本的均衡2024/1/1655經濟可行性考慮的問題(Note5)成本和效益的估算開發(fā)成本的估算開發(fā)效益的估算運行成本的估算運行效益的估算2024/1/1656成本分析代碼行技術(page19)任務估算技術(page20)總成本、總人力相對誤差在內Putnam估算模型(page21)COCOMO模型比較復雜2024/1/1657效益分析系統的經濟效益=使用新系統增加收入+使用心系統可以節(jié)省的運行費用總的效益和軟件生存周期有關貨幣的時間價值(page23)投資回收期(page23)投資回收率(page23)純收入(page23)投資回收率2024/1/1658系統開發(fā)和每年運行費用舉例1.系統開發(fā)費用(一次).2名系統分析員(450小時/名,45美元/小時)$40,500.5名系統開發(fā)人員(275小時/名,36美元/小時)$49,500.1名數據庫管理員(30小時/名,42美元/小時)$1,260.2名技術寫作者(120小時/名,25美元/小時)$6,000.1名秘書(160小時/名,15美元/小時)$2,4002024/1/1659系統開發(fā)和每年運行費用舉例.1名數據通訊專家(60小時/名,42美元/小時)$2,4002名在轉換期間數據輸入人員$49,500(40小時/名,12美元/小時)2024/1/1660系統開發(fā)和每年運行費用舉例培訓:三天的開發(fā)人員內部培訓課程$7,00030個用戶,三天的內部培訓課程$10,000物資:復印$500磁盤、紙張等消耗品$6502024/1/1661系統開發(fā)和每年運行費用舉例購買硬件、軟件:20臺工作站Windows軟件$1,00020臺工作站內存升級$8,000網絡軟件$17,50020臺工作站辦公軟件產品$20,000系統開發(fā)總費用$161,6702024/1/1662系統開發(fā)和每年運行費用舉例2.年運行費用(每年)人員:維護程序員/分析員(250小時/年,42美元/小時)
$10,500網絡管理員(300小時/年,50美元/小時)$15,000購買硬件、軟件升級:硬件$5,000軟件$6,000物資和雜項$3,500每年總運行費用$40,0002024/1/1663操作可行性
用戶使用可能性時間進度可行性組織和文化上的可行性2024/1/1664社會可行性(法律可行性)開發(fā)項目是否會在社會上或政治上引起侵權、破壞或其它責任問題2024/1/1665可行性研究計劃的完成可行性研究計劃2024/1/1666§2.3可行性研究的步驟(page15)
(1)復查確認系統目標、規(guī)模
(2)研究正使用系統工作流程
(3)導出新系統高層邏輯模型
(4)重新定義問題
(5)導出和評價供選擇的方案
(6)推薦可行的方案
(7)草擬開發(fā)計劃
(8)編寫可行性研究報告,送審2024/1/1667第三章需求分析和規(guī)格說明2024/1/1668§3.1為什么需要需求分析開發(fā)人員往往急于求成希望對開發(fā)進行指導希望開發(fā)人員對用戶的要求理解希望用戶理解開發(fā)人員測試部門有理可依2024/1/1669需求分析的任務
準確地定義未來系統的目標,確定為了滿足用戶的需求系統必須做什么。用<需求規(guī)格說明書>規(guī)范的形式準確地表達用戶的需求。2024/1/1670什么是用戶需求思考、涉及的幾個問題如何識別、獲取需求?
你能夠采取何種手段與用戶進行交流溝通?何為需求建模?
你如何理解模型與建模?2024/1/1671軟件需求分析的幾個階段問題分析問題評估和方案綜合建模規(guī)約復審系統分析員的主要焦點是“做什么(what)”,不是“怎樣做(how)”2024/1/1672需求獲取面臨的挑戰(zhàn)(Note6)
客戶說不清楚需求需求易變性問題的復雜性和對問題空間理解的不完備性與不一致性2024/1/1673§3.2需求獲取的常用方法(Note7)建立分析小組領域專家:主角系統分析員:導演客戶訪談問題分析與確認某出版社系統調查表編號提出問題1您在哪個部門工作?2出版業(yè)務流程是什么?3您每日都處理那些文件、數據、報表?4工作中手工處理特別麻煩的事情是什么?5工作中手工處理什么問題解決不了?影響效率的問題有哪些?6您認為提高工作效率,節(jié)省工作時間,減輕工作強度可采取哪些辦法?某出版社系統調查表編號提出問題7您的部門需要成本核算和統計的內容有哪些?8您的部門采用計算機管理工作情況如何?9如何改進業(yè)務流程使之更合理?10哪些問題是目前傳統手工方法根本無法解決的?11出版社計算機管理信息系統需要解決什么問題?2024/1/1676聽一個故事(Note8)主人公:Contoso制藥公司的高級管理長官GerhardContoso公司的信息系統開發(fā)小組的新管理員Cynthia內容:客戶的需求觀
2024/1/1677誰是客戶客戶是指直接或間接從產品中獲得利益的個人或組織
軟件客戶包括提出要求、支付款項、選擇、具體說明或使用軟件產品的項目風險承擔者(stakeholder)或是獲得產品所產生的結果的人。2024/1/1678客戶與開發(fā)人員之間的合作關系(Note10)
高質量的需求來源于客戶與開發(fā)人員之間有效的交流與合作
通常,開發(fā)人員與客戶或客戶代理人成為一種對立關系
2024/1/1679軟件客戶需求權利書(1)(Note11)
客戶有如下權利:1.要求分析人員使用符合客戶語言習慣的表達。2.要求分析人員了解客戶系統的業(yè)務及目標。3.要求分析人員組織需求獲取期間所介紹的信息,并編寫軟件需求規(guī)格說明。4.要求開發(fā)人員對需求過程中所產生的工作結果進行解釋說明。5.要求開發(fā)人員在整個交流過程中保持和維護一種合作的職業(yè)態(tài)度。2024/1/1680軟件客戶需求權利書(2)(Note12)6.要求開發(fā)人員對產品的實現及需求都要提供建議,拿出主意。7.描述產品使其具有易用、好用的特性。8.可以調整需求,允許重用已有的軟件組件。9.當需要對需求進行變更時,對成本、影響、得失(trade-off)有個真實可信的評估。10.獲得滿足客戶功能和質量要求的系統,并且這些要求是開發(fā)人員同意的。
2024/1/1681軟件客戶需求義務書(1)(Note13)客戶有下列義務:1.給分析人員講解業(yè)務及說明業(yè)務方面的術語等專業(yè)問題。2.抽出時間清楚地說明需求并不斷完善。3.當說明系統需求時,力求準確詳細。4.需要時要及時對需求做出決策。5.要尊重開發(fā)人員的成本估算和對需求的可行性分析。2024/1/1682軟件客戶需求義務書(2)(Note14)6.對單項需求、系統特性或使用實例劃分優(yōu)先級。7.評審需求文檔和原型。8.一旦知道要對項目需求進行變更,要馬上與開發(fā)人員聯系。9.在要求需求變更時,應遵照開發(fā)組織確定的工作過程來處理。10.尊重需求工程中開發(fā)人員采用的流程(過程)。
2024/1/1683“簽約”意味著什么
(Note15)客戶與開發(fā)人員關系中的重要部分
客戶代表經常把“簽約”看作是毫無意義的
更為重要的是簽名是建立在一個需求協議的基線上
與你的重要客戶一起討論權利書和義務書,以達成協議,并付諸實踐2024/1/1684高質量的需求過程帶來的好處(Note16)開發(fā)后期和整個維護階段的重做的工作大大減少
強調需求質量并不能引起某些人的重視,他們錯誤地認為在需求上消耗多少時間就會導致產品開發(fā)推遲多少時間將選定系統的需求明確地分配到各軟件子系統,強調采用產品工程的系統方法。這樣能簡化硬軟件的集成
2024/1/1685優(yōu)秀需求具有的特性(Note17)1.完整性
2.正確性
3.可行性
4.必要性
5.劃分優(yōu)先級
6.無二義性
7.可驗證性
2024/1/1686§3.3需求獲取的內容
1.用戶需求分類(1)功能性需求:
定義了系統做什么(描述系統必須支持的功能和過程)(2)非功能性需求(技術需求):
定義了系統工作時的特性(描述操作環(huán)境和性能目標)2024/1/1687兩類需求包括的內容(1)功能(2)性能(3)環(huán)境(4)界面(5)用戶或人 的因素(6)文檔(7)數據(8)資源(9)安全保密(10)軟件成本消耗 與開發(fā)進度(11)質量保證2024/1/1688(1)功能需求
系統做什么?系統何時做什么?系統何時及如何修改或升級?2024/1/1689(2)性能需求軟件開發(fā)的技術性指標例如:存儲容量限制執(zhí)行速度、相應時間吞吐量2024/1/1690(3)環(huán)境需求硬件設備:機型、外設、接口、地點、分布、溫度、濕度、磁場干擾等軟件:操作系統網絡數據庫2024/1/1691(4)界面需求
有來自其它系統的輸入嗎?到自其它系統的輸出嗎?對數據格式有規(guī)定嗎?對數據存儲介質有規(guī)定嗎?2024/1/1692(5)用戶或人的因素
用戶類型?各種用戶熟練程度?需受何種訓練?用戶理解、使用系統的難度?用戶錯誤操作系統的可能性?2024/1/1693(6)文檔需求
需哪些文檔?文檔針對哪些讀者?2024/1/1694(7)數據需求
輸入、輸出數據的格式?接收、發(fā)送數據的頻率?數據的準確性和精度?數據流量?數據需保持的時間?2024/1/1695(8)資源需求
軟件運行時所需的數據、軟件。內存空間等資源。軟件開發(fā)、維護所需的人力、支撐軟件、開發(fā)設備等。2024/1/1696(9)安全保密要求
需對訪問系統或系統信息加以控制嗎?如何隔離用戶之間的數據?用戶程序如何與其它程序和操作系統隔離?系統備份要求?2024/1/1697(10)軟件成本消耗
與開發(fā)進度需求開發(fā)有規(guī)定的時間表嗎?軟硬件投資有無限制?2024/1/1698(11)質量保證
系統的可靠性要求?系統必須監(jiān)測和隔離錯誤嗎?規(guī)定系統平均出錯時間?出錯后,重啟系統允許的時間?系統變化如何反映到設計中?維護是否包括對系統的改進?系統的可移植性?2024/1/1699怎樣寫需求分析報告作報告時要先從宏觀上講一、二、三、四、五,再從細節(jié)上講A、B、C、D、E。需求分析不象偵探推理那樣從蛛絲馬跡著手。應該先了解宏觀的問題,再了解細節(jié)的問題
如圖
S={D1,D2,D3,…Dn}Di={P1,P2,P3,…Pm}Pj={F1,F2,F3,…Fk}2024/1/16100怎樣寫需求分析報告2024/1/16101§3.4需求的開發(fā)和管理
整個軟件需求工程研究領域劃分為需求開發(fā)和需求管理兩部分更合適
需求工程域的層次分解示意圖
2024/1/16102需求開發(fā)(Note18)
問題獲?。╡licitation)分析(analysis)編寫規(guī)格說明(specification)驗證(verification)
2024/1/16103知識技能
(Note19)
絕大部分的軟件開發(fā)人員都沒有接受過高效需求工程所需技能的正規(guī)培訓培訓需求分析人員所有的開發(fā)人員都應接受一個基本的需求工程培訓培訓軟件需求的用戶代表和管理人員參與軟件開發(fā)的用戶代表應接受為期一天左右,關于需求工程的培訓,開發(fā)管理者和客戶管理者也應參加讓開發(fā)人員了解應用領域的基本概念組織一些簡短的關于客戶業(yè)務活動、術語、目標等方面的討論會以幫助開發(fā)人員對應用領域有個基本了解
2024/1/16104需求獲取(1)(Note20)
確定需求開發(fā)過程
編寫項目視圖和范圍文檔項目視圖
將用戶群分類并歸納各自特點
選擇每類用戶的產品代表
建立起典型用戶的核心隊伍把同類產品或你的產品的先前版本用戶代表召集起來,從他們那里收集目前產品的功能需求和非功能需求
2024/1/16105需求獲取(2)(Note21)讓用戶代表確定使用實例
召開應用程序開發(fā)聯系會議
分析用戶工作流程觀察用戶執(zhí)行業(yè)務任務的過程
確定質量屬性和其它非功能需求在功能需求之外再考慮一下非功能的質量特點
通過檢查當前系統的問題報告來進一步完善
可查看需求是否有足夠的靈活性以允許重用一些已有的軟件組件
2024/1/16106需求分析(Note22)繪制系統關聯圖。建立數據字典。為需求建立模型。建立用戶接口原型。確定需求優(yōu)先級。
2024/1/16107需求規(guī)格說明(SRS)(Note23)采用原始模板在你的組織中要為編寫軟件需求文檔定義一種標準模板
指明需求的來源
為每項需求注上標號制定一種慣例來為每項需求提供一個獨立的可識別的標號或記號
記錄業(yè)務規(guī)范業(yè)務規(guī)范創(chuàng)建需求跟蹤能力矩陣
2024/1/16108需求驗證(Note24)對需求文檔進行正式審查
以需求為依據編寫測試用例編寫用戶手冊在需求開發(fā)早期即可起草一份用戶手冊確定合格的標準讓用戶描述什么樣的產品才算滿足他們的要求和適合他們使用的
2024/1/16109需求管理(Note25)確定一個選擇、分析和決策需求變更的過程
建立變更控制委員會
評估每項選擇的需求變更跟蹤所有受需求變更影響的工作產品建立需求基準版本和需求控制版本文檔維護需求變更的歷史記錄記錄跟蹤每項需求的狀態(tài)建立一個數據庫衡量需求穩(wěn)定性記錄基準需求的數量和變更數量使用需求管理工具商業(yè)化的需求管理工具
2024/1/16110項目管理(Note26)選擇一種合適的軟件開發(fā)方法生存周期項目開發(fā)計劃的進度安排將會不斷改變發(fā)生需求變更時協商項目約定編寫文檔和管理與需求相關的風險跟蹤需求工程所耗的工作量
2024/1/16111分析編寫文檔評審,商議基準需求說明需求變更過程管理客戶需求市場當前基線修正后基線市場,客戶,管理項目環(huán)境需求開發(fā)與需求管理之間的界限(Note27)
2024/1/16112§3.5改進需求過程(Note28)軟件開發(fā)過程的改進有以下兩個主要目標:解決在以前項目或目前項目中遇到的問題。防止和避免你可能在將來的項目中要遇到的問題。2024/1/16113四條改進軟件的原則(Note29)改進過程應該是革命性的、徹底的、連續(xù)的、反復的
人們和組織機構都只有在他們獲得激勵時才愿意變更
過程變更是面向目標的將改進活動看作一些小項目2024/1/16114過程改進周期(Note30)
評價當前采用的方法指定活動改進計劃創(chuàng)建、實驗和實施新過程評價結果圖:軟件開發(fā)過程改進的周期發(fā)現和建議活動計劃新的過程,實驗結果,獲得經驗實施情況怎樣活動計劃的效果如何新過程是否達到預期目標?計劃下一步的改進周期2024/1/16115§3.6軟件需求與風險管理(Note31)聽一個故事:同樣在Contoso制藥公司主人公“化學制品跟蹤系統”的項目管理人員Dave
首席程序員Helen
首席測試員Ramesh
內容需求工程的風險為何物?2024/1/16116軟件風險管理的要素(Note32)風險管理就是使用某些工具和步驟把項目風險限制在一個可接受的范圍內。風險管理提供了一種標準的方法來指出風險并把風險因素編成文檔,評估其潛在的威脅,以及確定減少這些風險評價(riskassessment)風險避免(riskavoidance)
風險控制(riskcontrol)
2024/1/16117編寫項目風險文檔(Note33)2024/1/16118與需求有關的風險
下面介紹的風險因素是按需求工程中獲取、分析、編寫規(guī)格說明、驗證和管理匯總起來的,并推薦了一些方法用于降低風險發(fā)生的可能性或減輕風險發(fā)生給項目帶來的影響。這張清單僅僅是一個起點,在你做項目逐漸積累經驗過程中,加入你的風險因素清單和減輕風險的策略。使用這里提供的條目來幫助你識別需求風險并采用條件—結果的格式來書寫風險說明。2024/1/16119需求獲取
(Note34)1)產品視圖與范圍2)需求開發(fā)所需時間3)需求規(guī)格說明的完整性和正確性4)對革新產品的需求5)明確非功能需求6)客戶贊同產品需求7)未加說明的需求8)把已有的產品作為需求基線9)給出期望的解決辦法2024/1/16120需求分析(Note35)1)劃分需求優(yōu)先級2)帶來技術困難的特性3)不熟悉的技術、方法、語言、工具或硬件平臺2024/1/16121需求規(guī)格說明
(Note36)1)需求理解2)時間壓力對TBD的影響3)具有二義性的術語4)需求說明中包括了設計
2024/1/16122需求驗證
(Note37)1)未經驗證的需求2)審查的有效性2024/1/16123需求管理
(Note38)1)變更需求
2)需求變更過程
3)未實現的需求
4)擴充項目范圍
2024/1/16124建立項目視圖與范圍(Note39)一個項目可能包括一些與軟件沒有直接關系的需求,例如:硬件的購買、產品的安裝、維護或廣告。但在此,我們只關心與軟件產品有關系的業(yè)務需求。2024/1/16125通過業(yè)務需求確定項目視圖(Note40)項目視圖可以把項目參與者定位到一個共同和明確的方向上
項目視圖描述了產品所涉及的各個方面和在一個完美環(huán)境中最終所具有的功能
市場需求文檔
&視圖和范圍的文檔
來自各個渠道的業(yè)務需求可能會發(fā)生沖突
2024/1/16126項目視圖和范圍文檔的模板(Note41)a.業(yè)務需求a.1背景a.2業(yè)務機遇a.3業(yè)務目標a.4客戶或市場需求a.5提供給客戶的價值a.6業(yè)務風險b.項目視圖的解決方案b.1項目視圖陳述b.2主要特性b.3假設和依賴環(huán)境c.范圍和局限性c.1首次發(fā)行的范圍c.2隨后發(fā)行的范圍c.3局限性和專用性d.業(yè)務環(huán)境d.1客戶概貌d.2項目優(yōu)先級e.產品成功的因素2024/1/16127計算機學科的發(fā)展計算機科學(CS)計算機科學(CS)計算機工程(CE)軟件工程(SE)信息系統(IS)計算學科(computingdiscipline)計算學科是研究通過在計算機上建立模型并模擬物理過程來進行科學調查和研究的學科.學科的3個形態(tài)理論抽象(模型化)設計重復出現的概念綁定(binding)概念與形式模型一致性和完備性抽象層次重用……典型的學科方法:數學方法系統科學方法……
計算中抽象的本質和使用。在處理復雜事務、構造系統、隱藏細節(jié)和獲取重復模式方面使用抽象,通過具有不同層次的細節(jié)和指標的抽象,能夠表達一個實體和系統計算機科學與技術學科的方法論2024/1/16129模型(model)模型:現實世界某些重要方面的表示。有時我們使用術語“抽象”來表示模型,因為我們從現實世界中抽象出對我們特別有用的東西。2024/1/16130抽象(模型化)源于實驗科學,主要要素為數據采集方法和假設的形式說明,模型的構造與預測實驗分析結果分析.在為可能的算法數據結構和系統結構等構造模型時使用此過程.抽象的結果是概念符號模型2024/1/16131§3.4需求分析的步驟當前系統目標系統物理模型邏輯模型邏輯模型物理模型模型化抽象化具體化實例化怎么做做什么當前系統目標系統需求定義2024/1/16132邏輯模型和物理模型模型是對對象系統的形式化的特征抽象,概括性或近似地表示構造模型的過程是一個抽象、分析的過程。對象系統模型系統抽象(映射)模型應用模型構造的過程
邏輯模型物理模型
(本質模型、概念模型)
(實施模型、技術模型)現行系統目標系統描述重要的業(yè)務功能,無論系統是如何實施的。描述現實系統是如何在物理上實現的。描述新系統的主要業(yè)務功能和用戶新的需求,無論系統應如何實施。描述新系統是如何實施的(包括技術)。2024/1/16134分析階段中常用的模型
(邏輯模型)數據流圖(DFD)實體―聯系圖(ERD)類圖實例圖時序圖狀態(tài)圖協作圖事件列表數據流定義數據元素定義
……2024/1/16135數據流圖
(DFD,DataFlowDiagram)(Note42)
描述邏輯模型的圖形工具,表示數據在系統內的變化。
DFD可以用來表示一個系統或軟件在任何層次上的抽象。較大型軟件系統DFD分成多層(子圖、父圖概念),可以表示數據流和功能的進一步的細節(jié)。2024/1/16136數據流程圖的表示(32)數據源點和終點變換數據的加工文件數據邏輯關系符號:與、或、異或2024/1/16137畫數據流圖(page32-33)規(guī)則:由外向里畫畫系統的輸出、輸入化系統的內部畫加工的內部2024/1/16138應該注意的幾個問題(34)適當地命名畫數據流而不是控制流先考慮穩(wěn)定狀態(tài)忽略瑣碎的枝節(jié)隨時準備重畫2024/1/16139分層數據流圖對于大型系統,往往使用一張數據流圖畫出所有數據流和加工是不可能的自頂向下逐層分解不要一下子引入過多細節(jié),應該逐步增加細節(jié)例子(page35):
圖3.13(a)畫出了…..。圖3說明“產生新文件”……。顯然……。2024/1/16140由頂向下畫分層數據流圖(page37)描繪中應該注意的問題:編號父圖和子圖的平衡局部文件分解的程度2024/1/16141實例——運動會管理系統自學3.3.5節(jié)(Page40)2024/1/16142數據流圖的改進檢查數據流圖的正確性數據守恒(42)文件的使用(page42)父圖和子圖的平衡(43)提高數據流圖的易理解性簡化加工間的聯系(page43)分解的均勻(page43)適當地命名(44)重新分解(page44)2024/1/16143數據實體關聯圖(Note43)與數據流圖描繪了系統中發(fā)生的過程一樣,實體聯系圖(entity-relationshipdiagram,ERD)描繪了系統的數據關系
分析實體聯系圖有助于對業(yè)務或系統數據組成的理解和交互,并暗示產品將有必要包含一個數據庫。
實體(entity)是物理數據項(包括人)或者數據項的集合,這對所分析的業(yè)務或所要構造的系統是很重要的
2024/1/16144化學制品倉庫存貨清單化學制品容器存儲執(zhí)行化學制品請求1MM1“化學制品跟蹤系統”的實體聯系圖2024/1/16145需求建模實例
酒店管理系統的局部DFD已預訂的入住預訂請求預訂預訂確認未預訂的入住已預訂的入住請求未預訂的入住請求客人數據客房數據預訂確認信息客人信息夜審結算信息財務系統時鐘2024/1/16146需求建模實例:
某金融貿易系統用例圖(UML)風險分析交易估計進行交易進行交易接待員酒店系統財務系統2024/1/16147需求建模實例:
用例圖舉例(UML)簽定一份保險單客戶保險銷售人員銷售統計客戶統計需求建模實例:
UML類圖實例(Note44)客人姓名地址身份證號碼護照號碼……預訂……入住住宿編號付款方式……退房……客房狀態(tài)日期人數……設置狀態(tài)
……客房……服務日期數量設置……讀取……服務類別名稱價格設置
……10..*10..*0..*0..11..*10..*1*2024/1/16149需求建模實例:
描述客房狀態(tài)的狀態(tài)圖(Note45)取消預定入住已預訂空閑占用維修維修完成退房換房入住事件創(chuàng)建2024/1/16150需求建模實例:
接電話的順序圖
(UML)受話者交換機遠程交換機受話者拿起話筒聽通話聲撥號碼鈴響信號鈴響鈴響停止信號
拿起話筒鈴響停止<10
deabc{b-a<1}{e-d<5}{c-b<10}路徑2024/1/16151需求建模實例:
UML協作圖舉例計算機隊列打印服務器打印機打印文件
打印機忙保存打印文件打印機空閑打印文件2024/1/16152§3.5數據詞典
(DD,DataDictionary) DD是對所有與系統相關的數據元素的一個有組織的列表,以及精確的、嚴格的定義,使得用戶和系統分析員對于輸入、輸出、存儲成分和中間計算有共同的理解2024/1/16153詞典與數據流圖之間關系(page44)數據流圖描述了系統的“分解”;依靠“詞典”來說明各個成分的含義;數據流圖中所有名字的定義就構成一本詞典;數據流圖和詞典結合在一起構成了“需求說明書”數據流圖中出現的每一個數據流名、每一個文件名和每一個加工名在詞典中都應該有一個條目給出這個名字的定義。2024/1/16154詞典條目的各種類型(page.45)四個類型條目數據流文件數據項(指不在分解的數據單位)加工詞典條目的實例(page46-47)結合上次自習的內容自行學習本節(jié)2024/1/16155需求建模實例:
數據字典條目的定義預訂請求=客人數據+住宿期限+客房類別客人數據=客人姓名+地址+身份證號碼
+[護照號碼]+支付方式身份證號碼=十進制15{數字}18護照號碼=字母+8{數字}8字母=“A”…“Z”十進制數字=“0”…“9”2024/1/16156需求建模實例:
數據字典條目的定義F1:航班信息文件={航空公司名稱+航班號+起點+終點+日期+起飛時間+降落時間}航空公司名稱=2{字母}4
航班號=3{十進制數字}3
字母=“A”…“Z”十進制數字=“0”…“9”起點=終點=1{漢字}10
起飛時間=降落時間=時+分2024/1/16157需求建模實例:
數據字典條目的定義
時=“00”…“23”
分=“00”…“59”
日期=年+月+日年=[2000|2001|2002|2004]
月=“01”…“12”
日=“01”…“31”2024/1/16158§3.6小說明數據流圖中每一個基本加工(即不再進一步被分解的加工)都必須有一個“小說明”小說明中應精確描述用戶要求一個加工“做什么”
加工的激發(fā)條件加工邏輯加工優(yōu)先級加工執(zhí)行頻率出錯處理2024/1/16159結構化的語言(page51)構成方式語態(tài)詞匯舉例2024/1/16160判定表與判定樹(56)有些問題不易用單純的語言表達判定表組成:條件樁條件條目操作樁操作條目判定樹2024/1/16161§3.7模型的作用在建模過程中了解系統通過抽象降低復雜性有助于回憶所有的細節(jié)有助于開發(fā)小組間的交流有助于與用戶的交流為系統的維護提供文檔
2024/1/16162需求分析建模方法分析建模方法結構化分析(傳統建模方法)面向對象分析2024/1/16163模型的作用計算機世界現實世界影射計算機世界現實世界結構化開發(fā)方法結構化分析結構化設計結構化編程OOAOODOOP面向對象開發(fā)方法模型的作用2024/1/16165結構化分析模型的組成結構數據流圖
(DFD)E-R圖狀態(tài)變遷圖(STD圖)加工說明控制說明數據對象說明數據字典(DD)2024/1/16166面向對象分析模型的組成結構對象-關系模型類/對象模型對象-行為模型使用實例(UseCase)操作、屬性、協作者2024/1/16167重點小結2024/1/16168§3.8結構化分析方法(StructuredAnalisys,SA)基于數據流技術的分析方法
需求獲取應遵循的三條基本原則:分解抽象投影2024/1/16169分析模型的元素數據字典(DD):模型核心(中心庫)E-R圖(ERD):數據流圖(DFD)
指明數據在系統中移動時如何被變換;描述對數據流進行變換的功能;DFD中每個功能的描述包含在加工規(guī)約(小說明)。狀態(tài)變遷圖(STD)
指明作為外部事件的結果,系統將如何動作。2024/1/16170E-R圖是數據建模的基礎客人入住客房狀態(tài)客房服務服務類別姓名地址身份證號碼護照號碼電話……客房號床位數房間類別價格1……住宿編號住宿時間支付方式……日期,客人數狀態(tài)(已預定/占用/維修中)……日期,數量……名稱,價格……2024/1/16171將分析模型轉換為軟件設計數據字典數據流圖E-R圖狀態(tài)變遷圖加工規(guī)約控制規(guī)約數據對描
述象數據設計體系結構設計接口設計過程設計分析模型設計模型2024/1/16172§3.9實例考務處理系統功能(1)對考生送來的報名單進行檢查;(2)對合格的報名單編好準考證號后將準考證送給考生,并將匯總后的考生名單送給閱卷站;(3)對閱卷站送來的成績單進行檢查,并根據考試中心制定的合格標準審定合格者;(4)制作考生通知單(含成績及合格/不合格標志)送給考生;(5)按地區(qū)進行成績分類統計和試題難度分析,產生統計分析表。2024/1/16173實例
考務處理系統功能考務處理系統的分層DFD如下:2024/1/16174頂層數據流圖考生考務處理系統考試中心閱卷站不合格報名單報名單準考證考生通知單成績清單合格標準錯誤成績清單考生名單統計分析表2024/1/161750層數據流圖登記報名單報名單準考證1統計成績2不合格報名單考生通知單成統計分析表考生名冊績清單合格標準考生名單成績清單錯誤2024/1/16176一層數據流圖
(a)檢查報名單報名單準考證1.1編準考證號1.2不合格報名單考生名冊考生名單合格報名單登記考生1.32024/1/16177一層數據流圖(b)檢查成績清單2.1審定合格者2.2考生名冊正確成績清單制作通知單2.3分析統計成績2.4分析試題難度2.5試題得分清單考生通知單難度分析表合格標準分類統計表成績清單錯誤成績清單經審定的成績清單S2132.22.12.33.13.2
頂層(不編號)0層1層2024/1/16179數據字典舉例F1:航班信息文件={航空公司名稱+航班號+起點+終點+日期+起飛時間+降落時間}航空公司名稱=2{字母}4
航班號=3{十進制數字}3
字母=“A”…“Z”十進制數字=“0”…“9”起點=終點=1{漢字}10
起飛時間=降落時間=時+分2024/1/16180再來看看——
結構化分析模型的組成結構數據流圖
(DFD)E-R圖狀態(tài)變遷圖(STD圖)加工說明控制說明數據對象說明數據字典(DD)2024/1/16181§3.11需求分析的其他工作(page63)確定設計限制確定驗收標準編寫“初步用戶手冊”復查需求說明書2024/1/16182補充知識UML語言和圖2024/1/16183UML簡介(NoteL1)UML定義由信息系統三位專家GradyBooch,JamesRumbaugh和IvarJacobonOMG組織采奶作為業(yè)界標準2024/1/16184UML的開發(fā)歷程(NoteL2)Booch’91其它方法OMT-1OOSEBooch’93OMT-2UML0.8UML0.9&0.91UML1.0UML1.1UML同行專家意見OMG認證10/9510/96&9/96OMG審核,1/97OMG修正,9/97OMG采用,11/97UML1.32024/1/16185UML架構(NoteL3)UML由圖和元模型組成元元模型層元模型層模型層用戶模型層2024/1/16186UML的模型、視圖、圖與
系統架構的建模(NoteL4)用例視圖邏輯視圖并發(fā)視圖組件視圖展開視圖2024/1/16187UML與面相對象的軟件分析與設計(OOA&D)(NoteL5)標準的表示方法與軟件開發(fā)的成功經驗集成2024/1/16188UML的應用領域(NoteL6)UML被用來為系統建模,它可應用的范圍非常廣泛在不同系統中的應用信息系統技術系統嵌入式實時系統分布式系統商業(yè)系統2024/1/16189在軟件開發(fā)不同階段的應用(NoteL7)需求分析分析設計構造測試2024/1/16190靜態(tài)建模:用例和用例圖(NoteL8)用例模型的基本組成:用例、角色和系統用例圖:風險分析交易估計進行交易進行交易接待員酒店系統財務系統2024/1/16191發(fā)現角色(NoteL9)通過回答下淚問題,可以幫助建模者發(fā)現角色使用系統主要功能的人是誰?需要借助于系統完成日常工作的人是誰?誰來維護、管理系統,保證系統正常工作系統控制的硬件設備有哪些?系統需要與哪些其它系統交互?對系統產生的結果感興趣的人或事是哪些?2024/1/16192發(fā)現用例(NoteL10)詢問以下問題角色需要從系統中獲得哪種功能?角色需要做什么?角色需要讀取、產生、刪除、修改或存儲系統中的信息嗎?系統中發(fā)生的事件需要通知角色嗎?如果用系統的新功能處理角色的日常工作是簡化了還是提高了工作效率?2024/1/16193UML中的用例(NoteL11)2024/1/16194用例之間的關系(NoteL12)2024/1/16195描述用例
(NoteL13)2024/1/16196測試用例(NoteL14)用例可用于測試系統的正確性和有效性。正確性表明系統的實現符合規(guī)格說明。有效性保證開發(fā)的系統是用戶真正需要的系統2024/1/16197實現用例
(NoteL15)UML中實現用例的基本思想是用協作表示用例,而協作又被細化為用若干個圖。協作的實現用腳本描述。2024/1/16198第四章設計方法2024/1/16199主要內容(Note46)▲
什么是結構化設計▲結構化設計方法的主要思想▲結構化設計的重要組成部分▲結構化設計的方法2024/1/16200結構化設計的工作原理(Note47)結構化設計目標結構化設計的優(yōu)點利用模塊結構減少開發(fā)和維護軟件的費用2024/1/16201軟件設計分為兩個階段:(1)概要設計(總體設計)(Page66)確定軟件的結構以及各組成成分(子系統或模塊)之間的相互關系。(2)詳細設計確定模塊內部的算法和數據結構,產生描述各模塊程序過程的詳細文檔。2024/1/16202模塊模塊是魚油一定功能的可以用名詞調用的程序語句集合,如:獨立的匯編程序COBOL的段和節(jié)Pascal過程FORTRAN的子程序匯編的宏2024/1/16203控制結構(程序結構)控制結構是軟件模塊間關系的表示2024/1/16204控制結構圖示:2024/1/16205控制結構的層次規(guī)則只有一個頂層(0層)模塊
0層外任一模塊都會在它的鄰層存在一模塊與它有關同層模塊間不發(fā)生聯系2024/1/16206軟件結構度量術語深度寬度扇出扇入(模塊的層數)(同一層最大模塊數)(一個模塊直接調用的模塊數)(調用一個給定模塊的模塊個數)2024/1/16207模塊化(Modularity)模塊化是好的軟件設計的一個基本準則高層模塊從整體上把握問題,隱蔽細節(jié)復雜問題較小問題
分解可減小解題所需的總的工作分解2024/1/16208抽象(Abstraction)抽象原則應用舉例WindowsNT一體化的I/O系統設計文件管理網絡管理設備管理高速緩沖存儲器OS對虛擬文件的字節(jié)流,虛擬文件可為任何設備和實體抽象2024/1/16209例:將問題(P1+P2)分解為P1,P2設函數C(x)定義問題
x
的復雜程度函數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)
"各個擊破"理論2024/1/16210模塊度(Note48)成本或工作量模塊數量軟件總成本集成成本成本/模塊M最小成本區(qū)域2024/1/16211結構化設計的適用范圍(Note49)尤其適用于采用結構化程序設計實現的系統結構化設計并不是一種廣泛適用的系統設計技術什么人來完成設計呢?結構化設計的結果2024/1/16212SA與SD的關系(Note50)結構化分析的結果結構化設計的工具數據流圖初始結構圖生存周期字典的數據部分設計數據字典偽碼實現方面?zhèn)未a實體關系圖數據庫設計事務框圖分層、細化事務模型2024/1/16213SD來源于SA來源:結構化分析來源:結構化分析來源:結構化分析數據流圖字典項偽碼實體關系圖事務框圖環(huán)境的限制質量的標準轉化分析細化設計進入實現階段初始結構框圖2024/1/16214概要設計的基本概念將系統劃分成模塊(Page66)決定每個模塊的功能(Page66)決定模塊的調用關系(Page66)決定模塊的界面,即模塊間傳遞的數據(Page66)2024/1/16215結構化設計(SD方法)概要相對獨立、單一功能的模塊(page67)塊間聯系和塊內聯系(page67)描述方法(page68)步驟(page69)2024/1/16216結構圖(SCStructureChart)結構圖主要成分(page68)模塊——用方框表示,方框中寫有模塊的名字,一個模塊的名字應適當地反映這個模塊的功能,這就在某種程度上反映了塊內聯系;調用——從一個模塊指向另一個模塊的箭頭表示前一模塊中含有對后一模塊的調用;數據——調用箭頭邊上的小箭頭表示調用時從一個模塊傳入送給另一個模塊的數據,小箭頭也指出了傳送的方向。2024/1/16217結構圖(SCStructureChart)SD方法在概要設計中的主要表達工具約定:編輯學生記錄讀學生記錄學生數據無此學生學號不加區(qū)分的數據數據信息控制信息2024/1/16218SC中的四種模塊傳入模塊(a)(b)AA傳出模塊BB變換模塊(c)CD協調模塊E(d)EFF2024/1/16219SC中的選擇調用ACBDA根據內部判斷決定是否調用BA按另一判定結果選擇調用C或D2024/1/16220SC中的循環(huán)調用ABCA根據內在的循環(huán)重復調用B、C等模塊2024/1/16221結構圖(SC)舉例醫(yī)院管理系統門診管理藥房管理藥庫管理病房管理財務管理處方掛號處理掛號費總計掛號單掛號費總計出庫處理進藥管理病歷管理處方管理常規(guī)處理2024/1/16222酒店管理信息系統功能結構圖HMIS收銀管理子系統收銀管理子系統收銀管理子系統客人登記預定登記客房處理歷史記錄客房查詢預定查詢餐桌安排菜單作業(yè)營業(yè)結帳匯總打印各類查詢初始設置客帳處理退房處理夜審處理客帳查詢報表打印2024/1/16223大型零售商場管理信息系統功能結構圖TMMIS系統維護POS系統零售實時系統商品進貨管理商品批發(fā)管理商品庫存管理商品及商品帳管理顧客管理連鎖店管理財務管理人事工資管理計劃統計管理經理查詢2024/1/16224信息隱蔽(InformationHiding)模塊所包含的信息,不允許其它不需要這些信息的模塊訪問,獨立的模塊間僅僅交換為完成系統功能而必須交換的信息。2024/1/16225塊間聯系塊間聯系大小:方式、作用、數量聯系方式(Page71)用過程語句調用、直接引用共用信息的作用(Page73)公用信息的數量(Page74)表格4.1(page75)2024/1/16226塊內聯系偶然型(Page76)邏輯型(Page76)瞬時型(Page77)通訊型(Page77)順序型(Page78)功能型(Page78)2024/1/16227偶然內聚(巧合內聚)ABCMMOVEOTORREADFILEFMOVESTOT模塊M中的三個語句沒有任何聯系缺點:可理解性差,可修改性差例:2024/1/16228邏輯內聚把幾種相關功能(邏輯上相似的功能)組合在一模塊內,每次調用由傳給模塊的參數確定執(zhí)行哪種功能。2024/1/16229邏輯內聚模塊ABCEFGABCEFGA1B1C1EFG模塊內部邏輯E、F、G邏輯功能相似,組成新模塊EFG缺點:增強了耦合程度(控制耦合)
不易修改,效率低公用代碼段公用代碼段2024/1/16230時間內聚(經典內聚)模塊完成的功能必須在同一時間內執(zhí)行,這些功能只因時間因素關聯在一起。例如:初始化系統模塊、系統結束模塊、緊急故障處理模塊等均是時間性聚合模塊.2024/1/16231過程內聚(順序性組合)模塊內各處理成分相關,且必須以特定次序執(zhí)行2024/1/16232過程內聚模塊讀入成績單審查成績單統計成績打印成績讀入并審查成績單統計并打印成績單2024/1/16233通信內聚模塊內各部分使用相同的輸入數據,或產生相同的輸出結果2024/1/16234通信內聚模塊例產生工資報表計算平均工資職工工資記錄職工工資報表平均工資產生職工工資報表并計算平均工資模塊2024/1/16235信息內聚模塊完成多個功能,各功能都在同一數據結構上操作,每一功能有唯一入口。2024/1/16236信息內聚模塊符號
表查找登錄刪除修改幾個加工同時引用一個共同的數據2024/1/16237功能內聚模塊僅包括為完成某個功能所必須的所有成分。模塊所有成分共同完成一個功能,缺一不可
內聚性最強2024/1/16238塊間聯系無直接關系型數據耦合標記耦合控制耦合外部耦合公共耦合內容耦合2024/1/16239(1)無直接耦合
兩個模塊沒有直接關系(模塊1和模塊2),模塊獨立性最強。模塊1模塊2模塊3模塊4240(2)數據耦合
一模塊調用另一模塊時,被調用模塊的輸入、輸出都是簡單的數據(若干參數)。屬松散耦合。241數據耦合舉例開發(fā)票計算水費單價數量金額242(3)標記耦合(復合型耦合)
如兩個模塊通過傳遞數據結構(不是簡單數據,而是記錄、數組等)加以聯系,或都與一個數據結構有關系,則稱這兩個模塊間存在標記偶合。243標記耦合舉例計算水電費計算水費計算電費住戶情況水費電費住戶情況“住戶情況”是一個數據結構,圖中模塊都與此數據結構有關.“計算水費”和“計算電費”本無關,由于引用了此數據結構產生依賴關系,它們之間也是標記偶合.244將標記耦
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 蒸汽拖把蒸汽清潔器械項目運營指導方案
- 答辯魔法書:輕松搞定-高校學術答辯全方位指南
- 醫(yī)療分析儀器產品供應鏈分析
- 狗用驅蟲劑商業(yè)機會挖掘與戰(zhàn)略布局策略研究報告
- 廢物再生行業(yè)經營分析報告
- 地質勘探行業(yè)經營分析報告
- 矯形襪項目營銷計劃書
- 醫(yī)療設備包裝行業(yè)營銷策略方案
- 冷鏈乳制品行業(yè)經營分析報告
- 猶太教經文護符匣項目營銷計劃書
- 大學生足球比賽策劃書(十四篇)
- 聲樂課教學課件
- 新課標下初中歷史教學中學生歷史素養(yǎng)的培養(yǎng)
- 師德表現證明(樣張)
- 平行四邊形的面積課堂學習單
- 供應商變更申請表
- VMware虛擬化平臺巡檢報告模版
- 山東省濰坊市2023年八年級上學期期中數學試題(附答案)
- 市智慧航道與信息服務系統設計方案
- 醫(yī)學微生物學課程思政改革的實踐與思考
- 干部任免審批表填寫樣板
評論
0/150
提交評論