




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
1、課件UML系統(tǒng)建模與分析設(shè)計(jì)課件UML系統(tǒng)建模與分析設(shè)計(jì)課程內(nèi)容 本課程闡述基于UML的面向?qū)ο蠓治雠c設(shè)計(jì)的基本概念,詳細(xì)介紹統(tǒng)一建模語言UML及其開發(fā)過程,以一個(gè)集成案例貫穿可行性研究、需求分析、系統(tǒng)分析與系統(tǒng)設(shè)計(jì)的全過程。使學(xué)生快速地掌握面向?qū)ο蟮南到y(tǒng)分析、設(shè)計(jì)方法。課程內(nèi)容 本課程闡述基于UML的面向?qū)ο蠓治雠c設(shè)計(jì)的基本概念教學(xué)目的:全面掌握采用面向?qū)ο蟮能浖_發(fā)分析設(shè)計(jì)的基本步驟與方法.掌握軟件開發(fā)工具ROSE的使用方法與技巧,使同學(xué)們能夠掌握采用面向?qū)ο蠹夹g(shù)獨(dú)立開發(fā)一個(gè)軟件項(xiàng)目的過程和建模方法,對開發(fā)面向?qū)ο筌浖?xiàng)目的過程有一個(gè)完整、全面地了解。 教學(xué)目的:全面掌握采用面向?qū)ο蟮能浖?/p>
2、開發(fā)分析設(shè)計(jì)的基本步驟與課程學(xué)時(shí)、考核方式 課程學(xué)時(shí)(36學(xué)時(shí))課堂講授:20學(xué)時(shí)上機(jī): 16學(xué)時(shí)考核方式分考試與報(bào)告和平時(shí)三部分??荚?閉卷考試 報(bào)告:課程設(shè)計(jì)報(bào)告 每個(gè)同學(xué)期末上交一個(gè)完整的采用面向?qū)ο蠹夹g(shù)進(jìn)行軟件開發(fā)的課程設(shè)計(jì)報(bào)告,根據(jù)報(bào)告的內(nèi)容給出成績。平時(shí):出勤、作業(yè) 課程學(xué)時(shí)、考核方式 課程學(xué)時(shí)(36學(xué)時(shí))教材和參考書:教材UML系統(tǒng)建模與分析設(shè)計(jì)機(jī)械工業(yè)出版社 刁成嘉UML基礎(chǔ)與Rose建模教程人民郵電出版社 蔡敏UML和模式應(yīng)用面向?qū)ο蠓治雠c設(shè)計(jì)導(dǎo)論1版機(jī)械工業(yè)出版社 CraigLarman著 姚淑珍譯參考書UML系統(tǒng)建模與分析設(shè)計(jì)課程設(shè)計(jì)機(jī)械工業(yè)出版社 刁成嘉UML基礎(chǔ)與Ro
3、se建模案例(第2版)人民郵電出版社 吳建教材和參考書:教材模型的三要素過程表示法工具 系統(tǒng)建模與分析設(shè)計(jì)是研究和應(yīng)用如何以系統(tǒng)化、規(guī)范化和可度量的方法開發(fā)、運(yùn)行和維護(hù)軟件的一種層次化技術(shù)。包括過程、方法和工具三個(gè)要素。模型的三要素過程表示法工具 系統(tǒng)建模與分析設(shè)計(jì)是研究和 過程:將用戶的需求轉(zhuǎn)化成有效的軟件解決方案的一系列活動(dòng)。許多軟件組織無法正確定義和控制這一過程,但這恰恰是組織改進(jìn)的關(guān)鍵。 過程的好壞由結(jié)果狀態(tài)與預(yù)期狀態(tài)的差異決定,也就是目標(biāo)成果質(zhì)量的好壞。 軟件過程是為了獲得高質(zhì)量軟件產(chǎn)品所需要完成的一系列任務(wù)的框架,它規(guī)定了完成各項(xiàng)任務(wù)的工作步驟。軟件過程必須科學(xué)、合理,才能開發(fā)出高
4、質(zhì)量的軟件產(chǎn)品。 軟件過程又稱軟件生存周期過程,是軟件生存周期內(nèi)為達(dá)到一定目標(biāo)而必須實(shí)施的一系列相關(guān)過程的集合 過程:將用戶的需求轉(zhuǎn)化成有效的軟件解決方案的一系列活什么是UML?統(tǒng)一建模語言(Unified Modeling Language,UML)是描述、構(gòu)造和文檔化系統(tǒng)的可視化語言。 作用: 建立軟件模型 建模語言: 提供交流的詞匯和規(guī)則 可視化: 通過標(biāo)準(zhǔn)圖符構(gòu)成圖形來描述模型 建模語言而非編程語言 通用標(biāo)準(zhǔn): 成為軟件建模的標(biāo)準(zhǔn)語言,并且在其他領(lǐng)域也得到應(yīng)用。 什么是UML?統(tǒng)一建模語言(Unified Modeling如何學(xué)習(xí)UML?按照某種過程進(jìn)行分析、設(shè)計(jì);用設(shè)計(jì)原則和模式進(jìn)行
5、更好的設(shè)計(jì);用UML表示法記錄、輔助“工具”:用UML來表達(dá)OOA/DUML的意義就在于為OOA/D的實(shí)踐規(guī)定了一致的表示法方法:運(yùn)用OOA/D原則領(lǐng)域分析+職責(zé)分配過程:過程模型(活動(dòng)套路,開發(fā)周期)用例驅(qū)動(dòng),以體系結(jié)構(gòu)為中心,迭代增量式如何學(xué)習(xí)UML?按照某種過程進(jìn)行分析、設(shè)計(jì);用設(shè)計(jì)原則和模式 UML不是OOA/D,也不是方法,它僅僅只是一種圖形表示法如果不掌握對象思想,那么UML或任何case工具(如ROSE)將毫無意義我們需要一種用于OOA/D的語言,這既是一種思考的工具,也是一種溝通的形式。因此,我們將在OOA/D中應(yīng)用UML。如何應(yīng)用UML進(jìn)行OOA/D?如何將UML應(yīng)用于UP過
6、程? UML不是OOA/D,也不是方法,它僅僅只是一種圖形表示第一章 系統(tǒng)建模與分析設(shè)計(jì)技術(shù)的演變 2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)11本章目的:理解軟件的基本概念和特點(diǎn)了解軟件的發(fā)展過程及軟件開發(fā)過程了解軟件開發(fā)的方法掌握面向?qū)ο蠹夹g(shù)的基本概念及開發(fā)過程了解幾種典型的面向?qū)ο蠓椒ǖ谝徽?系統(tǒng)建模與分析設(shè)計(jì)技術(shù)的演變 2022/9/3U1.1 軟件的概念、特點(diǎn)和分類2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)121現(xiàn)代軟件的概念和特點(diǎn) (1)軟件規(guī)模大。 (2)軟件開發(fā)規(guī)范并趨于標(biāo)準(zhǔn)化。 (3)軟件開發(fā)方法多,有大量的軟件工具支持。 (4)注重軟件開發(fā)的管理。 (5)軟件維護(hù)相對過去容
7、易得多。1.1 軟件的概念、特點(diǎn)和分類2022/9/3UML系統(tǒng)建2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)132軟件的分類(1)按軟件的功能劃分 系統(tǒng)軟件。 支撐軟件。 應(yīng)用軟件。(2)按軟件的規(guī)模劃分 微型軟件-不超過500行。 小型軟件-2000行左右 中型軟件-5000-50000行之間 大型甚至超大型軟件-多個(gè)研發(fā)小組,甚至是成百上千人組成的開發(fā)團(tuán)隊(duì)。(3)按軟件工作方式劃分 實(shí)時(shí)處理軟件。 分時(shí)軟件。 交互式軟件。 批處理軟件。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)152軟件的分類2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)14(4)按軟件服務(wù)對象的范圍劃分 項(xiàng)目軟件。產(chǎn)品軟件。(
8、5)按使用的頻度劃分一次性使用軟件。使用頻度較高的軟件。(6)按軟件失效的影響程度劃分一般性軟件。關(guān)鍵性軟件。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)16(4)按軟件服務(wù)1.2軟件的發(fā)展與軟件工程2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)15軟件工程的指導(dǎo)性原則: 變動(dòng)的軟件需求。穩(wěn)妥的設(shè)計(jì)方法。高效的軟件開發(fā)支持技術(shù)。有效的過程管理。軟件工程具有里程碑意義的進(jìn)展:結(jié)構(gòu)化軟件開發(fā)方法的工具。計(jì)算機(jī)輔助軟件工程(CASE)。面向?qū)ο笳Z言和方法成為主流的軟件開發(fā)技術(shù)。1.2軟件的發(fā)展與軟件工程2022/9/3UML系統(tǒng)建模與軟件過程又稱軟件生存周期過程,是軟件生存周期內(nèi)為達(dá)到一定目標(biāo)而必須實(shí)施的一
9、系列相關(guān)過程的集合。早期:立項(xiàng)、需求分析、設(shè)計(jì)、編碼、測試、交付、維護(hù)、退役軟件過程是人類制作產(chǎn)物的一系列活動(dòng),而過去的軟件工程師把產(chǎn)物和人分離,只研究產(chǎn)品過程及其質(zhì)量,假定人力、物力資源是無限大、無限好?,F(xiàn)在認(rèn)識到面對實(shí)際資源實(shí)施軟件過程學(xué),求相對最佳質(zhì)量才是有效的。又加入了:管理各種活動(dòng)、質(zhì)量保證環(huán)境基礎(chǔ)設(shè)施配置、文檔管理等。軟件過程又稱軟件生存周期過程,是軟件生存周期內(nèi)為達(dá)1.3 軟件開發(fā)模型的演變和生存周期2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)171.3.1 軟件開發(fā)過程與模型的演變1. 瀑布模型(waterfall model)(1)慎重使用瀑布模型的情況:不能充分理解客戶需求或
10、客戶需求有可能迅速發(fā)生化;系統(tǒng)太大太復(fù)雜,不能一次做完所有的事;事先擬采用的技術(shù)迅速發(fā)生變化;提供的資源有限;無法利用各開發(fā)階段的某一中間產(chǎn)品。1.3 軟件開發(fā)模型的演變和生存周期2022/9/3UML1. 瀑布模型(waterfall model)計(jì)劃階段 問題定義及可行性研究1.3 軟件開發(fā)模型的演變和生存周期1.3.1 軟件開發(fā)過程與模型的演變1. 瀑布模型(waterfall model)計(jì)劃階段 問瀑布模型的特點(diǎn)文檔驅(qū)動(dòng)的模型 階段間具有順序性和依賴性推遲實(shí)現(xiàn)的觀點(diǎn)質(zhì)量保證的觀點(diǎn)瀑布模型的特點(diǎn)文檔驅(qū)動(dòng)的模型 瀑布模型的問題實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行用戶常常一開始難以清楚地給
11、出所有需求用戶必須有耐心等待一個(gè)漫長無反饋的交付開發(fā)者常常被不必要地耽擱瀑布模型的問題實(shí)際項(xiàng)目很少按照該模型給出的順序進(jìn)行(1)慎重使用瀑布模型的情況:不能充分理解客戶需求或客戶需求有可能迅速發(fā)生化;系統(tǒng)太大太復(fù)雜,不能一次做完所有的事;事先擬采用的技術(shù)迅速發(fā)生變化;提供的資源有限;無法利用各開發(fā)階段的某一中間產(chǎn)品。(2)使用瀑布模型的情況:系統(tǒng)所有的功能、性能要求客戶可以一次性準(zhǔn)確交付時(shí);必須是首次開發(fā)的新系統(tǒng)并且淘汰全部老系統(tǒng)時(shí)。課件UML系統(tǒng)建模與分析設(shè)計(jì)2. 漸增模型(incremental model)由一組有計(jì)劃的、循環(huán)漸增的、不斷改進(jìn)的過程版本組成。各個(gè)中間版本可以并行開發(fā)。2.
12、 漸增模型(incremental model)由一組有例如,使用增量模型開發(fā)字處理軟件基本的文件管理、編輯和文檔生成功能。更完善的編輯和文檔生成能力。實(shí)現(xiàn)拼寫和文法檢查功能。完成高級的頁面布局功能。第一個(gè)增量往往是核心產(chǎn)品每一個(gè)增量均發(fā)布一個(gè)可操作產(chǎn)品早期的增量是最終產(chǎn)品的“可拆卸”版本例如,使用增量模型開發(fā)字處理軟件2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)24(1)慎重考慮使用漸增模型的情況:不能充分理解客戶需求或客戶需求有可能迅速發(fā)生變化;事先擬采用的技術(shù)迅速發(fā)生變化;客戶突然提出一些新的功能需求;長時(shí)期內(nèi)僅有有限的資源保證(開發(fā)人員和資金)。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)2
13、62022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)25使用漸增模型的情況:需要在盡短的時(shí)間內(nèi)得到系統(tǒng)基本功能的演示或使用;各版本都有中間階段產(chǎn)品可提供使用;系統(tǒng)可以被自然地分割成漸增的模式;開發(fā)人員與資金可以逐步增加。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)27使用漸增模型的情2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)263. 演化模型(evolutionary model)演化模型也稱為原型(prototype)法模型??焖俳⑵饋淼目梢栽谟?jì)算機(jī)上運(yùn)行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個(gè)子集。 2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)283. 演化模型(原型模型的適用情況用戶定
14、義了一組一般性目標(biāo),但不能標(biāo)識出詳細(xì)的輸入、處理及輸出需求;開發(fā)者可能不能確定算法的有效性、操作系統(tǒng)的適應(yīng)性或人機(jī)交互的形式;原型模型的適用情況用戶定義了一組一般性目標(biāo),但不能標(biāo)識出詳細(xì)使用演化模型時(shí)應(yīng)注意 演化模型也是通過系統(tǒng)各個(gè)可執(zhí)行的中間版本以漸增的形式來開發(fā)系統(tǒng)的,但是客戶需求可以分步逐漸了解,不用在初始時(shí)就確定。在模型中,可以預(yù)先定義一部分客戶需求,然后在每個(gè)后繼的中間版本中再逐步增加需求,一點(diǎn)點(diǎn)完善。在開發(fā)每個(gè)中間版本時(shí),開發(fā)過程中的活動(dòng)和任務(wù)可以順序地或部分重疊平行地被加入到這些中間版本中。使用演化模型時(shí)應(yīng)注意 演化模型也是通過系統(tǒng)各個(gè)可執(zhí)行4. 螺旋模型(spiral mode
15、l)需求分析驗(yàn)證規(guī)格說明驗(yàn)證設(shè)計(jì)驗(yàn)證編碼測試綜合測試維護(hù)變化的需求驗(yàn)證風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析風(fēng)險(xiǎn)分析螺旋模型-簡化:使用原型及其他方法來盡量降低風(fēng)險(xiǎn)。4. 螺旋模型(spiral model)需求分析驗(yàn)證規(guī)格說螺旋模型決定目標(biāo)、方案和限制評價(jià)方案、識別風(fēng)險(xiǎn)、弱化風(fēng)險(xiǎn)開發(fā)、驗(yàn)證、下一級產(chǎn)品計(jì)劃下一階段集成測試螺旋模型將瀑布模型與快速原形模型結(jié)合起來,并且加入兩種模型均忽略了的風(fēng)險(xiǎn)分析。螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更完善的一個(gè)新版本。 螺旋模型決定目標(biāo)、評價(jià)方案、開發(fā)、驗(yàn)證、集成螺旋模型將瀑布優(yōu)點(diǎn)對可選方案和約束條件的強(qiáng)調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)
16、量作為軟件開發(fā)的一個(gè)重要目標(biāo);減少了過多測試或測試不足;維護(hù)和開發(fā)之間并沒有本質(zhì)區(qū)別。特點(diǎn)風(fēng)險(xiǎn)驅(qū)動(dòng)的主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項(xiàng)目優(yōu)點(diǎn)2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)325 . 智能模型(intelligent model)2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)345 . 智能模型6.RUP現(xiàn)在軟件產(chǎn)業(yè)界普遍認(rèn)為,開發(fā)復(fù)雜軟件項(xiàng)目必須采用基于UML的、以構(gòu)架為中心、用例驅(qū)動(dòng)與風(fēng)險(xiǎn)驅(qū)動(dòng)相結(jié)合的迭代式增量開發(fā)過程,他是世界公認(rèn)的開發(fā)復(fù)雜軟件項(xiàng)目的最好過程,已經(jīng)成為軟件界的“圣經(jīng)”。這一開發(fā)過程目前已經(jīng)穩(wěn)定、成熟。這就是:RUP (Rational Unified Process),
17、統(tǒng)一軟件開發(fā)過程 6.RUP現(xiàn)在軟件產(chǎn)業(yè)界普遍認(rèn)為,開發(fā)復(fù)雜軟件項(xiàng)目必須采用基2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)341.3.2 軟件開發(fā)模型的選擇 要綜合考慮以下幾個(gè)因素: (1)軟件規(guī)模 (2)軟件類型 系統(tǒng)軟件的開發(fā)。實(shí)時(shí)軟件的開發(fā)。商業(yè)應(yīng)用軟件的開發(fā)。嵌入式軟件的開發(fā)。人工智能軟件的開發(fā)。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)361.3.2 軟2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)35(3)軟件質(zhì)量要求(4)交付工期(5)客戶需求明確度(6)投資(7)可復(fù)用性(8)開發(fā)者掌握的資源2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)372022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)361.
18、3.3 軟件生存周期2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)381.3.3 軟2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)37軟件定義(1)軟件系統(tǒng)的可行性研究-確定開發(fā)軟件開發(fā)系統(tǒng)的總目標(biāo),給出功能、性能、可靠性和接口等方面的要求。 1)經(jīng)濟(jì)可行性研究-成本效益分析。 2)技術(shù)可行性研究-技術(shù)風(fēng)險(xiǎn)評價(jià)。 3)法律可行性研究-可能導(dǎo)致的任何侵權(quán)、社會(huì)安全。 4)方案的選擇-評價(jià)候選方案。 形成可行性研究報(bào)告 項(xiàng)目背景、管理概要、候選方案、系統(tǒng)描述、經(jīng)濟(jì)可行性、法律可行性,用戶使用可行性等。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)39軟件定義(2)需求分析-為設(shè)計(jì)做準(zhǔn)備 ,即對開發(fā)軟件提出的需求進(jìn)
19、行分析并給出詳細(xì)的定義。給出軟件需求說明書和系統(tǒng)功能說明書。 1)任務(wù)-確定待開發(fā)軟件的功能,性能需求和運(yùn)行環(huán)境約束,編制軟件需求規(guī)格說明、軟件系統(tǒng)的確認(rèn)測試準(zhǔn)則和用戶手冊概要。 軟件功能需求: 軟件性能需求: 軟件系統(tǒng)運(yùn)行環(huán)境: 2)按需求建模。 3)軟件需求規(guī)格說明(Software Requirements Specification,簡稱SRS)-指明軟件系統(tǒng)的功能需求、性能需求、接口需求、設(shè)計(jì)需求、基本結(jié)構(gòu)以及開發(fā)標(biāo)準(zhǔn)和驗(yàn)收原則。(2)需求分析-為設(shè)計(jì)做準(zhǔn)備 ,即對開發(fā)軟件提出的需求進(jìn)行分2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)39軟件開發(fā)軟件開發(fā)階段:概要設(shè)計(jì)、詳細(xì)設(shè)計(jì)、實(shí)現(xiàn)、組
20、裝測試和確認(rèn)測試五個(gè)階段組成。軟件開發(fā)是軟件需求規(guī)格說明由抽象到具體并逐步生成軟件的過程。(1)概要設(shè)計(jì)-確立模塊和需求的對應(yīng)建立系統(tǒng)總體結(jié)構(gòu)和各模塊之間的關(guān)系;定義各個(gè)功能模塊的接口;設(shè)計(jì)全局?jǐn)?shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu);規(guī)定設(shè)計(jì)約束;制定組裝測試計(jì)劃。(2)詳細(xì)設(shè)計(jì)對概要設(shè)計(jì)模塊進(jìn)行細(xì)化,形成可編程的程序模塊;建立文檔資料。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)41軟件開發(fā)2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)40(3)實(shí)現(xiàn)選擇合適的編程語言;制定測試方案、測試案例;保存文檔資料。(4)組裝測試(5)確認(rèn)測試2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)42(3)實(shí)現(xiàn)3軟件使用、維護(hù)和更新?lián)Q代(1)軟
21、件使用(2)系統(tǒng)維護(hù)(3)系統(tǒng)更新?lián)Q代3軟件使用、維護(hù)和更新?lián)Q代(1)軟件使用1.4 軟件開發(fā)方法簡介2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)42程序設(shè)計(jì)方法:1. 結(jié)構(gòu)化程序設(shè)計(jì)方法其控制結(jié)構(gòu)僅由順序、選擇與重復(fù)等有限的基本控制結(jié)構(gòu)表示。2. 模塊化程序設(shè)計(jì)方法模塊之間的接口應(yīng)盡可能簡明清晰: 單獨(dú)模塊的修改不影響其它模塊的功能;模塊化應(yīng)具有可修改性、易讀性和可驗(yàn)證性。3. 面向?qū)ο蟪绦蛟O(shè)計(jì)方法1.4 軟件開發(fā)方法簡介2022/9/3UML系統(tǒng)建模與分1.4.1 結(jié)構(gòu)化軟件開發(fā)方法是現(xiàn)有的軟件開發(fā)方法中最成熟,應(yīng)用最廣泛的方法,主要特點(diǎn)是快速,自然和方便。結(jié)構(gòu)化方法總的指導(dǎo)思想自頂向下、逐
22、步求精。它的基本原則是功能的分解與抽象。結(jié)構(gòu)化開發(fā)方法的組成 結(jié)構(gòu)化程序設(shè)計(jì)方法 SP法(Structured Program) 結(jié)構(gòu)化設(shè)計(jì)方法 SD法(Structured Design) 結(jié)構(gòu)化分析方法 SA法(Structured Analysis) SA,SD,SP 法相互銜接,形成了一整套開發(fā)方法。1.4.1 結(jié)構(gòu)化軟件開發(fā)方法是現(xiàn)有的軟件開發(fā)方法中最成熟2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)44 1結(jié)構(gòu)化分析的步驟 構(gòu)造數(shù)據(jù)流模型。構(gòu)建控制流模型。生成數(shù)據(jù)字典(DD)。生成可選方案,建立需求規(guī)約。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)462022/9/10UML系統(tǒng)建模與分析
23、設(shè)計(jì)452結(jié)構(gòu)化設(shè)計(jì)步驟首先研究、分析和審查數(shù)據(jù)流圖。從軟件的需求規(guī)格說明中弄清數(shù)據(jù)流加工的過程。然后根據(jù)數(shù)據(jù)流圖決定問題的類型。由數(shù)據(jù)流圖推導(dǎo)出系統(tǒng)的初始結(jié)構(gòu)圖。優(yōu)化軟件結(jié)構(gòu)。描述模塊接口。修改和補(bǔ)充數(shù)據(jù)詞典。制定測試計(jì)劃。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)472結(jié)構(gòu)化設(shè)計(jì)步1.4.2 模塊化軟件開發(fā)方法 (1)模塊可分解性。(2)模塊可組裝性。(3)模塊可理解性。(4)模塊連續(xù)性。(5)模塊保護(hù)。1.4.2 模塊化軟件開發(fā)方法 (1)模塊可分解性。2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)471.4.3 面向數(shù)據(jù)結(jié)構(gòu)軟件開發(fā)方法1建立JSD( Jackson System Devel
24、opment)的系統(tǒng)進(jìn)程模型2JSD方法的步驟(1)JSD需求分析步驟標(biāo)識系統(tǒng)中的實(shí)體與相應(yīng)動(dòng)作;生成實(shí)體結(jié)構(gòu)圖;初建系統(tǒng)模型。(2)JSD系統(tǒng)設(shè)計(jì)步驟擴(kuò)充功能過程。系統(tǒng)定時(shí)。系統(tǒng)實(shí)現(xiàn)。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)491.4.3 面2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)48面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法的特點(diǎn):將分析結(jié)果作為設(shè)計(jì)基礎(chǔ),無明顯分界;都必須標(biāo)識關(guān)鍵實(shí)體和動(dòng)作;信息具有層次性;提供一組將層次化的數(shù)據(jù)結(jié)構(gòu)映射到程序結(jié)構(gòu)的步驟;數(shù)據(jù)結(jié)構(gòu)由順序、選擇和重復(fù)3種構(gòu)造成分表示。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)50面向數(shù)據(jù)結(jié)構(gòu)的2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)491.4
25、.3 面向?qū)ο筌浖_發(fā)方法面向?qū)ο蠓椒ǖ囊饬x:(1)一種新的思考方式。(2)將數(shù)據(jù)和行為結(jié)合成為對象。(3)核心是封裝。(4)面向?qū)ο蠓椒ń⒌幕A(chǔ)是:軟件工程概念;計(jì)算機(jī)科學(xué)概念;工程管理;數(shù)據(jù)庫信息模型;傳統(tǒng)軟件開發(fā)方法。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)511.4.3 面2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)50面向?qū)ο蠓椒ㄓ袔资N,綜合起來,其基本觀點(diǎn)如下:現(xiàn)實(shí)客觀世界由對象組成。相同的數(shù)據(jù)和操作的對象歸并為類。類可以繼承。對象之間通過消息進(jìn)行聯(lián)系。面向?qū)ο?= 對象 + 類 + 繼承 + 通信2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)52面向?qū)ο蠓椒ㄓ?022/9/10UML
26、系統(tǒng)建模與分析設(shè)計(jì)511.4.4 軟件開發(fā)方法的評價(jià)與選擇綜合考慮以下幾方面因素:人員素質(zhì)。時(shí)間進(jìn)度。掌握資源。可行性。領(lǐng)域知識。從四個(gè)方面評價(jià):技術(shù)特征。使用特征。管理特征。經(jīng)濟(jì)特征。2022/9/3UML系統(tǒng)建模與分析設(shè)計(jì)531.4.4 軟1.5 面向?qū)ο筌浖_發(fā)方法簡介2022/9/10UML系統(tǒng)建模與分析設(shè)計(jì)52特點(diǎn):(1)使人們更好地認(rèn)識客觀世界(2)能很好地適應(yīng)需求變化(3)容易實(shí)現(xiàn)軟件復(fù)用(4)系統(tǒng)易于維護(hù)和修改1.5 面向?qū)ο筌浖_發(fā)方法簡介2022/9/3UML系統(tǒng)1.5.1 面向?qū)ο蟮幕靖拍罘庋b性、繼承性和多態(tài)性對象類抽象封裝消息傳遞繼承多態(tài)性1.5.1 面向?qū)ο蟮幕靖?/p>
27、念封裝性、繼承性和多態(tài)性1.重要的面向?qū)ο蟾拍铑惡蛯ο笤诳陀^世界中,有一些對象具有相同的特征,將他們稱之為同類對象。于是出現(xiàn)了類的概念。1.重要的面向?qū)ο蟾拍铑惡蛯ο笤诳陀^世界中,有一些對象具“面向?qū)ο蟆边\(yùn)用到軟件中面向?qū)ο筌浖こ蹋∣OA/OOD/OOP)利用這種“面向?qū)ο蟆闭J(rèn)知的世界觀來進(jìn)行軟件開發(fā)。程序由類和對象組成。class TreeTree aTree = new Tree();“面向?qū)ο蟆边\(yùn)用到軟件中面向?qū)ο筌浖こ蹋∣OA/OOD類的作用:分類:用于區(qū)分不同事物。是創(chuàng)建對象的模板:產(chǎn)生對象。類的作用:分類:用于區(qū)分不同事物。課件UML系統(tǒng)建模與分析設(shè)計(jì)2.怎么得到類和對象?抽象
28、把事物共同點(diǎn)抽取出來,以統(tǒng)一的方式進(jìn)行概要描述的過程;從許多事物中舍棄個(gè)別的、非本質(zhì)的特征,抽取共同的、本質(zhì)性的特征; 過濾掉對象的一部分特征和操作直到只剩下你所需要的屬性和操作。2.怎么得到類和對象?抽象把事物共同點(diǎn)抽取出來,以統(tǒng)一的是不是現(xiàn)實(shí)世界中類的所有屬性和方法都需要在系統(tǒng)中進(jìn)行抽象呢?當(dāng)然不是啦!作為一個(gè)分析人員,要根據(jù)用戶實(shí)際的業(yè)務(wù)情況進(jìn)行選擇。例如:在課堂考勤系統(tǒng)中,教師類只需要有姓名、職稱、性別這些屬性,因?yàn)檫@些是用戶需要的。而在教職工人事管理系統(tǒng)中,教師類就需要姓名、出生年月、入職時(shí)間、所屬單位、職稱、性別、婚姻狀況等屬性。1.從許多事物中舍棄個(gè)別的、非本質(zhì)的特征,抽取共同的
29、、本質(zhì)性的特征; 2.過濾掉對象的一部分特征和操作直到只剩下你所需要的屬性和操作。是不是現(xiàn)實(shí)世界中類的所有屬性和方法都需要在系統(tǒng)中進(jìn)行抽象呢?引入問題:現(xiàn)在讓我們來編寫一個(gè)java小程序,實(shí)現(xiàn)在命令行模式下輸出以下形式的著名詩詞春曉,你會(huì)怎么做?* 春曉* 春眠不覺曉,* 處處聞啼鳥。* 夜來風(fēng)雨聲,* 花落知多少。3. 信息隱蔽和局部化封裝讓對象細(xì)節(jié)受到保護(hù)封裝引入問題:現(xiàn)在讓我們來編寫一個(gè)java小程序,實(shí)現(xiàn)在命令行你可能會(huì)這么寫public class ChunXiao1public static void main(String args)System.out.println(* 春曉
30、);System.out.println(* 春眠不覺曉,);System.out.println(* 處處聞啼鳥。);System.out.println(* 夜來風(fēng)雨聲,);System.out.println(* 花落知多少。);很簡單,但是有時(shí)候并不是越簡單越好!現(xiàn)在,如果想把*改變?yōu)?,該怎么辦?改5次嗎? 【代碼】 Chunxiao1.java你可能會(huì)這么寫public class ChunXiao1你可能還會(huì)這么寫public class ChunXiao2public String buildStar()return *;public static void main(Stri
31、ng args)ChunXiao2 c=new ChunXiao2();System.out.println(c.buildStar()+ 春曉);System.out.println(c.buildStar()+ 春眠不覺曉,);System.out.println(c.buildStar()+ 處處聞啼鳥。);System.out.println(c.buildStar()+ 夜來風(fēng)雨聲,);System.out.println(c.buildStar()+ 花落知多少。);利用方法buildStar()來產(chǎn)生,這樣每次只用修改一個(gè)地方了我們把產(chǎn)生的功能封裝了起來,對外界使用者來講,不需要
32、知道方法內(nèi)部的細(xì)節(jié),只需要知道調(diào)用這個(gè)方法可以產(chǎn)生就行了?!敬a】 Chunxiao2.java你可能還會(huì)這么寫public class ChunXiao2讓對象細(xì)節(jié)受到保護(hù)封裝當(dāng)一個(gè)對象執(zhí)行自己的操作時(shí)。它對外界隱藏了操作的細(xì)節(jié)。封裝可以提高重用性,并且讓程序易于維護(hù)讓對象細(xì)節(jié)受到保護(hù)封裝當(dāng)一個(gè)對象執(zhí)行自己的操作時(shí)。它對外封裝的程度問題還是春曉。剛才我們將產(chǎn)生*的方法寫在了類ChunXiao2中,根據(jù)前面所講,類中的方法代表的是類的操作,而產(chǎn)生*和春曉沒有直接關(guān)系,這樣的封裝看起來好像不合理,怎么改進(jìn)一下呢 ?StarFactoryString build()ChunXiao3【代碼】Sta
33、rFactory.java Chunxiao3.java封裝的程度問題還是春曉。剛才我們將產(chǎn)生*的方法寫在了類public class StarFactorypublic String build()return *;public class ChunXiao3public static void main(String args)StarFactory strFac = new StarFactory();System.out.println(strFac.build()+ 春曉);System.out.println(strFac.build()+ 春眠不覺曉,);System.out.p
34、rintln(strFac.build()+ 處處聞啼鳥。);System.out.println(strFac.build()+ 夜來風(fēng)雨聲,);System.out.println(strFac.build()+ 花落知多少。);【代碼】StarFactory.java Chunxiao3.javapublic class StarFactory【代碼】S封裝的不同,重用也不同了現(xiàn)在我們不僅可以在春曉里面用*了,還可以在靜夜思 里面用*了StarFactoryString build()ChunXiao3JingYeSi【代碼】 JingYeSi.java封裝的不同,重用也不同了現(xiàn)在我們不僅可以在春曉里面用*public class JingYeSipublic static void main(String args)StarFactory strFac = new StarFactory();System.out.println(strFac.build()+ 靜夜思);System.out.println(strFac.build()+ 床前明月光,);Sys
溫馨提示
- 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年中考語文一輪復(fù)習(xí):小說中的環(huán)境描寫知識點(diǎn)及訓(xùn)練
- 2025年中考語文一輪復(fù)習(xí):古詩詞閱讀重點(diǎn)考點(diǎn)解讀 講義
- 廣東省廣州市藝術(shù)中學(xué)2024-2025學(xué)年高一上學(xué)期期末考試數(shù)學(xué)試卷(解析版)
- 屏蔽機(jī)房施工方案模板
- 基礎(chǔ)分部工程施工方案
- 室外大棚導(dǎo)線施工方案
- 2025年葡語語音考試題及答案
- 6個(gè)月寶寶早教兒歌
- 低分子量聚丙烯酸對卡波姆樹脂的影響
- 4年級下冊人教版要寫的字第三課
- GB/T 3683.1-2006橡膠軟管及軟管組合件鋼絲編織增強(qiáng)液壓型規(guī)范第1部分:油基流體適用
- 探究反應(yīng)后溶液中的溶質(zhì)
- 景觀照明燈具技術(shù)規(guī)格標(biāo)準(zhǔn)附詳圖參考
- 《簡·愛》外國小說閱讀,初中語文下冊名著閱讀精講課件(部編版)
- 滬教版高一英語上冊(牛津版)全冊課件【完整版】
- 疾控中心考試試題
- 2023門球競賽規(guī)則電子版圖文并茂
- DB13T 2801-2018 水利工程質(zhì)量監(jiān)督規(guī)程
- Q∕SY 05262-2019 機(jī)械清管器技術(shù)條件
- 耳鼻咽喉頭頸外科學(xué)耳鼻咽喉應(yīng)用解剖
- 科學(xué)研究方法與學(xué)術(shù)論文寫作
評論
0/150
提交評論