您好,欢迎访问三七文档
一、问题陈述有一个对外营业的会议中心,有各种不同规格的会议室,为用户提供以下服务:1、用户可以按照会议人数、会议时间预订会议室。可以只预订1次,也可预订定期召开的会议。2、开会前允许修改会议时间、人数,重新选择会议室,甚至取消预订的会议。3、确定会议预订后,会议中心负责会务管理:包括通过邮寄或电子邮件,通知开会人员有关会议信息,制作代表证等。4、系统根据会议室的使用情况(紧张与否),调整、更改会议室和会议时间,并调整修改预订会议的时间。会议管理系统退出下页末页案例三二、建立用例模型1、识别角色找出所有可能与系统发生交互行为的外部实体、对象、系统。考虑系统的主要功能的使用者,就会想到用户和系统管理者,但如果直接将用户定义为角色,系统的所有功能几乎都由用户使用。根据问题的描述,系统要求将会议和会议的召开分开来。从会议的角度看,允许用户定义、更改或删除一个会议。从会议召开的角度看,允许用户为某个会议定义召开时间、参加人数、更改相应的数据或删除已定义的会议召开。因此,将用户识别为“会议管理者”和“会议申请者”两个角色。本系统定义以下角色:会议管理者(MeetingAdministrator)会议申请者(MeetingInstanceRequester)邮局(PostOffice)会议人员管理(AttendeeManagement)系统维护者(SystemMaintainer)退出上页首页下页末页在识别角色的基础上,列出与角色相关的用例,有的用例与多个角色相关,经过分析,确定系统的用例(打)。⑴与会议管理者相关的用例:定义一个会议(DefineMeeting)更改一个会议(AlterMeeting)删除一个会议(RemoveMeeting)⑵与会议申请者相关的用例:申请会议召开(RequestMeetingInstance)更改申请(ChangRequest)取消申请(CancelRequest)定义参加人员(AddAttendee)归还会议室(ReleaseRoom)2、用例识别退出上页首页下页末页2、用例识别⑶与邮局相关的用例:申请会议召开(RequestMeetingInstance)更改申请(ModifyRequest)取消申请(CancelRequest)⑷与会议人员管理相关的用例:定义参加人员(AddAttendee)取消申请(CancelRequest)申请会议召开(RequestMeetingInstance)更改申请(ModifyRequest)⑸与系统维护者相关的用例:会议室维护(MeetingRoomMaintenance)设定预定时限(SetReservationTomeLimit)在确定角色和用例的基础上,画出用例图(图1)。退出上页首页下页末页3、会议管理系统的Usecase图图1会议管理系统的Usecase图归还会议室申请会议召开更改申请取消申请定义参加人员会议召开申请者邮局会议人员管理设置预定时限会议室维护定义会议更改会议删除会议系统维护者会议管理员退出上页首页下页末页用例1、定义会议(DefineMeeting)输入会议名称确定会议规模确定会议类型其中会议规模是指参会人数范围。用例2、更改会议(AlterMeeting)改变会议名称改变会议规模改变会议召开频度用例3、删除会议(RemoveMeeting)如果该会议没有召开申请从会议列表中删除如果该会议有召开申请取消与之相关的会议召开信息删除该会议使用:用例8删除参加人员(RemoveAttendee)用例6取消申请(CancelRequest)4、对用例的进一步描述用例4、申请会议召开(RequestMeetingInstance)确定召开时间(年、月、日)确定参加人员确定侯选会议室发会议通知使用:用例11发会议通知(InformofMeeting)用例13选择参加组(SelectGroupAttendee)扩展:①如果召开时间在申请时限之外用例12申请拒绝(RequestRejection)②如果还没定义参加人员用例7定义参加人员(AddAttendee)用例5:更改申请(ModifyRequest)更改召开时间更改参加人员更改取得会议室发会议更改通知使用:用例13选择参加组(SelectGroupAttendee)用例11发会议通知(InformofMeeting)扩展:①如果更改的时间不合法用例12申请拒绝(RequestRejection)②用例7定义参加人员(AddAttendee)退出上页首页下页末页用例6:取消会议召开(CancelRequest)、取消申请归还会议室发会议取消通知使用:用例8归还会议室(ReleaseRoom)用例14发会议取消通知(InformRejection)扩展:①如果会议已召开用例12申请拒绝(RequestRejection)用例7:定义参加人员(AddAttendee)输入参加人员的详细信息定义参加组用例9:会议维护(MeetingRoomMaintenance)加入一个会议室(用例15)标记一个会议室不可用(用例16)查询会议室预定情况(用例17)用例10:设置预定时限制(SetReservationTomeLimit)设置时间限用例11:发会议通知(InformofMeeting)从会议人员管理获得参加人员的投递地址填写通知(会议召开时间、会议室号码)发送通知用例12:申请拒绝(RequestRejection)作废当前的一切输入中字止用户当前的操作用例13:选择会议参加人员组(SelectGroupAttendee)浏览会议组成员选择参加组用例14:会议取消通知(InformofCancellation)从会议人员管理处获取参加人员地址填写通知发送通知用例8:归还会议室(ReleaseRoom)输入会议室号码输入使用时间删除参加人员归还会议室使用:用例9会议室维护(MeetingRoomMaintenance)用例18删除参加人员(RemoveAttendee)退出上页首页下页末页用例15:增加会议室(AddMeetingRoom)输入会议室号码输入会议室规模输入会议室可使用状态(可使用、不可使用)加入该会议室用例16:设置会议室不可使用(SetUnusableFlag)输入会议室号码通知该会议室的预定者标记该会议室的可所以状态为不可用用例17:查询会议室的使用情况(BrowseMeetingroomusage)输入会议室号码查询本用例返回会议室的使用状态(已使用、空闲)和会议室的可否使用情况。用例18:删除会议参加人员(RemoveAttendee)删除参加人员删除参加组图2描述了会议管理系统完整的用例模型。退出上页首页下页末页5、完整的会议管理系统的Usecase图图2完整的会议管理系统Usecase图退出上页首页下页末页除了用例模型外,其他模型都依赖于类模型,因此,类模型是OO方法的核心,类模型从对象的角度描述系统的组成,描述类(对象)及相互间的关系。为了建立类模型,首先要识别类,鉴于篇幅,这里就不再讨论类的识别过程。通过分析,识别以下类:1、Meeting类,标识一个会议(名称、类型、规模)。2、MeetingInstance类,Meeting类的子类,对会议时间、人数等进行描述。3、MeetingRoom类,描述会议室的有关信息。4、MeetingAdministration类,管理会议。5、Attendee类,描述参会人员(姓名、性别、地址、头衔等)。6、GroupAttende类,创建一个参加会议的组。7、Address类,描述邮寄地址E-mail地址。8、PostOffice类,负责发送邮寄通知。9、AttendeeManagement类,数据库管理。10、ReservationCriteria类,定义会议室预定准则。11、Information类,构造一条通知。三、建立类模型退出上页首页下页末页该类与会议召开不同,它标识了一个会议(图3),因此,其属性包括会议名称、类型、规模(参加会议的人数)。其操作则有:增加会议、取消会议。一个会议往往有多个子会议(子类)的召开,因此,必须描述Meeting类与其子类MeetingInstance类之间的关联,如图4所示。2、MeetingInstance类MeetingInstance类是Meeting类的子类,描述会议的具体情况,会议的开始(StartTime)、结束时间(EndTime),参会的人数(AttendeeNumber),其操作有:添加参加人员AddAttendee()、添加参加人员组AddGroupAttendee(),而AttachMeetingRoom()表示为该类分配一个会议室,而Cancel()则表示取消该会议的召开。MeetingMeetingInstanceStartTimeEndTimeAttendeeNumberAddAttendee()AttachMeetingRoom()AddGroupAttendee()Cancel()MeetingNameTypeSizeAddMeetingInstance()CancelMeetingInstance()图3Meeting类图图4MeetingInstance类图1、Meeting类退出上页首页下页末页MeetingRoomCapacityBuildingCodeDoorCodeStatusAssignMeetingInstance()SetInvalidate()Release()MeetingInstanceMeeting图5MeetingRoom类图该类描述了有关会议室的情况,因此MeetingRoom类的属性包括:会议室的规模Capacity,位置BuildingCode、DoorCode,使用状态Status(正在使用、已预定、空闲和不可用)等。该类的操作有:AssignMeetingInstance()将MeetingRoom分配给MeetingInstance对象,而SetInvalidate()则表示当会议室出现故障时,将其状态设置为不可用。Release()为归还会议室。当会议被预定后,为了便于查询某个会议室预定给了哪个会议,应建立类MeetingRoom与类MeetingInstanc之间的双向关联,这里定义为1:1。3、MeetingRoom类退出上页首页下页末页AttendeeNameSexPostaddressEmailAddressTitleMeetingInstance11..*图6Attendee类图Attendee类描述参加会议人员的有关信息,如:姓名、性别、地址、E-mail地址、头衔等。MeetingInstance类与Attendee类之间有一对多的关联“1..*”。5、GroupAttendee类MeetingInstanceGroupAttendeeMemberNumberGroupNameAddAttendee()DeleteAttendee()10..*Attendee11..*图7GroupAttendee类图该类可创建一个参加会议的组,便于按照小组选择参加会议的人员。MeetingInstance类与GroupAttendee类之间有一对多的关联“0..*”。4、Attendee类退出上页首页下页末页系统中有两种地址:电子邮件地址(EmailAddress)和邮寄地址(PostAddress),而且,每个参加会议的人,可以有一个或者多个邮寄地址,有0个或多个E-mail地址。有关地址的属性,在再内这里不再讨论。负责发送邮寄通知。PostOffice类分别与PostAddress、EmailAddress和Information之间有一对多的关联。7、PostOffice类1..*InformationEmailAddress1..*PostAddress1..*(fromUseCaseView)DelieverInformation()图9PostOffice类图PostOffi
本文标题:会议管理系统
链接地址:https://www.777doc.com/doc-906381 .html