牙科诊所管理系统王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。王大夫需要一个软件系统来管理预约。当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关系所有病人的每天和每周工作安排。1、建立牙科诊所管理系统的对象模型。2、建立牙科诊所管理系统的用例模型。3、用数据流图建立所述牙科诊所管理系统的功能模型。4、画出牙科诊所管理系统的状态图。1、建立牙科诊所管理系统的对象模型(1)词法分析,找出(名词)作为对象的候选者;王大夫在小镇上开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。王大夫需要一个软件系统来管理预约。当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供记录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果必要的话会安排病人下一次再来。系统能够按病人姓名和按日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关系所有病人的每天和每周工作安排。(2)找出问题域中对象,对候选对象进行严格筛选,从中删除不正确的或不必要的,只保留确实应该记录其信息或需要提供服务的那些对象。王大夫(牙医的实例)小镇(牙科诊所的地址属性)牙科诊所牙科助手牙科保健员接待员(外部角色,不是问题域内的对象)软件系统(与“系统”同义,指将来开发的软件产品)预约病人预约登记表就诊时间(与“预约时间”,“约定时间”同义,都是“预约登记表”的属性)预约时间约定时间系统名字(与“姓名”同义,是病人记录的属性)记录的病人数据(即“病人记录”)病历号(病人记录的属性)姓名日期(“预约登记表”的属性)预约信息(与“病人清单”包含的信息基本相同)病人清单病人记录电话号码(病人记录的属性)每天工作安排每周工作安排(3)确定问题域中对象彼此之间的关系。牙科诊所病人清单预约登记表病人工作安排病人记录预约每天工作安排每周工作安排11..*11..*11..*11..*1*111..*12、建立牙科诊所管理系统的用例模型。职员牙医牙科诊所管理系统完成预约查询预约更新预约取消预约打印工作安排访问病人记录访问预约登记表usesuses1*1*1*1*1*1*usesusesusesuses3、用数据流图建立所述牙科诊所管理系统的功能模型。1查询病人数据病人职员2查询预约日期4取消预约3完成预约5更新预约6查询预约7打印工作安排牙医每天和每周工作安排D1病人记录D2预约登记表姓名日期病人数据病人数据预约信息预约信息预约信息预约信息预约信息预约信息职员预约信息有效日期姓名/日期姓名/日期姓名4、画出牙科诊所管理系统的状态图。牙科诊所管理系统的主要功能是实现病人预约,状态图如下,图中把除了完成病人预约之外的事务笼统地称为日常事务。处理日常事务查找病人记录及可能的预约进行预约输入非法名字、按姓名或日期查询,打印工作安排,取消预约开始退出输入有效名字确认预约返回确认信息