´爱心宠物诊所´系统设计说明
“爱心宠物诊所”系统设计说明书 文件状态: 文件标识
[..] 草稿 当前版本 1.0.0
[?] 正式发布 作 者
[ ] 正在修改 完成日期
版本历史
版本/状态 修订人 修改日期 备注
第一部分、概述
1、 文档说明
本文档描述“爱心宠物诊所”系统的设计文档,系统使用面向对象的设计方法,首先设
计系统的总体结构,再设计各个用例的实现。
2、 系统需求概述
“爱心”宠物诊所的职员在工作中需要查阅和管理如下信息:诊所的兽医、客户以及客
户的宠物。系统的用例图如图一所示:
图一:“爱心宠物诊所”系统的用例图
第二部分、系统总体结构
系统设计时基于MVC设计模型,采用三层架构,如图二所示。
图二:“爱心宠物诊所”系统的体系结构
第三部分、系统设计
1. 关键抽象
从需求中可以得出系统的如下关键抽象:兽医、专业特长、宠物主人、宠物类型、宠物
和宠物的访问。这些实体可以设计为JavaBean类,例如宠物具有这些属性:名称、标识
ID、类型ID和出生日期等。宠物主人和宠物之间具有如下关系:一个宠物主人可以拥
有多个宠物,每一个宠物属于一个主人;每一个宠物可能到诊所多次就诊;每个兽医具
有多项专长,而同一专长可能有多个兽医。图三描述了系统的关键抽象,他们为系统的
模型。
图三:“爱心宠物诊所”系统的模型
2. 用例的设计
使用面向对象设计时,关键在于描述那些对象如何交互完成用例的功能,通常将对象
发送消息的相互调用过程画成时序图。下面将逐一解释用例的时序图。
, 登录
A、时序图
B、描述
编号 类名或方法名 功能描述
1 login.jsp jsp页面,显示登录界面
2 EmpServlet Servlet,处理职员的登录请求
3 EmpDAO 其verify方法负责访问employee
,验证用户名称和口令
4 vetsearch.jsp jsp页面, 若职员登录成功,显示一个页面可供职员访问用例
“浏览兽医及其专业特长”
, 退出
A、时序图
B、描述
编号 类名或方法名 功能描述
1 EmpServlet Servlet,处理职员的退出请求
2 HttpSession session对象,其invalidate方法负责使客户的会话无效
3 login.jsp jsp页面, 职员退出后,显示登录界面
, 浏览兽医及其专业特长
A、时序图
B、描述
编号 类名或方法名 功能描述
1 VetServlet Servlet,处理职员的查询兽医的请求
2 VetDAO 其search方法负责访问vets, specialties, vet_specialties表完
成查询兽医及其专业特长
3 vetsearch.jsp jsp页面, 可供输入查询兽医名称或专业的条件
4 vetsearch_name.jsp jsp页面, 显示查询出的兽医及其专业特长
, 浏览宠物主人的信息
A、时序图
B、描述
编号 类名或方法名 功能描述
1 PetServlet Servlet,处理职员的查询宠物主人的请求,其doPost方法调用
其自己的search方法
2 PetDAO 其searchPet方法负责访问owners , pets表完成查询宠物主
人及其宠物
3 petsearch.jsp jsp页面, 可供输入查询宠物主人的条件
4 petsearch_name.jsp jsp页面, 显示查询出的宠物主人及其宠物的信息
, 更新宠物主人的信息
A、时序图
B、描述
编号 类名或方法名 功能描述
1 PetOwnerServlet Servlet,处理职员的查询和更新宠物主人的请求,其doPost方
法调用其自己的search方法
2 PetOwnerDAO 其viewPetOwner方法负责访问owners 表完成查询出指定
的宠物主人的信息;
其updatePetOwner方法负责访问owners 表完成更新指定
的宠物主人的信息;
3 ownerupdate.jsp jsp页面, 显示查询出的宠物主人的信息,可供修改,提交后
保存修改,并再次显示更新后的宠物主人的信息。
, 添加新客户
A、时序图
B、描述
编号 类名或方法名 功能描述
1 PetOwnerServlet Servlet,处理职员的添加新客户的请求
2 PetOwnerDAO 其addPetOwner方法负责访问owners表完成添加新客户
3 newpetowner.jsp jsp页面, 显示界面可供输入添加的宠物主人的信息
4 petsearch.jsp jsp页面, 其界面上存在一个按钮可供链接到此用例的功能
, 浏览宠物信息
A、时序图
B、描述
编号 类名或方法名 功能描述
1 PetServlet Servlet,处理职员的查询宠物主人的请求,其doPost方法调用
其自己的search方法
2 PetDAO 其searchPet方法负责访问owners , pets表完成查询宠物及
其主人的信息
3 petsearch.jsp jsp页面, 可供输入查询宠物的条件
4 petsearch_name.jsp jsp页面, 显示查询出的宠物及其主人的信息
, 更新宠物信息
A、时序图
B、描述
编号 类名或方法名 功能描述
1 PetServlet Servlet,处理职员的更新宠物信息的请求
2 PetDAO 其selectPetById方法负责访问pets, types, owners表完成查
询出指定的宠物的详细信息以供修改;
其updatePet方法负责访问pets表完成更新指定的宠物的信
息;
3 petview_name.jsp jsp页面, 显示点击的某个宠物的详细信息,只可浏览,当职
员点击其中的一个修改按钮后,系统呈现修改编辑界面。
4 petupdate.jsp jsp页面, 修改宠物的编辑界面。
, 添加新宠物
A、时序图
B、描述
编号 类名或方法名 功能描述
1 PetServlet Servlet,处理职员的添加新宠物的请求
2 PetDAO 其addPet方法负责访问pets表完成添加新宠物
3 petnew.jsp jsp页面, 显示界面可供输入添加的宠物的信息
4 petsearch.jsp jsp页面, 其界面上存在一个按钮可供链接到此用例的功能
, 浏览宠物的访问历史
A、时序图
B、描述
编号 类名或方法名 功能描述
1 PetVisitServlet Servlet,处理职员的浏览宠物的访问历史记录的请求
2 PetVisitDAO 其searchPetVisitHistory方法负责访问visits表完成查询出指
定的宠物的访问历史记录;
3 petview_name.jsp jsp页面, 显示点击的某个宠物的详细信息,只可浏览,当职
员点击其中的一个阅览病历按钮后,系统呈现宠物的访问
历史记录。
4 petvisithistory.jsp jsp页面, 显示宠物的访问历史记录。
, 添加一次宠物的访问
A、时序图
B、描述
编号 类名或方法名 功能描述
1 PetVisitServlet Servlet,处理职员的添加一次宠物的访问的请求
2 PetVisitDAO 其addNewVisit方法负责访问visits表完成添加一次宠物的
访问记录;
3 petview_name.jsp jsp页面, 显示点击的某个宠物的详细信息,只可浏览,当职
员点击其中的一个增加新病历按钮后,系统呈现添加宠物
的一次访问记录的界面。
4 petnewvisit.jsp jsp页面, 显示一个界面以便输入宠物的访问记录。
5 petsearch.jsp jsp页面, 可供输入查询宠物的条件
第四部分、数据库设计
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) 补充说明
2.4 types
表名 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) 补充说明
.8 employee 2
表名 employee
列名 数据类型(精度范围) 空/非空 约束条件 其它说明 name VARCHAR(20) NOT NULL PRIMARY KEY password VARCHAR(20) NOT NULL 补充说明
第五部分、界面设计
1、 主界面设计
系统的首页为登录页面,如下图所示:
2、 用例界面实现
, 登录
当职员成功登录之后,出现如下界面:
, 退出
点击“退出”链接即可退出系统,如下图所示:
, 浏览兽医及其专业特长
如下图所示,输入查询的兽医的名称,点击查询按钮:
查询结果如下图所示:
, 浏览宠物主人的信息
查询界面如下图所示:
输入查询条件,点击查询按钮,如下图所示:
查询结果如下图所示:
点击链接的客户,结果如下图:
, 更新宠物主人的信息
编辑后点击“修改”按钮:
结果如下图:
, 添加新客户
编辑界面如下:
添加之后:
, 浏览宠物信息
输入查询条件:
查询结果:
点击宠物的链接:
, 更新宠物信息
编辑宠物的信息:
修改结果:
, 添加新宠物
添加成功之后:
, 浏览宠物的访问历史记录
结果如下:
, 添加一次宠物的访问
编辑访问信息:
添加之后: