教學(xué)課件:軟件工程(第3版)1_第1頁(yè)
教學(xué)課件:軟件工程(第3版)1_第2頁(yè)
教學(xué)課件:軟件工程(第3版)1_第3頁(yè)
教學(xué)課件:軟件工程(第3版)1_第4頁(yè)
教學(xué)課件:軟件工程(第3版)1_第5頁(yè)
已閱讀5頁(yè),還剩367頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、 軟件工程- 原理、方法與應(yīng)用(第三版)主要內(nèi)容緒論上篇-傳統(tǒng)軟件工程軟件生存周期與軟件過(guò)程結(jié)構(gòu)化分析與設(shè)計(jì)中篇-面向?qū)ο筌浖こ堂嫦驅(qū)ο笈cUML需求工程與需求分析面向?qū)ο蠓治雒嫦驅(qū)ο笤O(shè)計(jì)編碼與測(cè)試下篇-軟件工程的近期進(jìn)展、管理與環(huán)境軟件維護(hù)軟件復(fù)用軟件工程管理軟件質(zhì)量管理軟件工程環(huán)境軟件工程高級(jí)課題第一章 緒論軟件和軟件危機(jī)軟件工程學(xué)的范疇軟件工程的發(fā)展軟件工程的應(yīng)用軟件工程的教學(xué)軟件是能夠完成預(yù)定功能和性能的可執(zhí)行的計(jì)算機(jī)程序,包括使程序正常執(zhí)行所需的數(shù)據(jù),以及有關(guān)描述程序操作和使用的文檔(R. S. Pressman)軟件=程序(包括數(shù)據(jù))+文檔程序是為了解決某個(gè)特定問(wèn)題而用程序設(shè)計(jì)語(yǔ)言

2、描述的適合計(jì)算機(jī)處理的語(yǔ)句序列數(shù)據(jù)是使程序能正常操縱信息的數(shù)據(jù)結(jié)構(gòu)文檔是與程序開(kāi)發(fā),維護(hù)和使用有關(guān)的圖文材料1. 軟件和軟件危機(jī) -軟件的定義軟件與硬件的不同軟件開(kāi)發(fā)不同于硬件設(shè)計(jì)軟件生產(chǎn)與硬件制造不同軟件維護(hù)不同于硬件維修軟件是邏輯的,而不是物理的軟件開(kāi)發(fā)與人關(guān)系密切軟件開(kāi)發(fā)成本大軟件生產(chǎn)是簡(jiǎn)單的拷貝軟件不會(huì)磨損和老化軟件受環(huán)境影響大軟件維護(hù)易產(chǎn)生新的問(wèn)題1. 軟件和軟件危機(jī) -軟件的特征1. 軟件和軟件危機(jī) -軟件危機(jī)軟件危機(jī)的表現(xiàn)對(duì)軟件開(kāi)發(fā)成本和進(jìn)度的估算很不準(zhǔn)確用戶很不滿意質(zhì)量很不可靠沒(méi)有適當(dāng)?shù)奈臋n軟件成本比重上升供不應(yīng)求:軟件開(kāi)發(fā)生產(chǎn)率跟不上計(jì)算機(jī)應(yīng)用迅速深入的趨勢(shì) 硬件/軟件成本變

3、化趨勢(shì)硬件軟件100% 0%195519701985軟件技術(shù)進(jìn)步落后于需求增長(zhǎng)軟件危機(jī)的原因客觀:軟件本身特點(diǎn)-邏輯部件-規(guī)模龐大、復(fù)雜度高主觀:不正確的開(kāi)發(fā)方法-忽視需求分析-個(gè)人化方式:軟件開(kāi)發(fā)=程序編寫-輕視軟件維護(hù)1. 軟件和軟件危機(jī) -軟件危機(jī)解決途徑組織管理-工程項(xiàng)目管理方法技術(shù)措施-軟件開(kāi)發(fā)技術(shù)與方法-軟件工具促使了軟件工程的誕生按工程化的原理和方法組織軟件開(kāi)發(fā)是軟件開(kāi)發(fā)中的問(wèn)題一個(gè)主要出路1. 軟件和軟件危機(jī) -軟件危機(jī)2. 軟件工程學(xué)的研究范疇軟件開(kāi)發(fā)技術(shù)軟件工程管理軟件工程學(xué)軟件工程學(xué)的研究范疇軟件方法軟件工具軟件工程環(huán)境軟件管理學(xué)軟件經(jīng)濟(jì)學(xué)軟件產(chǎn)權(quán)保護(hù)軟件開(kāi)發(fā)方法為軟件開(kāi)

4、發(fā)提供了 “如何做” 的技術(shù)個(gè)性化方法-結(jié)構(gòu)化方法-面向?qū)ο蠓椒?軟件復(fù)用軟件工具為軟件開(kāi)發(fā)提供了自動(dòng)的或半自動(dòng)的軟件支撐環(huán)境單個(gè)工具-工具箱、集成工具-環(huán)境軟件工程管理目的:為了按進(jìn)度及預(yù)算完成軟件計(jì)劃內(nèi)容:成本估算、進(jìn)度安排、人員組織、質(zhì)量保證等2. 軟件工程學(xué)的研究范疇三種編程范型過(guò)程式編程范型程序由一組被動(dòng)數(shù)據(jù)和一組能動(dòng)過(guò)程組成程序=數(shù)據(jù)結(jié)構(gòu)+算法著眼于程序的過(guò)程和基本控制結(jié)構(gòu),粒度最小面向?qū)ο缶幊谭缎蛿?shù)據(jù)及其操作被封裝在對(duì)象中程序=對(duì)象+消息著眼于程序中的對(duì)象,粒度比較大基于構(gòu)件技術(shù)的編程范型構(gòu)件是通用的、可復(fù)用的標(biāo)準(zhǔn)化對(duì)象類程序=構(gòu)件+架構(gòu)著眼于適合整個(gè)領(lǐng)域的類對(duì)象,粒度更大3.

5、軟件工程的發(fā)展過(guò)程式和面向?qū)ο蟮木幊谭缎痛婵钊】罾⒔Y(jié)算帳戶余額帳戶余額利息結(jié)算存 款取 款銀行儲(chǔ)蓄處理業(yè)務(wù)三代軟件工程傳統(tǒng)軟件工程結(jié)構(gòu)化分析 結(jié)構(gòu)化設(shè)計(jì) 面向過(guò)程的編碼 軟件測(cè)試 面向?qū)ο筌浖こ蘋O分析與對(duì)象抽取 對(duì)象詳細(xì)設(shè)計(jì) 面向?qū)ο蟮木幋a 和測(cè)試 基于構(gòu)件的軟件工程領(lǐng)域分析和測(cè)試計(jì)劃定制 領(lǐng)域設(shè)計(jì) 建立可復(fù)用構(gòu)件庫(kù) 查找并集成構(gòu)件 3. 軟件工程的發(fā)展4. 軟件工程的應(yīng)用軟件工程指導(dǎo)中小型軟件軟件工程指導(dǎo)大型軟件軟件工程的成就解決軟件開(kāi)發(fā)中的部分問(wèn)題(非本質(zhì))軟件生產(chǎn)率穩(wěn)步增長(zhǎng)軟件工程發(fā)展的展望開(kāi)發(fā)伴隨軟件復(fù)用,開(kāi)發(fā)為了軟件復(fù)用軟件就是服務(wù)5. 軟件工程的教學(xué)正確處理好4個(gè)關(guān)系三代軟件

6、工程的相互關(guān)系軟件工程技術(shù)和軟件工程管理的關(guān)系形式化方法和非形式化方法的關(guān)系小程序設(shè)計(jì)和大程序設(shè)計(jì)的關(guān)系教學(xué)中加強(qiáng)實(shí)踐訓(xùn)練小結(jié)軟件工程自1968年提出以來(lái),在過(guò)去30余年中,已發(fā)展成為用于指導(dǎo)軟件生產(chǎn)工程化,覆蓋軟件開(kāi)發(fā)方法學(xué)、軟件工程管理、軟件工具與環(huán)境等內(nèi)容的一門新學(xué)科。隨著程序設(shè)計(jì)從結(jié)構(gòu)化程序設(shè)計(jì)發(fā)展到面向?qū)ο蟪绦蛟O(shè)計(jì),軟件工程也由傳統(tǒng)的軟件工程演變?yōu)槊嫦?對(duì)象的軟件工程,現(xiàn)正向更新一代的基于構(gòu)件的軟件工程邁進(jìn)。長(zhǎng)期的實(shí)踐,軟件工程積累了許多行之有效的原理與方法,已經(jīng)為產(chǎn)業(yè)界廣泛接受與應(yīng)用。 第二章 軟件生存周期與軟件過(guò)程軟件生存周期傳統(tǒng)的軟件過(guò)程軟件演化模型形式化方法模型統(tǒng)一過(guò)程和敏捷

7、過(guò)程軟件可行性研究1. 軟件生存周期 軟件生存周期(Software Life Cycle):一個(gè)軟件項(xiàng)目從問(wèn)題提出開(kāi)始,直到軟件產(chǎn)品最終退役(廢棄不用)為止。軟件生存周期分為三個(gè)時(shí)期:計(jì)劃、開(kāi)發(fā)和維護(hù)整個(gè)軟件生存周期劃分為多個(gè)相對(duì)獨(dú)立的較小階段,給每個(gè)階段賦予確定而有限的任務(wù),從而降低了整個(gè)軟件工程的難度,提高了軟件開(kāi)發(fā)生產(chǎn)率典型的軟件生存周期需求分析軟件分析軟件設(shè)計(jì)編碼(測(cè)試)交付測(cè)試使用維護(hù)典型的軟件生存周期軟件生存周期的主要活動(dòng)需求分析明確需要解決的問(wèn)題(從用戶的視角)建立需求模型:功能、性能、約束、接口等軟件分析從開(kāi)發(fā)人員的視角對(duì)軟件進(jìn)行分析建立分析模型:軟件的邏輯模型軟件設(shè)計(jì)確定軟

