軟件工程案例分析_第1頁
軟件工程案例分析_第2頁
軟件工程案例分析_第3頁
軟件工程案例分析_第4頁
軟件工程案例分析_第5頁
已閱讀5頁,還剩57頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

案例分析會(huì)議管理系統(tǒng)醫(yī)院病房監(jiān)護(hù)系統(tǒng)銀行網(wǎng)絡(luò)系統(tǒng)ATM目錄

一、問題陳述

有一個(gè)對(duì)外營業(yè)的會(huì)議中心,有各種不同規(guī)格的會(huì)議室,為用戶提供以下服務(wù):1、用戶可以按照會(huì)議人數(shù)、會(huì)議時(shí)間預(yù)訂會(huì)議室。可以只預(yù)訂1次,也可預(yù)訂定期召開的會(huì)議。2、開會(huì)前允許修改會(huì)議時(shí)間、人數(shù),重新選擇會(huì)議室,甚至取消預(yù)訂的會(huì)議。3、確定會(huì)議預(yù)訂后,會(huì)議中心負(fù)責(zé)會(huì)務(wù)管理:包括通過郵寄或電子郵件,通知開會(huì)人員有關(guān)會(huì)議信息,制作代表證等。4、系統(tǒng)根據(jù)會(huì)議室的使用情況(緊張與否),調(diào)整、更改會(huì)議室和會(huì)議時(shí)間,并調(diào)整修改預(yù)訂會(huì)議的時(shí)間。會(huì)議管理系統(tǒng)退出下頁末頁案例一二、建立用例模型1、識(shí)別角色

找出所有可能與系統(tǒng)發(fā)生交互行為的外部實(shí)體、對(duì)象、系統(tǒng)??紤]系統(tǒng)的主要功能的使用者,就會(huì)想到用戶和系統(tǒng)管理者,但如果直接將用戶定義為角色,系統(tǒng)的所有功能幾乎都由用戶使用。根據(jù)問題的描述,系統(tǒng)要求將會(huì)議和會(huì)議的召開分開來。從會(huì)議的角度看,允許用戶定義、更改或刪除一個(gè)會(huì)議。從會(huì)議召開的角度看,允許用戶為某個(gè)會(huì)議定義召開時(shí)間、參加人數(shù)、更改相應(yīng)的數(shù)據(jù)或刪除已定義的會(huì)議召開。因此,將用戶識(shí)別為“會(huì)議管理者”和“會(huì)議申請(qǐng)者”兩個(gè)角色。本系統(tǒng)定義以下角色:會(huì)議管理者(MeetingAdministrator)會(huì)議申請(qǐng)者(MeetingInstanceRequester)郵局(PostOffice)會(huì)議人員管理(AttendeeManagement)系統(tǒng)維護(hù)者(SystemMaintainer)退出上頁首頁下頁末頁

在識(shí)別角色的基礎(chǔ)上,列出與角色相關(guān)的用例,有的用例與多個(gè)角色相關(guān),經(jīng)過分析,確定系統(tǒng)的用例(打)。⑴與會(huì)議管理者相關(guān)的用例:

定義一個(gè)會(huì)議(DefineMeeting)更改一個(gè)會(huì)議(AlterMeeting)

刪除一個(gè)會(huì)議(RemoveMeeting

⑵與會(huì)議申請(qǐng)者相關(guān)的用例:

申請(qǐng)會(huì)議召開(RequestMeetingInstance)

更改申請(qǐng)(ChangRequest)

取消申請(qǐng)(CancelRequest)

定義參加人員(AddAttendee)

歸還會(huì)議室(ReleaseRoom)

2、用例識(shí)別退出上頁首頁下頁末頁2、用例識(shí)別

⑶與郵局相關(guān)的用例:

申請(qǐng)會(huì)議召開(RequestMeetingInstance)更改申請(qǐng)(ModifyRequest)取消申請(qǐng)(CancelRequest

)⑷與會(huì)議人員管理相關(guān)的用例:定義參加人員(AddAttendee)取消申請(qǐng)(CancelRequest)申請(qǐng)會(huì)議召開(RequestMeetingInstance)更改申請(qǐng)(ModifyRequest)

⑸與系統(tǒng)維護(hù)者相關(guān)的用例:會(huì)議室維護(hù)(MeetingRoomMaintenance)

設(shè)定預(yù)定時(shí)限(SetReservationTomeLimit)

在確定角色和用例的基礎(chǔ)上,畫出用例圖(圖1)。

退出上頁首頁下頁末頁3、會(huì)議管理系統(tǒng)的Usecase圖圖1會(huì)議管理系統(tǒng)的Usecase圖歸還會(huì)議室申請(qǐng)會(huì)議召開更改申請(qǐng)取消申請(qǐng)定義參加人員會(huì)議召開申請(qǐng)者郵局會(huì)議人員管理設(shè)置預(yù)定時(shí)限會(huì)議室維護(hù)定義會(huì)議更改會(huì)議刪除會(huì)議系統(tǒng)維護(hù)者會(huì)議管理員

退出上頁首頁下頁末頁用例1、定義會(huì)議(DefineMeeting)輸入會(huì)議名稱確定會(huì)議規(guī)模確定會(huì)議類型其中會(huì)議規(guī)模是指參會(huì)人數(shù)范圍。用例2、更改會(huì)議(AlterMeeting)改變會(huì)議名稱改變會(huì)議規(guī)模改變會(huì)議召開頻度用例3、刪除會(huì)議(RemoveMeeting)如果該會(huì)議沒有召開申請(qǐng)從會(huì)議列表中刪除如果該會(huì)議有召開申請(qǐng)取消與之相關(guān)的會(huì)議召開信息刪除該會(huì)議使用:用例8刪除參加人員(RemoveAttendee)用例6取消申請(qǐng)(CancelRequest)4、對(duì)用例的進(jìn)一步描述用例4、申請(qǐng)會(huì)議召開(RequestMeetingInstance)確定召開時(shí)間(年、月、日)確定參加人員確定侯選會(huì)議室發(fā)會(huì)議通知使用:用例11發(fā)會(huì)議通知(InformofMeeting)用例13選擇參加組(SelectGroupAttendee)擴(kuò)展:①如果召開時(shí)間在申請(qǐng)時(shí)限之外用例12申請(qǐng)拒絕(RequestRejection)②如果還沒定義參加人員用例7定義參加人員(AddAttendee

)用例5:更改申請(qǐng)(ModifyRequest)更改召開時(shí)間更改參加人員更改取得會(huì)議室發(fā)會(huì)議更改通知使用:用例13選擇參加組(SelectGroupAttendee)用例11發(fā)會(huì)議通知(InformofMeeting)擴(kuò)展:①如果更改的時(shí)間不合法用例12申請(qǐng)拒絕(RequestRejection)②用例7定義參加人員(AddAttendee)退出上頁首頁下頁末頁用例6:取消會(huì)議召開(CancelRequest)、取消申請(qǐng)歸還會(huì)議室發(fā)會(huì)議取消通知使用:用例8歸還會(huì)議室(ReleaseRoom)用例14發(fā)會(huì)議取消通知(InformRejection)擴(kuò)展:①如果會(huì)議已召開用例12申請(qǐng)拒絕(RequestRejection)用例7:定義參加人員(AddAttendee)輸入?yún)⒓尤藛T的詳細(xì)信息定義參加組用例9:會(huì)議維護(hù)(MeetingRoomMaintenance)加入一個(gè)會(huì)議室(用例15)標(biāo)記一個(gè)會(huì)議室不可用(用例16)查詢會(huì)議室預(yù)定情況(用例17)用例10:設(shè)置預(yù)定時(shí)限制(SetReservationTomeLimit)設(shè)置時(shí)間限用例11:發(fā)會(huì)議通知(InformofMeeting)

