




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
第一章 面向對象的分析與設計方法第一節 面向對象方法的基本概念1、 對象:是系統中用于描述客觀事物的一個實體,它是構成系統的一個基本單位。一個對象由一組屬性和對這組屬性進行操作的一組服務構成。2、 屬性:用來描述對象靜態特征的一個數據項。3、 服務:用來描述對象動態特征的一個數據項。4、 封裝:就是把對象的屬性和服務結合成一個獨立的系統單位,并盡可能隱藏對象的內部細節。5、 可見性:指對象的屬性和服務允許對象外部存取和引用的程度。6、 消息:就是向對象發出的服務請求。7、 類:是具有相同屬性和服務的一組對象的集合,他為屬于該類的全部對象提供了統一的抽象描述,其內部包括屬性和服務兩個主要部分。8、 實例:類的一個成員對象。9、 一般類和特殊類(超類和子類):不同對象既具有共同性又具有特殊性,運用抽象原則,舍棄對象的特殊性,抽取其共同性,則得到一個適應一批對象的類,則該類為一般類。在該類范圍內,考慮定義該類時舍棄的某些特殊性,則該類中,有一部分對象具有這些特殊性,這部分對象構成一個新的類,它是前一個類的子集,稱作一般類的特殊類。10、繼承:即特殊類的對象擁有一般類的全部屬性和服務。第二節發現對象1、 對象可以是:物理的和概念的,例:人、組織、物、事件等;2、 出發點:問題域和系統責任。問題域:客觀存在與系統對象的映射;系統責任:責任由那些對象來完成;3、 抽象原則:圍繞系統責任目標進行抽象,且先松后緊,即選出各種可能的侯選對象,再審查篩選。4、 方法:名詞分析法(注意考慮隱含的名詞)5、 審查與篩選:A、屬性包含有用的信息且可以定義成適用所有場合的公共屬性;或B、有能改變其屬性值的操作且該操作能被定義為公共服務;6、 精簡:只有一個屬性或只有一個服務的對象。例:班主任班7、 對象的簡單定義:例:學生:當前已經被大學錄取,有資格進行注冊的人。8、 發現SRS對象學生注冊系統需求分析我們被要求為大學開發一個自動化學生注冊系統(SRS),這個系統將使學生可以在線注冊每個學期的課程,也可以用于跟蹤學生的學習進展,直至其獲得學位。當學生被大學錄取后,學生使用SRS建立學習計劃,即確定滿足特定學位所需要的課程,并選擇一名導師。SRS要檢驗所提出的學習計劃是否滿足該學生所希望獲得的學位的要求。一旦建立了學習計劃,則在以后每個學期的注冊期間學生都可以在線查看課程計劃,選擇要選修的課程,如果課程由多名教授講授,則還可以指定聽課時間(星期幾、幾點)。SRS要參考學生所完成課程的成績單(學生可以隨時查看自己的成績單),檢驗學生是否滿足所申請課程的必要的預修條件。若1、所要求的預修課程都已修完;2、課程在該學生的學習計劃之內;3、課程尚有空位;則學生可以參加聽課。如果1、2條件滿足,但3不滿足,則該學生要放到一個先入先出的等待隊列中。如果學生以前所等待的課程可以提供(或者由于某學生取消了聽課計劃,或者由于該課程的聽課位置增加了),則該學生會被自動錄取到所等待的課程中。只要允許學生聽課,則SRS向該學生發送E_mail通知。如果該學生不再對該課程感興趣,可以最遲在學期的第一個星期末決定退出所選的課程,否則,若學生被允許聽課,則學生要為該課程付費。隱含:班、教室類清單:課程、課程計劃、學習計劃、教授、學生、班、成績單第三節定義屬性一、 策略1、 按一般常識這個對象應該有哪些屬性;2、 在當前的問題域中這個對象應該有哪些屬性;3、 按系統的責任要求這個對象應該有哪些屬性;4、 建立該對象是為了保存和管理哪些信息;5、 為實現其功能應增加哪些屬性;6、 對象有哪些需要區別的狀態,是否需要增加一個屬性來區別這些狀態。二、 審查與篩選1、 該屬性是否體現了以系統責任為目標的抽象;2、 該屬性是否描述了對象本身的特征;3、 該屬性是否破壞了對象特征的原子性;4、 該屬性是否可以從其他屬性中導出;三、 屬性的詳細說明1、 屬性的命名;2、 屬性的解釋;3、 屬性的數據類型;4、 實現要求及其他;四、 定義SRS各對象屬性
CourseSectionProfessorCourseNoCourseNameCreditsSectionNoDayofweekTimeofdaySemesterRoomSeatingcapacitySSNCourseSectionProfessorCourseNoCourseNameCreditsSectionNoDayofweekTimeofdaySemesterRoomSeatingcapacitySSNNameTitleStudentSSNNameMajorDegree詳細說明:Section.Timeofday:授課時間(范圍),例如下午2 4時;Section.Seatingcapacity:注冊某個班所允許的最大學生數量;Professor.SSN:唯一的社會安全號碼;Student.Major:學生的主修專業,例如“計算機科學與技術”(假設一名學生只有一個專業)第四節定義服務一、策略1、考慮系統責任和問題域:設置這個對象的目的是什么?若是完成某些功能,則由哪些服務來完成這些功能;若是保存某些信息,那么系統怎樣運用這些信息,是否需要對這些信息進行某種計算或加工,然后向對象外部提供,怎樣提供?對象在問題域中有哪些行為,應該設置何種服務來模擬這些行為?2、 分析對象狀態:分析對象所能呈現的每一種狀態,考慮在每一種狀態下對象可以發生什么行為?應該由什么服務來描述?對象由一種狀態轉換到另外一種狀態是由什么操作引起的?是否設置了相應的服務?3、 追蹤服務的執行路線:分析員把自己設想成當前服務的執行者,模擬每個服務的執行,并追蹤服務的執行路線,直至全部服務都被模擬過。用于發現遺漏的服務。二、 審查與調整1、 按照系統責任要求檢查每個服務是否有用;2、 檢查每個服務是否是高內聚的:三、 服務的詳細說明1、 服務解釋:該服務的作用與功能2、 消息協議:給出服務的入口消息格式,服務名稱、輸入輸出參數、參數類型3、 消息發送:指出在這個服務執行時,需要請求哪些別的對象服務4、 約束條件:四、 SRS的部分服務1、Student的部分服務添加班:addSection注銷班:dropSection
是否被批準:isEnrolledIn打印成績單:printTranscript2、Section的部分服務招收學員:enroll(Students)顯示學員列表:displayStudentRoster()確認空座:confirmSeatAvailability()確認空座:confirmSeatAvailability()注銷學生:drop(Students)注銷學生:drop(Students)給定成績:getGrade(Students)給定成績:getGrade(Students)第五節一般一殊結構一、對象與外部的關系1、對象之間的分類關系,即對象之間的一般特殊關系,用一般特殊結構表示(分類結構)2、 對象之間的組成關系,即整體部分關系,用整體部分結構表示(裝配結構)3、 對象之間的靜態聯系,即通過對象屬性反映的聯系,用實例連接表示表示4、 對象之間的動態聯系,即對象行為之間的依賴關系,用消息連接表示般類二、一般特殊結構表示法特殊類特殊類
特殊類特殊類三、發現一般特殊結構1、 學習當前領域的分類學知識:植物分類法、圖書分類法等2、 按常識考慮事物分類:例如人,可按人種分,按年齡段分,按性別分等;3、 回顧一般特殊類的定義4、 考察屬性和服務:例,公司人員具有屬性姓名、身份證、股份、工資等,但股份僅適用于股東,而工資適用于職工,則建立如下結構:5、考慮領域范圍內的復用:(類構件)例:某超市使用的現鈔收款機具有屬性A、B、C、D、E、F,服務X、Y、Z。其中屬性A、B、C,服務X、Y是任何收款機所共有的屬性和服務,而屬性D、E、F和服務Z是現鈔收款機所特有的屬性和服務。則可定義收款機類和現鈔收款機類,構成一般特殊結構,這樣收款機類成為可供本領域其他系統復用的領域構件。四、審查與調整1、 問題域是否需要這樣的分類:書一一善本書2、 系統責任是否需要這樣的分類:職員一一生產人員、營銷人員3、 是否符合分類學常識:A是一種B4、是否構成了繼承關系:船——航標船五、簡化
1、特殊類沒有自己特殊的屬性和服務(學生 大學生、研究生)
2、 某些特殊類之間的差別可以通過一般類的某個屬性值體現(人,性別、國籍)3、 一般類下只有一個特殊類(收款機——現鈔收款機)通常一般類應符合:它有兩個或以上的特殊類或需要用它創建對象實例或者有助于軟件復用,才有存在價值。六、多繼承在職研究生身份證號
姓名在職研究生???學號班級專業??單位專業工作量教學系數?????
教學系數???多繼承存在命名沖突,所以標準JAVA不支持多繼承,通過接口完成相應功能。第六節整體部分結構一、 表示法連接符兩端的字母或數字表示結構中對象實例的 整體對象M多重性,即位于連接符一端的對象實例要求另一端多 A少個對象實例與自己進行整體部分組合。 N部分對象固定數量:固定數字;不定數量:M,N;固定范圍:下界,上界;例4,6;不定范圍:1,M;0,N;二、 實現方式1、 嵌套對象:用部分對象類作為數據類型;2、 對象指針:指向部分對象的指針;三、發現整體部分結構1、 物理上的整體事物和它的組成部分:汽車一一發動機、輪胎、車身2、 組織機構和它的下級組織及部分:學院一一系3、 團體與成員:班一一學生4、 一種事物空間上包容其它事物:車間一一廠房、機器、人5、 抽象事物的整體與部分:書一一章6、 具體事物和它的抽象方面:人員一一身份、職責、獎罰四、 審查和篩選1、 是否屬于問題域:如公司業務管理系統中,家庭一一職員;2、 是否是系統責任的需要:如工會一一員工;3、 部分對象是否具有一個以上的屬性:輪胎一一規格4、 是否有明顯的整體部分關系:學生——課程五、 用途1、 基本用途:表達問題域中事物之間的組成關系2、 簡化對象定義:飛機有50個屬性,20個服務,其中與發動機和導航儀有關的屬性各有10個,服務各有5個,則可建立發動機類和導航儀類,然后使用整體部分結構與飛機組合,簡化了飛機的定義。3、 支持軟件復用:圖4、 表示數量不定的組成部分;書 章5、 表示動態變化的對象特征:人員由營業員變為會計師、經理;
六、兩種結構的關系六、兩種結構的關系般特殊結構是特殊類經過繼承而擁有一般類的特征;整體部分結構是整體對象通過組裝而擁有部分對象的特征;表達自然是選用結構的標準;七、SRS中的整體部分結構1、 成績單與成績單記錄2、 課程計劃與班3、 學習計劃與課程第七節實例連接一、簡單的實例連接1、 實例連接:用于表達對象之間的靜態聯系,靜態聯系是指最終可通過對象屬性來表示的一個對象對另一個對象的依賴關系。例:教師指導學生畢業設計、某課程是另外課程的預修課、兩個城市間有航班等。2、 表示法有航線有航線在具有實例連接的類之間畫一條連接線把它們連接起來;連接線的旁邊給出表明其意義的連接名;在連接線的兩端用數字標明其多重性。一對一連接:一對多連接:
多對多連接:3、 實現方式實例連接一般可用對象指針實現,即在被連接的兩個類中選擇一個,在它的對象中設立一個指針類型的屬性,用于指向另一個類中與它有連接關系的對象實例。一般可在多重性1端的對象中建立指針。若系統要求從兩個方向都能快速地相互查找和引用,則兩個對象都要建立指針。4、 與整體部分結構的異同二、復雜的實例連接1、表示法2、用對象表示實例連接的復雜性三、多元關聯某人使用某語言從事某項日;某公司委托某代理商在某公證機構的監督下為某個項目招標;方法:在多元關聯的匯集點增加一個對象,使之轉化為二元的實例連接,新增這個對象的屬性是分別指向每個元的對象指針。四、多對多實例連接五、 對象、屬性的增補1、 對象增補:復雜實例連接、多元關聯、多對多實例連接要求增加一些新的類2、 屬性增補:每一個實例連接,應該在它的某一端(若要求相互引用則是兩端)所連接的對象類中增加相應的屬性,其類型應被說明為指向另一端的對象指針。六、 實例連接說明詳細說明實例連接的實際意義。七、 SRS的實例連接1、教授教班,一個教授可教多個班,每個班一個教授教,是一對多實例連接,由于系統責任要求能夠從兩個方向都能快速地相互查找和引用,則兩個對象都要建立指針,故教授設立teaches屬性,班設立instructor屬性。1mmProfessorTitleteachesStudentMajorDegreeTranscriptattendsSectionSectionNoDayOfWeekTimeOfDayRoomSeatingCapacityRepresentedCourseenrolledStudentsofferedIninstructorassignedGradesm1m1mScheduleOfClassesSemestersectionsOffered2、 每個學生有一份成績單,兩者有一對一實例連接,故學生設立Transcript屬性,成績單設立studentOwner屬性。3、 每個學生可參加多個班,每個班可有多個學生參加,兩者存在多對多實例連接,故學生設立attends屬性,班設立enrolledStudents屬性。4、 每個學生有一份學習計劃,兩者有一對一實例連接,通過在學習計劃中設立Student屬性建立兩者的聯系。5、 每份學習計劃要求一名教授審核,每名教授可審核多份學習計劃,兩者有一對多實例連接,在學習計劃中設立Professor屬性,建立兩者的聯系。6、 每門課程可以有多門預修課,該門課程又可能是多門課程的預修課,存在一元自反關聯,故設立prerequisites屬性。7、 每門課程可以有多個班,每個班只能上一門課程,兩者有一對多實例連接,在課程中設立OfferedAsSection屬性,班設立RepresentedCourse屬性,建立兩者的聯系。8、 每條成績單記錄須明確是哪個學生獲得的成績,兩者存在實例連接,故在成績單記錄設立student屬性用于建立兩者之間的聯系。9、 每個班結業時會有一份該班的成績,該成績要寫入每個學生的成績單記錄,每條成績單記錄要求一個班的成績,每個班的成績由于包含多個學生該門課程的成績,故會產生多條成績單記錄,兩者有一對多實例連接,在班中設立assignedGrades屬性,用于存儲該班的成績,在成績單記錄中設立section屬性,建立兩者之間的聯系。第八節消息連接一、 順序系統中的消息1、 順序系統中消息的特點A、每個消息都是向對象發出的一個服務請求,它必定引起接收者一個服務的執行;8、除了主動對象唯一的主動服務外,其它對象服務只有在接收到消息時才開始執行;C、 每個消息的發送和接收都是同時進行的,即消息是同步的;D、 消息是從正在執行的服務中發出的。消息發出后,發送者暫停執行位于消息發送點之后的其它操作,將控制權轉移到接收者,百到接收者執行完相應的服務后才返回到發送消息的服務,繼續執行其它操作。即所有操作都是串行的。2、 消息的語法特征A、 消息名:即接收消息的服務名;B、 入口參數:即接收消息的服務要求的輸入參數(0個或多個);C、 返回參數:即接收消息的服務提供的輸出參數(0個或多個);3、 消息的語義特征A、 發送者:通過消息發送點的位置隱含表明,不需要顯式的表示;B、 接收者:由消息名表達;C、 其它需傳送的信息:通過入口參數和返回參數表示;二、 并發系統中的消息1、 并發系統:有多個控制線程(threadofcontrol)并發執行的系統;每個控制線程是由一系列順序執行的操作所構成的活動序列。2、 并發系統中的消息A、 發生在控制線程內部的消息;B、 發生在控制線程之間的消息;3、 消息的同步與異步不同控制線程之間的消息可分為同步消息(synchronousmessage)和異步消息(asynchronousmessage)A、 同步消息:僅當發送者要發送一個消息而且接收者已經做好接收這個消息的準備時才能傳送的消息;B、 異步消息:發送者不管接收者是否做好接收準備都可以發送的消息;4、 接收者對消息的響應方式A、 在消息產生之前,處理這個消息的進程并不存在;僅當發送者發出這個消息時才立刻創建一個進程來響應這個消息,完成它所要求的服務;B、 處理這個消息的進程已經存在,并且與發送者同步地接收消息。接到消息立即處理;C、 接收者異步地接收和處理消息,即在消息發出后的某個時刻才接收和處理該消息;D、 接收者不關心這個消息,不作任何響應。5、發送者對消息處理結果的期待方式人、等待,直至得到處理結果才繼續原來的工作;B、發送者不等待處理結果,發出消息后繼續執行,以后再查看消息的處理結果;C、既不等待,也不關心處理結果;6、消息接收者是否唯一A、定向消息:消息定向地發送給唯一的接收者;8、廣播消息:消息發送給某個范圍內所有可能的接收者;三、 應該識別和表示的主要問題1、 對象之間是否存在著某種消息?2、 該消息是控制線程內部的還是不同控制線程之間的?3、 消息是從發送者的哪個服務發出的?是由接收者的哪個服務響應和處理的?4、 消息是同步的還是異步的?5、 發送者對消息處理結果的期待方式是哪種?四、 消息連接的表示1、表示法發送者 接收者發送者 *接收者控制線程內部的消息連接控制線程之間的消息連接2、為什么沒有表示3、4、5A、保持模型的簡明性;8、抽象是逐步深入的;C、3、4、5可在詳細說明中表述;五、 發現并建立消息連接A、 從每個主動對象的主動服務開始,進行服務模擬、執行路線追蹤每發現一個新的請求,就發現一個新的消息;B、 分析該消息的發送者與接收者是否屬于同一個控制線程;順序還是并發?是否引起控制線程的切換?接收者是否只有通過當前這種消息的觸發才能執行?C、 建立消息連接六、 消息的詳細說明消息的詳細說明包括發送者和接收者兩方面的說明:1、 發送者A、 指出這個服務在執行時可能發出的每一個消息,給出接收者的類名和處理該消息的服務名;B、 說明接收者與本服務是順序執行還是并發執行的;。、必要時說明同步、異步以及發送者對消息處理結果的期待方式2、 接收者A、 說明由這個服務接收和處理的每一種消息,規定消息的格式和內容,包括消息名稱、輸入輸出參數、參數類型等、B、 說明發送者與本服務是順序執行還是并發執行的;。、必要時說明同步、異步七、SRS中各個對象的服務及消息連接對象行為:1、系統行為:如創建對象等2、 對象自身的簡單行為:如讀取、設置一個屬性值3、 對象自身映射的客觀事物固有行為:如復雜的算法下面只給出第3類行為的服務原因:1、系統行為是系統施加于對象的行為,不是對象本身的行為,分析時可暫不考慮,但設計與實現要考慮,通常由構造函數完成;2、對象自身的簡單行為是由于嚴格
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 人工智能領域人才引進措施
- 特殊學生遠程教育幫扶措施
- 機電安裝施工進度計劃和工期保證措施
- 2025高一下學期物理作業布置計劃
- 混凝土工程施工質量驗收措施
- 西師版五年級下冊數學學科競賽計劃
- 2025幼兒園保教安全管理計劃
- 高校英語興趣小組比賽活動計劃
- 中華師道視角的智慧校園建設范文
- 2025年職業技術院校教師培訓計劃
- 超市員工勞務合同
- 中華大蟾蜍養殖基地技術手冊
- 紙箱箱型結構培訓課程
- 親社會傾向量表(26題版)
- 2022年浙江紹興市新聞傳媒中心招聘工作人員筆試備考題庫及答案解析
- 施工現場臨時用電驗收表參考模板范本
- 煤礦門益門區益門
- 八年級語文課外文言文閱讀 專項訓練
- 國際貿易出口業務一般流程
- 2023年物流公司介紹PPT
- 2023山西高考志愿填報指南(詳細)
評論
0/150
提交評論