8、件的總體結(jié)構(gòu)和各部件的數(shù)據(jù)結(jié)構(gòu)和操作建立軟件設(shè)計(jì)模型:考慮實(shí)現(xiàn)技術(shù)和平臺(tái)編碼用程序設(shè)計(jì)語(yǔ)言將設(shè)計(jì)文檔翻譯成源程序建立軟件實(shí)現(xiàn)模型:包含現(xiàn)有軟件構(gòu)件包軟件測(cè)試發(fā)現(xiàn)程序中的錯(cuò)誤、提高軟件質(zhì)量單元測(cè)試、集成測(cè)試、確認(rèn)測(cè)試、系統(tǒng)測(cè)試運(yùn)行維護(hù)軟件過(guò)程與軟件生存周期軟件過(guò)程圍繞軟件開(kāi)發(fā)所進(jìn)行的一系列活動(dòng)軟件過(guò)程模型把軟件生存周期中軟件開(kāi)發(fā)活動(dòng)的有序流程用一個(gè)合理的框架來(lái)規(guī)范描述。軟件過(guò)程模型是一種軟件過(guò)程的抽象表示法,它從一個(gè)特定的角度表現(xiàn)一個(gè)開(kāi)發(fā)過(guò)程。軟件生存周期中的階段和軟件過(guò)程中的活動(dòng)是基本一致的。2. 傳統(tǒng)的軟件過(guò)程傳統(tǒng)的過(guò)程模型瀑布模型waterfall model基于軟件生存周期的線性開(kāi)發(fā)模型

9、快速原型模型rapid prototype model基于原型的迭代化開(kāi)發(fā)模型瀑布模型圖2.2 瀑布模型的階段與文檔需求分析需求規(guī)格說(shuō)明軟件分析與總體設(shè)計(jì)軟件結(jié)構(gòu)圖模塊說(shuō)明系統(tǒng)測(cè)試確認(rèn)測(cè)試綜合測(cè)試程序清單詳細(xì)設(shè)計(jì)編 碼用戶要求單元測(cè)試W.Royce于1970年提出線性開(kāi)發(fā)模型強(qiáng)調(diào)軟件文檔每一個(gè)階段必須完成規(guī)定的文檔每一個(gè)階段都要復(fù)審?fù)瓿傻奈臋n瀑布模型特點(diǎn)階段的順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)存在問(wèn)題不適合需求模糊的系統(tǒng)開(kāi)發(fā)初始階段很難徹底弄清軟件需求快速原型模型需求原型開(kāi)發(fā)最終系統(tǒng)設(shè)計(jì)原型評(píng)價(jià)最終系統(tǒng)實(shí)現(xiàn)用戶反饋快速原型模型特點(diǎn)“逼真”的原型可以使用戶迅速作出反饋循環(huán)回溯和迭代:非線

10、性模型使用快速開(kāi)發(fā)工具種類漸進(jìn)型:對(duì)原型補(bǔ)充和修改獲得最終系統(tǒng)拋棄型:原型廢棄不用應(yīng)防止的偏向舍不得拋棄,從而影響軟件質(zhì)量3. 軟件演化模型演化開(kāi)發(fā)模型:使所開(kāi)發(fā)的軟件在迭代中逐步完善增量模型(incremental model)螺旋模型(spiral model)構(gòu)件集成模型(component integration model) 增量模型把軟件看作一系列相互聯(lián)系的增量,每次迭代完成一個(gè)增量構(gòu)件1:需求設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶構(gòu)件2:需求設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶構(gòu)件3:需求設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶構(gòu)件n:需求設(shè)計(jì)實(shí)現(xiàn)和集成交付客戶規(guī)格說(shuō)明組設(shè)計(jì)組實(shí)現(xiàn)和集成組增量模型增量小而可用的軟件第一個(gè)增量通

11、常是軟件的核心特點(diǎn)在前面增量的基礎(chǔ)上開(kāi)發(fā)后面的增量每個(gè)增量的開(kāi)發(fā)可用瀑布或快速原型模型每個(gè)增量開(kāi)發(fā)的順序性和總體的迭代性相結(jié)合螺旋模型螺旋模型特點(diǎn)瀑布模型(順序性、邊開(kāi)發(fā)邊復(fù)審)+快速原型(迭代性)風(fēng)險(xiǎn)分析-發(fā)現(xiàn)、控制風(fēng)險(xiǎn)一個(gè)螺旋式周期 計(jì)劃:確定目標(biāo),選擇方案,選定完成目標(biāo)的策略 風(fēng)險(xiǎn)分析:從風(fēng)險(xiǎn)角度分析該策略 開(kāi)發(fā):?jiǎn)?dòng)一個(gè)開(kāi)發(fā)活動(dòng) 評(píng)審:評(píng)價(jià)前一步的結(jié)果,計(jì)劃下一輪的工作 面向?qū)ο蟮幕靖拍顚?duì)象Object類Class繼承Inheritance消息Message 面向?qū)ο髮?duì)象+類+繼承+消息通信構(gòu)件集成模型構(gòu)件集成模型構(gòu)件在某個(gè)領(lǐng)域內(nèi)具有通用性,可以復(fù)用的軟件部件將可以復(fù)用的構(gòu)件存儲(chǔ)起來(lái)

12、,形成構(gòu)件庫(kù)特點(diǎn)面向?qū)ο蠡跇?gòu)件庫(kù)融合螺旋模型特征支持軟件開(kāi)發(fā)的迭代方法 軟件復(fù)用4. 形式化方法模型形式化方法模型:基于程序變換和驗(yàn)證技術(shù)的軟件開(kāi)發(fā)轉(zhuǎn)換模型(transformational model)凈室模型(cleanroommodel) 轉(zhuǎn)換模型形式化規(guī)格說(shuō)明與需求比較后修正變換2變換1變換n測(cè)試形式化開(kāi)發(fā)記錄系統(tǒng)需求目標(biāo)系統(tǒng)轉(zhuǎn)換模型開(kāi)發(fā)過(guò)程確定形式化需求規(guī)格說(shuō)明書進(jìn)行自動(dòng)的程序變換針對(duì)形式化開(kāi)發(fā)記錄進(jìn)行測(cè)試特點(diǎn)形式化軟件開(kāi)發(fā)方法 形式化需求規(guī)格說(shuō)明 變換技術(shù)程序自動(dòng)生成技術(shù) 確保正確 凈室模型需求收集盒結(jié)構(gòu)規(guī)約形式化設(shè)計(jì)統(tǒng)計(jì)性使用測(cè)試正確性證明代碼生成與檢查測(cè)試計(jì)劃認(rèn)證需求收集盒結(jié)

13、構(gòu)規(guī)約形式化設(shè)計(jì)統(tǒng)計(jì)性使用測(cè)試正確性證明代碼生成與檢查測(cè)試計(jì)劃認(rèn)證需求收集盒結(jié)構(gòu)規(guī)約形式化設(shè)計(jì)統(tǒng)計(jì)性使用測(cè)試正確性證明代碼生成與檢查測(cè)試計(jì)劃認(rèn)證增量1增量2增量n凈室模型凈室思想在分析和設(shè)計(jì)階段消除錯(cuò)誤在“潔凈”狀態(tài)下實(shí)現(xiàn)軟件制作形式化盒結(jié)構(gòu)表示分析和設(shè)計(jì)正確性驗(yàn)證增量模型把軟件看成一系列的增量軟件過(guò)程模型的特點(diǎn)匯總開(kāi)發(fā)模型特 點(diǎn)適用場(chǎng)合瀑布模型線性模型,每一階段必須完成規(guī)定的文檔需求明確的中、小型軟件開(kāi)發(fā)快速原型模型用戶介入早,通過(guò)迭代完善用戶需求,原型廢棄不用需求模糊的小型軟件開(kāi)發(fā)增量模型每次迭代完成一個(gè)增量,可用于OO開(kāi)發(fā)容易分塊的大型軟件開(kāi)發(fā)螺旋模型典型迭代模型,重視風(fēng)險(xiǎn)分析,可用于O

14、O開(kāi)發(fā)具有不確定性大型軟件開(kāi)發(fā)構(gòu)件集成模型軟件開(kāi)發(fā)與構(gòu)件開(kāi)發(fā)平行進(jìn)行領(lǐng)域工程、行業(yè)的中型軟件開(kāi)發(fā)轉(zhuǎn)換模型形式化的規(guī)格說(shuō)明,自動(dòng)的程序變換系統(tǒng)理想化模型,尚無(wú)成熟工具支持凈室模型形式化的增量開(kāi)發(fā)模型,在潔凈狀態(tài)下實(shí)現(xiàn)軟件制作開(kāi)發(fā)團(tuán)隊(duì)熟悉形式化方法,中小型軟件開(kāi)發(fā)5. 統(tǒng)一過(guò)程和敏捷過(guò)程統(tǒng)一過(guò)程Rational Unified Process(RUP)描述了軟件開(kāi)發(fā)中各個(gè)環(huán)節(jié)應(yīng)該做什么、怎么做、什么時(shí)候做以及為什么要做,描述了一組以某種順序完成的活動(dòng)敏捷過(guò)程Agile Development是一種以人為核心、迭代、循序漸進(jìn)的開(kāi)發(fā)方法,其軟件開(kāi)發(fā)過(guò)程稱為“敏捷過(guò)程” RUPRational Unif