從會(huì)議人員管理獲得參加人員的投遞地址填寫通知(會(huì)議召開時(shí)間、會(huì)議室號(hào)碼)發(fā)送通知用例12:申請(qǐng)拒絕(RequestRejection)作廢當(dāng)前的一切輸入中字止用戶當(dāng)前的操作用例13:選擇會(huì)議參加人員組(SelectGroupAttendee)瀏覽會(huì)議組成員選擇參加組用例14:會(huì)議取消通知(InformofCancellation)從會(huì)議人員管理處獲取參加人員地址填寫通知發(fā)送通知

用例8:歸還會(huì)議室(ReleaseRoom)輸入會(huì)議室號(hào)碼輸入使用時(shí)間刪除參加人員歸還會(huì)議室使用:用例9會(huì)議室維護(hù)(MeetingRoomMaintenance)用例18刪除參加人員(RemoveAttendee)退出上頁首頁下頁末頁用例15:增加會(huì)議室(AddMeetingRoom)輸入會(huì)議室號(hào)碼輸入會(huì)議室規(guī)模輸入會(huì)議室可使用狀態(tài)(可使用、不可使用)加入該會(huì)議室用例16:設(shè)置會(huì)議室不可使用(SetUnusableFlag)輸入會(huì)議室號(hào)碼通知該會(huì)議室的預(yù)定者標(biāo)記該會(huì)議室的可所以狀態(tài)為不可用用例17:查詢會(huì)議室的使用情況(BrowseMeetingroomusage)輸入會(huì)議室號(hào)碼查詢本用例返回會(huì)議室的使用狀態(tài)(已使用、空閑)和會(huì)議室的可否使用情況。用例18:刪除會(huì)議參加人員(RemoveAttendee)刪除參加人員刪除參加組圖2描述了會(huì)議管理系統(tǒng)完整的用例模型。退出上頁首頁下頁末頁5、完整的會(huì)議管理系統(tǒng)的Usecase圖圖2完整的會(huì)議管理系統(tǒng)Usecase圖退出上頁首頁下頁末頁

除了用例模型外,其他模型都依賴于類模型,因此,類模型是OO方法的核心,類模型從對(duì)象的角度描述系統(tǒng)的組成,描述類(對(duì)象)及相互間的關(guān)系。為了建立類模型,首先要識(shí)別類,鑒于篇幅,這里就不再討論類的識(shí)別過程。通過分析,識(shí)別以下類:1、Meeting類,標(biāo)識(shí)一個(gè)會(huì)議(名稱、類型、規(guī)模)。2、MeetingInstance類,Meeting類的子類,對(duì)會(huì)議時(shí)間、人數(shù)等進(jìn)行描述。3、MeetingRoom類,描述會(huì)議室的有關(guān)信息。4、MeetingAdministration類,管理會(huì)議。5、Attendee類,描述參會(huì)人員(姓名、性別、地址、頭銜等)。6、GroupAttende類,創(chuàng)建一個(gè)參加會(huì)議的組。7、Address類,描述郵寄地址E-mail地址。8、PostOffice類,負(fù)責(zé)發(fā)送郵寄通知。9、AttendeeManagement類,數(shù)據(jù)庫管理。10、ReservationCriteria類,定義會(huì)議室預(yù)定準(zhǔn)則。11、Information類,構(gòu)造一條通知。三、建立類模型退出上頁首頁下頁末頁

該類與會(huì)議召開不同,它標(biāo)識(shí)了一個(gè)會(huì)議(圖3),因此,其屬性包括會(huì)議名稱、類型、規(guī)模(參加會(huì)議的人數(shù))。其操作則有:增加會(huì)議、取消會(huì)議。一個(gè)會(huì)議往往有多個(gè)子會(huì)議(子類)的召開,因此,必須描述Meeting類與其子類MeetingInstance類之間的關(guān)聯(lián),如圖4所示。2、

MeetingInstance類

MeetingInstance類是Meeting類的子類,描述會(huì)議的具體情況,會(huì)議的開始(StartTime)、結(jié)束時(shí)間(EndTime),參會(huì)的人數(shù)(AttendeeNumber),其操作有:添加參加人員AddAttendee()、添加參加人員組AddGroupAttendee(),而AttachMeetingRoom()表示為該類分配一個(gè)會(huì)議室,而Cancel()則表示取消該會(huì)議的召開。MeetingMeetingInstanceStartTimeEndTimeAttendeeNumberAddAttendee()AttachMeetingRoom()AddGroupAttendee()Cancel()MeetingNameTypeSizeAddMeetingInstance()CancelMeetingInstance()圖3Meeting類圖圖4MeetingInstance類圖1、

Meeting類退出上頁首頁下頁末頁MeetingRoomCapacityBuildingCodeDoorCodeStatusAssignMeetingInstance()SetInvalidate()Release()MeetingInstanceMeeting圖5MeetingRoom類圖該類描述了有關(guān)會(huì)議室的情況,因此MeetingRoom類的屬性包括:會(huì)議室的規(guī)模Capacity,位置BuildingCode、DoorCode,使用狀態(tài)Status(正在使用、已預(yù)定、空閑和不可用)等。該類的操作有:AssignMeetingInstance()將MeetingRoom分配給MeetingInstance對(duì)象,而SetInvalidate()則表示當(dāng)會(huì)議室出現(xiàn)故障時(shí),將其狀態(tài)設(shè)置為不可用。Release()為歸還會(huì)議室。當(dāng)會(huì)議被預(yù)定后,為了便于查詢某個(gè)會(huì)議室預(yù)定給了哪個(gè)會(huì)議,應(yīng)建立類MeetingRoom與類MeetingInstanc之間的雙向關(guān)聯(lián),這里定義為1:1。3、MeetingRoom類退出上頁首頁下頁末頁AttendeeNameSexPostaddressEmailAddressTitleMeetingInstance11..*圖6Attendee類圖Attendee類描述參加會(huì)議人員的有關(guān)信息,如:姓名、性別、地址、E-mail地址、頭銜等。MeetingInstance類與Attendee類之間有一對(duì)多的關(guān)聯(lián)“1..*”。

5、GroupAttendee類MeetingInstanceGroupAttendeeMemberNumberGroupNameAddAttendee()DeleteAttendee()10..*Attendee11..*圖7GroupAttendee類圖該類可創(chuàng)建一個(gè)參加會(huì)議的組,便于按照小組選擇參加會(huì)議的人員。MeetingInstance類與GroupAttendee類之間有一對(duì)多的關(guān)聯(lián)“0..*”。4、Attendee類退出上頁首頁下頁末頁系統(tǒng)中有兩種地址:電子郵件地址(EmailAddress)和郵寄地址(PostAddress),而且,每個(gè)參加會(huì)議的人,可以有一個(gè)或者多個(gè)郵寄地址,有0個(gè)或多個(gè)E-mail地址。有關(guān)地址的屬性,在再內(nèi)這里不再討論。負(fù)責(zé)發(fā)送郵寄通知。PostOffice類分別與PostAddress、EmailAddress和Information之間有一對(duì)多的關(guān)聯(lián)。

7、PostOffice類1..*InformationEmailAddress1..*PostAddress1..*(fromUseCaseView)DelieverInformation()圖9PostOffice類圖PostOfficeAddress

