![課件—UML系統(tǒng)建模與分析設計(1)_第1頁](http://file3.renrendoc.com/fileroot3/2021-11/8/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e5/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e51.gif)
![課件—UML系統(tǒng)建模與分析設計(1)_第2頁](http://file3.renrendoc.com/fileroot3/2021-11/8/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e5/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e52.gif)
![課件—UML系統(tǒng)建模與分析設計(1)_第3頁](http://file3.renrendoc.com/fileroot3/2021-11/8/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e5/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e53.gif)
![課件—UML系統(tǒng)建模與分析設計(1)_第4頁](http://file3.renrendoc.com/fileroot3/2021-11/8/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e5/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e54.gif)
![課件—UML系統(tǒng)建模與分析設計(1)_第5頁](http://file3.renrendoc.com/fileroot3/2021-11/8/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e5/9a9f4b91-5123-40e5-9784-9d3ee1c4a4e55.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領
文檔簡介
1、UMLUML系統(tǒng)建模系統(tǒng)建模 與分析設計與分析設計1課程內(nèi)容課程內(nèi)容 v本課程闡述基于UML的面向?qū)ο蠓治雠c設計的基本概念,詳細介紹統(tǒng)一建模語言UML及其開發(fā)過程,以一個集成案例貫穿可行性研究、需求分析、系統(tǒng)分析與系統(tǒng)設計的全過程。v使學生快速地掌握面向?qū)ο蟮南到y(tǒng)分析、設計方法。教學目的:教學目的:v全面掌握采用面向?qū)ο蟮能浖_發(fā)分析設計的基本步驟與方法.v掌握軟件開發(fā)工具ROSE的使用方法與技巧,使同學們能夠掌握采用面向?qū)ο蠹夹g(shù)獨立開發(fā)一個軟件項目的過程和建模方法,對開發(fā)面向?qū)ο筌浖椖康倪^程有一個完整、全面地了解。 課程學時、考核方式課程學時、考核方式 v課程學時(36學時)n課堂講授:課
2、堂講授:20學時學時n上機:上機: 16學時學時v考核方式分考試與報告和平時三部分。n考試考試: :閉卷考試閉卷考試 n報告報告: :課程設計課程設計報告報告 每個同學期末上交一個完整的采用面向?qū)ο蠹夹g(shù)進行每個同學期末上交一個完整的采用面向?qū)ο蠹夹g(shù)進行軟件開發(fā)的軟件開發(fā)的課程設計課程設計報告,根據(jù)報告的內(nèi)容給出報告,根據(jù)報告的內(nèi)容給出成績。成績。n平時平時:出勤、作業(yè):出勤、作業(yè) 教材和參考書:教材和參考書:教材教材UML系統(tǒng)建模與分析設計系統(tǒng)建模與分析設計機械工業(yè)出版社機械工業(yè)出版社 刁成嘉刁成嘉UML基礎與基礎與Rose建模教程建模教程人民郵電出版社人民郵電出版社 蔡敏蔡敏UML和模式應用
3、面向?qū)ο蠓治雠c設計導論和模式應用面向?qū)ο蠓治雠c設計導論1版機械工版機械工業(yè)出版社業(yè)出版社 CraigLarman著著 姚淑珍譯姚淑珍譯參考書參考書UML系統(tǒng)建模與分析設計課程設計系統(tǒng)建模與分析設計課程設計機械工業(yè)出版社機械工業(yè)出版社 刁成嘉刁成嘉UML基礎與基礎與Rose建模案例建模案例(第第2版版)人民郵電出版社人民郵電出版社 吳吳建建過程過程表示法表示法工具工具 系統(tǒng)建模與分析設計是研究和應用如何以系統(tǒng)化、規(guī)范化和可度量的方法開發(fā)、運行和維護軟件的一種層次化技術(shù)。包括過程、方法和工具三個要素。 過程:將用戶的需求轉(zhuǎn)化成有效的軟件解決方案的一系列活動。許多軟件組織無法正確定義和控制這一過程,
4、但這恰恰是組織改進的關(guān)鍵。 過程的好壞由結(jié)果狀態(tài)與預期狀態(tài)的差異決定,也就是目標成果質(zhì)量的好壞。 軟件過程是為了獲得高質(zhì)量軟件產(chǎn)品所需要完成的一系列任務的框架,它規(guī)定了完成各項任務的工作步驟。軟件過程必須科學、合理,才能開發(fā)出高質(zhì)量的軟件產(chǎn)品。 軟件過程又稱軟件生存周期過程,是軟件生存周期內(nèi)為達到一定目標而必須實施的一系列相關(guān)過程的集合什么是什么是UML? ?統(tǒng)一建模語言(Unified Modeling Language,UML)是描述、構(gòu)造和文檔化系統(tǒng)的語言。 作用: 建立軟件模型 建模語言: 提供交流的詞匯和規(guī)則 可視化: 通過標準圖符構(gòu)成圖形來描述模型 建模語言而非編程語言 通用標準:
5、 成為軟件建模的標準語言,并且在其他領域也得到應用。 如何學習如何學習UML?按照某種過程進行分析、設計;用設計原則和模式進行更好的設計;用UML表示法記錄、輔助“工具工具”:用:用UML來表達來表達OOA/DUML的意義就在于為的意義就在于為OOA/D的實踐規(guī)定了一致的表示法的實踐規(guī)定了一致的表示法方法方法:運用:運用OOA/D原則領域分析原則領域分析+職責分配職責分配過程過程:過程模型(活動套路,開發(fā)周期):過程模型(活動套路,開發(fā)周期)用例驅(qū)動,以體系結(jié)構(gòu)為中心,迭代增量式用例驅(qū)動,以體系結(jié)構(gòu)為中心,迭代增量式 vUML不是OOA/D,也不是方法,它僅僅只是一種圖形表示法v如果不掌握對象
6、思想,那么UML或任何case工具(如ROSE)將毫無意義v我們需要一種用于OOA/D的語言,這既是一種思考的工具,也是一種溝通的形式。因此,我們將在OOA/D中應用UML。如何應用如何應用UML進行進行OOA/D?如何將如何將UML應用于應用于UP過程?過程?第一章第一章 系統(tǒng)建模與分析設計技術(shù)的演變系統(tǒng)建模與分析設計技術(shù)的演變 11本章目的:v理解軟件的基本概念和特點v了解軟件的發(fā)展過程及軟件開發(fā)過程v了解軟件開發(fā)的方法v掌握面向?qū)ο蠹夹g(shù)的基本概念及開發(fā)過程v了解幾種典型的面向?qū)ο蠓椒?.1 1.1 軟件的概念、特點和分類軟件的概念、特點和分類121現(xiàn)代軟件的概念和特點 (1)軟件規(guī)模大。
7、 (2)軟件開發(fā)規(guī)范并趨于標準化。 (3)軟件開發(fā)方法多,有大量的軟件工具支持。 (4)注重軟件開發(fā)的管理。 (5)軟件維護相對過去容易得多。132軟件的分類(1)按軟件的功能劃分 系統(tǒng)軟件。 支撐軟件。 應用軟件。(2)按軟件的規(guī)模劃分 微型軟件-不超過500行。 小型軟件-2000行左右 中型軟件-5000-50000行之間 大型甚至超大型軟件-多個研發(fā)小組,甚至是成百上千人組成的開發(fā)團隊。(3)按軟件工作方式劃分 實時處理軟件。 分時軟件。 交互式軟件。 批處理軟件。14(4)按軟件服務對象的范圍劃分 項目軟件。產(chǎn)品軟件。(5)按使用的頻度劃分一次性使用軟件。使用頻度較高的軟件。(6)按
8、軟件失效的影響程度劃分一般性軟件。關(guān)鍵性軟件。1.21.2軟件的發(fā)展與軟件工程軟件的發(fā)展與軟件工程15軟件工程的指導性原則: 變動的軟件需求。穩(wěn)妥的設計方法。高效的軟件開發(fā)支持技術(shù)。有效的過程管理。軟件工程具有里程碑意義的進展:結(jié)構(gòu)化軟件開發(fā)方法的工具。計算機輔助軟件工程(CASE)。面向?qū)ο笳Z言和方法成為主流的軟件開發(fā)技術(shù)。v 軟件過程又稱軟件生存周期過程,是軟件生存周期內(nèi)為達到一定目標而必須實施的一系列相關(guān)過程的集合。早期:立項、需求分析、設計、編碼、測試、交付、維護、退役v 軟件過程是人類制作產(chǎn)物的一系列活動,而過去的軟件工程師把產(chǎn)物和人分離,只研究產(chǎn)品過程及其質(zhì)量,假定人力、物力資源是
9、無限大、無限好。現(xiàn)在認識到面對實際資源實施軟件過程學,求相對最佳質(zhì)量才是有效的。又加入了:管理各種活動、質(zhì)量保證環(huán)境基礎設施配置、文檔管理等。1.3 1.3 軟件開發(fā)模型的演變和生存周期軟件開發(fā)模型的演變和生存周期171.3.1 軟件開發(fā)過程與模型的演變1. 瀑布模型(waterfall model)(1)慎重使用瀑布模型的情況:v 不能充分理解客戶需求或客戶需求有可能迅速發(fā)生化;v 系統(tǒng)太大太復雜,不能一次做完所有的事;v 事先擬采用的技術(shù)迅速發(fā)生變化;v 提供的資源有限;v 無法利用各開發(fā)階段的某一中間產(chǎn)品。1. 1. 瀑布模型(瀑布模型(waterfall modelwaterfall
10、model)計劃階段計劃階段 問題定義及可行性研究問題定義及可行性研究1.3 1.3 軟件開發(fā)模型的演變和生存周期軟件開發(fā)模型的演變和生存周期1.3.1 軟件開發(fā)過程與模型的演變瀑布模型的特點瀑布模型的特點v文檔驅(qū)動的模型 v階段間具有順序性和依賴性v推遲實現(xiàn)的觀點v質(zhì)量保證的觀點瀑布模型的問題瀑布模型的問題v實際項目很少按照該模型給出的順序進行v用戶常常一開始難以清楚地給出所有需求v用戶必須有耐心等待一個漫長無反饋的交付v開發(fā)者常常被不必要地耽擱(1)慎重使用瀑布模型的情況:v 不能充分理解客戶需求或客戶需求有可能迅速發(fā)生化;v 系統(tǒng)太大太復雜,不能一次做完所有的事;v 事先擬采用的技術(shù)迅速
11、發(fā)生變化;v 提供的資源有限;v 無法利用各開發(fā)階段的某一中間產(chǎn)品。(2)使用瀑布模型的情況:v 系統(tǒng)所有的功能、性能要求客戶可以一次性準確交付時;v 必須是首次開發(fā)的新系統(tǒng)并且淘汰全部老系統(tǒng)時。2. 漸增模型(incremental model)由一組有計劃的、循環(huán)漸增的、不斷改進的過程版本組成。各個中間版本可以并行開發(fā)。v 例如,使用增量模型開發(fā)字處理軟件n基本的文件管理、編輯和文檔生成功能。n更完善的編輯和文檔生成能力。n實現(xiàn)拼寫和文法檢查功能。n完成高級的頁面布局功能。v 第一個增量往往是核心產(chǎn)品v 每一個增量均發(fā)布一個可操作產(chǎn)品v 早期的增量是最終產(chǎn)品的“可拆卸”版本24(1)慎重考
12、慮使用漸增模型的情況:v 不能充分理解客戶需求或客戶需求有可能迅速發(fā)生變化;v 事先擬采用的技術(shù)迅速發(fā)生變化;v 客戶突然提出一些新的功能需求;v 長時期內(nèi)僅有有限的資源保證(開發(fā)人員和資金)。25使用漸增模型的情況:v 需要在盡短的時間內(nèi)得到系統(tǒng)基本功能的演示或使用;v 各版本都有中間階段產(chǎn)品可提供使用;v 系統(tǒng)可以被自然地分割成漸增的模式;v 開發(fā)人員與資金可以逐步增加。263. 演化模型(evolutionary model)演化模型也稱為原型(prototype)法模型。v快速建立起來的可以在計算機上運行的程序,它所能完成的功能往往是最終產(chǎn)品能完成的功能的一個子集。 原型模型的適用情況
13、v用戶定義了一組一般性目標,但不能標識出詳細的輸入、處理及輸出需求;v開發(fā)者可能不能確定算法的有效性、操作系統(tǒng)的適應性或人機交互的形式;v使用演化模型時應注意 演化模型也是通過系統(tǒng)各個可執(zhí)行的中間版本以漸增的形式來開發(fā)系統(tǒng)的,但是客戶需求可以分步逐漸了解,不用在初始時就確定。v在模型中,可以預先定義一部分客戶需求,然后在每個后繼的中間版本中再逐步增加需求,一點點完善。v在開發(fā)每個中間版本時,開發(fā)過程中的活動和任務可以順序地或部分重疊平行地被加入到這些中間版本中。4. 螺旋模型(spiral model)需求分析驗證規(guī)格說明驗證設計驗證編碼測試綜合測試維護變化的需求驗證風險分析風險分析風險分析風
14、險分析風險分析風險分析螺旋模型螺旋模型-簡化:使用原型及其他方法來盡量降低風險。簡化:使用原型及其他方法來盡量降低風險。螺螺旋旋模模型型決定目標、決定目標、方案和限制方案和限制評價方案、評價方案、識別風險、識別風險、弱化風險弱化風險開發(fā)、驗證、開發(fā)、驗證、下一級產(chǎn)品下一級產(chǎn)品 計劃下一階段計劃下一階段集成測試螺旋模型將螺旋模型將瀑布模型與快速原形瀑布模型與快速原形模型結(jié)合起來,并且加入兩種模型均忽略了的風險分模型結(jié)合起來,并且加入兩種模型均忽略了的風險分析。螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更完善的一個新版本。析。螺旋模型沿著螺線旋轉(zhuǎn),自內(nèi)向外每旋轉(zhuǎn)一圈便開發(fā)出更完善的一個新版本
15、。 v優(yōu)點n對可選方案和約束條件的強調(diào)有利于已有軟件的重用,也有助于把軟件質(zhì)量作為軟件開發(fā)的一個重要目標;n減少了過多測試或測試不足;n維護和開發(fā)之間并沒有本質(zhì)區(qū)別。v特點n風險驅(qū)動的v主要適用于內(nèi)部開發(fā)的大規(guī)模軟件項目325 . 智能模型(intelligent model)6.RUPv現(xiàn)在軟件產(chǎn)業(yè)界普遍認為,開發(fā)復雜軟件項目必須采用基于UML的、以構(gòu)架為中心、用例驅(qū)動與風險驅(qū)動相結(jié)合的迭代式增量開發(fā)過程,他是世界公認的開發(fā)復雜軟件項目的最好過程,已經(jīng)成為軟件界的“圣經(jīng)”。這一開發(fā)過程目前已經(jīng)穩(wěn)定、成熟。v這就是:RUP (Rational Unified Process),統(tǒng)一軟件開發(fā)過程
16、 341.3.2 軟件開發(fā)模型的選擇 要綜合考慮以下幾個因素: (1)軟件規(guī)模 (2)軟件類型 n系統(tǒng)軟件的開發(fā)。系統(tǒng)軟件的開發(fā)。n實時軟件的開發(fā)。實時軟件的開發(fā)。n商業(yè)應用軟件的開發(fā)。商業(yè)應用軟件的開發(fā)。n嵌入式軟件的開發(fā)。嵌入式軟件的開發(fā)。n人工智能軟件的開發(fā)。人工智能軟件的開發(fā)。35(3)軟件質(zhì)量要求(4)交付工期(5)客戶需求明確度(6)投資(7)可復用性(8)開發(fā)者掌握的資源361.3.3 軟件生存周期37軟件定義(1)軟件系統(tǒng)的可行性研究-確定開發(fā)軟件開發(fā)系統(tǒng)的總目標,給出功能、性能、可靠性和接口等方面的要求。 1)經(jīng)濟可行性研究-成本效益分析。 2)技術(shù)可行性研究-技術(shù)風險評價。
17、 3)法律可行性研究-可能導致的任何侵權(quán)、社會安全。 4)方案的選擇-評價候選方案。 形成可行性研究報告 項目背景、管理概要、候選方案、系統(tǒng)描述、經(jīng)濟可行性、法律可行性,用戶使用可行性等。(2)需求分析-為設計做準備 ,即對開發(fā)軟件提出的需求進行分析并給出詳細的定義。給出軟件需求說明書和系統(tǒng)功能說明書。 1)任務-確定待開發(fā)軟件的功能,性能需求和運行環(huán)境約束,編制軟件需求規(guī)格說明、軟件系統(tǒng)的確認測試準則和用戶手冊概要。 軟件功能需求: 軟件性能需求: 軟件系統(tǒng)運行環(huán)境: 2)按需求建模。 3)軟件需求規(guī)格說明(Software Requirements Specification,簡稱SRS)
18、-指明軟件系統(tǒng)的功能需求、性能需求、接口需求、設計需求、基本結(jié)構(gòu)以及開發(fā)標準和驗收原則。39軟件開發(fā)軟件開發(fā)軟件開發(fā)階段:概要設計、詳細設計、實現(xiàn)、組裝測試和確認測試五個階段組成。軟件開發(fā)是軟件需求規(guī)格說明由抽象到具體并逐步生成軟件的過程。(1)概要設計-確立模塊和需求的對應建立系統(tǒng)總體結(jié)構(gòu)和各模塊之間的關(guān)系;定義各個功能模塊的接口;設計全局數(shù)據(jù)庫或數(shù)據(jù)結(jié)構(gòu);規(guī)定設計約束;制定組裝測試計劃。(2)詳細設計對概要設計模塊進行細化,形成可編程的程序模塊;建立文檔資料。40(3)實現(xiàn)選擇合適的編程語言;制定測試方案、測試案例;保存文檔資料。(4)組裝測試(5)確認測試3軟件使用、維護和更新?lián)Q代軟件使
19、用、維護和更新?lián)Q代(1)軟件使用(2)系統(tǒng)維護(3)系統(tǒng)更新?lián)Q代1.4 1.4 軟件開發(fā)方法簡介軟件開發(fā)方法簡介42程序設計方法:1. 結(jié)構(gòu)化程序設計方法其控制結(jié)構(gòu)僅由順序、選擇與重復等有限的基本控制結(jié)構(gòu)表示。2. 模塊化程序設計方法模塊之間的接口應盡可能簡明清晰: 單獨模塊的修改不影響其它模塊的功能;模塊化應具有可修改性、易讀性和可驗證性。3. 面向?qū)ο蟪绦蛟O計方法1.4.1 結(jié)構(gòu)化軟件開發(fā)方法v是現(xiàn)有的軟件開發(fā)方法中最成熟,應用最廣泛的方法,主要特點是快速,自然和方便。v結(jié)構(gòu)化方法總的指導思想自頂向下、逐步求精。它的基本原則是功能的分解與抽象。 結(jié)構(gòu)化程序設計方法 SP法(Structur
20、ed Program) 結(jié)構(gòu)化設計方法 SD法(Structured Design) 結(jié)構(gòu)化分析方法 SA法(Structured Analysis) SA,SD,SP 法相互銜接,形成了一整套開發(fā)方法。44 1結(jié)構(gòu)化分析的步驟 構(gòu)造數(shù)據(jù)流模型。構(gòu)建控制流模型。生成數(shù)據(jù)字典(DD)。生成可選方案,建立需求規(guī)約。452結(jié)構(gòu)化設計步驟v首先研究、分析和審查數(shù)據(jù)流圖。從軟件的需求規(guī)格說明中弄清數(shù)據(jù)流加工的過程。v然后根據(jù)數(shù)據(jù)流圖決定問題的類型。v由數(shù)據(jù)流圖推導出系統(tǒng)的初始結(jié)構(gòu)圖。v優(yōu)化軟件結(jié)構(gòu)。v描述模塊接口。v修改和補充數(shù)據(jù)詞典。v制定測試計劃。1.4.2 模塊化軟件開發(fā)方法 (1)模塊可分解性。
21、(2)模塊可組裝性。(3)模塊可理解性。(4)模塊連續(xù)性。(5)模塊保護。471.4.3 面向數(shù)據(jù)結(jié)構(gòu)軟件開發(fā)方法1建立JSD( Jackson System Development)的系統(tǒng)進程模型2JSD方法的步驟(1)JSD需求分析步驟標識系統(tǒng)中的實體與相應動作;生成實體結(jié)構(gòu)圖;初建系統(tǒng)模型。(2)JSD系統(tǒng)設計步驟擴充功能過程。系統(tǒng)定時。系統(tǒng)實現(xiàn)。48面向數(shù)據(jù)結(jié)構(gòu)的開發(fā)方法的特點:v將分析結(jié)果作為設計基礎,無明顯分界;v都必須標識關(guān)鍵實體和動作;v信息具有層次性;v提供一組將層次化的數(shù)據(jù)結(jié)構(gòu)映射到程序結(jié)構(gòu)的步驟;v數(shù)據(jù)結(jié)構(gòu)由順序、選擇和重復3種構(gòu)造成分表示。491.4.3 面向?qū)ο筌浖_
22、發(fā)方法面向?qū)ο蠓椒ǖ囊饬x:(1)一種新的思考方式。(2)將數(shù)據(jù)和行為結(jié)合成為對象。(3)核心是封裝。(4)面向?qū)ο蠓椒ń⒌幕A是:n軟件工程概念;軟件工程概念;n計算機科學概念;計算機科學概念;n工程管理;工程管理;n數(shù)據(jù)庫信息模型;數(shù)據(jù)庫信息模型;n傳統(tǒng)軟件開發(fā)方法傳統(tǒng)軟件開發(fā)方法。50面向?qū)ο蠓椒ㄓ袔资N,綜合起來,其基本觀點如下:v現(xiàn)實客觀世界由對象組成。v相同的數(shù)據(jù)和操作的對象歸并為類。v類可以繼承。v對象之間通過消息進行聯(lián)系。面向?qū)ο?= 對象 + 類 + 繼承 + 通信511.4.4 軟件開發(fā)方法的評價與選擇綜合考慮以下幾方面因素:v人員素質(zhì)。v時間進度。v掌握資源。v可行性。v
23、領域知識。從四個方面評價:v技術(shù)特征。v使用特征。v管理特征。v經(jīng)濟特征。1.5 1.5 面向?qū)ο筌浖_發(fā)方法簡介面向?qū)ο筌浖_發(fā)方法簡介52特點:(1)使人們更好地認識客觀世界(2)能很好地適應需求變化(3)容易實現(xiàn)軟件復用(4)系統(tǒng)易于維護和修改1.5.1 1.5.1 面向?qū)ο蟮幕靖拍蠲嫦驅(qū)ο蟮幕靖拍罘庋b性、繼承性和多態(tài)性v對象v類v抽象v封裝v消息傳遞v繼承v多態(tài)性1.重要的面向?qū)ο蟾拍钪匾拿嫦驅(qū)ο蟾拍铑惡蛯ο箢惡蛯ο髒在客觀世界中,有一些對象具有相同的特征,將在客觀世界中,有一些對象具有相同的特征,將他們稱之為同類對象。于是出現(xiàn)了他們稱之為同類對象。于是出現(xiàn)了類類的概念。的概念。
24、“面向?qū)ο竺嫦驅(qū)ο蟆边\用到軟件中運用到軟件中面向?qū)ο筌浖こ堂嫦驅(qū)ο筌浖こ蹋∣OA/OOD/OOP)v利用這種利用這種“面向?qū)ο竺嫦驅(qū)ο蟆闭J知的世界觀來進行軟件認知的世界觀來進行軟件開發(fā)。程序由類和對象組成。開發(fā)。程序由類和對象組成。class TreeTree aTree = new Tree();類的作用:類的作用:1. 分類分類:用于區(qū)分不同事物。用于區(qū)分不同事物。2. 是創(chuàng)建對象的模板:產(chǎn)生對象。是創(chuàng)建對象的模板:產(chǎn)生對象。2.怎么得到類和對象?怎么得到類和對象?抽象抽象v把事物共同點抽取出來把事物共同點抽取出來,以統(tǒng)一的方式進行概要描以統(tǒng)一的方式進行概要描述的過程;述的過程;v從許
25、多事物中舍棄個別的、非本質(zhì)的特征,抽取從許多事物中舍棄個別的、非本質(zhì)的特征,抽取共同的、本質(zhì)性共同的、本質(zhì)性的特征;的特征; v過濾掉對象的一部分特征和操作直到只剩下過濾掉對象的一部分特征和操作直到只剩下你所你所需要的需要的屬性和操作。屬性和操作。是不是現(xiàn)實世界中類的所有屬性和方是不是現(xiàn)實世界中類的所有屬性和方法都需要在系統(tǒng)中進行抽象呢?法都需要在系統(tǒng)中進行抽象呢?v 當然不是啦!作為一個分析人員,要根據(jù)用戶實際的業(yè)務當然不是啦!作為一個分析人員,要根據(jù)用戶實際的業(yè)務情況進行選擇。情況進行選擇。v 例如:在例如:在課堂考勤系統(tǒng)課堂考勤系統(tǒng)中,教師類只需要有姓名、職中,教師類只需要有姓名、職稱、
26、性別這些屬性,因為這些是用戶需要的。稱、性別這些屬性,因為這些是用戶需要的。v 而在而在教職工人事管理系統(tǒng)教職工人事管理系統(tǒng)中,教師類就需要姓名、出中,教師類就需要姓名、出生年月、入職時間、所屬單位、職稱、性別、婚姻狀況等生年月、入職時間、所屬單位、職稱、性別、婚姻狀況等屬性。屬性。1.從許多事物中舍棄個別的、非本質(zhì)的特征,抽取共同的、本質(zhì)性的特征; 2.過濾掉對象的一部分特征和操作直到只剩下你所需要的屬性和操作。v引入問題:現(xiàn)在讓我們來編寫一個引入問題:現(xiàn)在讓我們來編寫一個java小程序,小程序,實現(xiàn)在命令行模式下輸出以下形式的著名詩詞實現(xiàn)在命令行模式下輸出以下形式的著名詩詞春曉春曉,你會怎
27、么做?,你會怎么做?* 春曉* 春眠不覺曉,* 處處聞啼鳥。* 夜來風雨聲,* 花落知多少。3. 3. 信息隱蔽和局部化信息隱蔽和局部化封裝封裝讓對象細節(jié)受到保護讓對象細節(jié)受到保護封裝封裝你可能會這么寫你可能會這么寫1. public class ChunXiao12. public static void main(String args)3. System.out.println(* 春曉春曉);4. System.out.println(* 春眠不覺曉,春眠不覺曉,);5. System.out.println(* 處處聞啼鳥。處處聞啼鳥。);6. System.out.println(
28、* 夜來風雨聲,夜來風雨聲,);7. System.out.println(* 花落知多少?;渲嗌?。);8. 9. 很簡單,但是有時候并不是越簡單越好!現(xiàn)在,如果想把*改變?yōu)?,該怎么辦?改5次嗎? 【代碼】 Chunxiao1.java你可能還會這么寫你可能還會這么寫v public class ChunXiao2v public String buildStar()vreturn *;v v public static void main(String args)v ChunXiao2 c=new ChunXiao2();v System.out.println(c.buildStar
29、()+ 春曉春曉);v System.out.println(c.buildStar()+ 春眠不覺曉,春眠不覺曉,);v System.out.println(c.buildStar()+ 處處聞啼鳥。處處聞啼鳥。);v System.out.println(c.buildStar()+ 夜來風雨聲,夜來風雨聲,);v System.out.println(c.buildStar()+ 花落知多少?;渲嗌?。);v v 利用方法buildStar()來產(chǎn)生,這樣每次只用修改一個地方了我們把產(chǎn)生的功能封裝封裝了起來,對外界使用者來講,不需要知道方法內(nèi)部的細節(jié),只需要知道調(diào)用這個方法可以產(chǎn)生就
30、行了。【代碼】 Chunxiao2.java讓對象細節(jié)受到保護讓對象細節(jié)受到保護封裝封裝v當一個對象執(zhí)行自己的操作時。它對外界隱藏了當一個對象執(zhí)行自己的操作時。它對外界隱藏了操作的細節(jié)。操作的細節(jié)。封裝可以提高重用性,封裝可以提高重用性,并且讓程序易于維護并且讓程序易于維護封裝的程度問題封裝的程度問題v還是春曉。剛才我們將產(chǎn)生*的方法寫在了類ChunXiao2中,根據(jù)前面所講,類中的方法代表的是類的操作,而產(chǎn)生*和春曉沒有直接關(guān)系,這樣的封裝看起來好像不合理,怎么改進一下呢 ?StarFactoryStarFactoryString build()String build()ChunXiao3
31、【代碼】StarFactory.java Chunxiao3.javav public class StarFactoryvpublic String build()vreturn *;vv v public class ChunXiao3vpublic static void main(String args)vvStarFactory strFac = new StarFactory();vSystem.out.println(strFac.build()+ 春曉春曉);System.out.println(strFac.build()+ 春眠不覺曉,春眠不覺曉,);System.out.
32、println(strFac.build()+ 處處聞啼鳥。處處聞啼鳥。);System.out.println(strFac.build()+ 夜來風雨聲,夜來風雨聲,);System.out.println(strFac.build()+ 花落知多少?;渲嗌?。);v 【代碼】StarFactory.java Chunxiao3.java封裝的不同,重用也不同了封裝的不同,重用也不同了v現(xiàn)在我們不僅可以在現(xiàn)在我們不僅可以在春曉春曉里面用里面用*了,還可了,還可以在以在靜夜思靜夜思 里面用里面用*了了StarFactoryStarFactoryString build()String bu
33、ild()ChunXiao3JingYeSi【代碼】 JingYeSi.javav public class JingYeSivpublic static void main(String args)vvStarFactory strFac = new StarFactory();vSystem.out.println(strFac.build()+ 靜夜思靜夜思);vSystem.out.println(strFac.build()+ 床前明月光,床前明月光,);vSystem.out.println(strFac.build()+ 疑是地上霜。疑是地上霜。);vSystem.out.println(strFac.build()+ 舉頭望明月,舉頭望明月,);vSystem.out.println(strFac.build()+ 低
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年全球及中國陶瓷結(jié)合劑CBN砂輪行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025-2030全球LED體育計分板行業(yè)調(diào)研及趨勢分析報告
- 2025-2030全球垂直層流潔凈工作臺行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國大學規(guī)劃App行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國無機助焊劑行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 《Java程序設計教程 (任務驅(qū)動式)》全套教學課件
- 2025-2030全球絲束浸漬機行業(yè)調(diào)研及趨勢分析報告
- 2025年全球及中國技術(shù)技能評估平臺行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國航空自動駕駛儀行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年全球及中國儲罐除銹機器人行業(yè)頭部企業(yè)市場占有率及排名調(diào)研報告
- 2025年度高端商務車輛聘用司機勞動合同模板(專業(yè)版)4篇
- GB/T 45107-2024表土剝離及其再利用技術(shù)要求
- 2025長江航道工程局招聘101人歷年高頻重點提升(共500題)附帶答案詳解
- 2025年黑龍江哈爾濱市面向社會招聘社區(qū)工作者1598人歷年高頻重點提升(共500題)附帶答案詳解
- 執(zhí)行總經(jīng)理崗位職責
- 《妊娠期惡心嘔吐及妊娠劇吐管理指南(2024年)》解讀
- 《黑神話:悟空》跨文化傳播策略與路徑研究
- 《古希臘文明》課件
- 居家養(yǎng)老上門服務投標文件
- 長沙市公安局交通警察支隊招聘普通雇員筆試真題2023
- 2025年高考語文作文滿分范文6篇
評論
0/150
提交評論