15、ied Process 將軟件開(kāi)發(fā)分為四個(gè)階段:先啟 定義整個(gè)項(xiàng)目的范圍精化 制定項(xiàng)目計(jì)劃、描述功能、建立體系架構(gòu)框架構(gòu)建 構(gòu)造軟件產(chǎn)品遷移 將軟件產(chǎn)品移交到最終用戶手中敏捷過(guò)程敏捷開(kāi)發(fā)的價(jià)值觀個(gè)人和交互勝過(guò)過(guò)程和工具 可以運(yùn)行的軟件勝過(guò)面面俱到的文檔 客戶合作勝過(guò)合同談判 響應(yīng)變化勝過(guò)遵循計(jì)劃敏捷開(kāi)發(fā)的12條原則盡早、不斷地提交有價(jià)值的軟件 允許改變需求,利用變化來(lái)為客戶創(chuàng)造優(yōu)勢(shì)盡快、不斷地提交可運(yùn)行的軟件在業(yè)務(wù)人員和開(kāi)發(fā)人員必須天天都在一起工作以積極向上的員工為中心建立項(xiàng)目組,提供環(huán)境和支持,并信任他們的工作在團(tuán)隊(duì)內(nèi)部重視面對(duì)面的交流依據(jù)可運(yùn)行軟件來(lái)評(píng)估項(xiàng)目的進(jìn)展提倡可持續(xù)的開(kāi)發(fā)時(shí)刻關(guān)注技

16、術(shù)上的精益求精和好的設(shè)計(jì),以增強(qiáng)敏捷能力簡(jiǎn)單是最根本的最好的構(gòu)架、需求和設(shè)計(jì)出于自組織團(tuán)隊(duì)每隔一定時(shí)間,要反省如何才能更有效地工作,然后作相應(yīng)調(diào)整 極限編程eXtreme Programming是一種輕量級(jí)的、敏捷的軟件開(kāi)發(fā)方法4個(gè)價(jià)值觀交流、簡(jiǎn)單、反饋、勇氣4個(gè)方面改善加強(qiáng)交流、從簡(jiǎn)單做起、尋求反饋、勇于實(shí)事就是12個(gè)核心實(shí)踐完整團(tuán)隊(duì)、計(jì)劃對(duì)策、測(cè)試、簡(jiǎn)單設(shè)計(jì)、結(jié)對(duì)編程、小軟件版本、設(shè)計(jì)改進(jìn)、持續(xù)集成、代碼共有、編碼標(biāo)準(zhǔn)、系統(tǒng)比喻、可持續(xù)的速度6. 軟件可行性研究目的研究項(xiàng)目是否可能實(shí)現(xiàn)和值得進(jìn)行回答 Why to do?研究的內(nèi)容經(jīng)濟(jì)可行性技術(shù)可行性運(yùn)行可行性法律可行性可行性研究的步驟對(duì)當(dāng)

17、前系統(tǒng)進(jìn)行調(diào)查和研究弄清當(dāng)前系統(tǒng)導(dǎo)出新系統(tǒng)邏輯模型導(dǎo)出新系統(tǒng)的解決方案設(shè)計(jì)不同的解決方案提出推薦的方案本項(xiàng)目的開(kāi)發(fā)價(jià)值推薦這個(gè)方案的理由編寫可行性認(rèn)證報(bào)告系統(tǒng)概述可行性分析結(jié)論意見(jiàn)軟件風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)識(shí)別項(xiàng)目風(fēng)險(xiǎn)技術(shù)風(fēng)險(xiǎn)商業(yè)風(fēng)險(xiǎn)風(fēng)險(xiǎn)預(yù)測(cè)風(fēng)險(xiǎn)發(fā)生的可能性風(fēng)險(xiǎn)發(fā)生后的后果風(fēng)險(xiǎn)的駕馭和監(jiān)控小結(jié)隨著軟件工程的發(fā)展,許多學(xué)者先后提出了瀑布模型、快速原型模型、增量模型、螺旋模型、轉(zhuǎn)換模型、凈室模型和構(gòu)件集成等多種過(guò)程模型,各種軟件開(kāi)發(fā)模型各有優(yōu)缺點(diǎn)在選定軟件開(kāi)發(fā)過(guò)程時(shí),開(kāi)發(fā)者不僅應(yīng)該了解開(kāi)發(fā)過(guò)程的特點(diǎn),還應(yīng)該結(jié)合待開(kāi)發(fā)系統(tǒng)的特點(diǎn)一起考慮。如有必要,也可以同時(shí)組合多種模型或創(chuàng)建新的模型。 第三章 結(jié)構(gòu)化分析與設(shè)

18、計(jì)概述結(jié)構(gòu)化系統(tǒng)分析結(jié)構(gòu)化系統(tǒng)設(shè)計(jì)模塊化設(shè)計(jì)概述 -結(jié)構(gòu)化分析與設(shè)計(jì)的由來(lái)結(jié)構(gòu)化分析與設(shè)計(jì)最初系由結(jié)構(gòu)化程序設(shè)計(jì)擴(kuò)展而來(lái) 瀑布模型的首次實(shí)踐 SA與SD的流程 結(jié)構(gòu)化分析(工具:DFD、PSPEC) 分析模型(分層DFD圖)+ SRS結(jié)構(gòu)化設(shè)計(jì)(工具:SC圖) 映射 初始設(shè)計(jì)模型(初始SC圖)初始設(shè)計(jì)模型(初始SC圖) 優(yōu)化 最終設(shè)計(jì)模型(最終SC圖)基本任務(wù)與指導(dǎo)思想 結(jié)構(gòu)化分析 建立分析模型 編寫需求說(shuō)明 結(jié)構(gòu)化設(shè)計(jì) 軟件設(shè)計(jì) = 總體設(shè)計(jì) + 詳細(xì)設(shè)計(jì) SC圖須分兩步完成 概述 -結(jié)構(gòu)化分析與設(shè)計(jì)的由來(lái)結(jié)構(gòu)化分析與設(shè)計(jì)最初系由結(jié)構(gòu)化程序設(shè)計(jì)擴(kuò)展而來(lái) 瀑布模型的首次實(shí)踐 SA與SD的流程

19、結(jié)構(gòu)化分析(工具:DFD、PSPEC) 分析模型(分層DFD圖)+ SRS結(jié)構(gòu)化設(shè)計(jì)(工具:SC圖) 映射 初始設(shè)計(jì)模型(初始SC圖)初始設(shè)計(jì)模型(初始SC圖) 優(yōu)化 最終設(shè)計(jì)模型(最終SC圖)基本任務(wù)與指導(dǎo)思想 結(jié)構(gòu)化分析 建立分析模型 編寫需求說(shuō)明 結(jié)構(gòu)化設(shè)計(jì) 軟件設(shè)計(jì) = 總體設(shè)計(jì) + 詳細(xì)設(shè)計(jì) SC圖須分兩步完成 概述 -SA模型的組成與描述 加工說(shuō)明數(shù)據(jù)對(duì)象說(shuō)明STD圖DFD圖E-R圖DD控制說(shuō)明(CSPEC)SA模型的描述工具:DFD、DD和PSPEC:這是早期SA模型的基本組成部分;CFD、CSPEC和STD:是早期SA模型的擴(kuò)展成分,適應(yīng)實(shí)時(shí)軟件的建模需要;E-R圖:適用于描述

20、具有復(fù)雜數(shù)據(jù)結(jié)構(gòu)的軟件數(shù)據(jù)模型;結(jié)構(gòu)化分析模型的描述工具數(shù)據(jù)流圖(DFD)指明數(shù)據(jù)在系統(tǒng)中移動(dòng)時(shí)如何被變換,描述對(duì)數(shù)據(jù)流進(jìn)行變換的功能和子功能。組成符號(hào)圓框代表加工;箭頭代表數(shù)據(jù)的流向,數(shù)據(jù)名稱總是標(biāo)在箭頭的邊上;方框表示數(shù)據(jù)的源點(diǎn)和終點(diǎn);雙杠(或單杠)表示數(shù)據(jù)文件或數(shù)據(jù)庫(kù) 數(shù)據(jù)字典(DD)對(duì)軟件中的每個(gè)數(shù)據(jù)規(guī)定一個(gè)定義條目。加工說(shuō)明(PSPEC)對(duì)數(shù)據(jù)流圖中出現(xiàn)的每個(gè)加工/處理的功能描述主要工具:結(jié)構(gòu)化語(yǔ)言,判定樹或判定表概述 -SD模型的組成與描述 過(guò)程設(shè)計(jì)接口設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)SD模型的組成包含數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)與過(guò)程設(shè)計(jì)。體系結(jié)構(gòu)設(shè)計(jì)是用來(lái)確定軟件結(jié)構(gòu)的,其描述工具

21、為結(jié)構(gòu)圖,簡(jiǎn)稱SC圖。過(guò)程設(shè)計(jì)主要指模塊內(nèi)部的詳細(xì)設(shè)計(jì) 結(jié)構(gòu)化設(shè)計(jì)模型的描述工具SC圖的組成符號(hào)矩形框來(lái)表示模塊,帶箭頭的連線表示模塊間的調(diào)用,并在調(diào)用線的兩旁標(biāo)出傳入和傳出模塊的數(shù)據(jù)流 ABCDABCABC(a)簡(jiǎn)單調(diào)用 (b)選擇調(diào)用 (c)循環(huán)調(diào)用 SC圖中模塊調(diào)用關(guān)系的表示2. 結(jié)構(gòu)化系統(tǒng)分析 T.DeMarco的定義 結(jié)構(gòu)化分析就是使用DFD、DD、結(jié)構(gòu)化英語(yǔ)、判定表和判定樹等工具,來(lái)建立一種新的、稱為結(jié)構(gòu)化說(shuō)明書的目標(biāo)文檔 結(jié)構(gòu)化分析的基本步驟 由頂向下對(duì)系統(tǒng)進(jìn)行功能分解,畫出分層DFD圖由后向前定義系統(tǒng)的數(shù)據(jù)和加工,編制DD和PSPEC最終寫出SRS 2. 結(jié)構(gòu)化系統(tǒng)分析 -畫分