PostAddressEmailAddressAttendee圖8Address類圖1..*0..*6、Address類退出上頁首頁下頁末頁InformationNoticeTopicReceiverTitleReceivernameTimeEventExplanationSendTimeSendrSignatureCreate()MeetingRoom圖10Information類圖該類用于構(gòu)造一條通知,由于在本系統(tǒng)中,通常有三種:會(huì)議召開通知,會(huì)議更改通知,會(huì)議取消通知。如下例所示,通知的內(nèi)容常包括標(biāo)題、接受者、會(huì)議內(nèi)容、會(huì)議時(shí)間及發(fā)通知的時(shí)間等。XXXX會(huì)議召開通知XX先生:定于2005年9月15日在櫻都會(huì)議中心召開XXXX會(huì)議。

XXXX會(huì)議籌備組2005年8月20日8、Information類退出上頁首頁下頁末頁GroupAttendeeAttendeeAttendeeManagement(fromUseCaseView)AttendNumber()GroupAttendeeNumber()AddAttendee()ChangeAttendee()AddGroupAttendee()DeleteGroupAttendee()圖11AttendeeManagement類圖該類使用數(shù)據(jù)庫對(duì)參加會(huì)議的人員進(jìn)行管理。分析階段只確定該類與系統(tǒng)的接口,有關(guān)數(shù)據(jù)庫的設(shè)計(jì)在設(shè)計(jì)階段解決。該類與GroupAttendee類及Attendee類的關(guān)聯(lián)如圖11所示。

10、ReservationCriteria類

該類定義了預(yù)定會(huì)議室的準(zhǔn)則(如時(shí)間),并建立會(huì)議實(shí)例(MeetingInstanee類)與該類之間的聯(lián)系。ReservationCriteriaTimeCriteriasetCrieria()GetCriteria()MeetingInstanee圖12ReservationCriteria類圖9、AttendeeManagement類退出上頁首頁下頁末頁該類管理系統(tǒng)中由用戶定義的所有會(huì)議,并提供給用戶友好的用戶界面。由于該類有定義會(huì)議(DefineMeeting)、更改會(huì)議(AlterMeeting)、刪除會(huì)議(RemoveMeeting)等操作,建立與Meeting類之間的關(guān)聯(lián)關(guān)系。MeetingName:stringMeetingAdministration(fromeetingPack)MeetingNumber:intDefineMeeting()AlterMeeting()RemoveMeeting()Meeting(fromMeetingPack)圖13MeetingAdministration類圖11、MeetingAdministration類退出上頁首頁下頁末頁MeetingMeetingName:stringMeetingAdministrationReservationCriteriaMeetingInstanceInformationMeetingRoom1..*1..*1..*PostOfficeGroupAttendeeAttendeeManagement

Address

PostAddressEmailAddressAttendee1..*0..*1..*0..*110..*0..*0..*111圖14會(huì)議管理系統(tǒng)類圖會(huì)議管理系統(tǒng)類圖退出上頁首頁下頁末頁四、建立系統(tǒng)包圖引入包圖來對(duì)類進(jìn)行管理,圖15為本系統(tǒng)的包圖。系統(tǒng)由會(huì)議包(MeetingPack)、人員包(AttendeePack)和郵寄包(PostOfficePack)三類包組成。圖16、圖17、圖18分別描述了這三類包的構(gòu)成。PostOfficePack圖15系統(tǒng)包圖MeetingPackAttendeePack退出上頁首頁下頁末頁1、會(huì)議包(MeetingPack)2、人員包(AttendeePack)3、郵寄包(PostOfficePack)GroupAttendeeAddress

PostAddressEmailAddressAttendee圖17人員包構(gòu)成0..*1..*1..*1圖18郵寄包構(gòu)成InformationPostOffice(fromUseCaseView)1..*0..*MeetingMeetingName:stringMeetingAdministrationReservationCriteriaMeetingInstanceMeetingRoom圖16會(huì)議包構(gòu)成111包圖退出上頁首頁下頁末頁

靜態(tài)模型關(guān)注的是系統(tǒng)各成分的組織結(jié)構(gòu),而動(dòng)態(tài)模型則要描述系統(tǒng)各成分之間的交互行為,即系統(tǒng)的動(dòng)態(tài)特征。結(jié)合本系統(tǒng),建立動(dòng)態(tài)模型,包括交互圖、合作圖、活動(dòng)圖。(一)對(duì)象交互模型

在面向?qū)ο蟮姆椒ㄖ?,一切元素都與對(duì)象緊密相關(guān),事件也不例外。因此,對(duì)象在其生命期中不斷地與其它對(duì)象交互。使用對(duì)象交互模型來描述用例圖中的每個(gè)用例,從對(duì)象觀點(diǎn)來描述用例的動(dòng)態(tài)交互過程。在UML中,交互模型由兩類圖來描述:順序圖(Sequencediagram)強(qiáng)調(diào)的是對(duì)象交互行為的時(shí)間“順序”,直觀描述了對(duì)象的生存期,用消息傳送來清晰地描述了在對(duì)象生存期中某一時(shí)刻的動(dòng)態(tài)行為。只適宜描述簡單的對(duì)象交互情況。合作圖(Collaborationdiagram)強(qiáng)調(diào)的是對(duì)象合作的交互行為關(guān)系,對(duì)象間由各種關(guān)聯(lián)連接,對(duì)象之間的合作情況(交互情況)使用消息流來表示,但消息沒有發(fā)送時(shí)間和傳送時(shí)間的概念。適宜描述對(duì)象數(shù)目較多,交互情況教復(fù)雜的情況。五、建立動(dòng)態(tài)模型退出上頁首頁下頁末頁:MeetingAdministration:Meeting:MeetingAdministrattor1:DefineMeeting(meeting)[IsMeetingExisted=.T.]3:Fail(MeetingExisted)2:{new(meeting)}圖19定義會(huì)議的順序圖當(dāng)用戶向會(huì)議中心申請(qǐng)召開會(huì)議時(shí),首先要定義一個(gè)會(huì)議。會(huì)議管理者發(fā)送DefineMeeting消息給MeetingAdministration對(duì)象,消息參數(shù)是有關(guān)會(huì)議的一個(gè)臨時(shí)對(duì)象(meeting),根據(jù)該臨時(shí)對(duì)象檢查會(huì)議是否存在?若不存在,創(chuàng)建新會(huì)議:2:{new(meeting)},若當(dāng)條件表達(dá)式為真時(shí):[IsMeetingExisted=.T.],表示會(huì)議已經(jīng)被定義,不需要再定義。1、用例:定義會(huì)議(DefineMeeting)的順序圖退出上頁首頁下頁末頁當(dāng)用戶確定要取消某個(gè)會(huì)議時(shí),首先檢查會(huì)議是否定義,如果沒有可以直接刪除,否則要先取消相關(guān)的會(huì)議。如圖20所示,首先系統(tǒng)用戶對(duì)象MeetingAdministrator發(fā)出RemoveMeeting(MeetingName)消息給對(duì)象MeetingAdministration,通過消息的參數(shù)檢索要取消的會(huì)議對(duì)象,并向該對(duì)象發(fā)出取消會(huì)議召開的消息。表達(dá)式“[IsOpen=.F.]”表示如果會(huì)議不處于召開狀態(tài),就取消它。表達(dá)式“[IsAllMeetingInstancesCanceled=.T.]”表示該會(huì)議的所有會(huì)議召開都已經(jīng)被取消,則會(huì)議管理就發(fā)出取消會(huì)議召開的消息。否則返回取消失敗(如會(huì)議正在召開)的消息。2、用例:取消會(huì)議(RemoveMeeting)的順序圖圖20取消會(huì)議的順序圖:MeetingAdministration:MeetingInstance:MeetingAdministrator1:RemoveMeeting(MeetingName)[IsAllMeetingInstancesCanceled=.F.]5:Fail(MeetingExisted)2:CancelMeetingInstance():Meeting[IsAllMeetingInstancesCanceled=.T.]4:Fail(MeetingExisted)[IsOpen=.F.]3:Cancel()退出上頁首頁下頁末頁3、用例:撤消會(huì)議召開(CancelRequestment)的順序圖:MeetingAdministration:Meeting:MeetingInstance:MeetingRoom:PostOffice1:CancelMeetingInstance(Instance)[IsOpen=.F.]2:Cancel()3:Release()4:DelieverInformation(cancellation)圖21撤消會(huì)議召開的順序圖要撤消某個(gè)會(huì)議召開,發(fā)送Cancel信息給MeetingInstance對(duì)象。該對(duì)象先要在Meeting對(duì)象中注銷自己,再歸還已分配的會(huì)議室,并向參會(huì)人員發(fā)撤消會(huì)議的通知。圖21中會(huì)議管理對(duì)象發(fā)送給會(huì)議對(duì)象的消息CancelMeetingInstance(Instance)中的參數(shù)用于檢索會(huì)議召開。條件表達(dá)式[IsOpen=.F.]表示如會(huì)議召開未進(jìn)行,則撤消會(huì)議召開。如果會(huì)議已進(jìn)行,則返回失敗消息(圖中未列出)。退出上頁首頁下頁末頁圖22撤消會(huì)議召開的順序圖:PostOffice:MeetingAdministration:Meeting:MeetingInstance:MeetingRoom1:AddMeetingInstance(instance)2:{new}6:AssignMeetingInstance()7:DelieverInformation(info)5:AttachMeetingRoom(room)4:AddGrooupAttendee(group)3:AddAttendee(member)如果時(shí)間合法,就創(chuàng)建一個(gè)會(huì)議召開對(duì)象。4、用例:申請(qǐng)會(huì)議召開(RequestMeetingInstance)的順序圖用戶申請(qǐng)一個(gè)會(huì)議召開時(shí),應(yīng)該指定會(huì)議召開的名稱,召開的時(shí)間,及會(huì)議參加人員。圖22中instance、member、group、room、info都是臨時(shí)對(duì)象,instance記錄了用戶指定的會(huì)議屬性(時(shí)間、參加人數(shù)等),member為一個(gè)參會(huì)代表,是Attendeegroup參會(huì)人員組的對(duì)象;而room是滿足要求的會(huì)議室。4、用例:申請(qǐng)會(huì)議召開退出上頁首頁下頁末頁六、合作圖與活動(dòng)圖對(duì)于簡單的對(duì)象交互情況,順序圖可以作很好的描述,可是,當(dāng)交互對(duì)象數(shù)目增加,交互情況復(fù)雜時(shí),順序圖就很難描述清楚了,可用合作圖來描述。合作圖描述了系統(tǒng)中所有對(duì)象之間的交互合作關(guān)系,注重對(duì)象之間的整體交互情況,交互關(guān)系由消息流來表示。在Rose中,還可以將順序圖與合作圖進(jìn)行轉(zhuǎn)換。本案例不再給出合作圖。

