面向對象技術講稿資料_第1頁
面向對象技術講稿資料_第2頁
面向對象技術講稿資料_第3頁
面向對象技術講稿資料_第4頁
面向對象技術講稿資料_第5頁
已閱讀5頁,還剩23頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、第一章 面向對象的分析與設計方法第一節(jié) 面向對象方法的基本概念1、對象:是系統(tǒng)中用于描述客觀事物的一個實體,它是構成系統(tǒng)的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務構成。2、屬性:用來描述對象靜態(tài)特征的一個數(shù)據項。3、服務:用來描述對象動態(tài)特征的一個數(shù)據項。4、封裝:就是把對象的屬性和服務結合成一個獨立的系統(tǒng)單位,并盡可能隱藏對象的內部細節(jié)。5、可見性:指對象的屬性和服務允許對象外部存取和引用的程度。6、消息:就是向對象發(fā)出的服務請求。7、類:是具有相同屬性和服務的一組對象的集合,他為屬于該類的全部對象提供了統(tǒng)一的抽象描述,其內部包括屬性和服務兩個主要部分。8、實例:類的一

2、個成員對象。9、一般類和特殊類(超類和子類):不同對象既具有共同性又具有特殊性,運用抽象原則,舍棄對象的特殊性,抽取其共同性,則得到一個適應一批對象的類,則該類為一般類。在該類范圍內,考慮定義該類時舍棄的某些特殊性,則該類中,有一部分對象具有這些特殊性,這部分對象構成一個新的類,它是前一個類的子集,稱作一般類的特殊類。10、繼承:即特殊類的對象擁有一般類的全部屬性和服務。第二節(jié) 發(fā)現(xiàn)對象1、對象可以是:物理的和概念的,例:人、組織、物、事件等;2、出發(fā)點:問題域和系統(tǒng)責任。 問題域:客觀存在與系統(tǒng)對象的映射;系統(tǒng)責任:責任由那些對象來完成;3、抽象原則:圍繞系統(tǒng)責任目標進行抽象,且先松后緊,即

3、選出各種可能的侯選對象,再審查篩選。4、方法:名詞分析法(注意考慮隱含的名詞)5、審查與篩選:A、屬性包含有用的信息且可以定義成適用所有場合的公共屬性; 或 B、有能改變其屬性值的操作且該操作能被定義為公共服務;6、精簡:只有一個屬性或只有一個服務的對象。 例:班主任 班7、對象的簡單定義: 例:學生:當前已經被大學錄取,有資格進行注冊的人。8、發(fā)現(xiàn)SRS對象學生注冊系統(tǒng)需求分析我們被要求為大學開發(fā)一個自動化學生注冊系統(tǒng)(SRS),這個系統(tǒng)將使學生可以在線注冊每個學期的課程,也可以用于跟蹤學生的學習進展,直至其獲得學位。當學生被大學錄取后,學生使用SRS建立學習計劃,即確定滿足特定學位所需要的

4、課程,并選擇一名導師。SRS要檢驗所提出的學習計劃是否滿足該學生所希望獲得的學位的要求。一旦建立了學習計劃,則在以后每個學期的注冊期間學生都可以在線查看課程計劃,選擇要選修的課程,如果課程由多名教授講授,則還可以指定聽課時間(星期幾、幾點)。SRS要參考學生所完成課程的成績單(學生可以隨時查看自己的成績單),檢驗學生是否滿足所申請課程的必要的預修條件。若1、所要求的預修課程都已修完;2、課程在該學生的學習計劃之內;3、課程尚有空位;則學生可以參加聽課。如果1、2條件滿足,但3不滿足,則該學生要放到一個先入先出的等待隊列中。如果學生以前所等待的課程可以提供(或者由于某學生取消了聽課計劃,或者由于

5、該課程的聽課位置增加了),則該學生會被自動錄取到所等待的課程中。只要允許學生聽課,則SRS向該學生發(fā)送E_mail通知。如果該學生不再對該課程感興趣,可以最遲在學期的第一個星期末決定退出所選的課程,否則,若學生被允許聽課,則學生要為該課程付費。隱含:班、教室類清單:課程、課程計劃、學習計劃、教授、學生、班、成績單第三節(jié) 定義屬性一、策略1、按一般常識這個對象應該有哪些屬性;2、在當前的問題域中這個對象應該有哪些屬性;3、按系統(tǒng)的責任要求這個對象應該有哪些屬性;4、建立該對象是為了保存和管理哪些信息;5、為實現(xiàn)其功能應增加哪些屬性;6、對象有哪些需要區(qū)別的狀態(tài),是否需要增加一個屬性來區(qū)別這些狀態(tài)