22、層數(shù)據(jù)流圖 教材購(gòu)銷系統(tǒng)的頂層DFD 學(xué)生教材購(gòu)銷系統(tǒng)書庫(kù)保管員2. 結(jié)構(gòu)化系統(tǒng)分析 -畫分層數(shù)據(jù)流圖 教材購(gòu)銷系統(tǒng)的第二層DFD 領(lǐng)書單 進(jìn)書通知 進(jìn)書通知 購(gòu)書單缺書單 1銷售 2采購(gòu)書庫(kù)保管員學(xué)生F1教材存量表 F2缺書登記表 2. 結(jié)構(gòu)化系統(tǒng)分析 -畫分層數(shù)據(jù)流圖 教材購(gòu)銷系統(tǒng)的第三層DFD采購(gòu)子系統(tǒng) .修改教材庫(kù)存和待購(gòu)量.按書號(hào)匯總?cè)睍?.按出版社統(tǒng)計(jì)缺書銷售書庫(kù)保管員F2缺書登記表 F1教材存量表 F5待購(gòu)教材表 F6教材一覽表 進(jìn)書通知 進(jìn)書通知 缺書單 從數(shù)據(jù)的終點(diǎn)開(kāi)始定義數(shù)據(jù)和加工數(shù)據(jù)定義DD例如:發(fā)票發(fā)票 學(xué)號(hào)姓名書號(hào)單價(jià)數(shù)量總價(jià)書費(fèi)合計(jì)加工策略PSPEC分層DFD圖產(chǎn)生

23、了系統(tǒng)的全部數(shù)據(jù)和加工,通過(guò)對(duì)這些數(shù)據(jù)和加工的定義,常常對(duì)分析員提出一些新問(wèn)題,促使新的調(diào)查和思考,并可能導(dǎo)致對(duì)DFD的修改。畫DFD,定義加工和數(shù)據(jù),再畫,再定義,如此循環(huán),直至產(chǎn)生一個(gè)為用戶和分析員一致同意的文檔SRS。 2. 結(jié)構(gòu)化系統(tǒng)分析 -確定數(shù)據(jù)定義與加工策略 復(fù)審人員用戶和系統(tǒng)分析員共同進(jìn)行復(fù)審,并吸收設(shè)計(jì)人員參加 復(fù)審的重點(diǎn) 盡量多地發(fā)現(xiàn)文檔中存在的矛盾、冗余與遺漏 ,盡可能確保DFD、DD、加工說(shuō)明等文檔的完整性、一改性和易讀性,2. 結(jié)構(gòu)化系統(tǒng)分析 -需求分析的復(fù)審 3.結(jié)構(gòu)化系統(tǒng)設(shè)計(jì) SD概述面向數(shù)據(jù)流設(shè)計(jì)和面向數(shù)據(jù)設(shè)計(jì) 面向數(shù)據(jù)流:數(shù)據(jù)流是考慮一切問(wèn)題的出發(fā)點(diǎn)面向數(shù)據(jù):

24、以數(shù)據(jù)結(jié)構(gòu)作為分析與設(shè)計(jì)的基礎(chǔ) 從分析模型導(dǎo)出設(shè)計(jì)模型 結(jié)構(gòu)化設(shè)計(jì)的描述工具:SC圖 從分析模型導(dǎo)出設(shè)計(jì)模型PSPEC數(shù)據(jù)對(duì)象描述CFDDFDE-RDDCSPEC過(guò)程設(shè)計(jì) 接口設(shè)計(jì)體系結(jié)構(gòu)設(shè)計(jì)數(shù)據(jù)設(shè)計(jì)數(shù)據(jù)流圖的類型數(shù)據(jù)流圖的類型 變換(transform)型結(jié)構(gòu) 傳入路徑變換中心傳出路徑事務(wù)(transaction)型結(jié)構(gòu)一條接受路徑一個(gè)事務(wù)中心若干條動(dòng)作路徑 變換結(jié)構(gòu)的DFD變換中心傳入傳出信息傳入流傳出流 變換流時(shí)間事務(wù)型結(jié)構(gòu)DFD事務(wù)中心接受路徑動(dòng)作路徑同時(shí)存在兩類結(jié)構(gòu)T傳入變換傳出事務(wù)中心SD方法的步驟 SD方法的步驟復(fù)審DFD圖,必要時(shí)可再次進(jìn)行修改或細(xì)化鑒別DFD圖所表示的軟件系統(tǒng)

25、的結(jié)構(gòu)特征,確定它所代表的軟件結(jié)構(gòu)是屬于變換型還是事務(wù)型按照SD方法規(guī)定的一組規(guī)則,把DFD圖為初始的SC圖 變換映射變換型DFD圖 初始SC圖 事務(wù)映射 事務(wù)型DFD圖 初始SC圖按照優(yōu)化設(shè)計(jì)的指導(dǎo)原則改進(jìn)初始的SC圖,獲得最終SC圖變換映射劃分DFD圖的邊界 建立初始SC圖的框架頂層都只含一個(gè)用于控制的主模塊 第一層包括傳入、傳出和中心變換三個(gè)模塊 分解SC圖的各個(gè)分支 分解實(shí)質(zhì)上是“映射” 例子劃分DFDPEDCBAWRUVQabcdeprwuv傳入部分變換中心傳出部分第一級(jí)分解MEMTMCMAc,ec,eu,wu,w傳入分支的分解GetEAtoBReadDDtoEReadABtoCGe

26、tBGetC MAc,ecebbcaabddb傳出分支的分解 WriteW UtoV Write V PutU MEw,uwuuvv變換中心的分解 MT R P Qepc,prrw,u初始SC圖 MC MT Q P R MEWriteW PutU Uto VWriteV A toBReadA GetB DtoERead D BtoC GetC Get E MA事務(wù)映射在DFD圖上確定邊界事務(wù)中心接受部分(包括接受路徑)發(fā)送部分(包括全部動(dòng)作路徑) 畫出SC圖框架 DFD圖的三個(gè)部分分別映射為事務(wù)控制模塊,接受模塊和動(dòng)作發(fā)送模塊 分解和細(xì)化接受分支和發(fā)送分支 例子劃分DFD傳入 T變換傳出接受部

27、分事務(wù)中心動(dòng)作部分第一層分解發(fā)送事務(wù)控制接收頂層第一層混合結(jié)構(gòu)C1AC3BC2DLFGEKJabb1b2b3c1c2c3defghjklm優(yōu)化結(jié)構(gòu)設(shè)計(jì)的指導(dǎo)規(guī)則 對(duì)模塊劃分的指導(dǎo)規(guī)則 提高內(nèi)聚,降低耦合后簡(jiǎn)化模塊接口少用全局性數(shù)據(jù)和控制型信息保持高扇入/低扇出的原則 扇入高則上級(jí)模塊多,能夠增加模塊的利用率扇出低則表示下級(jí)模塊少,可以減少模塊調(diào)用和控制的復(fù)雜度 扇入和扇出MM M的扇入M的扇出例子:扇出計(jì)算實(shí)發(fā)工資取得工資數(shù)據(jù)編外人員扣款編外人員工資編外人員稅收薪金制工資額計(jì)時(shí)制工資額常規(guī)扣款稅收扣款煎餅形結(jié)構(gòu)不可??!例子:扇出常規(guī)扣款編外人員實(shí)發(fā)工資 計(jì)算實(shí)發(fā)工資取得工資數(shù)據(jù)計(jì)時(shí)工人實(shí)發(fā)工資

28、計(jì)薪工人實(shí)發(fā)工資編外人員扣款編外人員稅收編外人員工資稅收扣款計(jì)時(shí)制工資額薪金制工資額塔型結(jié)構(gòu)4. 模塊設(shè)計(jì)模塊設(shè)計(jì)也稱詳細(xì)設(shè)計(jì)目的為SC圖中的每個(gè)模塊確定算法和數(shù)據(jù)結(jié)構(gòu),用選定的表達(dá)工具給出清晰的描述 主要任務(wù) 編寫軟件的“模塊設(shè)計(jì)說(shuō)明書” 模塊設(shè)計(jì)的原則與方法 清晰第一的設(shè)計(jì)風(fēng)格 結(jié)構(gòu)化的控制結(jié)構(gòu) 僅用這三種控制結(jié)構(gòu)來(lái)構(gòu)成程序 每個(gè)控制結(jié)構(gòu)只應(yīng)有一個(gè)入口和一個(gè)出口 逐步細(xì)化的實(shí)現(xiàn)方法 常用的表達(dá)工具 流程圖NS圖 偽代碼PDL語(yǔ)言N-S圖 S1 S2順序 C T FS1 S2 選擇While C S S Until C 循環(huán)小結(jié)討論傳統(tǒng)軟件工程的系統(tǒng)開(kāi)發(fā)技術(shù),重點(diǎn)放在基于瀑布模型的結(jié)構(gòu)化分析