七、活動(dòng)圖

活動(dòng)圖模型主要用于描述系統(tǒng)在問題域空間中的活動(dòng)流程,活動(dòng)圖可以方便地描述系統(tǒng)中的并發(fā)活動(dòng)。由于本例中并沒有復(fù)雜的并發(fā)活動(dòng),而且也也沒有明顯的基于核心的、具有復(fù)雜狀態(tài)和行為的對(duì)象,所以可以不必畫出合作圖和活動(dòng)圖。六、合作圖退出上頁首頁監(jiān)視病情更新病歷產(chǎn)生病情報(bào)告一、問題的描述在醫(yī)院的病房里,將病癥監(jiān)視器安置在每個(gè)病床,對(duì)病人進(jìn)行監(jiān)護(hù)。監(jiān)視器將病人的病癥信號(hào)(組合)實(shí)時(shí)地傳送到中央監(jiān)護(hù)系統(tǒng)進(jìn)行分析處理。在中心值班室里,值班護(hù)士使用中央監(jiān)護(hù)系統(tǒng)對(duì)病員的情況進(jìn)行監(jiān)控,監(jiān)護(hù)系統(tǒng)實(shí)時(shí)地將病人的病癥信號(hào)與標(biāo)準(zhǔn)的病診信號(hào)進(jìn)行比較分析,當(dāng)病癥出現(xiàn)異常時(shí),系統(tǒng)會(huì)立即自動(dòng)報(bào)警,并打印病情報(bào)告和更新病歷。系統(tǒng)根據(jù)醫(yī)生的要求隨時(shí)打印病人的病情報(bào)告,系統(tǒng)還定期自動(dòng)更新病歷。退出下頁末頁病房中央值班室醫(yī)院病房監(jiān)護(hù)系統(tǒng)案例二二、簡單的需求分析說明系統(tǒng)名稱:醫(yī)院病房監(jiān)護(hù)系統(tǒng)根據(jù)分析系統(tǒng)主要實(shí)現(xiàn)以下功能:1、病癥監(jiān)視器可以將采集到的病癥信號(hào)(組合),格式化后實(shí)時(shí)的傳送到中央監(jiān)護(hù)系統(tǒng)。2、中央監(jiān)護(hù)系統(tǒng)將病人的病癥信號(hào)與標(biāo)準(zhǔn)的病癥信號(hào)庫里的病癥信號(hào)的正常值進(jìn)行比較,當(dāng)病癥出現(xiàn)異常時(shí)系統(tǒng)自動(dòng)報(bào)警。3、當(dāng)病癥信號(hào)異常時(shí),系統(tǒng)自動(dòng)更新病歷并打印病情報(bào)告。4、值班護(hù)士可以查看病情報(bào)告并進(jìn)行打印。5、醫(yī)生可以查看病情報(bào)告,要求打印病情報(bào)告,也可以查看或要求打印病歷。6、系統(tǒng)定期自動(dòng)更新病歷。三、用UML的靜態(tài)建模機(jī)制定義并描述本系統(tǒng)的靜態(tài)結(jié)構(gòu)

(一)建立系統(tǒng)的用例圖通過以下六個(gè)問題識(shí)別角色(1)誰使用系統(tǒng)的主要功能?(2)誰需要系統(tǒng)的支持以完成日常工作任務(wù)?(3)誰負(fù)責(zé)維護(hù),管理并保持系統(tǒng)正常運(yùn)行?(4)系統(tǒng)需要應(yīng)付(或處理)哪些硬設(shè)備?(5)系統(tǒng)需要和哪些外部系統(tǒng)交互?(6)誰(或什么)對(duì)系統(tǒng)運(yùn)行產(chǎn)生的結(jié)果(值)感興趣?退出上頁首頁下頁末頁需求分析通過回答這六個(gè)問題以后,再進(jìn)一步分析可以識(shí)別出本系統(tǒng)的四個(gè)角色:值班護(hù)士,醫(yī)生,病人,標(biāo)準(zhǔn)病癥信號(hào)庫。角色描述模板角色:病人角色職責(zé):

提供病癥信號(hào)角色職責(zé)識(shí)別:負(fù)責(zé)生成、實(shí)時(shí)提供各種病癥信號(hào)。角色:值班護(hù)士角色職責(zé):負(fù)責(zé)監(jiān)視病人的病情變化角色職責(zé)識(shí)別:(1)使用系統(tǒng)主要功能(2)對(duì)系統(tǒng)運(yùn)行結(jié)果感興趣角色:標(biāo)準(zhǔn)病癥信號(hào)庫角色職責(zé):負(fù)責(zé)向系統(tǒng)提供病癥信號(hào)的正常值角色職責(zé)識(shí)別:(1)負(fù)責(zé)保持系統(tǒng)正常運(yùn)行(2)與系統(tǒng)交互角色:醫(yī)生角色職責(zé):對(duì)病人負(fù)責(zé),負(fù)責(zé)處理病情的變化角色職責(zé)識(shí)別:(1)需要系統(tǒng)支持以完成其日常工作(2)對(duì)系統(tǒng)運(yùn)行結(jié)果感興趣通過分析可以初步識(shí)別出系統(tǒng)的用例為:中央監(jiān)護(hù),病癥監(jiān)護(hù),提供標(biāo)準(zhǔn)病癥信號(hào),病歷管理,病情報(bào)告管理。頂層用例圖為:退出上頁首頁下頁末頁提供標(biāo)準(zhǔn)病癥信號(hào)病歷管理病人標(biāo)準(zhǔn)病癥信號(hào)庫

