版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、課程計(jì)劃課程名稱:面向?qū)ο蠓治雠c設(shè)計(jì)課程名稱:面向?qū)ο蠓治雠c設(shè)計(jì) 學(xué)學(xué) 時(shí):時(shí):32學(xué)時(shí)學(xué)時(shí)學(xué)學(xué) 分:分:2學(xué)分學(xué)分課程性質(zhì):課程性質(zhì):專業(yè)選修課程專業(yè)選修課程選用教材:袁濤選用教材:袁濤 孔蕾蕾編著孔蕾蕾編著 統(tǒng)一建模語(yǔ)言統(tǒng)一建模語(yǔ)言UML 清華大學(xué)出版社清華大學(xué)出版社. 2012. 9教學(xué)計(jì)劃主要參考書(shū):主要參考書(shū):1、郭寧編著:UML及建模清華大學(xué)出版社,北京交通大學(xué)出版社 2007年1月2、王少鋒編著:面向?qū)ο蠹夹g(shù)UML教程 清華大學(xué)出版社. 2006.7 教學(xué)大綱 本課程根據(jù)計(jì)算機(jī)科學(xué)與技術(shù)專業(yè)本科教學(xué)的需要,總結(jié)與吸收國(guó)內(nèi)外有關(guān)研究成果,從理論與實(shí)踐相結(jié)合方面介紹面向?qū)ο蠹夹g(shù),在闡
2、述面向?qū)ο蟮睦碚摰耐瑫r(shí),采用UML語(yǔ)言進(jìn)行實(shí)例分析與設(shè)計(jì),使學(xué)生學(xué)完本課程,既掌握了面向?qū)ο蟮睦碚?,又能用?biāo)準(zhǔn)的面向?qū)ο蟮姆椒ń鉀Q實(shí)際問(wèn)題。教學(xué)大綱 課程的要點(diǎn)有: 面向?qū)ο笏枷氲挠蓙?lái);面向?qū)ο蟮睦砟?;面向?qū)ο笙到y(tǒng)的特性;UML基本元素;UML用例圖;交互作用圖;活動(dòng)圖;類圖與對(duì)象圖;狀態(tài)圖;組件圖與配置圖;圖形語(yǔ)義、功能和應(yīng)用。教學(xué)大綱 學(xué)完本課程,學(xué)生在面向?qū)ο罄碚摰幕A(chǔ)上可采用統(tǒng)一建模語(yǔ)言(UML)來(lái)對(duì)軟件系統(tǒng)進(jìn)行描述、構(gòu)造、可視化和文檔編制,進(jìn)入計(jì)算機(jī)應(yīng)用軟件開(kāi)發(fā)的前沿??己朔绞窖芯空撐模航Y(jié)合實(shí)際課題,依照本課程所學(xué)的技術(shù)方法,進(jìn)行軟件分析設(shè)計(jì),撰寫(xiě)相應(yīng)的文檔,爭(zhēng)取發(fā)表一篇論文。第第1
3、章章 面向?qū)ο蠹夹g(shù)概述面向?qū)ο蠹夹g(shù)概述11 軟件危機(jī)及軟件工程軟件危機(jī)及軟件工程12 對(duì)軟件開(kāi)發(fā)的基本認(rèn)識(shí)對(duì)軟件開(kāi)發(fā)的基本認(rèn)識(shí)13 軟件的固有復(fù)雜性軟件的固有復(fù)雜性14 控制軟件復(fù)雜性的基本方法控制軟件復(fù)雜性的基本方法15 面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù)16 面向?qū)ο箢I(lǐng)域中的基本概念面向?qū)ο箢I(lǐng)域中的基本概念11 軟件危機(jī)及軟件工程軟件危機(jī)及軟件工程 20世紀(jì)60年代中期開(kāi)始爆發(fā)的軟件危機(jī) , 經(jīng)過(guò)五十多年的探索和發(fā)展,軟件工程這門(mén)學(xué)科有了長(zhǎng)足進(jìn)展,但軟件危機(jī)依然存在,而且有越來(lái)越嚴(yán)重的趨勢(shì)。大量事實(shí)說(shuō)明,軟件的質(zhì)量和生產(chǎn)率問(wèn)題遠(yuǎn)沒(méi)有得到解決,與五十多年前的軟件相比,現(xiàn)在的軟件在規(guī)模、復(fù)雜性等方面遠(yuǎn)遠(yuǎn)
4、超過(guò)以前的軟件,大型軟件開(kāi)發(fā)中許多問(wèn)題,如開(kāi)發(fā)效率低、產(chǎn)品質(zhì)量差、產(chǎn)品難以維護(hù)、軟件可移植性差、開(kāi)發(fā)費(fèi)用超過(guò)預(yù)算、開(kāi)發(fā)時(shí)間超期等依然存在。 11 軟件危機(jī)及軟件工程軟件危機(jī)及軟件工程 就國(guó)內(nèi)外軟件開(kāi)發(fā)現(xiàn)狀而言,對(duì)于小型軟件系統(tǒng),有比較好的開(kāi)發(fā)方法,成功率也較高,但對(duì)于中大型軟件系統(tǒng)的開(kāi)發(fā),情況則不盡如人意,在開(kāi)發(fā)效率、開(kāi)發(fā)費(fèi)用、產(chǎn)品質(zhì)量等重要方面部不能令人滿意。 11 軟件危機(jī)及軟件工程軟件危機(jī)及軟件工程 針對(duì)大型軟件系統(tǒng)開(kāi)發(fā)中存在的問(wèn)題,人們提出了各種各樣的軟件開(kāi)發(fā)方法,如瀑布式軟件開(kāi)發(fā)方法、快速原型方法、螺旋式軟件開(kāi)發(fā)方法、變換式軟件開(kāi)發(fā)方法、增量式軟件開(kāi)發(fā)方法、凈室(cleanroom)
5、軟件開(kāi)發(fā)方法、噴泉式軟件開(kāi)發(fā)方法等。但這些方法并未完全解決軟件危機(jī)的問(wèn)題,都存在這樣或那樣的問(wèn)題,軟件危機(jī)依然存在。12 對(duì)軟件開(kāi)發(fā)的基本認(rèn)識(shí)對(duì)軟件開(kāi)發(fā)的基本認(rèn)識(shí) 大型軟件系統(tǒng)的特點(diǎn)是:開(kāi)發(fā)代價(jià)高,開(kāi)發(fā)時(shí)間長(zhǎng),參加開(kāi)發(fā)的人員多,軟件生命周期長(zhǎng)。采用傳統(tǒng)的軟件工程方法開(kāi)發(fā)大型軟件存在開(kāi)發(fā)效率低、產(chǎn)品質(zhì)量差、產(chǎn)品難以維護(hù)、軟件可移植性差、軟件可重用性低等問(wèn)題。 12 對(duì)軟件開(kāi)發(fā)的基本認(rèn)識(shí)對(duì)軟件開(kāi)發(fā)的基本認(rèn)識(shí) 一個(gè)軟件系統(tǒng)的開(kāi)發(fā)可以從兩個(gè)方面進(jìn)行刻畫(huà),一方面是軟件開(kāi)發(fā)過(guò)程,從軟件需求、總體設(shè)計(jì)、詳細(xì)設(shè)計(jì)、代碼實(shí)現(xiàn)、測(cè)試到最終產(chǎn)品的提交,以及后期的軟件維護(hù)及再開(kāi)發(fā)過(guò)程,這方面要求軟件開(kāi)發(fā)具有連續(xù)性,開(kāi)
6、發(fā)各階段得到的產(chǎn)品要求在理輯上相互一致:另一方面是軟件開(kāi)發(fā)過(guò)程中所涉及的各種資源,它們包括參與開(kāi)發(fā)的各種工作人員、硬件資源和軟件資源,這些資源在使用過(guò)程中需要進(jìn)行協(xié)調(diào)和管理。12 對(duì)軟件開(kāi)發(fā)的基本認(rèn)識(shí)對(duì)軟件開(kāi)發(fā)的基本認(rèn)識(shí)正是這兩個(gè)方面之間的相互作用,形成了完整的軟件開(kāi)發(fā)話動(dòng)。目前軟件開(kāi)發(fā)中存在的問(wèn)題,究其原因,往往是由于在這兩個(gè)方面上控制不當(dāng),或協(xié)調(diào)不一致造成的。軟件工程的目的就是要在規(guī)定的時(shí)間、規(guī)定的開(kāi)發(fā)費(fèi)用內(nèi)開(kāi)發(fā)出滿足用戶需求的高質(zhì)量的軟件系統(tǒng)。 13 軟件的固有復(fù)雜性軟件的固有復(fù)雜性軟件具有與硬件表現(xiàn)形式不同、生產(chǎn)方式不同、產(chǎn)品要求不同及維護(hù)方式不同的特點(diǎn)。軟件的特點(diǎn)說(shuō)明了軟件開(kāi)發(fā)的復(fù)雜
7、性和因難性。著名的計(jì)算機(jī)專家、被稱之為IBM 360系列計(jì)算機(jī)之父的FBrooks認(rèn)為軟件的復(fù)雜性是固有的,軟件可能是人類所能制造出來(lái)的最復(fù)雜的實(shí)體。導(dǎo)致軟件復(fù)雜性的原因很多,下面列出一些主要的原因。 13 軟件的固有復(fù)雜性軟件的固有復(fù)雜性 首先,軟件的復(fù)雜性和計(jì)算機(jī)的體系結(jié)構(gòu)有關(guān)。 其次,軟件開(kāi)發(fā)是人的一種智力活動(dòng),軟件系統(tǒng)從本質(zhì)上來(lái)說(shuō)是由許多相互聯(lián)系的概念所組成的結(jié)構(gòu)。 第三,造成軟件系統(tǒng)復(fù)雜性的另一個(gè)原因是,軟件系統(tǒng)中各元素之間的相互作用關(guān)系具有不確定性。 第四,由于軟件沒(méi)有固定的形式與堅(jiān)硬的外殼,人們普遍認(rèn)為軟件系統(tǒng)是軟”的,似乎可以隨意擴(kuò)充和修改。 第五,規(guī)模較大的軟件系統(tǒng)的生命周期
8、一般都超過(guò)相應(yīng)硬件系統(tǒng)的生命周期。 14 控制軟件復(fù)雜性的基本方法控制軟件復(fù)雜性的基本方法 軟件的復(fù)雜性不是因?yàn)槟硞€(gè)軟件系統(tǒng)要解決一個(gè)特定的復(fù)雜問(wèn)題而偶然產(chǎn)生的,它是大型軟件系統(tǒng)的一個(gè)固有的本質(zhì)特征,軟件的開(kāi)發(fā)過(guò)程必然會(huì)受到軟件復(fù)雜性的影響。 正因?yàn)檐浖膹?fù)雜性是固有的,人們無(wú)法徹底消除這些復(fù)雜性,因此只能采用控制復(fù)雜性的方法,盡量減少軟件復(fù)雜性對(duì)軟件開(kāi)發(fā)過(guò)程的影響,而分解、抽象、模塊化、信息隱蔽等是控制軟件復(fù)雜性的有效方法。15 面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù) 面向?qū)ο?object-oriented,OO)技術(shù)充分體現(xiàn)了分解、抽象、模塊化、信息隱蔽等思想,可以有效地提高軟件生產(chǎn)率、縮短軟件開(kāi)發(fā)時(shí)
9、間、提高軟件質(zhì)量,是控制軟件復(fù)雜性的有效途徑。 與傳統(tǒng)的結(jié)構(gòu)化軟件開(kāi)發(fā)方法相比,面向?qū)ο筌浖_(kāi)發(fā)方法在描述和理解問(wèn)題域時(shí)采用截然不同的方法。其基本思想是,對(duì)問(wèn)題域進(jìn)行自然分割,以更接近人類思維的方式建立問(wèn)題域模型,從而使設(shè)計(jì)出的軟件盡可能直接地描述現(xiàn)實(shí)世界,具有更好的可維護(hù)性能適應(yīng)用戶需求的變化。 15 面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù) 在面向?qū)ο蠓椒ㄖ?,分析和設(shè)計(jì)階段采用一致的概念和表示法,面向?qū)ο蟮姆治龊兔嫦驅(qū)ο蟮脑O(shè)計(jì)之間不存在鴻溝,這是與結(jié)構(gòu)化分析和設(shè)計(jì)方法的一個(gè)很大區(qū)別。15 面向?qū)ο蠹夹g(shù)面向?qū)ο蠹夹g(shù) 一般認(rèn)為,面向?qū)ο蠓治龊驮O(shè)計(jì)是以對(duì)象的觀點(diǎn)看待問(wèn)題域,其解決問(wèn)題的思維過(guò)程和結(jié)構(gòu)化分析及設(shè)計(jì)
10、方法在本質(zhì)上是有區(qū)別的,但早期提出的適用于結(jié)構(gòu)化分析和設(shè)計(jì)的一些概念,如高內(nèi)聚、低耦合、有意識(shí)地推遲設(shè)計(jì)決策等,同樣可適用于面向?qū)ο蠓治龊驮O(shè)計(jì)。也就是說(shuō),面向?qū)ο蠓椒ê徒Y(jié)構(gòu)化方法還是存在一定的聯(lián)系。目前學(xué)術(shù)界關(guān)于面向?qū)ο蠓椒▽?duì)結(jié)構(gòu)化方法來(lái)說(shuō)究竟是“革命性”的還是“演化性”的不同的人有不同的觀點(diǎn)。一般來(lái)說(shuō),認(rèn)為是“演化性”的人多一些。16 面向?qū)ο箢I(lǐng)域中的基本概念面向?qū)ο箢I(lǐng)域中的基本概念 面向?qū)ο筌浖_(kāi)發(fā)方法中有很多傳統(tǒng)軟件開(kāi)發(fā)方法所沒(méi)有的概念和術(shù)語(yǔ)。這些概念和術(shù)語(yǔ)包括:對(duì)象、實(shí)例、類、屬性、方法、封裝、繼承、多態(tài)、消息等。161 對(duì)象和實(shí)例 對(duì)象(object)是系統(tǒng)中用來(lái)描述客觀事物的一個(gè)實(shí)
11、體,它是構(gòu)成系統(tǒng)的基本單位。一個(gè)對(duì)象由一組屬性和對(duì)這組同性進(jìn)行操作的一組方法組成。 對(duì)象只描述客觀事物本質(zhì)的、與系統(tǒng)目標(biāo)有關(guān)的特征,而不考慮那些非本質(zhì)的、與系統(tǒng)目標(biāo)無(wú)關(guān)的特征。 對(duì)象之間通過(guò)消息通信。一個(gè)對(duì)象通過(guò)向另一個(gè)對(duì)象發(fā)送消息激活某一個(gè)功能。 實(shí)例(instance)這個(gè)概念和對(duì)象很類似。在UML中,會(huì)經(jīng)常遇到實(shí)例這個(gè)術(shù)語(yǔ)。一般來(lái)說(shuō),實(shí)例這個(gè)概念的含義更廣泛一些,它不僅僅是對(duì)類而言,其他建模元素也有實(shí)例。如類的實(shí)例就是對(duì)象,而關(guān)聯(lián)的實(shí)例就是鏈 。162 類類 類(class)是具有相同屬性和方法的一組對(duì)象的集合,它為屬于該類的全部對(duì)象提供了統(tǒng)一的抽象描述。類是靜態(tài)的,類的語(yǔ)義和類之間的關(guān)
12、系在程序執(zhí)行前就已經(jīng)定義好了,而對(duì)象是動(dòng)態(tài)的,對(duì)象是在程序執(zhí)行時(shí)被創(chuàng)建和刪除的。163 封裝封裝 封裝(encapsu1ation)就是把對(duì)象的屬性和方法結(jié)合成獨(dú)立的系統(tǒng)單位,并盡可能地隱蔽對(duì)象的內(nèi)部細(xì)節(jié)。封裝使一個(gè)對(duì)象形成兩個(gè)部分:接口部分和實(shí)現(xiàn)部分。對(duì)于用戶來(lái)說(shuō),接口部分是可見(jiàn)的,而實(shí)現(xiàn)部分是不可見(jiàn)的。 封裝提供了兩種保護(hù)。首先封裝可以保護(hù)對(duì)象,防止用戶直接存取對(duì)象的內(nèi)部細(xì)節(jié);其次封裝也保護(hù)了客戶端,防止對(duì)象實(shí)現(xiàn)部分的變化可能產(chǎn)生的副作用,即實(shí)現(xiàn)部分的改變不會(huì)影響到相應(yīng)客戶端的改變。164 繼承繼承 利用繼承(inheritance),子類可以繼承父類的屬性或方法。類父類稱作特殊類/一般類
13、、子類超類、派生類基類等。 繼承增加了軟件重用的機(jī)會(huì),可以降低軟件開(kāi)發(fā)和維護(hù)的費(fèi)用,而繼承是OO技術(shù)和非OO技術(shù)的一個(gè)很明顯的區(qū)別。所以很多人認(rèn)為OO技術(shù)的目的就是為了重用,這是一個(gè)很流行的關(guān)于面向?qū)ο蠹夹g(shù)和軟件重用的誤解。確實(shí),采用OO技術(shù)可以增加軟件重用的機(jī)會(huì),但OO技術(shù)并不等于軟件重用技術(shù),軟件重用技術(shù)也不等于OO技術(shù) 。164 繼承繼承 兩者之間并不存在相互包含的關(guān)系,OO技術(shù)既不是重用技術(shù)的充分條件,也不是重用技術(shù)的必要條件。164 繼承繼承 利用繼承可以開(kāi)發(fā)更貼近現(xiàn)實(shí)的模型,使得模型更簡(jiǎn)潔。繼承的另一個(gè)好處是可以保證類之間的一致性,父類可以為所有子類定制規(guī)則,子類必須遵守這些規(guī)則。
14、許多面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言提供了這種實(shí)現(xiàn)機(jī)制,如c+中的虛函數(shù),Java中的接口等。 164 繼承繼承 在子類中可以增加或重新定義所繼承的屬性或方法,如果是重新定義,則稱為覆蓋(override)。與覆蓋很類似的一個(gè)概念是重載(overload),重載指的是一個(gè)類中有多個(gè)同名的方法,但這些方法在操作數(shù)或和操作數(shù)的類型上有區(qū)別。覆蓋和重裁是OO技術(shù)中很常見(jiàn)的兩個(gè)術(shù)語(yǔ),也很容易混淆。 164 繼承繼承 繼承可分為單繼承和多繼承。單繼承指的是子類只從一個(gè)父類繼承,而多繼承指的是子類從多于一個(gè)的父類繼承。 165 多態(tài)多態(tài) 從字而上理解,多態(tài)(polymorphism)就是有多種形態(tài)的意思。在面向?qū)ο?/p>
15、技術(shù)中,多態(tài)指的是使一個(gè)實(shí)體在不同上下文條件下具有不同意義或用法的能力。 多態(tài)往往和覆蓋、動(dòng)態(tài)綁定(dynamic binding)等概念結(jié)合在一起。多態(tài)屬于運(yùn)行時(shí)的問(wèn)題,而重載(overload)是編譯時(shí)的問(wèn)題。 165 多態(tài)多態(tài) 如圖16所示是多態(tài)的例子。在圖16的繼承結(jié)構(gòu)中,可以聲明一個(gè)graph類型對(duì)象的變量,但在運(yùn)行時(shí),可以把circle類型或Rectangle Rectangle類型的對(duì)象賦給該變量。165 多態(tài)多態(tài) 也就是說(shuō),該變量所引用的對(duì)象在運(yùn)行時(shí)會(huì)有不同的形態(tài)。如果調(diào)用draw()方法,則根據(jù)運(yùn)行時(shí)該變量是引用Circle還是Rectangle,來(lái)決定調(diào)用Circle中的draw()方法還是Rectangle中的draw()方法。 多態(tài)是保證系統(tǒng)具有較好適應(yīng)性的一個(gè)重要手段,也是使用OO技術(shù)所表現(xiàn)出來(lái)的一個(gè)重要特征。166 消息
溫馨提示
- 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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 塑料板的三維成型技術(shù)考核試卷
- 出租車(chē)行業(yè)服務(wù)流程優(yōu)化考核試卷
- 2025年度展覽館布展施工合同協(xié)議書(shū)版
- 2025年度年度智能倉(cāng)儲(chǔ)物流商標(biāo)使用許可合同
- 初等教育的音樂(lè)欣賞任務(wù)考核試卷
- 2025年度稅務(wù)顧問(wèn)勞動(dòng)合同
- 2025年度移動(dòng)支付系統(tǒng)電子協(xié)議與支付安全協(xié)議合同
- 2025年度非全日制用工合同個(gè)稅計(jì)算與稅收籌劃與合規(guī)指導(dǎo)合同
- 中藥飲片批發(fā)質(zhì)量控制考核試卷
- 地質(zhì)勘探設(shè)備在地震勘探中的數(shù)據(jù)管理策略考核試卷
- GB/T 18476-2001流體輸送用聚烯烴管材耐裂紋擴(kuò)展的測(cè)定切口管材裂紋慢速增長(zhǎng)的試驗(yàn)方法(切口試驗(yàn))
- GA 1551.5-2019石油石化系統(tǒng)治安反恐防范要求第5部分:運(yùn)輸企業(yè)
- 拘留所教育課件02
- 沖壓生產(chǎn)的品質(zhì)保障
- 《腎臟的結(jié)構(gòu)和功能》課件
- 2023年湖南聯(lián)通校園招聘筆試題庫(kù)及答案解析
- 上海市徐匯區(qū)、金山區(qū)、松江區(qū)2023屆高一上數(shù)學(xué)期末統(tǒng)考試題含解析
- 護(hù)士事業(yè)單位工作人員年度考核登記表
- 天津市新版就業(yè)、勞動(dòng)合同登記名冊(cè)
- 產(chǎn)科操作技術(shù)規(guī)范范本
- 人教版八年級(jí)上冊(cè)地理全冊(cè)單元測(cè)試卷(含期中期末試卷及答案)
評(píng)論
0/150
提交評(píng)論