29、與設(shè)計(jì)和模塊設(shè)計(jì)上,但不涉及同為傳統(tǒng)軟件工程的快速原型開(kāi)發(fā)等內(nèi)容。全章以實(shí)例(從“教材銷售”到“教材購(gòu)銷”)為主線,依次展示了結(jié)構(gòu)化分析、結(jié)構(gòu)化設(shè)計(jì)和模塊設(shè)計(jì)的常用技術(shù)。第四章 面向?qū)ο笈cUML面向?qū)ο蟾攀鯱ML簡(jiǎn)介靜態(tài)建模動(dòng)態(tài)建模物理架構(gòu)建模UML工具1. 面向?qū)ο蟾攀鰧?duì)象:代表客觀世界中實(shí)際或抽象的事物 客觀世界是由各種對(duì)象組成的 數(shù)據(jù)以及在其上的操作的封裝體 類:一組相似的對(duì)象的共性抽象類是一組客觀對(duì)象的抽象實(shí)現(xiàn)抽象數(shù)據(jù)類型的工具 類與對(duì)象的關(guān)系抽象與具體的關(guān)系組成類的每個(gè)對(duì)象都是該類的實(shí)例 實(shí)例是類的具體事物 類是各個(gè)實(shí)例的綜合抽象 面向?qū)ο蟾攀?-面向?qū)ο蟮幕咎卣髅嫦驅(qū)ο蟮幕咎卣?/p>

30、抽象在某個(gè)重要的或想關(guān)注的方面來(lái)表示某個(gè)物體或概念 忽略主題中與當(dāng)前目標(biāo)無(wú)關(guān)的方面 封裝把操作和數(shù)據(jù)包圍起來(lái),對(duì)數(shù)據(jù)的訪問(wèn)只通過(guò)已定義的接口來(lái)完成 繼承類之間的“is a”或“is like”關(guān)系 類層次,定義一個(gè)新類,可以從現(xiàn)有的類中派生出來(lái) 子類可以從父類繼承方法和屬性 多態(tài) 不同類的對(duì)象可以對(duì)同一消息作出響應(yīng),執(zhí)行不同的處理 面向?qū)ο蠓先祟惲?xí)慣的思維方式 OO開(kāi)發(fā)的優(yōu)點(diǎn)提高軟件系統(tǒng)的可復(fù)用性 提高軟件系統(tǒng)的可擴(kuò)展性 提高軟件系統(tǒng)的可維護(hù)性 面向?qū)ο蟾攀?-面向?qū)ο箝_(kāi)發(fā)的優(yōu)點(diǎn)2. UML簡(jiǎn)介Unified Modeling Language近10多年來(lái)OOSE最重要的成果貢獻(xiàn)者:Grad

31、y Booch, Ivar Jacobson,Jim Rumbaugh中文網(wǎng)站http:/www. umlUML的組成UML的模型元素表示模型中的某個(gè)概念類、對(duì)象、構(gòu)件、用例、結(jié)點(diǎn)(node)、接口(interface)、包(package)和注釋(note) 表示模型元素之間的關(guān)系關(guān)聯(lián)、泛化、依賴、實(shí)現(xiàn)、聚合和組合 UML的元模型結(jié)構(gòu)元元模型層元模型層模型層用戶模型層用戶模型元模型模型元元模型UML的組成圖靜態(tài)圖用例圖、類圖、對(duì)象圖、構(gòu)件圖和部署圖 動(dòng)態(tài)圖狀態(tài)圖、時(shí)序圖、協(xié)作圖和活動(dòng)圖 視圖用例視圖從用戶的角度看到的系統(tǒng)應(yīng)有的外部功能 邏輯視圖描述系統(tǒng)的靜態(tài)結(jié)構(gòu)和對(duì)象間的動(dòng)態(tài)協(xié)作關(guān)系 進(jìn)程視

32、圖展示系統(tǒng)的動(dòng)態(tài)行為及其并發(fā)性 構(gòu)件視圖展示系統(tǒng)實(shí)現(xiàn)的結(jié)構(gòu)和行為特征 部署視圖顯示系統(tǒng)的實(shí)現(xiàn)環(huán)境和構(gòu)件被部署到物理結(jié)構(gòu)中的映射 UML的特點(diǎn)統(tǒng)一標(biāo)準(zhǔn)面向?qū)ο蟊磉_(dá)能力強(qiáng)大可視化UML的應(yīng)用用于描述系統(tǒng)開(kāi)發(fā)的不同類型于不同階段從需求分析到軟件設(shè)計(jì)到軟件測(cè)試及維護(hù)可視化問(wèn)題描述,幫助理解問(wèn)題幫助建立各階段的文檔獲取和交流有關(guān)應(yīng)用問(wèn)題求解的知識(shí)輔助構(gòu)建系統(tǒng)3. 靜態(tài)建模靜態(tài)建模用例圖、類圖和對(duì)象圖用例模型用例圖表示從最終用戶的角度描述系統(tǒng)功能類和對(duì)象模型類圖和對(duì)象圖表示用例圖與用例模型用例圖的組成符號(hào)系統(tǒng)名稱系統(tǒng)邊界用例名用例參與者關(guān)聯(lián)建立用例圖保險(xiǎn)商務(wù)系統(tǒng)簽定保險(xiǎn)單銷售統(tǒng)計(jì)客戶統(tǒng)計(jì)客戶保險(xiǎn)銷售員用例

33、之間的關(guān)系擴(kuò)展關(guān)系根據(jù)指定的條件,一個(gè)用例中有可能加入另一個(gè)用例的動(dòng)作 包含關(guān)系一個(gè)用例的行為包含另一個(gè)用例的行為 擴(kuò)展簽保險(xiǎn)單簽汽車購(gòu)買合同使用使用簽保險(xiǎn)單簽汽車保險(xiǎn)單簽房屋保險(xiǎn)單類圖Class Diagram學(xué)生姓名:string學(xué)號(hào):string書書名:string價(jià)格:real 1 購(gòu)買 0.* 屬于對(duì)象圖Object Diagram王平:學(xué)生姓名:王平學(xué)號(hào):020106英語(yǔ):書書名:英語(yǔ)價(jià)格:26.5數(shù)學(xué):書書名:數(shù)學(xué)價(jià)格:21.8類圖表示類間關(guān)系關(guān)聯(lián)關(guān)系 (Association) 類之間存在的語(yǔ)義上的關(guān)系普通關(guān)聯(lián)、遞歸關(guān)聯(lián)、多重關(guān)聯(lián)等聚集關(guān)系(Aggregation) 特殊的關(guān)聯(lián)

34、:整體-部分組合關(guān)系(Composition)特殊的聚集:整體強(qiáng)烈擁有部分泛化關(guān)系(Generalization) 繼承依賴關(guān)系(Dependency) 對(duì)一個(gè)類/對(duì)象的修改會(huì)影響另一個(gè)類/對(duì)象關(guān)聯(lián)關(guān)系1.*工人管理老板0.1員工遞歸關(guān)聯(lián) 機(jī)器工人產(chǎn)品三重關(guān)聯(lián) 聚集和組合成員課題組個(gè)人聚集關(guān)系窗口標(biāo)題外框顯示區(qū)組合關(guān)系泛化關(guān)系交通工具abstract船車轎車卡車客車依賴關(guān)系類B類A約束與派生約束和派生機(jī)制能應(yīng)用與任何模型元素 用花括號(hào)括起放在模型元素旁邊 典型的屬性約束是該屬性的取值范圍 派生屬性可由其它屬性通過(guò)某種方式計(jì)算得到,通常在派生屬性前面加一個(gè)“/”表示 關(guān)聯(lián)關(guān)系可以被約束,也可以被

35、派生 包圖子系統(tǒng)A子系統(tǒng)D子系統(tǒng)B子系統(tǒng)C子系統(tǒng)E子系統(tǒng)F4. 動(dòng)態(tài)建模消息(Message)狀態(tài)圖(State Diagram)時(shí)序圖(Sequence Diagram)協(xié)作圖(Collaboration Diagram)活動(dòng)圖(Activity Diagram)消息同步消息異步消息簡(jiǎn)單消息狀態(tài)圖State Diagram超時(shí)到達(dá)下樓上樓到達(dá)上樓到達(dá)在底樓向上移動(dòng)向底樓移動(dòng)向下移動(dòng)空閑狀態(tài)圖之間發(fā)送消息Off()play()stop()On()CD機(jī)Off()/stop()stop()Off()On()stop()play()On()Off()遙控器關(guān)開(kāi)關(guān) 開(kāi)/停止開(kāi)/播放play()時(shí)序圖

36、(Sequence Diagram)打印機(jī)忙保存文件打印機(jī)就緒打印文件打印文件打印文件計(jì)算機(jī)打印服務(wù)器打印隊(duì)列打印機(jī)協(xié)作圖(Collaboration Diagram)打印機(jī)忙2.2:保存文件打印機(jī)就緒2.1:打印文件1:打印文件計(jì)算機(jī)打印隊(duì)列打印服務(wù)器打印機(jī)活動(dòng)圖Activity Diagram購(gòu)買處理顧客 銷售部門 處理銷售支付貨款庫(kù)存處理發(fā)送商品收取商品水未開(kāi)水開(kāi)了打開(kāi)信號(hào)接通電源加熱顯示燈亮水壺?cái)嚯?. 物理架構(gòu)建模邏輯架構(gòu)和物理架構(gòu)邏輯架構(gòu)物理架構(gòu)構(gòu)件圖配置圖構(gòu)件圖Component Diagram部署圖Deployment Diagram6. UML 工具Rational Rose

37、StarUML Rational RoseStarUML小結(jié)面向?qū)ο箝_(kāi)發(fā)按人的思維方式來(lái)理解和解決問(wèn)題,將問(wèn)題空間的概念直接映射到解空間。面向?qū)ο蟮幕咎卣魇浅橄?、封裝、繼承和多態(tài)。 作為一種著名的建模語(yǔ)言,UML用圖從不同的視角為系統(tǒng)建模,形成為不同的視圖;每個(gè)視圖代表系統(tǒng)完整描述中的一個(gè)抽象,顯示這個(gè)系統(tǒng)中的一個(gè)特定的方面;每個(gè)視圖由一組圖構(gòu)成,其中包含了強(qiáng)調(diào)系統(tǒng)中某一方面的信息。 第5章 需求工程與需求分析軟件需求過(guò)程需求分析與建模需求獲取的常用方法需求模型軟件需求描述需求管理需求建模示例1. 軟件需求工程軟件需求的定義一個(gè)軟件系統(tǒng)必須遵循的條件或具備的能力 系統(tǒng)的外部行為 系統(tǒng)的內(nèi)部特