醫(yī)生值班護(hù)士病癥監(jiān)護(hù)病情報(bào)告管理中央監(jiān)護(hù)《使用》《使用》《使用》角色描述將用例細(xì)化,可以得到分解的用例:1、中央監(jiān)護(hù)

分解為:a分解信號(hào)將從病癥監(jiān)護(hù)器傳送來的組合病癥信號(hào)分解為系統(tǒng)可以處理的信號(hào)。

b比較信號(hào)將病人的病癥信號(hào)與標(biāo)準(zhǔn)信號(hào)比較。

c

報(bào)警如果病癥信號(hào)發(fā)生異常(即高于峰值),發(fā)出報(bào)警信號(hào)。

d

數(shù)據(jù)格式化將處理后的數(shù)據(jù)格式化以便寫入病歷庫。2、病癥監(jiān)護(hù)

分解為:e信號(hào)采集采集病人的病癥信號(hào)。

f模數(shù)轉(zhuǎn)化將采集來的模擬信號(hào)轉(zhuǎn)化為數(shù)字信號(hào)。

g信號(hào)數(shù)據(jù)組合將采集到的脈搏,血壓等信號(hào)數(shù)據(jù)組合為一組信號(hào)數(shù)據(jù)。

h采樣頻率改變根據(jù)病人的情況改變監(jiān)視器采樣頻率。3、提供標(biāo)準(zhǔn)病癥信號(hào)

i(此用例不分解)4、病歷管理

分解為:j生成病歷k查看病歷l更新病歷

m打印病歷

5、病情報(bào)告

分解為:n顯示病情報(bào)告在顯示器上顯示病情

o打印病情報(bào)告在打印機(jī)打印病情報(bào)告退出上頁首頁下頁末頁用例細(xì)化給出細(xì)化的用例圖退出上頁首頁下頁末頁病人模數(shù)轉(zhuǎn)化數(shù)據(jù)格式化值班護(hù)士報(bào)警信號(hào)采集比較信號(hào)標(biāo)準(zhǔn)病癥信號(hào)庫醫(yī)生信號(hào)數(shù)據(jù)組合采樣頻率改變提供標(biāo)準(zhǔn)病癥信號(hào)生成病歷查看病歷更新病歷打印病歷顯示病情報(bào)告打印病情報(bào)告分解信號(hào)《Extend》《Extend》《Extend》《use》《use》《use》《use》《use》《use》《use》《use》細(xì)化的用例圖(二)識(shí)別系統(tǒng)的類通過名詞識(shí)別法和系統(tǒng)實(shí)體識(shí)別法等方法可以識(shí)別出系統(tǒng)的十二個(gè)類,以下用類圖這種簡單明了的方法分別表示出類的名稱,屬性,操作。見下圖:醫(yī)生用戶名密碼查看病情報(bào)告()要求打印病情報(bào)告()查看病歷()要求打印病歷()病人姓名性別年齡病癥提供病癥信號(hào)()病癥監(jiān)視器采集頻率病癥信號(hào)格式化信號(hào)數(shù)據(jù)()采集信號(hào)()信號(hào)組合()報(bào)警信號(hào)聲音燈光文字報(bào)警()數(shù)模轉(zhuǎn)化()病歷庫類型大小容量生成病歷()更新病歷()查看病歷()打印病歷()病人病癥信號(hào)脈搏血壓體溫生成病癥信號(hào)()病歷格式病人基本情況打印時(shí)間生成病歷()查看病歷()打印病歷()標(biāo)準(zhǔn)病癥信號(hào)脈搏血壓體溫生成標(biāo)準(zhǔn)信號(hào)()用戶名密碼查看病情報(bào)告()打印病情報(bào)告()值班護(hù)士類型大小容量提供標(biāo)準(zhǔn)信號(hào)()標(biāo)準(zhǔn)病癥信號(hào)庫標(biāo)題格式生成病情報(bào)告()查看病情報(bào)告()打印病情報(bào)告()病情報(bào)告輸入輸出分解信號(hào)()比較信號(hào)()報(bào)警()數(shù)據(jù)格式化()中央監(jiān)護(hù)系統(tǒng)退出上頁首頁下頁末頁類的識(shí)別再進(jìn)一步在類圖中標(biāo)明類之間的關(guān)系:退出上頁首頁下頁末頁*******1111111111111111值班護(hù)士醫(yī)生病人病癥監(jiān)視器

病人病癥信號(hào)

病歷病歷庫病情報(bào)告報(bào)警信號(hào)中央監(jiān)護(hù)系統(tǒng)標(biāo)準(zhǔn)病癥信號(hào)標(biāo)準(zhǔn)病癥信號(hào)庫

111報(bào)警監(jiān)視系統(tǒng)類圖(三)用包圖和配置圖描述系統(tǒng)的體系結(jié)構(gòu)通過一定的分組機(jī)制得到以下包圖:用戶醫(yī)生值班護(hù)士病人病歷管理病歷用戶界面病情報(bào)告局部監(jiān)視報(bào)警信號(hào)病癥監(jiān)視器中央監(jiān)護(hù)系統(tǒng)病人病癥信號(hào)標(biāo)準(zhǔn)病癥信號(hào)數(shù)據(jù)庫病歷庫標(biāo)準(zhǔn)病癥信號(hào)庫用戶層用戶界面層應(yīng)用層數(shù)據(jù)庫層退出上頁首頁下頁末頁包圖接下來用配置圖進(jìn)一步描述系統(tǒng)的網(wǎng)絡(luò)結(jié)構(gòu)四、用UML的動(dòng)態(tài)建模機(jī)制定義并描述系統(tǒng)結(jié)構(gòu)元素的動(dòng)態(tài)特性及行為(一)下面給出兩個(gè)關(guān)系很緊密的狀態(tài)圖退出上頁首頁下頁末頁病癥監(jiān)視器的狀態(tài)圖信號(hào)采集模數(shù)轉(zhuǎn)化數(shù)據(jù)信號(hào)組合發(fā)送信號(hào)數(shù)據(jù)局部顯示開解信號(hào)開解信號(hào)數(shù)據(jù)比較數(shù)據(jù)信號(hào)異常比較數(shù)據(jù)信號(hào)正常格式化的數(shù)據(jù)報(bào)警更新病歷更新日期到發(fā)生病情異常發(fā)送報(bào)警標(biāo)志數(shù)據(jù)格式化數(shù)據(jù)格式化打印請(qǐng)求中央監(jiān)護(hù)系統(tǒng)的狀態(tài)圖打印病情報(bào)告數(shù)據(jù)庫服務(wù)器標(biāo)準(zhǔn)病癥信號(hào)庫病歷庫TCP/IPTCP/IP應(yīng)用服務(wù)器中央監(jiān)護(hù)系統(tǒng)局部監(jiān)視客戶端用戶界面狀態(tài)圖與配置圖(二)用時(shí)序圖和合作圖描述病人病情異常時(shí)系統(tǒng)的情況,其他情況從略。時(shí)序圖:病情報(bào)告監(jiān)視器采集信號(hào)發(fā)送信號(hào)信號(hào)異常返回打印更新中央監(jiān)視系統(tǒng)病歷報(bào)警信號(hào)退出上頁首頁下頁末頁合作圖:采集信號(hào)發(fā)送信號(hào)信號(hào)異常打印更新監(jiān)視器中央監(jiān)視系統(tǒng)報(bào)警信號(hào)病情報(bào)告病歷時(shí)序圖與合作圖(三)用活動(dòng)圖描述系統(tǒng)在監(jiān)護(hù)病人時(shí)的狀態(tài)變化退出上頁首頁信號(hào)正常更新時(shí)間到信號(hào)異常時(shí)間間隔未到采集信號(hào)分析比較信號(hào)判斷是否正常判斷更新時(shí)間報(bào)警更新病歷打印病情報(bào)告活動(dòng)圖

