案例 会议管理糸统 问题陈述 有一个对外营业的会议中心,有各种不同规格的会议室,为用户提供以下服务: 1、用户可以按照会议人数、会议时间预订会议室。可以只预订1次,也可预订定期 召开的会议。 开会前允许修改会议时间、人数,重新选择会议室,甚至取消预订的会议 3、确定会议预订后,会议中心负责会务管理:包括通过邮寄或电子邮件,通知开会 人员有关会议信息,制作代表证等。 4、系统根据会议室的使用情况(紧张与否),调整、更改会议室和会议时间,并调 整修改预订会议的时间。 下页末页退出
一、问题陈述 有一个对外营业的会议中心,有各种不同规格的会议室,为用户提供以下服务: 1、用户可以按照会议人数、会议时间预订会议室。可以只预订1次,也可预订定期 召开的会议。 2、开会前允许修改会议时间、人数,重新选择会议室,甚至取消预订的会议。 3、确定会议预订后,会议中心负责会务管理:包括通过邮寄或电子邮件,通知开会 人员有关会议信息,制作代表证等。 4、系统根据会议室的使用情况(紧张与否),调整、更改会议室和会议时间,并调 整修改预订会议的时间。 下页 末页 退出 案 例 三
、建立用例模型 、识别角色 找出所有可能与系统发生交互行为的外部实体、对象、系统 考虑系统的主要功能的使用者,就会想到用户和系统管理者,但如果直接将用户定 义为角色,系统的所有功能几乎都由用户使用。根据问题的描述,系统要求将会议和会 议的召开分开来 从会议的角度看,允许用户定义、更改或删除一个会议。 从会议召开的角度看,允许用户为某个会议定义召开时间、参加人数、更改相应的 数据或删除已定义的会议召开。 因此,将用户识别为“会议管理者”和“会议申请者”两个角色。 本系统定义以下角色: e会议管理者( Meeting Administrator) e会议申请者( Meeting Instance Requester) e邮局( Post office) 会议人员管理( Attendee Management 系统维护者( System Maintainer 首页上页下页末页退出
1、识别角色 找出所有可能与系统发生交互行为的外部实体、对象、系统。 考虑系统的主要功能的使用者,就会想到用户和系统管理者,但如果直接将用户定 义为角色,系统的所有功能几乎都由用户使用。根据问题的描述,系统要求将会议和会 议的召开分开来。 从会议的角度看,允许用户定义、更改或删除一个会议。 从会议召开的角度看,允许用户为某个会议定义召开时间、参加人数、更改相应的 数据或删除已定义的会议召开。 因此,将用户识别为“会议管理者”和“会议申请者”两个角色。 本系统定义以下角色: 会议管理者(Meeting Administrator) 会议申请者(Meeting Instance Requester) 邮局(Post Office ) 会议人员管理(Attendee Management ) 系统维护者(System Maintainer ) 首页 上页 下页 末页 退出
2、用例识别 在识别角色的基础上,列出与角色相关的用例,有的用例与多个角色相关,经过分 析,确定系统的用例(打√) (1)与会议管理者相关的用例: 定义一个会议( Define Meeting) 更改一个会议( Alter Meeting)y 删除一个会议( Remove Meeting) (2)与会议申请者相关的用例 申请会议召开( Request Meeting Instance) 更改申请( Chang request)y 取消申请( Cancel Request) 定义参加人员( Add Attendee)y 归还会议室( Release room)y 首页上页下页末页退出
在识别角色的基础上,列出与角色相关的用例,有的用例与多个角色相关,经过分 析,确定系统的用例(打 )。 ⑴ 与会议管理者相关的用例: 定义一个会议(Define Meeting ) 更改一个会议(Alter Meeting ) 删除一个会议(Remove Meeting ) ⑵ 与会议申请者相关的用例: 申请会议召开(Request Meeting Instance ) 更改申请(Chang Request ) 取消申请(Cancel Request ) 定义参加人员(Add Attendee ) 归还会议室(Release Room ) 首页 上页 下页 末页 退出
2、用例识别 (3)与邮局相关的用例: 申请会议召开( Request Meeting Instance) 更改申请( Modify request) 取消申请( Cancel Request) (4)与会议人员管理相关的用例 定义参加人员( Add Attendee) 取消申请( Cancel Request) 申请会议召开( Request meeting Instance)y 更改申请( Modify request) (5)与系统维护者相关的用例: 会议室维护( Meeting Room Maintenance) 设定预定时限( Set reservation Tome Limit) 在确定角色和用例的基础上,画出用例图(图1)。 首页上页下页末页退出
⑶ 与邮局相关的用例: 申请会议召开( Request Meeting Instance ) 更改申请( Modify Request ) 取消申请( Cancel Request ) ⑷ 与会议人员管理相关的用例: 定义参加人员(Add Attendee ) 取消申请(Cancel Request ) 申请会议召开(Request Meeting Instance ) 更改申请( Modify Request ) ⑸ 与系统维护者相关的用例: 会议室维护( Meeting Room Maintenance ) 设定预定时限(Set Reservation Tome Limit ) 在确定角色和用例的基础上,画出用例图(图1)。 首页 上页 下页 末页 退出
3、会议管理系统的 Use case图 归还会议室 设置预 ♀人 定时限 申请会 会议室 议召开 维护 系统维护者 会议召开申 定义会议 更改申请 请者 更改会议 取消申请 会议管理员 定义参 删除会议 会议 加人员 人员 管理 图1会议管理系统的 I Use case图 首页上页下页末页退出
3、会议管理系统的Use case图 图1 会议管理系统的Use case图 归还会议室 申请会 议召开 更改申请 取消申请 定义参 加人员 会议召开申 请者 邮局 会议 人员 管理 设置预 定时限 会议室 维护 定义会议 更改会议 删除会议 系统维护者 会议管理员 首页 上页 下页 末页 退出
4、对用例的进一步描述 用例4、申请会议召开( Request meeting Instance) 确定召开时间(年、月、日) 确定参加人员 用例1、定义会议( Define Meeting) 确定侯选会议室 输入会议名称 发会议通知 确定会议规模 使用 确定会议类型 用例11发会议通知( Inform of Meeting) 其中会议规模是指参会人数范围 用例13选择参加组( Select Group Attendee) 扩展 用例2、更改会议( Alter Meeting) ①如果召开时间在申请时限之外 改变会议名称 用例12申请拒绝( Request Re jection) 改变会议规模 ②如果还没定义参加人员 改变会议召开频度 用例7定义参加人员( Add Attendee) 用例5:更改申请( Modify Request) 用例3、删除会议( Remove Meeting) 更改召开时间 如果该会议没有召开申请 更改参加人员 从会议列表中删除 更改取得会议室 如果该会议有召开申请 发会议更改通知 取消与之相关的会议召开信息 使用 删除该会议 用例13选择参加组( Select Group Attendee) 用例11发会议通知( Inform of Meeting 用例8删除参加人员( Remove Attendee) 扩展 ①如果更改的时间不合法 用例6取消申请( Cancel Request) 用例12申请拒绝( Request Re jection) ②用例7定义参加人员( Add Attendee) 首页上页下页末页退出
用例1、定义会议(Define Meeting ) 输入会议名称 确定会议规模 确定会议类型 其中会议规模是指参会人数范围。 用例2、更改会议( Alter Meeting ) 改变会议名称 改变会议规模 改变会议召开频度 用例3、删除会议( Remove Meeting ) 如果该会议没有召开申请 从会议列表中删除 如果该会议有召开申请 取消与之相关的会议召开信息 删除该会议 使用: 用例8 删除参加人员( Remove Attendee ) 用例6 取消申请(Cancel Request) 用例4、申请会议召开(Request Meeting Instance) 确定召开时间(年、月、日) 确定参加人员 确定侯选会议室 发会议通知 使用: 用例11 发会议通知(Inform of Meeting) 用例13 选择参加组(Select Group Attendee) 扩展: ① 如果召开时间在申请时限之外 用例12 申请拒绝(Request Rejection ) ② 如果还没定义参加人员 用例7 定义参加人员(Add Attendee ) 用例5:更改申请( Modify Request ) 更改召开时间 更改参加人员 更改取得会议室 发会议更改通知 使用: 用例13 选择参加组(Select Group Attendee) 用例11 发会议通知(Inform of Meeting) 扩展: ① 如果更改的时间不合法 用例12 申请拒绝(Request Rejection) ② 用例7 定义参加人员(Add Attendee ) 首页 上页 下页 末页 退出
用例6:取消会议召开( Cancel Request) 用例9:会议维护( Meeting room maintenance 取消申请 加入一个会议室(用例15) 归还会议室 标记一个会议室不可用(用例16) 发会议取消通知 查询会议室预定情况(用例17) 使用: 用例10:设置预定时限制( Set reservation Tome limit) 用例8归还会议室( Release roon) 设置时间限 用例14发会议取消通知( Inform Rejection) 扩展: 用例11:发会议通知( Inform of Meeting) ①如果会议已召开 从会议人员管理获得参加人员的投递地址 用例12申请拒绝( Request rejection) 填写通知(会议召开时间、会议室号码) 发送通知 用例7:定义参加人员( Add Attendee 输入参加人员的详细信息 用例12:申请拒绝( Request Rejection) 定义参加组 作废当前的一切输入 中字止用户当前的操作 用例8:归还会议室( Release room) 用例13:选择会议参加人员组( Select Group Attendee) 输入会议室号码 浏览会议组成员 输入使用时间 选择参加组 删除参加人员 用例14:会议取消通知( Inform of Cancellation) 归还会议室 从会议人员管理处获取参加人员地址 使用: 填写通知 用例9会议室维护( Meeting room maintenance) 发送通知 用例18删除参加人员( Remove Attendee) 首页上页下页末页退出
用例6:取消会议召开(Cancel Request)、 取消申请 归还会议室 发会议取消通知 使用: 用例8 归还会议室(Release Room) 用例14 发会议取消通知(Inform Rejection) 扩展: ① 如果会议已召开 用例12 申请拒绝(Request Rejection) 用例7:定义参加人员(Add Attendee ) 输入参加人员的详细信息 定义参加组 用例9:会议维护(Meeting Room Maintenance) 加入一个会议室(用例15) 标记一个会议室不可用(用例16) 查询会议室预定情况(用例17) 用例10:设置预定时限制(Set Reservation Tome Limit) 设置时间限 用例11:发会议通知(Inform of Meeting) 从会议人员管理获得参加人员的投递地址 填写通知(会议召开时间、会议室号码) 发送通知 用例12:申请拒绝(Request Rejection) 作废当前的一切输入 中字止用户当前的操作 用例13:选择会议参加人员组(Select Group Attendee) 浏览会议组成员 选择参加组 用例14:会议取消通知(Inform of Cancellation) 从会议人员管理处获取参加人员地址 填写通知 发送通知 用例8:归还会议室(Release Room) 输入会议室号码 输入使用时间 删除参加人员 归还会议室 使用: 用例9会议室维护(Meeting Room Maintenance) 用例18 删除参加人员(Remove Attendee) 首页 上页 下页 末页 退出
用例15:增加会议室( Add Meeting room) 输入会议室号码 输入会议室规模 输入会议室可使用状态(可使用、不可使用) 加入该会议室 用例16:设置会议室不可使用( Set Unusable flag) 输入会议室号码 通知该会议室的预定者 标记该会议室的可所以状态为不可用 用例17:查询会议室的使用情况 Browse Meetingroom usage) 输入会议室号码 查询 本用例返回会议室的使用状态(已使用、空闲)和会议室的可否使用情况。 用例18:删除会议参加人员( Remove Attendee) 删除参加人员 删除参加组 图2描述了会议管理系统完整的用例模型。 首页上页下页末页退出
用例15:增加会议室(Add Meeting Room) 输入会议室号码 输入会议室规模 输入会议室可使用状态(可使用、不可使用) 加入该会议室 用例16:设置会议室不可使用(Set Unusable Flag) 输入会议室号码 通知该会议室的预定者 标记该会议室的可所以状态为不可用 用例17:查询会议室的使用情况(Browse Meetingroom usage) 输入会议室号码 查询 本用例返回会议室的使用状态(已使用、空闲)和会议室的可否使用情况。 用例18:删除会议参加人员(Remove Attendee) 删除参加人员 删除参加组 图2描述了会议管理系统完整的用例模型。 首页 上页 下页 末页 退出
5、完整的会议管理系统的 Use case图 15 Add Meeting Room uses》 9 Define Meeting K uses》 Meeting Room Maintainence (2 uses Meeting Alter Meeting Administrator 16 uses 3 Set Unusable Flag 17 System Maintainer Remove Meeting-uses》 10 Browse 18 Set reservation Time Limit Release Room Remove Attendee 13 Attendee M Meeting Instance 仝 t uses》 uses》 Select GroupAttendee Requester 14 Cancel Request inform of Cancel t uses》 t uses》 11 Request Meeting Instance 《 extends》 Inform Post office 12 Add Attendee Attendee Management Request Rejection extends》 uses 《 extends》|《uses》 Change Repuest 图2完整的会议管理系统 Use case图 首页上页下页末页退出
图2 完整的会议管理系统Use case图 首页 上页 下页 末页 退出
建立类模型 除了用例模型外,其他模型都依赖于类模型,因此,类模型是OO方法的核心,类模型 从对象的角度描述系统的组成,描述类(对象)及相互间的关系。为了建立类模型,首先要 识别类,鉴于篇幅,这里就不再讨论类的识别过程。通过分析,识别以下类 1、 Meeting类,标识一个会议(名称、类型、规模)。 、 Meetinglnstance类, Meeting类的子类,对会议时间、人数等进行描述 3、 Meeting Room类,描述会议室的有关信息。 4、 Meeting Administration类,管理会议。 5、 Attendee类,描述参会人员(姓名、性别、地址、头衔等)。 6、 Group Attende类,创建一个参加会议的组 7、 Address类,描述邮寄地址E-mail地址。 8、 Postoffice类,负责发送邮寄通知。 9、 Attendee Management类,数据库管理。 10、 Reservation Criteria类,定义会议室预定准则 11、 Information类,构造一条通知。 首页上页下页末页退出
除了用例模型外,其他模型都依赖于类模型,因此,类模型是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类,构造一条通知。 首页 上页 下页 末页 退出