38、性 軟件需求三個(gè)層次 業(yè)務(wù)需求用戶需求功能需求 軟件需求的層次關(guān)系業(yè)務(wù)需求項(xiàng)目愿景與范圍用戶需求質(zhì)量屬性用例模型文檔功能需求非功能需求和約束條件軟件需求規(guī)格說(shuō)明軟件需求的特性功能性可用性可靠性性能可支持性設(shè)計(jì)約束需求工程的由來(lái)代碼編寫-生存周期-需求工程軟件需求工程可以定義為應(yīng)用有效的技術(shù)和方法,合適的工具和符號(hào),來(lái)確定、管理和描述目標(biāo)系統(tǒng)及其外部行為特征的學(xué)科 2. 需求分析與建模需求分析的步驟需求分析是迭代過(guò)程需求獲取需求建模規(guī)格說(shuō)明需求驗(yàn)證3. 需求獲取的常用方法常規(guī)的需求獲取方法聯(lián)合分析小組 用戶代表、領(lǐng)域?qū)<液拖到y(tǒng)分析員客戶訪談 充分準(zhǔn)備,尋找共同語(yǔ)言 循循序漸進(jìn)、逐步逼近 問(wèn)題分析

39、與確認(rèn) 多個(gè)來(lái)回3. 需求獲取的常用方法用快速原型法獲取需求利用各種分析技術(shù)和方法,生成一個(gè)簡(jiǎn)化的需求規(guī)格說(shuō)明;對(duì)需求規(guī)格說(shuō)明進(jìn)行必要的檢查和修改后,確定原型的軟件結(jié)構(gòu)、用戶界面和數(shù)據(jù)結(jié)構(gòu)等;在現(xiàn)有的工具和環(huán)境的幫助下快速生成可運(yùn)行的軟件原型并進(jìn)行測(cè)試、改進(jìn);將原型提交給用戶評(píng)估并征求用戶的修改意見(jiàn);重復(fù)上述過(guò)程,直到原型得到用戶的認(rèn)可。 4. 需求模型需求模型概述結(jié)構(gòu)化需求模型面向?qū)ο笮枨竽P兔嫦驅(qū)ο蟮男枨蠼.嬘美龍D寫用例規(guī)約描述補(bǔ)充規(guī)約編寫術(shù)語(yǔ)表結(jié)構(gòu)化需求模型數(shù)據(jù)字典數(shù)據(jù)流圖判定樹判定表PDL加工說(shuō)明數(shù)據(jù)定義.E-R圖行為模型狀態(tài)轉(zhuǎn)換圖控制流圖和控制說(shuō)明功能模型數(shù)據(jù)模型面向?qū)ο笮枨竽P陀?/p>

40、例規(guī)約參與者用例圖用例模型補(bǔ)充規(guī)約術(shù)語(yǔ)表全局性功能、非功能需求用例建模確定參與者存在于系統(tǒng)外部、與系統(tǒng)交互的人、硬件、其他系統(tǒng)通過(guò)回答問(wèn)題確定參與者系統(tǒng)開(kāi)發(fā)完成之后,有哪些人會(huì)使用這個(gè)系統(tǒng)? 系統(tǒng)需要從哪些人或其他系統(tǒng)中獲得數(shù)據(jù)? 系統(tǒng)會(huì)為哪些人或其他系統(tǒng)提供數(shù)據(jù)? 系統(tǒng)會(huì)與哪些其他系統(tǒng)相關(guān)聯(lián)? 系統(tǒng)是由誰(shuí)來(lái)維護(hù)和管理的? 用例建模確定用例考察每個(gè)參與者與系統(tǒng)的交互和需要系統(tǒng)提供的服務(wù)通過(guò)回答問(wèn)題確定用例參與者為什么要使用該系統(tǒng)? 參與者是否會(huì)在系統(tǒng)中創(chuàng)建、修改、刪除、訪問(wèn)、存儲(chǔ)數(shù)據(jù)?如果是的話,參與者又是如何來(lái)完成這些操作的? 參與者是否會(huì)將外部的某些事件通知給該系統(tǒng)? 系統(tǒng)是否會(huì)將內(nèi)部的某

41、些事件通知該參與者?用例建模繪制和檢查用例圖按UML標(biāo)準(zhǔn)畫用例圖檢查用例圖細(xì)化每個(gè)用例的用例規(guī)約內(nèi)容包括:簡(jiǎn)要說(shuō)明事件流特殊需求前置條件和后置條件用例模型的檢查功能需求的完備性模型是否易于理解是否存在不一致性避免二義性語(yǔ)義用例建模示例選課系統(tǒng)問(wèn)題陳述 開(kāi)發(fā)一個(gè)學(xué)生選課系統(tǒng)。通過(guò)這個(gè)系統(tǒng),學(xué)生可以選課和查看成績(jī)報(bào)告單,教授可以選擇所教的課和記錄學(xué)生的成績(jī)。學(xué)校保留原有的“課程目錄”數(shù)據(jù)庫(kù)系統(tǒng)來(lái)維護(hù)課程信息,但該系統(tǒng)的性能是有限的。所以新系統(tǒng)必須確保能及時(shí)訪問(wèn)舊系統(tǒng)上的數(shù)據(jù)。但新系統(tǒng)只能讀取舊系統(tǒng)的課程信息,不能更新。每學(xué)期開(kāi)始時(shí),學(xué)生請(qǐng)求查看本學(xué)期開(kāi)設(shè)的課程目錄。有關(guān)課程的信息,包括教授名和所開(kāi)

42、設(shè)的系等,將幫助學(xué)生做出決定。系統(tǒng)允許學(xué)生每學(xué)期選擇4門課,如果學(xué)生沒(méi)有選到主要的課程,還有兩門備選課程可選。每門課的學(xué)生人數(shù)限3到10人。不滿3人的課程將被取消。另外,每個(gè)學(xué)期有一段時(shí)間讓學(xué)生更改課程表。學(xué)生可在該時(shí)段內(nèi)訪問(wèn)系統(tǒng)并添加/刪除課程。某個(gè)學(xué)生的選課一旦結(jié)束,選課系統(tǒng)即將此學(xué)生本學(xué)期的賬單信息送到財(cái)務(wù)系統(tǒng)。如果在選課時(shí)某門課已經(jīng)人滿,學(xué)生在提交信息前必須被告知。學(xué)期結(jié)束,學(xué)生可進(jìn)入系統(tǒng)查看自己的成績(jī)。成績(jī)屬于隱秘信息,系統(tǒng)必須提供額外的安全措施阻止未授權(quán)的訪問(wèn)。教授必須能訪問(wèn)系統(tǒng)查詢他們主講課程。他們也需要知道是哪些學(xué)生選擇了自己的課程。另外,教授也能登記學(xué)生的成績(jī)。用例建模示例確

43、定參與者確定用例學(xué)生要注冊(cè)課程;教授要選擇課程來(lái)教;注冊(cè)管理人員要維護(hù)關(guān)于教授和學(xué)生的所有信息;財(cái)務(wù)系統(tǒng)要從注冊(cè)系統(tǒng)獲得學(xué)生的費(fèi)用情況;課程目錄系統(tǒng)維護(hù)課程信息。無(wú)論是學(xué)生,教授還是注冊(cè)員都需要登陸到系統(tǒng);學(xué)生需要使用系統(tǒng)來(lái)選課,也能查看自己的成績(jī);教授需要使用系統(tǒng)來(lái)選擇課程,也能記錄學(xué)生的成績(jī);注冊(cè)員必須維護(hù)學(xué)生、教授的所有信息,并在適當(dāng)時(shí)候關(guān)閉注冊(cè)系統(tǒng);當(dāng)選擇課程的過(guò)程完成后,收費(fèi)系統(tǒng)必須獲得收費(fèi)信息;學(xué)生和教授選擇課程,需要啟動(dòng)課程目錄系統(tǒng)。用例建模示例選課系統(tǒng)用例圖用例建模示例選課用例規(guī)約1簡(jiǎn)要說(shuō)明本用例允許學(xué)生選本學(xué)期提供的課程。在學(xué)期開(kāi)始的添加/刪除時(shí)期,學(xué)生可以修改或刪除選擇的課

44、程。課程目錄系統(tǒng)提供了當(dāng)前學(xué)期開(kāi)設(shè)的所有課程的列表。2事件流2.1基本事件流用例開(kāi)始于學(xué)生選擇選課,或修改已存在的課程表。1)系統(tǒng)要求學(xué)生指出要執(zhí)行的操作(創(chuàng)建,修改或刪除課程表)2)一旦學(xué)生提供了所需要的信息,以下的一條子事件流將被執(zhí)行 如果選擇的是“創(chuàng)建課程表”,創(chuàng)建課程表子事件流將被執(zhí)行 如果選擇的是“修改課程表”,修改課程表子事件流將被執(zhí)行 如果選擇的是“刪除課程表”,刪除課程表子事件流將被執(zhí)行2.2備選事件流 。3特殊需求無(wú)4前置條件本用例開(kāi)始前學(xué)生必須已經(jīng)登錄進(jìn)系統(tǒng)。5后置條件如果用例成功,學(xué)生的課程表被創(chuàng)建,修改,刪除。否則系統(tǒng)狀態(tài)不變。 描述補(bǔ)充規(guī)約示例選課系統(tǒng)的補(bǔ)充規(guī)約1目標(biāo)