6、。二、審查與篩選1、該屬性是否體現(xiàn)了以系統(tǒng)責任為目標的抽象;2、該屬性是否描述了對象本身的特征;3、該屬性是否破壞了對象特征的原子性;4、該屬性是否可以從其他屬性中導出;三、屬性的詳細說明1、屬性的命名;2、屬性的解釋;3、屬性的數(shù)據類型;4、實現(xiàn)要求及其他;四、定義SRS各對象屬性ProfessorSSNNameTitleSectionNoDayofweekTimeofdaySemesterRoomSeatingcapacitySectionCourseCourseNoCourseNameCreditsStudentSSNNameMajorDegree詳細說明:Section.Timeofd

7、ay:授課時間(范圍),例如下午24時;Section.Seatingcapacity:注冊某個班所允許的最大學生數(shù)量;Professor.SSN:唯一的社會安全號碼;Student.Major:學生的主修專業(yè),例如“計算機科學與技術”(假設一名學生只有一個專業(yè))第四節(jié) 定義服務一、策略1、考慮系統(tǒng)責任和問題域:設置這個對象的目的是什么?若是完成某些功能,則由哪些服務來完成這些功能;若是保存某些信息,那么系統(tǒng)怎樣運用這些信息,是否需要對這些信息進行某種計算或加工,然后向對象外部提供,怎樣提供?對象在問題域中有哪些行為,應該設置何種服務來模擬這些行為?2、分析對象狀態(tài):分析對象所能呈現(xiàn)的每一種狀

8、態(tài),考慮在每一種狀態(tài)下對象可以發(fā)生什么行為?應該由什么服務來描述?對象由一種狀態(tài)轉換到另外一種狀態(tài)是由什么操作引起的?是否設置了相應的服務?3、追蹤服務的執(zhí)行路線:分析員把自己設想成當前服務的執(zhí)行者,模擬每個服務的執(zhí)行,并追蹤服務的執(zhí)行路線,直至全部服務都被模擬過。用于發(fā)現(xiàn)遺漏的服務。二、審查與調整1、按照系統(tǒng)責任要求檢查每個服務是否有用;2、檢查每個服務是否是高內聚的:三、服務的詳細說明1、服務解釋:該服務的作用與功能2、消息協(xié)議:給出服務的入口消息格式,服務名稱、輸入輸出參數(shù)、參數(shù)類型3、消息發(fā)送:指出在這個服務執(zhí)行時,需要請求哪些別的對象服務4、約束條件:四、SRS的部分服務1、Stud

9、ent的部分服務添加班:addSection注銷班:dropSection是否被批準:isEnrolledIn打印成績單:printTranscript2、Section的部分服務招收學員:enroll(Student s)顯示學員列表:displayStudentRoster()確認空座:confirmSeatAvailability()注銷學生:drop(Student s)給定成績:getGrade(Student s)第五節(jié) 一般特殊結構一、對象與外部的關系1、對象之間的分類關系,即對象之間的一般特殊關系,用一般特殊結構表示(分類結構)2、對象之間的組成關系,即整體部分關系,用整體部分

10、結構表示(裝配結構)3、對象之間的靜態(tài)聯(lián)系,即通過對象屬性反映的聯(lián)系,用實例連接表示一般類特殊類特殊類4、對象之間的動態(tài)聯(lián)系,即對象行為之間的依賴關系,用消息連接表示二、一般特殊結構表示法三、發(fā)現(xiàn)一般特殊結構1、學習當前領域的分類學知識:植物分類法、圖書分類法等2、按常識考慮事物分類:例如人,可按人種分,按年齡段分,按性別分等;3、回顧一般特殊類的定義4、考察屬性和服務:例,公司人員具有屬性姓名、身份證、股份、工資等,但股份僅適用于股東,而工資適用于職工,則建立如下結構: 公司人員股東職員姓名身份證號股份工資分紅5、考慮領域范圍內的復用:(類構件)例:某超市使用的現(xiàn)鈔收款機具有屬性A、B、C、

11、D、E、F,服務X、Y、Z。其中屬性A、B、C,服務X、Y是任何收款機所共有的屬性和服務,而屬性D、E、F和服務Z是現(xiàn)鈔收款機所特有的屬性和服務。則可定義收款機類和現(xiàn)鈔收款機類,構成一般特殊結構,這樣收款機類成為可供本領域其他系統(tǒng)復用的領域構件。四、審查與調整1、問題域是否需要這樣的分類:書善本書2、系統(tǒng)責任是否需要這樣的分類:職員生產人員、營銷人員3、是否符合分類學常識:A是一種B4、是否構成了繼承關系:船航標船五、簡化交通工具汽車飛機發(fā)動機載重量速度飛行高度運輸自動導航汽車汽車飛機發(fā)動機載重量速度飛行高度運輸自動導航交通工具汽車飛機發(fā)動機載重量速度飛行高度運輸自動導航1、特殊類沒有自己特殊

