[
小学
小学生如何制作手抄报课件柳垭小学关于三违自查自纠报告小学英语获奖优质说课课件小学足球课教案全集小学语文新课程标准测试题
]爱心宠物诊所分析设计与实现
“爱心宠物诊所”系统分析、设计和实现
第一部分、概述
1、 项目名称及背景
, 项目名称
“爱心宠物诊所”系统
, 开发背景
“爱心”宠物诊所的职员在工作中需要查阅和管理如下信息:诊所的兽医、客户以
及客户的宠物。诊所的兽医具有不同的专业特长,例如:有的擅长牙科,有的擅长
内科等。诊所的职员使用浏览器访问该系统。客户的每个宠物都具有唯一的名称。
第二部分、任务说明
1、 功能概述
“爱心”宠物诊所的职员需要使用系统提供的如下功能:
, 浏览诊所的兽医以及他们的专业特长;
, 浏览宠物的主人(即诊所的客户)的相关信息;
, 更新宠物的主人的相关信息;
, 向系统中增加一个新客户;
, 浏览宠物的相关信息;
, 更新宠物的相关信息;
, 向系统中增加一个新宠物;
, 浏览宠物的访问历史记录;
, 向宠物的访问历史记录添加一次访问;
此外,诊所的职员在使用系统提供的上述功能之前需要进行登录。当职员不需要使用系
统的上述功能时,也可退出系统。
2、 用户环境
服务器硬件
要求
对教师党员的评价套管和固井爆破片与爆破装置仓库管理基本要求三甲医院都需要复审吗
:
处理器:Pentium 3以上;内存>=512MB;硬盘>=40G;
服务器端软件要求:
操作系统:Windows 2000或Windows XP;数据库服务器:Microsoft SQL SERVER 2000;
Web容器:Tomcat 5.x;
客户端软件要求:
操作系统:Windows 2000或Windows XP;浏览器:Internet Explorer 6.0;
开发工具:JBuilder 2005企业版;
第三部分、需求分析
1、实现功能
, 系统用例图
这里将系统的每个最基本的有价值的业务功能,如登录、浏览宠物等,称为用例。
图一:“爱心宠物诊所”系统的用例图
用例图中,使用一个椭圆
表
关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf
示用例,里面的文字描述了用例的名称。诊所职员可以使用或访问系统的全部功能,在图一中使用一个“火柴人”表示诊所职员,称为用例的参与者,系统只有诊所职员一个参与者。此外,图一中从参与者到用例的单向箭头表示二者之间的关联关系,例如诊所职员使用或访问这些功能。
, 功能
清单
安全隐患排查清单下载最新工程量清单计量规则下载程序清单下载家私清单下载送货清单下载
功能编号 功能名称 文中标
题
快递公司问题件快递公司问题件货款处理关于圆的周长面积重点题型关于解方程组的题及答案关于南海问题
备注
编号
登录 01
退出 02
浏览兽医及其专业特长 04
浏览宠物主人的信息 宠物的主人即诊所的客户,也称04
为所有人
更新宠物主人的信息 05
添加新客户 06
浏览宠物信息 07
更新宠物信息 08
添加新宠物 09
浏览宠物的访问历史记录 010
添加一次宠物的访问 011
2、用例说明
, 登录
诊所职员打开浏览器,输入应用系统的URL,浏览器中显示登录界面。职员输入用户名称和口令后,提交页面。系统验证职员的登录:若用户名称或口令不正确,系统显示“登录失败,无效的用户名或口令。”,职员可再次登录;若用户名称和口令正确,职员登录成功,系统显示一个页面可供职员访问用例“浏览兽医及其专业特长”。
, 退出
诊所职员登录系统之后,点击“退出”链接,系统销毁与职员的会话有关的资源,再呈现“登录”界面给用户,可供其再次登录系统,并给用户提示消息“退出成功”。
, 浏览兽医及其专业特长
诊所职员浏览查询兽医及其专业特长的界面,输入兽医名称或专业,点击“查询”按钮,系统查找出符合条件的兽医及其专业特长信息,并呈现一个查询结果页面给职员以便其浏览相关的信息,职员还可以点击此页面的“重新查询”按钮再次输入查询条件。
此外职员输入的查询条件为组合查询条件,例如如果职员只输入了查询的兽医名称,系统将查询所有专业特长中具有指定的名称的兽医。
, 浏览宠物主人的信息
诊所职员浏览查询宠物名称及其所有人名称的界面,输入所有人名称,点击“查询”按钮,系统查找出符合条件的所有人(即宠物主人),并呈现一个查询结果页面给职员以便其浏览相关的信息,职员不仅可以浏览宠物主人,还可以浏览属于该主人的宠物。职员点击一个链接的宠物主人,可以浏览宠物主人的详细信息:名称、地址、城市和电话号码等。
, 更新宠物主人的信息
职员浏览宠物主人的信息时,当其点击一个链接的宠物主人,可以浏览宠物主人的详细信息:名称、地址、城市和电话号码。同时可以修改这些信息,点击“修改”按钮,系统将更新数据库中的相关信息,再次呈现修改页面,并给用户提示消息“所有人信息修改成功”。
, 添加新客户
职员输入新客户的名称、地址、城市和电话号码后,点击“增加”按钮,系统成
功添加了新客户信息之后,将呈现浏览宠物信息的页面,并给用户提示消息“所
有人信息插入成功”。
, 浏览宠物信息
在浏览之前需要输入查询条件查询宠物,此用例与“浏览宠物主人的信息”用例
共享一个查询界面。
诊所职员浏览查询宠物名称及其所有人名称的界面,输入宠物名称,点击“查询”
按钮,系统查找出符合条件的宠物,并呈现一个查询结果页面给职员以便其浏览
相关的信息,职员不仅可以浏览宠物,还可以浏览该宠物的主人信息。职员点击
一个链接的宠物,可以浏览宠物的详细信息:名称、类型、出生日期和所有人名
称等。
, 更新宠物信息
职员浏览宠物信息时,当其点击一个链接的宠物,可以浏览宠物的详细信息:名
称、类型、出生日期和所有人名称等。同时可以修改这些信息,点击“修改信息”
按钮,系统将呈现页面以便编辑宠物的信息,职员可以修改宠物的名称或类型或
出生日期(不能修改宠物所属的主人),点击“修改”按钮,系统将更新数据库中
的相关信息,再次呈现修改页面,并给用户提示消息“宠物信息修改成功”。
, 添加新宠物
职员从下拉列表中选择宠物的主人和类型,输入宠物的名称,点击弹出窗口输入
出生日期,再点击“增加”按钮,系统成功添加了新宠物信息之后,将呈现浏览
宠物信息的页面,并给用户提示消息“宠物信息插入成功”。
, 浏览宠物的访问历史记录
职员在浏览宠物的详细信息,例如名称、类型等时,点击“阅览病历”按钮,可
以浏览宠物的访问历史记录,包括每次的诊断时间以及相关的备注。
, 添加一次宠物的访问
职员在浏览宠物的详细信息,例如名称、类型等时,点击“增加新病历”按钮,
可以为宠物添加一次访问历史记录。职员在添加一次宠物的访问界面中输入描述
信息,点击弹出窗口输入访问日期,再点击“增加”按钮,系统成功添加了新宠
物的访问信息之后,将呈现浏览宠物信息的页面,并给用户提示消息“宠物病历
信息插入成功”。
3、用例关系
“添加一次宠物的访问”用例扩展了“浏览宠物信息”用例,这表明当职员在访问“浏
览宠物信息”用例时,可能会为此宠物添加一次访问,但这是有条件执行的,除非此宠
物确实到诊所就医。所有用例之间的关系如下表所示:
用例名称 用例关用例名称 备注
系
添加一次宠物的访问 扩展 浏览宠物信息
浏览宠物的访问历史记录 扩展 浏览宠物信息
更新宠物信息 扩展 浏览宠物信息
更新宠物主人的信息 扩展 浏览宠物主人的
信息
第四部分、系统总体结构
系统设计时基于MVC设计模型,采用三层架构,如图二所示。
图二:“爱心宠物诊所”系统的体系结构
第五部分、系统设计
5.1数据库设计
1、 逻辑设计
系统的E-R图如下:
2、 表设计
表名 功能说明
存储兽医信息 vets
存储兽医的专业特长信息 specialties
兽医与专业特长的关联表 vet_specialties
宠物的类型表 types
宠物的主人 owners
存储宠物信息 pets
存储宠物的访问信息 visits
存储职员信息 employee
2.1 vets
表名 vets
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 id INT NOT NULL IDENTITY(1,1)
PRIMARY KEY name VARCHAR(30) 补充说明
2.2 specialties
表名 specialties
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 id INT NOT NULL IDENTITY(1,1)
PRIMARY KEY name VARCHAR(80) 补充说明
2.3 vet_specialties
表名 vet_specialties
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 vet_id INT NOT NULL foreign key
REFERENCES
vets(id) specialty_id INT NOT NULL foreign key
REFERENCES
specialties(id) 补充说明
.4 types 2
表名 types
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 id INT NOT NULL IDENTITY(1,1)
PRIMARY KEY name VARCHAR(80) 补充说明
2.5 owners
表名 owners
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 id INT NOT NULL IDENTITY(1,1)
PRIMARY KEY name VARCHAR(30) address VARCHAR(255) city VARCHAR(80) telephone VARCHAR(20) 补充说明
2.6 pets
表名 pets
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 id INT NOT NULL IDENTITY(1,1)
PRIMARY KEY
name VARCHAR(30) birth_date DATETIME type_id INT NOT NULL foreign key
REFERENCES
types(id) owner_id INT NOT NULL foreign key
REFERENCES
owners(id) 补充说明
2.7 visits
表名 visits
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 id INT NOT NULL IDENTITY(1,1)
PRIMARY KEY pet_id INT NOT NULL foreign key
REFERENCES
pets(id) visit_date DATETIME description VARCHAR(255) 补充说明
2.8 employee
表名 employee
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 name VARCHAR(20) NOT NULL PRIMARY KEY password VARCHAR(20) NOT NULL 补充说明
5.2用例的设计
使用面向对象设计时,关键在于描述那些对象如何交互完成用例的功能,通常将对象
发送消息的相互调用过程画成时序图。下面将逐一解释用例的时序图。
, 登录
A、时序图
B、描述
编号 类名或方法名 功能描述
jsp页面,显示登录界面 1 login.jsp
Servlet,处理职员的登录请求 2 EmpServlet
其verify方法负责访问employee表,验证用户名称和口令 3 EmpDAO
jsp页面, 若职员登录成功,显示一个页面可供职员访问用例 4 vetsearch.jsp
“浏览兽医及其专业特长”
, 退出
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的退出请求 1 EmpServlet
session对象,其invalidate方法负责使客户的会话无效 2 HttpSession
jsp页面, 职员退出后,显示登录界面 3 login.jsp
, 浏览兽医及其专业特长
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的查询兽医的请求 1 VetServlet
其search方法负责访问vets, specialties, vet_specialties表完 2 VetDAO
成查询兽医及其专业特长
jsp页面, 可供输入查询兽医名称或专业的条件 3 vetsearch.jsp
jsp页面, 显示查询出的兽医及其专业特长 4 vetsearch_name.jsp
, 浏览宠物主人的信息
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的查询宠物主人的请求,其doPost方法调用 1 PetServlet
其自己的search方法
其searchPet方法负责访问owners , pets表完成查询宠物主 2 PetDAO
人及其宠物
jsp页面, 可供输入查询宠物主人的条件 3 petsearch.jsp
jsp页面, 显示查询出的宠物主人及其宠物的信息 4 petsearch_name.jsp
, 更新宠物主人的信息
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的查询和更新宠物主人的请求,其doPost方 1 PetOwnerServlet
法调用其自己的search方法
其viewPetOwner方法负责访问owners 表完成查询出指定 2 PetOwnerDAO
的宠物主人的信息;
其updatePetOwner方法负责访问owners 表完成更新指定
的宠物主人的信息;
jsp页面, 显示查询出的宠物主人的信息,可供修改,提交后 3 ownerupdate.jsp
保存修改,并再次显示更新后的宠物主人的信息。
, 添加新客户
A、时序图
B、描述 编号 类名或方法名 功能描述
Servlet,处理职员的添加新客户的请求 1 PetOwnerServlet
其addPetOwner方法负责访问owners表完成添加新客户 2 PetOwnerDAO
jsp页面, 显示界面可供输入添加的宠物主人的信息 3 newpetowner.jsp
jsp页面, 其界面上存在一个按钮可供链接到此用例的功能 4 petsearch.jsp
, 浏览宠物信息
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的查询宠物主人的请求,其doPost方法调用 1 PetServlet
其自己的search方法
其searchPet方法负责访问owners , pets表完成查询宠物及 2 PetDAO
其主人的信息
jsp页面, 可供输入查询宠物的条件 3 petsearch.jsp
jsp页面, 显示查询出的宠物及其主人的信息 4 petsearch_name.jsp
, 更新宠物信息
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的更新宠物信息的请求 1 PetServlet
其selectPetById方法负责访问pets, types, owners表完成查 2 PetDAO
询出指定的宠物的详细信息以供修改;
其updatePet方法负责访问pets表完成更新指定的宠物的信
息;
jsp页面, 显示点击的某个宠物的详细信息,只可浏览,当职 3 petview_name.jsp
员点击其中的一个修改按钮后,系统呈现修改编辑界面。
jsp页面, 修改宠物的编辑界面。 4 petupdate.jsp
, 添加新宠物
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的添加新宠物的请求 1 PetServlet
其addPet方法负责访问pets表完成添加新宠物 2 PetDAO
jsp页面, 显示界面可供输入添加的宠物的信息 3 petnew.jsp
jsp页面, 其界面上存在一个按钮可供链接到此用例的功能 4 petsearch.jsp
, 浏览宠物的访问历史记录
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的浏览宠物的访问历史记录的请求 1 PetVisitServlet
其searchPetVisitHistory方法负责访问visits表完成查询出指 2 PetVisitDAO
定的宠物的访问历史记录;
jsp页面, 显示点击的某个宠物的详细信息,只可浏览,当职 3 petview_name.jsp
员点击其中的一个阅览病历按钮后,系统呈现宠物的访问
历史记录。
jsp页面, 显示宠物的访问历史记录。 4 petvisithistory.jsp
, 添加一次宠物的访问
A、时序图
B、描述
编号 类名或方法名 功能描述
Servlet,处理职员的添加一次宠物的访问的请求 1 PetVisitServlet
其addNewVisit方法负责访问visits表完成添加一次宠物的 2 PetVisitDAO
访问记录;
jsp页面, 显示点击的某个宠物的详细信息,只可浏览,当职 3 petview_name.jsp
员点击其中的一个增加新病历按钮后,系统呈现添加宠物
的一次访问记录的界面。
jsp页面, 显示一个界面以便输入宠物的访问记录。 4 petnewvisit.jsp
jsp页面, 可供输入查询宠物的条件 5 petsearch.jsp
第六部分、界面设计
1、 主界面设计
系统的首页为登录页面,如下图所示:
2、 用例界面实现
, 登录
当职员成功登录之后,出现如下界面:
, 退出
点击“退出”链接即可退出系统,如下图所示:
, 浏览兽医及其专业特长
如下图所示,输入查询的兽医的名称,点击查询按钮:
查询结果如下图所示:
, 浏览宠物主人的信息
查询界面如下图所示:
输入查询条件,点击查询按钮,如下图所示:
查询结果如下图所示:
点击链接的客户,结果如下图:
, 更新宠物主人的信息
编辑后点击“修改”按钮:
结果如下图:
, 添加新客户
编辑界面如下:
添加之后:
, 浏览宠物信息
输入查询条件:
查询结果:
点击宠物的链接:
, 更新宠物信息
编辑宠物的信息:
修改结果:
, 添加新宠物
添加成功之后:
, 浏览宠物的访问历史记录
结果如下:
, 添加一次宠物的访问
编辑访问信息:
添加之后:
第七部分 结束语