45、 本文檔的目的是定義選課系統(tǒng)的需求。本補(bǔ)充規(guī)約列出了不便于在用例模型的用例中獲取的系統(tǒng)需求。它和用例模型一起記錄關(guān)于系統(tǒng)的一整套需求。2范圍 本補(bǔ)充規(guī)約適用于選課系統(tǒng),除定義了在許多用例中所共有的功能性需求以外,還定義了系統(tǒng)的非功能性需求,例如:可靠性、可用性、性能和可支持性等。(功能性需求在用例規(guī)約中定義。)3參考無(wú)4功能多個(gè)用戶必須能同時(shí)執(zhí)行操作。如果某個(gè)學(xué)生所建的課程表中包含人數(shù)已滿的課程,必須通知這位學(xué)生。5可行性 桌面用戶界面應(yīng)與 Windows 98/2000/XP 兼容。6可靠性 選課系統(tǒng)在每周7天,每天24小時(shí)內(nèi)都應(yīng)是可用的。宕機(jī)的時(shí)間應(yīng)少于 10%。7性能。術(shù)語(yǔ)表示例選課系統(tǒng)

46、的術(shù)語(yǔ)表1.簡(jiǎn)介這份文檔是用來(lái)對(duì)一些術(shù)語(yǔ)進(jìn)行定義的,同時(shí)將用例說(shuō)明或其他文檔中讀者不太熟悉的術(shù)語(yǔ)進(jìn)行解釋性的描述。通常來(lái)說(shuō),這份文檔對(duì)一些數(shù)據(jù)信息進(jìn)行一些定義,從而使得用例規(guī)約和其他的文檔顯得簡(jiǎn)潔易懂。2. 定義這份術(shù)語(yǔ)表包含了選課系統(tǒng)中核心概念的定義。課程:大學(xué)提供的某一門課。開(kāi)設(shè)課程:某一課程的具體安排情況,包括一周上課的天數(shù)、時(shí)間和教授。課程目錄:大學(xué)所開(kāi)設(shè)的所有課程的完整目錄。教員:所有在此大學(xué)內(nèi)任教的教授。財(cái)務(wù)系統(tǒng):用來(lái)處理收費(fèi)信息的系統(tǒng)。成績(jī):學(xué)生某門課程的成績(jī)。5. 軟件需求描述軟件需求規(guī)格說(shuō)明書Software Requirement Specification引言信息描述功能

47、描述行為描述質(zhì)量保證接口描述其他6. 需求管理需求管理的特定實(shí)踐需求管理的流程需求確認(rèn)需求跟蹤6. 需求管理需求變更控制需求變更的利弊需求變更的流程需求變更狀態(tài)轉(zhuǎn)換需求管理工具IBM Rational RequisiteProTelelogic DOORSregBorland CaliberRM7. 需求建模示例網(wǎng)上購(gòu)物系統(tǒng)當(dāng)今,網(wǎng)上購(gòu)物已成為一種時(shí)尚。本示例作為WEB 應(yīng)用的一例,主要為普通購(gòu)物用戶和管理員服務(wù)。普通購(gòu)物用戶在使用本系統(tǒng)的購(gòu)物功能前,必須先注冊(cè)賬號(hào)。在注冊(cè)頁(yè)面中填寫個(gè)人信息,如使用本系統(tǒng)的賬號(hào)名和密碼,聯(lián)系地址等。在提交表單、完成注冊(cè)后,系統(tǒng)將保存信息,以方便管理員管理用戶信

48、息、聯(lián)系用戶。如果用戶已經(jīng)在系統(tǒng)中注冊(cè)過(guò),可以在登錄頁(yè)面輸入賬號(hào)名和密碼。如果密碼正確,用戶就可以購(gòu)物,否則只能做一般的頁(yè)面瀏覽。進(jìn)入系統(tǒng)后,用戶也可選擇維護(hù)自己的信息,比如修改賬號(hào)名,密碼,聯(lián)系地址等。如果直接進(jìn)行購(gòu)物,系統(tǒng)可讓用戶首先瀏覽商品信息,使之對(duì)商品的數(shù)量、種類有一個(gè)大概的了解。如果用戶對(duì)某件商品感興趣,就可以選擇特定商品查看其詳細(xì)信息,接著選擇將商品加入購(gòu)物車,或繼續(xù)查看其他商品。當(dāng)購(gòu)物結(jié)束時(shí),用戶首先要瀏覽一下已經(jīng)存在于購(gòu)物車中的商品項(xiàng)目,包括數(shù)量、單價(jià)及總價(jià)。這時(shí)用戶可以更改任何已存在購(gòu)物車中的商品數(shù)量。如果確定要購(gòu)買購(gòu)物車內(nèi)的商品,系統(tǒng)即生成一份訂購(gòu)商品的訂單(包括所有商品

49、的名字,單價(jià),小計(jì),總價(jià)),然后由用戶填寫包括用戶姓名、家庭地址、信用卡號(hào)碼、電子郵件地址等信息,并提交訂單。以后,系統(tǒng)自動(dòng)將用戶信息、信用卡信息和購(gòu)物總價(jià)發(fā)送到銀聯(lián)系統(tǒng),由銀聯(lián)系統(tǒng)驗(yàn)證信用卡信息并執(zhí)行扣款,并將銀聯(lián)系統(tǒng)操作成功與否的信息返回到系統(tǒng)。系統(tǒng)根據(jù)銀聯(lián)系統(tǒng)的操作結(jié)果,向用戶發(fā)送E-MAIL,提示用戶操作成功與否的消息。如果扣款成功,就與物流系統(tǒng)接口,安排給用戶派送購(gòu)買的商品。管理員進(jìn)入系統(tǒng)時(shí),首先要輸入口令。如果檢查通過(guò),就可以對(duì)系統(tǒng)中的信息進(jìn)行維護(hù)和管理,包括: 管理用戶信息。當(dāng)有些用戶有不正常操作時(shí),如填寫訂單時(shí)使用不存在的信用卡號(hào),可以將此用戶賬號(hào)凍結(jié),也可以啟用用戶賬號(hào)。但管

50、理員無(wú)權(quán)修改客戶信息; 管理系統(tǒng)中的商品信息,例如有新的商品時(shí),管理員可向系統(tǒng)中添加此商品。當(dāng)商品的價(jià)格或規(guī)格發(fā)生浮動(dòng)時(shí),管理員也可以對(duì)它們作修改,使用戶及時(shí)了解商品的最新情況。若某件商品沒(méi)有存貨或不再出售時(shí),管理員可刪除系統(tǒng)中的此項(xiàng)商品記錄。 管理客戶定單。及時(shí)獲得客戶的資料(資料中有電子郵件地址),以便與客戶聯(lián)系。要求系統(tǒng)對(duì)數(shù)據(jù)庫(kù)的存取速度要盡量快,并保證系統(tǒng)在配置完成以后一天24小時(shí)都可用。還要求系統(tǒng)有較高的安全性,當(dāng)生成訂單時(shí),用戶的信用卡號(hào)碼要在網(wǎng)上傳輸,所以必須提供額外的安全措施。用例模型用例模型用例規(guī)約補(bǔ)充規(guī)約術(shù)語(yǔ)表小結(jié)需求分析由需求獲取、需求建模、規(guī)格說(shuō)明和需求驗(yàn)證四個(gè)步驟組成

51、建立需求模型是需求分析的核心,它通過(guò)各種圖形及符號(hào),可視化地從各個(gè)側(cè)面描述系統(tǒng)需求需求規(guī)格說(shuō)明書以各方共同認(rèn)可的文檔形式表述出來(lái),是軟件設(shè)計(jì)、系統(tǒng)驗(yàn)收的可靠依據(jù)面向?qū)ο蟮挠美P?,由用例模型、補(bǔ)充規(guī)約和術(shù)語(yǔ)表一起組成隨著人們對(duì)需求重要性的認(rèn)識(shí)逐漸深入,軟件需求管理應(yīng)運(yùn)而生 第6章 面向?qū)ο蠓治鲕浖治龈攀雒嫦驅(qū)ο蠓治鼋C嫦驅(qū)ο蠓治鍪纠?. 軟件分析概述軟件需求與軟件分析軟件需求:用戶角度,注重軟件外在表現(xiàn)軟件分析:開(kāi)發(fā)者角度,注重軟件內(nèi)部邏輯結(jié)構(gòu)面向?qū)ο筌浖治雒嫦驅(qū)ο蠓治瞿P兔嫦驅(qū)ο筌浖治鯫OA的主要任務(wù)理解用戶需求全面地理解和分析用戶需求明確所開(kāi)發(fā)的軟件系統(tǒng)的職責(zé)形成文件并規(guī)范地加以表

52、述 進(jìn)行分析,提取類和對(duì)象,并結(jié)合分析進(jìn)行建模 OOA的模型需求模型類/對(duì)象模型對(duì)象-關(guān)系模型對(duì)象-行為模型面向?qū)ο蠓治瞿P蛯傩浴⒉僮?、協(xié)作者對(duì)象-行為模型對(duì)象-關(guān)系模型類/對(duì)象模型以用例模型為主體的需求模型面向?qū)ο蠓治鯫OA的優(yōu)點(diǎn)(1)同時(shí)加強(qiáng)了對(duì)問(wèn)題域和軟件系統(tǒng)的理解;(2)改進(jìn)包括用戶在內(nèi)的與軟件分析有關(guān)的各類人員之間的交流;(3)對(duì)需求的變化具有較強(qiáng)的適應(yīng)性;(4)很好地支持軟件復(fù)用;(5)確保從需求模型到設(shè)計(jì)模型的一致性。 分析模型的特點(diǎn)全面覆蓋軟件的功能需求 分析模型與軟件的實(shí)現(xiàn)無(wú)關(guān) 分析模型的表述方法與所采用的分析技術(shù)有關(guān) OOA的共同特征共同特征 類和類層次的表示建立對(duì)象-關(guān)系