12、的屬性和服務(學生大學生、研究生)2、某些特殊類之間的差別可以通過一般類的某個屬性值體現(xiàn)(人,性別、國籍)3、一般類下只有一個特殊類(收款機現(xiàn)鈔收款機)通常一般類應符合:它有兩個或以上的特殊類或需要用它創(chuàng)建對象實例或者有助于軟件復用,才有存在價值。六、多繼承人學生教職工身份證號姓名學號班級專業(yè)單位專業(yè)工作量在職研究生教學系數(shù)在職研究生身份證號姓名學號班級專業(yè)單位專業(yè)工作量教學系數(shù)多繼承存在命名沖突,所以標準JAVA不支持多繼承,通過接口完成相應功能。第六節(jié) 整體部分結構一、表示法整體對象部分對象MN連接符兩端的字母或數(shù)字表示結構中對象實例的多重性,即位于連接符一端的對象實例要求另一端多少個對象

13、實例與自己進行整體部分組合。固定數(shù)量:固定數(shù)字;不定數(shù)量:M,N;固定范圍:下界,上界;例4,6;不定范圍:1,M;0,N;二、實現(xiàn)方式1、嵌套對象:用部分對象類作為數(shù)據類型;2、對象指針:指向部分對象的指針;整體對象 部分對象 整體對象部分對象 部分對象 部分對象三、發(fā)現(xiàn)整體部分結構1、物理上的整體事物和它的組成部分:汽車發(fā)動機、輪胎、車身2、組織機構和它的下級組織及部分:學院系3、團體與成員:班學生4、一種事物空間上包容其它事物:車間廠房、機器、人5、抽象事物的整體與部分:書章6、具體事物和它的抽象方面:人員身份、職責、獎罰四、審查和篩選1、是否屬于問題域:如公司業(yè)務管理系統(tǒng)中,家庭職員;

14、2、是否是系統(tǒng)責任的需要:如工會員工;3、部分對象是否具有一個以上的屬性:輪胎規(guī)格4、是否有明顯的整體部分關系:學生課程五、用途1、基本用途:表達問題域中事物之間的組成關系2、簡化對象定義:飛機有50個屬性,20個服務,其中與發(fā)動機和導航儀有關的屬性各有10個,服務各有5個,則可建立發(fā)動機類和導航儀類,然后使用整體部分結構與飛機組合,簡化了飛機的定義。3、支持軟件復用:圖4、表示數(shù)量不定的組成部分;書章5、表示動態(tài)變化的對象特征:人員由營業(yè)員變?yōu)闀嫀煛⒔浝?;機床車床刨床鉆床送料車起重機電動機六、兩種結構的關系汽車冷藏車制冷設備汽車制冷設備冷藏車冷藏車汽車制冷設備一般特殊結構是特殊類經過繼承而

15、擁有一般類的特征;整體部分結構是整體對象通過組裝而擁有部分對象的特征;表達自然是選用結構的標準;七、SRS中的整體部分結構1、成績單與成績單記錄2、課程計劃與班3、學習計劃與課程第七節(jié) 實例連接一、簡單的實例連接1、實例連接:用于表達對象之間的靜態(tài)聯(lián)系,靜態(tài)聯(lián)系是指最終可通過對象屬性來表示的一個對象對另一個對象的依賴關系。例:教師指導學生畢業(yè)設計、某課程是另外課程的預修課、兩個城市間有航班等。2、表示法城市0,m0,m有航線教師學生0,m1指導論文類1類2mn連接名稱在具有實例連接的類之間畫一條連接線把它們連接起來;連接線的旁邊給出表明其意義的連接名;在連接線的兩端用數(shù)字標明其多重性。一對一連

16、接:一對多連接:多對多連接:3、實現(xiàn)方式實例連接一般可用對象指針實現(xiàn),即在被連接的兩個類中選擇一個,在它的對象中設立一個指針類型的屬性,用于指向另一個類中與它有連接關系的對象實例。一般可在多重性1端的對象中建立指針。若系統(tǒng)要求從兩個方向都能快速地相互查找和引用,則兩個對象都要建立指針。4、與整體部分結構的異同二、復雜的實例連接1、表示法mn類1類2連接名稱1連接屬性連接服務教師學生0,m1指導論文1論文題目答辯時間成績2、 用對象表示實例連接的復雜性教師學生0,m1畢業(yè)論文1論文題目答辯時間成績1120,m航線距離班次城市三、多元關聯(lián)某人使用某語言從事某項目;任務項項目名人員語言語言項目人員某