采用OMT方法對(duì)銀行網(wǎng)絡(luò)系統(tǒng)ATM(AutoTradeMachine)進(jìn)行分析和設(shè)計(jì)。一、問題的陳述銀行網(wǎng)絡(luò)系統(tǒng)包括人工出納和分行共享的自動(dòng)出納機(jī);各分理處用自己的計(jì)算機(jī)處理業(yè)務(wù)(保存賬戶、處理事務(wù)等);各分理處與出納站通過網(wǎng)絡(luò)通信;出納站錄入賬戶和事務(wù)數(shù)據(jù);自動(dòng)出納機(jī)與分行計(jì)算機(jī)通信;自動(dòng)出納機(jī)與用戶接口,接受現(xiàn)金卡;發(fā)放現(xiàn)金;打印收據(jù);分行計(jì)算機(jī)與撥款分理處結(jié)賬。要求系統(tǒng)正確處理同一賬戶的并發(fā)訪問;網(wǎng)絡(luò)費(fèi)用平均攤派給各分理處。圖1給出了銀行網(wǎng)絡(luò)系統(tǒng)的示意圖。銀行網(wǎng)絡(luò)系統(tǒng)ATM(AutoTradeMachine)自動(dòng)出納機(jī)自動(dòng)出納機(jī)自動(dòng)出納機(jī)出納站分理處計(jì)算機(jī)分理處計(jì)算機(jī)出納站賬戶賬戶圖1銀行網(wǎng)絡(luò)系統(tǒng)的示意圖用戶分行計(jì)算機(jī)退出下頁末頁案例三

二、類的識(shí)別方法

常用的識(shí)別類的方法有:名詞識(shí)別法、系統(tǒng)實(shí)體識(shí)別法、使用重用、從用例中識(shí)別類等。1、名詞識(shí)別法

識(shí)別問題域中的實(shí)體,實(shí)體的描述通常用名詞、名詞短語、名詞性代詞的形式出現(xiàn)。用指定語言對(duì)系統(tǒng)進(jìn)行描述;從系統(tǒng)描述中標(biāo)識(shí)名詞、名詞短語、名詞性代詞;識(shí)別確定(取、舍)類。2、系統(tǒng)實(shí)體識(shí)別法

不關(guān)心系統(tǒng)的運(yùn)作流程及實(shí)體之間的通信狀態(tài),而只考慮系統(tǒng)中的人員、組織、地點(diǎn)、表格、報(bào)告等實(shí)體,經(jīng)過分析將他們識(shí)別為類(或?qū)ο螅?。被?biāo)識(shí)的實(shí)體有:系統(tǒng)需要存儲(chǔ)、分析、處理的信息實(shí)體、系統(tǒng)內(nèi)部需要處理的設(shè)備、與系統(tǒng)交互的外部系統(tǒng)、系統(tǒng)相關(guān)人員、系統(tǒng)的組織實(shí)體。

在確定類時(shí),常使用兩類技術(shù):

⑴分解技術(shù)將整體類和組合類分解??煽刂茊蝹€(gè)類的規(guī)模。

⑵抽象技術(shù)根據(jù)一些類的相似性建立抽象類,并建立抽象類與這些類之間的繼承關(guān)系。抽象類實(shí)現(xiàn)了系統(tǒng)內(nèi)部的重用,很好地控制了復(fù)雜性,并為所有子類定義了一個(gè)公共的界面,使設(shè)計(jì)局部化,提高系統(tǒng)的可修改性和可維護(hù)性。退出上頁首頁下頁末頁

三、建立對(duì)象模型根據(jù)下述原則進(jìn)一步確定類:①去掉冗余類:如兩個(gè)類表述同一信息,應(yīng)保留最具有描述能力的類,如“用戶”與“顧客”是重復(fù)的描述,由于“顧客”更具有描述性,故保留它,刪除“用戶”。②去掉不相干的類:刪除與問題無關(guān)或關(guān)系不大的類,如“費(fèi)用”。③刪除模糊的類:有些初始類邊界定義不確切,或范圍太廣,應(yīng)該刪除。如“系統(tǒng)”、“安全措施”、“記錄保管”、“銀行網(wǎng)絡(luò)”。④刪除那些性質(zhì)獨(dú)立性不強(qiáng)的,而應(yīng)該是類“屬性”的候選類:如“帳戶數(shù)據(jù)”、“收據(jù)”、“現(xiàn)金”、“事務(wù)數(shù)據(jù)”。⑤所描述的操作不適宜作為對(duì)象類,并被其自身所操縱,所描述的只是實(shí)現(xiàn)過程中的暫時(shí)的對(duì)象,應(yīng)刪去。如“軟件”,“訪問”。

(一)確定類采用名詞識(shí)別法:檢查問題陳述中的所有名詞,得到初始類:軟件銀行網(wǎng)絡(luò)分行計(jì)算機(jī)系統(tǒng)分行出納站分理處分理處計(jì)算機(jī)自動(dòng)出納機(jī)出納員帳戶數(shù)據(jù)帳戶現(xiàn)金卡事務(wù)數(shù)據(jù)用戶顧客收據(jù)記錄保管事務(wù)費(fèi)用安全措施訪問現(xiàn)金

最終確定的類為:分行計(jì)算機(jī)分行出納站出納員分理處分理處計(jì)算機(jī)自動(dòng)出納機(jī)賬戶現(xiàn)金卡事務(wù)顧客退出上頁首頁下頁末頁

(二)為每個(gè)建模實(shí)體準(zhǔn)備數(shù)據(jù)詞典—描述模板對(duì)類進(jìn)行精確描述,如ATM系統(tǒng)中類的范圍、成員、方法的限制等。(三)確定關(guān)聯(lián)

兩個(gè)或多個(gè)類之間的相互依賴關(guān)系就是關(guān)聯(lián),實(shí)現(xiàn)關(guān)聯(lián)的方式有多種。關(guān)聯(lián)通常用描述性動(dòng)詞和動(dòng)詞詞組表示。

可以從問題陳述中抽去所有可能的關(guān)聯(lián)表述,在銀行網(wǎng)絡(luò)系統(tǒng)示例中所有可能的關(guān)聯(lián),大多數(shù)是直接抽取問題中的動(dòng)詞詞組而得到的。但在陳述中,有些動(dòng)詞詞組表述的關(guān)聯(lián)是不明顯的,或在問題陳述中是找不到的,還有一些關(guān)聯(lián)與客觀世界或人的假設(shè)有關(guān),必須同用戶一起確定這種關(guān)聯(lián)。即關(guān)聯(lián)通常由以下方面確定:1、銀行網(wǎng)絡(luò)系統(tǒng)問題陳述中抽取可能的關(guān)聯(lián)(動(dòng)詞詞組)2、隱含的動(dòng)詞詞組3、基于問題域的知識(shí)4、去掉不必要和不正確的關(guān)聯(lián)三、建立對(duì)象模型退出上頁首頁下頁末頁