53、模型建立對(duì)象-行為模型 OOA建模步驟 需求理解定義類和對(duì)象標(biāo)識(shí)對(duì)象的屬性和操作標(biāo)識(shí)類的結(jié)構(gòu)和層次建立對(duì)象-關(guān)系模型建立對(duì)象-行為模型評(píng)審OOA模型OOA模型在軟件開(kāi)發(fā)中的地位 軟件需求模型軟件成品分析模型設(shè)計(jì)模型實(shí)現(xiàn)模型OOAOODOOPOOT2. 面向?qū)ο蠓治鼋;谟美拿嫦驅(qū)ο蠓治龇椒?回顧需求階段產(chǎn)生的用例規(guī)約,補(bǔ)充必要的詳細(xì)信息;研究用例的事件流,將用例的職責(zé)分配給若干分析類;基于這些職責(zé)分配以及分析類之間的協(xié)作,即可開(kāi)始為分析類間的關(guān)系建模了一旦分析了用例,就需要查看確定的類,確保它們被詳盡地描述并確保分析模型各個(gè)部分之間的一致 識(shí)別與確定分析類三種分析類邊界類 用戶界面系統(tǒng)接口

54、硬件接口控制類封裝用例所特有的控制行為實(shí)體類系統(tǒng)存儲(chǔ)的信息及其相關(guān)行為三種分析類查找分析類為每對(duì)參與者/用例確定一個(gè)邊界類 查找分析類為每個(gè)用例設(shè)置一個(gè)控制類 查找分析類確定相關(guān)的各個(gè)實(shí)體(包括屬性與方法) 課程目錄課程表學(xué)生建立對(duì)象行為模型 繪制出選課用例創(chuàng)建課表事件流的時(shí)序圖 建立對(duì)象行為模型 繪制出選課用例創(chuàng)建課表事件流的協(xié)作圖 建立對(duì)象行為模型 為分析類分配職責(zé) 建立對(duì)象行為模型 繪制狀態(tài)圖用例行為比較復(fù)雜,并且分散到不同的事件序列中,這時(shí)就需要為這個(gè)類創(chuàng)建一個(gè)狀態(tài)圖 針對(duì)一個(gè)類的狀態(tài)變化研究該類的動(dòng)態(tài)行為 建立對(duì)象關(guān)系模型 分析類的屬性分析類本身具有的信息分析類的關(guān)聯(lián)通過(guò)關(guān)聯(lián)可以找到

55、其他分析類鏈與關(guān)聯(lián)的對(duì)應(yīng)關(guān)系分析類圖表現(xiàn)分析類及其關(guān)系VOPC分析類的合并 每個(gè)分析類都代表一個(gè)明確定義的概念,具有不相重疊的職責(zé) 鏈與關(guān)聯(lián)的對(duì)應(yīng)關(guān)系選課用例的參與類圖 分析類的合并 3. 面向?qū)ο蠓治鍪纠?-注冊(cè)用例3. 面向?qū)ο蠓治鍪纠?-注冊(cè)用例3. 面向?qū)ο蠓治鍪纠?-注冊(cè)用例3. 面向?qū)ο蠓治鍪纠?-維護(hù)個(gè)人信息3. 面向?qū)ο蠓治鍪纠?-維護(hù)個(gè)人信息3. 面向?qū)ο蠓治鍪纠?-維護(hù)個(gè)人信息3. 面向?qū)ο蠓治鍪纠?-維護(hù)購(gòu)物車 3. 面向?qū)ο蠓治鍪纠?-維護(hù)購(gòu)物車 3. 面向?qū)ο蠓治鍪纠?-維護(hù)購(gòu)物車 3. 面向?qū)ο蠓治鍪纠?-從購(gòu)物車中刪除商品 3. 面向?qū)ο蠓治鍪纠?-修改購(gòu)物車中的

56、商品信息 3. 面向?qū)ο蠓治鍪纠?-生成訂單 3. 面向?qū)ο蠓治鍪纠?-生成訂單 3. 面向?qū)ο蠓治鍪纠?-生成訂單 3. 面向?qū)ο蠓治鍪纠?-管理訂單 3. 面向?qū)ο蠓治鍪纠?-管理訂單 3. 面向?qū)ο蠓治鍪纠?-管理訂單 3. 面向?qū)ο蠓治鍪纠?-管理訂單 3. 面向?qū)ο蠓治鍪纠?-管理訂單 3. 面向?qū)ο蠓治鍪纠?-管理訂單 3. 面向?qū)ο蠓治鍪纠?-管理訂單 小結(jié)軟件分析將軟件需求階段產(chǎn)生的需求模型轉(zhuǎn)變?yōu)檐浖治瞿P?。分析模型其?shí)就是從軟件開(kāi)發(fā)者的角度,在靜態(tài)組成結(jié)構(gòu)和動(dòng)態(tài)行為兩個(gè)方面來(lái)描述的待開(kāi)發(fā)的軟件系統(tǒng)。面向?qū)ο蠓治隼妹嫦驅(qū)ο蟮募夹g(shù)來(lái)分析問(wèn)題、建立問(wèn)題域的靜態(tài)模型和動(dòng)態(tài)模型,并

57、用UML等工具來(lái)表示這一需求對(duì)應(yīng)的類對(duì)象模型、對(duì)象-關(guān)系模型和對(duì)象-行為模型等,從而完成對(duì)問(wèn)題域建模,形成面向?qū)ο蟮姆治瞿P?。軟件分析通常從用例分析開(kāi)始,建立系統(tǒng)需求的靜態(tài)結(jié)構(gòu)模型和動(dòng)態(tài)行為模型。第7章 面向?qū)ο笤O(shè)計(jì)軟件設(shè)計(jì)概述面向?qū)ο笤O(shè)計(jì)建模系統(tǒng)架構(gòu)設(shè)計(jì)系統(tǒng)元素設(shè)計(jì)面向?qū)ο笤O(shè)計(jì)示例1. 軟件設(shè)計(jì)概述軟件設(shè)計(jì)的概念模塊與構(gòu)件抽象與細(xì)化信息隱藏軟件復(fù)用軟件設(shè)計(jì)的任務(wù)把分析階段產(chǎn)生的分析模型轉(zhuǎn)換為用適當(dāng)手段表示的軟件設(shè)計(jì)模型 軟件設(shè)計(jì)一般都包括數(shù)據(jù)設(shè)計(jì)、體系結(jié)構(gòu)設(shè)計(jì)、接口設(shè)計(jì)和過(guò)程設(shè)計(jì)等 模塊化設(shè)計(jì)(modular design)分解(decomposition)模塊獨(dú)立性(module inde

58、pendence)自頂向下(topdown design)自底向上(bottomup design)分解(decomposition)C (P1+P2)C (P1)+C (P2)E (P1+P2)E (P1)+E (P2) C為問(wèn)題的復(fù)雜度,E為解題需要的工作量 模塊數(shù)接口成本最小成本區(qū)M軟件開(kāi)發(fā)工作量總成本模塊成本模塊獨(dú)立性(module independence)內(nèi)聚(cohesion)模塊內(nèi)部各成分之間耦合(coupling)一個(gè)模塊與其它模塊之間模塊的獨(dú)立性高 塊內(nèi)聯(lián)系強(qiáng) 塊間聯(lián)系弱 內(nèi)聚 弱 強(qiáng)低內(nèi)聚中內(nèi)聚高內(nèi)聚 內(nèi)聚 cohesion.偶然性內(nèi)聚 coincidental cohe

59、sion.邏輯性內(nèi)聚 logical cohesion.時(shí)間性內(nèi)聚 temporal cohesion.過(guò)程性內(nèi)聚 procedural cohesion.通訊性內(nèi)聚 communicational cohesion.順序性內(nèi)聚 sequential cohesion.功能性內(nèi)聚 functional cohesion邏輯性模塊 讀入分?jǐn)?shù)平均/最高?計(jì)算平均分計(jì)算最高分輸出結(jié)果耦合 coupling1.非直接耦合no direct coupling2.數(shù)據(jù)耦合data coupling3.特征耦合 stamp coupling4.控制耦合control coupling 5.外部耦合 exte

60、rnal coupling6.公共耦合 common coupling7.內(nèi)容耦合 content coupling弱耦合數(shù)據(jù)耦合非直接耦合模塊2模塊1模塊4模塊3特征耦合(參數(shù)表傳遞數(shù)據(jù)結(jié)構(gòu))公共耦合2. 面向?qū)ο笤O(shè)計(jì)建模面向?qū)ο笤O(shè)計(jì)模型系統(tǒng)架構(gòu)層類和對(duì)象層消息層責(zé)任層 面向?qū)ο笤O(shè)計(jì)的任務(wù)系統(tǒng)架構(gòu)設(shè)計(jì)系統(tǒng)元素設(shè)計(jì)模式的應(yīng)用模式是解決某一類問(wèn)題的方法論,也是對(duì)通用問(wèn)題的通用解決方案 軟件模式可以分為架構(gòu)模式、設(shè)計(jì)模式和習(xí)慣用法三種 OOA模型轉(zhuǎn)換到OOD模型責(zé)任設(shè)計(jì)消息設(shè)計(jì)類及對(duì)象設(shè)計(jì)系統(tǒng)架構(gòu)設(shè)計(jì)屬性、操作、協(xié)作者對(duì)象-行為模型對(duì)象-關(guān)系模型類/對(duì)象模型用例模型3. 系統(tǒng)架構(gòu)設(shè)計(jì)系統(tǒng)高層結(jié)構(gòu)設(shè)

溫馨提示

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

最新文檔

評(píng)論

0/150

提交評(píng)論