17、公司委托某代理商在某公證機構的監(jiān)督下為某個項目招標;招標事件公司項目代理商公證機構驗收公司項目代理商公證機構方法:在多元關聯(lián)的匯集點增加一個對象,使之轉化為二元的實例連接,新增這個對象的屬性是分別指向每個元的對象指針。四、多對多實例連接教師課程0,m1,n任務書主講教師課程五、對象、屬性的增補1、對象增補:復雜實例連接、多元關聯(lián)、多對多實例連接要求增加一些新的類2、屬性增補:每一個實例連接,應該在它的某一端(若要求相互引用則是兩端)所連接的對象類中增加相應的屬性,其類型應被說明為指向另一端的對象指針。六、實例連接說明詳細說明實例連接的實際意義。七、SRS的實例連接1、教授教班,一個教授可教多個

18、班,每個班一個教授教,是一對多實例連接,由于系統(tǒng)責任要求能夠從兩個方向都能快速地相互查找和引用,則兩個對象都要建立指針,故教授設立teaches屬性,班設立instructor屬性。PersonSSNNameProfessorTitleteachesStudentMajorDegreeTranscriptattendsPlanOfStudyProfessor StudentCourseCourseCourseNoCourseNameCreditsprerequisitesOfferedAsSectionSectionSectionNoDayOfWeekTimeOfDayRoomSeatingC

19、apacityRepresentedCourseenrolledStudentsofferedIninstructorassignedGradesTranscriptTranscriptEntriesstudentOwnerTranscriptEntryGradeStudentSectiontranscriptScheduleOfClassesSemester sectionsOffered1m11m0,1mm1m1mm1mm1110,m1mm12、每個學生有一份成績單,兩者有一對一實例連接,故學生設立Transcript屬性,成績單設立studentOwner屬性。3、 每個學生可參加多個班

20、,每個班可有多個學生參加,兩者存在多對多實例連接,故學生設立attends屬性,班設立enrolledStudents屬性。4、每個學生有一份學習計劃,兩者有一對一實例連接,通過在學習計劃中設立Student屬性建立兩者的聯(lián)系。5、每份學習計劃要求一名教授審核,每名教授可審核多份學習計劃,兩者有一對多實例連接,在學習計劃中設立Professor屬性,建立兩者的聯(lián)系。6、每門課程可以有多門預修課,該門課程又可能是多門課程的預修課,存在一元自反關聯(lián),故設立prerequisites屬性。7、每門課程可以有多個班,每個班只能上一門課程,兩者有一對多實例連接,在課程中設立OfferedAsSectio

21、n屬性,班設立RepresentedCourse屬性,建立兩者的聯(lián)系。8、每條成績單記錄須明確是哪個學生獲得的成績,兩者存在實例連接,故在成績單記錄設立student屬性用于建立兩者之間的聯(lián)系。9、每個班結業(yè)時會有一份該班的成績,該成績要寫入每個學生的成績單記錄,每條成績單記錄要求一個班的成績,每個班的成績由于包含多個學生該門課程的成績,故會產生多條成績單記錄,兩者有一對多實例連接,在班中設立assignedGrades屬性,用于存儲該班的成績,在成績單記錄中設立section屬性,建立兩者之間的聯(lián)系。 第八節(jié) 消息連接一、順序系統(tǒng)中的消息1、順序系統(tǒng)中消息的特點A、每個消息都是向對象發(fā)出的一

22、個服務請求,它必定引起接收者一個服務的執(zhí)行;B、除了主動對象唯一的主動服務外,其它對象服務只有在接收到消息時才開始執(zhí)行;C、每個消息的發(fā)送和接收都是同時進行的,即消息是同步的;D、消息是從正在執(zhí)行的服務中發(fā)出的。消息發(fā)出后,發(fā)送者暫停執(zhí)行位于消息發(fā)送點之后的其它操作,將控制權轉移到接收者,直到接收者執(zhí)行完相應的服務后才返回到發(fā)送消息的服務,繼續(xù)執(zhí)行其它操作。即所有操作都是串行的。2、消息的語法特征A、消息名:即接收消息的服務名;B、入口參數(shù):即接收消息的服務要求的輸入參數(shù)(0個或多個);C、返回參數(shù):即接收消息的服務提供的輸出參數(shù)(0個或多個);3、消息的語義特征A、發(fā)送者:通過消息發(fā)送點的位