1、銀行網(wǎng)絡(luò)系統(tǒng)問題陳述中的關(guān)聯(lián)

銀行網(wǎng)絡(luò)包括出納站和自動(dòng)出納機(jī)分行共享自動(dòng)出納機(jī)分理處提供分理處計(jì)算機(jī)分理處計(jì)算機(jī)保存賬戶分理處計(jì)算機(jī)處理賬戶支付事務(wù)分理處擁有出納站出納站與分行計(jì)算機(jī)通信出納員為賬戶錄入事務(wù)自動(dòng)出納機(jī)接受現(xiàn)金卡自動(dòng)出納機(jī)與用戶接口自動(dòng)出納機(jī)發(fā)放現(xiàn)金自動(dòng)出納機(jī)打印收據(jù)系統(tǒng)處理并發(fā)訪問分理處提供軟件費(fèi)用分?jǐn)偨o分理處3、基于問題域的知識(shí)

分理處雇傭的出納員現(xiàn)金卡訪問帳戶2、隱含的動(dòng)詞詞組分行由分理處組成分理處擁有賬戶分行擁有分行計(jì)算機(jī)系統(tǒng)提供記錄保管系統(tǒng)提供安全顧客有現(xiàn)金卡(三)確定關(guān)聯(lián)退出上頁首頁下頁末頁

4、去掉不必要和不正確的關(guān)聯(lián)

使用下列標(biāo)準(zhǔn)去掉不必要和不正確的關(guān)聯(lián):

(1)

若某個(gè)類已被刪除,那么與它有關(guān)的關(guān)聯(lián)也必須刪除或者用其他類來重新表述。在示例中,刪除了“銀行網(wǎng)絡(luò)”,相關(guān)的關(guān)聯(lián)也要?jiǎng)h除。(2)不相干的關(guān)聯(lián)或?qū)崿F(xiàn)階段的關(guān)聯(lián)。刪除所有問題域之外的關(guān)聯(lián)或涉及實(shí)現(xiàn)結(jié)構(gòu)中的關(guān)聯(lián),如“系統(tǒng)處理并發(fā)訪問”就是一種實(shí)現(xiàn)的概念。(3)動(dòng)作。關(guān)聯(lián)應(yīng)描述應(yīng)用域的結(jié)構(gòu)性質(zhì)而不是瞬時(shí)事件,因此應(yīng)刪除“自動(dòng)出納機(jī)接受現(xiàn)金卡”,“自動(dòng)出納機(jī)與用戶接口”等。(4)

派生關(guān)聯(lián),省略那些可以用其他關(guān)聯(lián)來定義的關(guān)聯(lián)。因?yàn)檫@種關(guān)聯(lián)是冗余的。

銀行網(wǎng)絡(luò)系統(tǒng)的初步對(duì)象圖如圖2所示,其中含有關(guān)聯(lián)。(三)確定關(guān)聯(lián)退出上頁首頁下頁末頁

圖2初始對(duì)象圖

建立對(duì)象模型圖2銀行網(wǎng)絡(luò)系統(tǒng)的初始對(duì)象類圖分行分理處帳戶顧客分行計(jì)算機(jī)自動(dòng)出納機(jī)遠(yuǎn)程事務(wù)分理處計(jì)算機(jī)出納員現(xiàn)金卡出納站出納事務(wù)通信通信所有所有所有雇傭涉及涉及訪問認(rèn)可有有擁有組成錄入錄入錄入退出上頁首頁下頁末頁

(四)確定類屬性

屬性通常用修飾性的名詞詞組來表示。屬性一般不可能在問題陳述中完全表述出來,應(yīng)分析應(yīng)用領(lǐng)域,并考慮最主要的屬性。只考慮與具體應(yīng)用直接相關(guān)的屬性,不要考慮那些超出問題范圍的屬性;找出重要屬性,避免那些只用于實(shí)現(xiàn)的屬性,要為各個(gè)屬性取有意義的名字。按下列標(biāo)準(zhǔn)刪除不必要的和不正確的屬性:(1)限定詞:若屬性值固定下來后,能減少關(guān)聯(lián)的重?cái)?shù),則可考慮把該屬性重新表述為一個(gè)限定詞。如銀行碼、站代碼及雇員號(hào)等是限定詞,不作為屬性。

(2)內(nèi)部值:若屬性描述了對(duì)象的非公開的內(nèi)部狀態(tài),則應(yīng)從對(duì)象模型中刪除該屬性。

(3)細(xì)化:在分析階段應(yīng)忽略那些不可能對(duì)大多數(shù)操作有影響的屬性。

圖3給出了銀行網(wǎng)絡(luò)系統(tǒng)對(duì)象模型的部分屬性。

退出上頁首頁下頁末頁

確定類屬性退出上頁首頁下頁末頁圖3銀行網(wǎng)絡(luò)系統(tǒng)的部分屬性自動(dòng)出納機(jī)分發(fā)現(xiàn)金遠(yuǎn)程事務(wù)種類,日期,時(shí)間,數(shù)量顧客名字地址現(xiàn)金卡密碼雇員號(hào)站代碼分理處名字賬戶號(hào)卡片碼銀行碼分理處計(jì)算機(jī)賬戶余額、類型貸款限定出納員名字出納事務(wù)出納站銀行碼分行分行計(jì)算機(jī)銀行碼站代碼

(五)使用繼承來細(xì)化類使用繼承來共享公共結(jié)構(gòu),以此來重新組織類:1、自底而上將現(xiàn)有類的共性一般化為父類。找出具有相同屬性、關(guān)聯(lián)、操作的類,來發(fā)現(xiàn)繼承,例如:“出納事務(wù)”和“遠(yuǎn)程事務(wù)”其屬性與主要操作是是類似的,則將它們的共性一般化,得到父類“事務(wù)”。2、自頂而下將現(xiàn)有類細(xì)化為更具體的子類。

若假設(shè)的具體化與現(xiàn)有的類發(fā)生沖突,則說明該類結(jié)構(gòu)不恰當(dāng),當(dāng)同一關(guān)聯(lián)名多次出現(xiàn),且意義也相同時(shí),應(yīng)盡量具體化為相聯(lián)系的類。例如“事務(wù)”從“出納站”和“自動(dòng)出納機(jī)”進(jìn)入,“錄入站”就是“出納站”和“自動(dòng)出納機(jī)”的一般化。

圖4給出了加入繼承后銀行網(wǎng)絡(luò)系統(tǒng)的對(duì)象模型。

退出上頁首頁下頁末頁圖4使用繼承來細(xì)化類退出上頁首頁下頁末頁圖4銀行網(wǎng)絡(luò)系統(tǒng)的對(duì)象模型銀行碼出納站錄入站遠(yuǎn)程事務(wù)賬戶余額、類型貸款限定顧客名字地址出納員名字現(xiàn)金卡密碼事務(wù)種類,日期,時(shí)間,數(shù)量分行計(jì)算機(jī)銀行碼站代碼銀行碼分行自動(dòng)出納機(jī)分發(fā)現(xiàn)金出納事務(wù)雇員號(hào)站代碼分理處名字賬戶號(hào)卡片碼銀行碼分理處計(jì)算機(jī)

(六)完善對(duì)象模型在軟件開發(fā)的全過程中,需要不斷地完善對(duì)象模型??梢詮囊韵聨追矫婵紤]:

1、檢查是否有缺少的對(duì)象

如果一個(gè)類中,存在毫無關(guān)系的屬性和操作,則應(yīng)該分解這個(gè)類。

一般化體系不清楚,可分離為兩個(gè)類。

存在名稱及目的相同的冗余關(guān)聯(lián),則通過一般化創(chuàng)建一個(gè)父類,并組織關(guān)聯(lián)。