23、置隱含表明,不需要顯式的表示;B、接收者:由消息名表達;C、其它需傳送的信息:通過入口參數(shù)和返回參數(shù)表示;二、并發(fā)系統(tǒng)中的消息1、并發(fā)系統(tǒng):有多個控制線程(thread of control)并發(fā)執(zhí)行的系統(tǒng);每個控制線程是由一系列順序執(zhí)行的操作所構成的活動序列。2、并發(fā)系統(tǒng)中的消息A、發(fā)生在控制線程內部的消息;B、發(fā)生在控制線程之間的消息;3、消息的同步與異步不同控制線程之間的消息可分為同步消息(synchronous message)和異步消息(asynchronous message)A、同步消息:僅當發(fā)送者要發(fā)送一個消息而且接收者已經做好接收這個消息的準備時才能傳送的消息;B、異步消息:

24、發(fā)送者不管接收者是否做好接收準備都可以發(fā)送的消息;4、接收者對消息的響應方式A、在消息產生之前,處理這個消息的進程并不存在;僅當發(fā)送者發(fā)出這個消息時才立刻創(chuàng)建一個進程來響應這個消息,完成它所要求的服務;B、處理這個消息的進程已經存在,并且與發(fā)送者同步地接收消息。接到消息立即處理;C、接收者異步地接收和處理消息,即在消息發(fā)出后的某個時刻才接收和處理該消息;D、接收者不關心這個消息,不作任何響應。5、發(fā)送者對消息處理結果的期待方式A、等待,直至得到處理結果才繼續(xù)原來的工作;B、發(fā)送者不等待處理結果,發(fā)出消息后繼續(xù)執(zhí)行,以后再查看消息的處理結果;C、既不等待,也不關心處理結果;6、消息接收者是否唯一

25、A、定向消息:消息定向地發(fā)送給唯一的接收者;B、廣播消息:消息發(fā)送給某個范圍內所有可能的接收者;三、應該識別和表示的主要問題1、對象之間是否存在著某種消息?2、該消息是控制線程內部的還是不同控制線程之間的?3、消息是從發(fā)送者的哪個服務發(fā)出的?是由接收者的哪個服務響應和處理的?4、消息是同步的還是異步的?5、發(fā)送者對消息處理結果的期待方式是哪種?四、消息連接的表示1、表示法發(fā)送者接收者控制線程之間的消息連接發(fā)送者接收者控制線程內部的消息連接2、為什么沒有表示3、4、5A、保持模型的簡明性;B、抽象是逐步深入的;C、3、4、5可在詳細說明中表述;五、發(fā)現(xiàn)并建立消息連接A、從每個主動對象的主動服務開

26、始,進行服務模擬、執(zhí)行路線追蹤每發(fā)現(xiàn)一個新的請求,就發(fā)現(xiàn)一個新的消息;B、分析該消息的發(fā)送者與接收者是否屬于同一個控制線程;順序還是并發(fā)?是否引起控制線程的切換?接收者是否只有通過當前這種消息的觸發(fā)才能執(zhí)行?C、建立消息連接六、消息的詳細說明消息的詳細說明包括發(fā)送者和接收者兩方面的說明:1、發(fā)送者A、指出這個服務在執(zhí)行時可能發(fā)出的每一個消息,給出接收者的類名和處理該消息的服務名;B、說明接收者與本服務是順序執(zhí)行還是并發(fā)執(zhí)行的;C、必要時說明同步、異步以及發(fā)送者對消息處理結果的期待方式2、接收者A、說明由這個服務接收和處理的每一種消息,規(guī)定消息的格式和內容,包括消息名稱、輸入輸出參數(shù)、參數(shù)類型等、B、說明發(fā)送者與本服務是順序執(zhí)行還是并發(fā)執(zhí)行的;C、必要時說明同步、異步七、SRS中各個對象的服務及消息連接對象行為:1、系統(tǒng)行為:如創(chuàng)建對象等 2、對象自身的簡單行為:如讀取、設置一個屬性值 3、對象自身映射的客觀事物固有行為:如復雜的算法下面只給出第3類行為的服務原因:1、系統(tǒng)行為是系統(tǒng)施加于對象的行為,不是對象本身的行為,分析時可暫不考慮,但設計與實現(xiàn)要考慮,通常由構造函數(shù)完成; 2、對象自身的簡單行為是由于嚴格封裝引起的

溫馨提示

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

評論

0/150

提交評論