2、查找多余的類若類中缺少屬性、操作和關(guān)聯(lián),刪除該類。

3、查找缺少的關(guān)聯(lián)

4、系統(tǒng)的改進(jìn)⑴現(xiàn)金卡有多個(gè)獨(dú)立的特性,分解為卡片權(quán)限和現(xiàn)金卡??ㄆ瑱?quán)限是銀行用來鑒別用戶訪問權(quán)限的卡片,表示一個(gè)或多個(gè)用戶帳戶的訪問權(quán)限;各個(gè)卡片權(quán)限對(duì)象中可能具有好幾個(gè)現(xiàn)金卡,每張都帶有安全碼、卡片碼,它們附在現(xiàn)金卡上,表示銀行的卡片權(quán)限?,F(xiàn)金卡是自動(dòng)出納機(jī)得到標(biāo)識(shí)碼的數(shù)據(jù)卡片,它也是銀行代碼和現(xiàn)金卡代碼的數(shù)據(jù)載體。⑵為了“事務(wù)”與“賬戶”之間的傳輸描述具有一般性,增加“更新”。因?yàn)橐话阍诿總€(gè)賬戶中,一個(gè)“事務(wù)”包括一個(gè)或多個(gè)“更新”,一個(gè)“更新”是對(duì)賬戶的一個(gè)動(dòng)作,它們是取款、存款、查詢之一。即事務(wù)由若干更新組成,更多涉及到賬戶。⑶由于“分理處”與“分理處計(jì)算機(jī)”之間的區(qū)別不影響分析,可將“分理處計(jì)算機(jī)”并入“分理處”。同理,將“分行計(jì)算機(jī)”并入“分行”。以上改進(jìn)如圖5所示。退出上頁首頁下頁末頁

圖5完善對(duì)象模型退出上頁首頁下頁末頁圖5修改后的對(duì)象模型錄入站遠(yuǎn)程事務(wù)現(xiàn)金卡銀行名、卡片碼安全號(hào)出納員事務(wù)出納員名字出納站分行銀行碼站代碼賬戶余額、類型貸款限定顧客名字地址自動(dòng)出納機(jī)分發(fā)現(xiàn)金事務(wù)種類、日期、時(shí)間、數(shù)量卡片權(quán)限密碼、限制更新數(shù)量、類型雇員號(hào)站代碼分理處名字賬戶號(hào)卡片碼錄入組成擁有擁有雇用訪問標(biāo)識(shí)發(fā)行被錄入開始涉及維持有有

四、建立動(dòng)態(tài)模型動(dòng)態(tài)分析從尋找外部可見的模擬和響應(yīng)事件開始,確定各對(duì)象的可能事件的順序,在分析階段不考慮算法的執(zhí)行,它是實(shí)現(xiàn)模型的一部分。通常動(dòng)態(tài)模型有:事件跟蹤表、狀態(tài)圖。建立動(dòng)態(tài)模型的步驟分為4步:

1、準(zhǔn)備典型的對(duì)話腳本腳本是事件序列,每當(dāng)系統(tǒng)中的對(duì)象與外部用戶發(fā)生互換信息時(shí),就產(chǎn)生一個(gè)事件,所互換的信息值就是該事件的參數(shù)。對(duì)于各事件,應(yīng)確定觸發(fā)事件的動(dòng)作對(duì)象和該事件的參數(shù)。包括“正常腳本”、“例外腳本”,自動(dòng)出納機(jī)與用戶交互的正常的腳本如下所示:

⑴自動(dòng)出納機(jī)請(qǐng)求用戶插入卡片;用戶插入現(xiàn)金卡。⑵自動(dòng)出納機(jī)接受卡片并讀出它的卡號(hào)。

⑶自動(dòng)出納機(jī)要求密碼,用戶鍵入密碼“4011”。

⑷自動(dòng)出納機(jī)與分行確認(rèn)卡號(hào)和密碼;分理處檢查它并通知承兌的自動(dòng)出納機(jī)。⑸自動(dòng)出納機(jī)要求選擇事務(wù)類型(取款、存款、轉(zhuǎn)戶及查詢),用戶選擇取款。⑹自動(dòng)出納機(jī)要求現(xiàn)金數(shù)量;用戶輸入¥100。⑺自動(dòng)出納機(jī)要求分行處理事務(wù);分行把要求轉(zhuǎn)給分理處,確認(rèn)事務(wù)成功。⑻自動(dòng)出納機(jī)分發(fā)現(xiàn)金并且要求用戶取現(xiàn)金;用戶取現(xiàn)金。⑼自動(dòng)出納機(jī)提示用戶是否想繼續(xù);用戶指出不繼續(xù)。⑽自動(dòng)出納機(jī)打印收據(jù),退出卡,并請(qǐng)求用戶取出它們;用戶拿走收據(jù)和卡。⑾自動(dòng)出納機(jī)請(qǐng)求用戶插入。

退出上頁首頁下頁末頁

自動(dòng)出納機(jī)與用戶交互的例外的腳本如下所示:

⑴自動(dòng)出納機(jī)請(qǐng)求用戶插入卡;用戶插入現(xiàn)金卡。⑵自動(dòng)出納機(jī)接受卡并讀它的卡號(hào)。⑶自動(dòng)出納機(jī)要求密碼;用戶鍵入:9999:。⑷自動(dòng)出納機(jī)與分行確認(rèn)卡號(hào)和密碼,在咨詢分理處后拒絕它。⑸自動(dòng)出納機(jī)指示密碼錯(cuò)并要求重新鍵入;用戶鍵入:4011:,分行確認(rèn)成功。⑹自動(dòng)出納機(jī)請(qǐng)求用戶選擇事務(wù)類型;用戶選擇取款。⑺自動(dòng)出納機(jī)請(qǐng)求鍵入現(xiàn)金數(shù)量;用戶改變選擇并鍵入“CANCEL”(取消)。⑻自動(dòng)出納機(jī)退出卡并且請(qǐng)求用戶拿走卡;用戶取出卡。⑼自動(dòng)出納機(jī)請(qǐng)求用戶插入卡。2、確定事件

根據(jù)腳本確定所有的外部事件,事件包括:發(fā)送者、接收者、外設(shè)信號(hào)、輸入、中斷、轉(zhuǎn)換和動(dòng)作等。使用腳本可以發(fā)現(xiàn)正常事件,但不要遺漏條件和異常事件。3、畫出事件跟蹤表把腳本表示成一個(gè)事件跟蹤表,即不同對(duì)象間的事件排序表,圖6給出了銀行網(wǎng)絡(luò)系統(tǒng)的事件跟蹤表。圖7給出了事件流圖,它給出類之間的所有事件。事件流圖是對(duì)象圖的一個(gè)動(dòng)態(tài)對(duì)照,對(duì)象圖中路徑反映了可能的信息流,而事件流圖反映了可能的控制流。

退出上頁首頁下頁末頁退出上頁首頁下頁末頁

圖6銀行網(wǎng)絡(luò)系統(tǒng)的事件追綜圖用戶自動(dòng)出納機(jī)分行分理處確認(rèn)賬號(hào)插入卡要求密碼輸入密碼要求類型輸入類型要求數(shù)量輸入數(shù)量分發(fā)現(xiàn)金要求取現(xiàn)金取現(xiàn)金提示繼續(xù)終止打印收椐退出卡要求取卡取卡顯示屏確認(rèn)銀行卡銀行賬戶正確處理銀行事務(wù)銀行事務(wù)成功賬戶正確處理事務(wù)事務(wù)成功

圖7系統(tǒng)的事件圖自動(dòng)出納

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(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ǔ)空間,僅對(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論