1、医药管理系统项目详细设计说明书医药管理系统项目详细设计说明书编写: XXX日期: YYYY-MM-DD审核:日期:批准:日期:受控状态:是发布版次: 1.0日期: YYYY-MM-DD编号:中软培训实训基地第 1 页 共 46 页医药管理系统项目详细设计说明书内部文档变更记录日期版本变更说明作者YYYY-MM-DD1.0初始版本XXX签字确认系统模块对应章节对应部门负责人签字第 2 页 共46 页医药管理系统项目详细设计说明书内部文档目录1引言.51.1编写目的 .51.2背景 .52概述.52.1基线 .62.2范围 .62.3定义 .62.4参考资料 .62.5术语与缩写解释 .63模块命
2、名规则 .64模块汇总 .74.1模块汇总表 .74.2块关系图 .85子系统模块设计 .95.1医药管理模块 .95.1.1功能描述 .95.1.2相关模块 .95.1.3类图 .105.1.4MedicineAction 类 .105.1.5MedcineDao 类 .135.2类别管理模块 .185.2.1功能描述 .195.2.2相关模块 .195.2.3类图 .195.2.4类别管理类 .205.3购买药品 .235.3.1功能描述 .235.3.2相关模块 .235.3.3类图 .245.3.4类 SellAction .255.4销售管理模块 .285.4.1功能描述 .285.
3、4.2相关模块 .285.4.3类图 .285.4.4SellDetail 类.295.4.5SellDao 类 .355.5需求管理 .405.5.1功能描述 .405.5.2相关模块 .40第 3 页 共46 页医药管理系统项目详细设计说明书内部文档5.5.3类图405.5.4RequireAction 类415.6系统管理435.6.1功能描述435.6.2相关模块435.6.3类图445.6.4类 A44第 4 页 共46 页医药管理系统项目详细设计说明书内部文档1 引言1.1 编写目的本说明书是医药管理系统的详细设计。其编写目的是在概要设计的基础上,针对该项目的每个模块, 每个功能的
4、实现方法进行详细的设计和划分,按照详细设计说明书的要求, 进一步明确系统结构, 为项目开发人员后期的编码工作做准备。本文档的预期的读者是:项目开发人员项目经理项目测试人员1.2 背景在前一阶段的概要设计文档中,已经通过顺序图解决了该系统功能的实现流程, 包括系统的各模块间的关系设计等。本文档就是在前一阶段成果的基础上,继续对系统的各模块进行详细的划分和说明。2 概述本项目的任务提出者:见概要设计文档单位:见概要设计文档开发者:见概要设计文档用户:见概要设计文档实现该软件的计算中心或计算机网络:见概要设计文档第 5 页 共46 页医药管理系统项目详细设计说明书内部文档2.1 基线以需求分析和概要
5、设计为基准。2.2 范围本概要设计文档提供给系统设计开发人员,包括详细设计人员和项目组成员。2.3 定义2.4 参考资料2.5 术语与缩写解释缩写、术语解 释3 模块命名规则驼峰标识,由单词的全拼组成,除首单词外每个单词的首字母大写,例如: medcineManager第 6 页 共46 页医药管理系统项目详细设计说明书内部文档4 模块汇总4.1 模块汇总表提示:这里模块是指相对独立的软件设计单元,例如对象类、函数包等等。子系统 A模块名称功能简述添加药品管理员添加进货药品查看药品管理员查看进货的信息高级查询管理员按照一定条件查找进货的信息查看库存管理员查看库存情况子系统 B模块名称添加类别查
6、看类别子系统 C模块名称选购药品查看选购子系统 D模块名称查看明细今日明细日期查询销售排行子系统 E模块名称添加需求查看需求子系统 F模块名称添加用户查看所有用户系统初始化退出系统功能简述管理员添加药品类别管理员查看药品类别功能简述操作员把顾客买的药品添加进购物车操作员查看购物车里的药品功能简述操作员查看销售表单明细操作员查看今日销售表单明细操作员按照日期查看销售表单明细操作员查看销售排行功能简述操作员对药品需求进行添加,包括库存量不足和没有该药品的库存操作员查看需求来进行买药品入库功能简述管理员添加系统用户管理员查看所有用户,并拥有删除用户权限初始化系统退出系统第 7 页 共46 页医药管理
7、系统项目详细设计说明书内部文档4.2 块关系图医药管理系统基础信息管理需求管理药品销售管理系统管理药药用系品品添查查今日销户统信类加看看日期售账初息别需需明明查排号始管管求求细细询行管化理理理第 8 页 共46 页医药管理系统项目详细设计说明书内部文档5 子系统模块设计5.1医药管理模块5.1.1功能描述用户进入系统以后, 首先需要添加药品信息, 没有药品信息就无法进行库存管理了,更做不到药品入库和出库。药品信息作为库存管理的一部分,是药品入库和出库的编号查询。该功能模块可以实现药品的添加,修改,查看,查询等。5.1.2相关模块第 9 页 共46 页医药管理系统项目详细设计说明书内部文档5.1
8、.3类图MedicineAction+medicine: Medicine = new Medicine()+categoryid: Stiring+pageNo: int+kw: String+MN: String+NM: String+FA+DP: String+add()+blurQuery()+getallmedicine()+findMedicineByMedId()+Deletemedicine()+update()5.1.4MedicineAction类5.1.4.1 方法5.1.4.1.1方法药品信息的添加:public String add()5.1.4.1.1.1功能对药品
9、信息进行添加, 药品编码是药品对象的一个标示,当添加一个药品信息时,需要判断此药品是否已经在数据库中,如果存在只需要更新药品数量即可。5.1.4.1.1.2参数无5.1.4.1.1.3算法无5.1.4.1.2方法药品信息的模糊查询:public String blurQuery()5.1.4.1.2.1功能为了方便用户查询药品, 药品信息管理模块提供了药品模糊查询。 此操作将根据用户所输入的关键字信息,对药品名称、药品描述等多个药品属性进行模糊查询,并以分页显示的方式返回模糊查询或后的结果集。第10 页 共 46 页医药管理系统项目详细设计说明书内部文档5.1.4.1.2.2参数无5.1.4.
10、1.2.3算法无5.1.4.1.3方法获取所有药品信息:public String getallmedicine()5.1.4.1.3.1功能通常情况下,需要查看所以的药品的信息,可以通过获取所以药品信息并显示出来。5.1.4.1.3.2参数无5.1.4.1.3.3算法无5.1.4.1.4方法通过编号修改药品信息:public String find Medicine-ByMedId()5.1.4.1.4.1功能药品的信息在录入的时候难免会出错,通过获取药品编号,对药品信息进行修改。5.1.4.1.4.2参数无5.1.4.1.4.3算法无5.1.4.1.5方法通过编号删除药品:public S
11、tring Deletemedicine()5.1.4.1.5.1功能在药品不再需要或者效果不佳的时候需要对药品进行删除, 通过获取药品编号然后对药品信息删除,在删除的时候需要确定该药品是否存在。5.1.4.1.5.2参数无第 11 页 共 46 页医药管理系统项目详细设计说明书内部文档5.1.4.1.5.3算法无5.1.4.1.6方法更新药品信息:public String update()5.1.4.1.6.1功能更新药品信息。5.1.4.1.6.2参数无5.1.4.1.6.3算法无5.1.4.2 属性private Medicine medicine=new Medicine();pri
12、vate String categoryid=null;private int pageNo;private static String kw;private static String MN ;private static String NM;private static String FA;private static String DP;private static String CT;private static String TP;5.1.4.2.1属性 medicine药品的实体对象。5.1.4.2.2属性 categoryid类别对象编号。5.1.4.2.3属性 pageNo信息
13、页的页号。第12 页 共 46 页医药管理系统项目详细设计说明书内部文档5.1.4.2.4属性 kw模糊查询时的关键字。5.1.4.2.5属性 MN药品编号。5.1.4.2.6属性 NM药品名。5.1.4.2.7属性 FA药品生产公司。5.1.4.2.8属性 DP药品描述。5.1.4.2.9属性 CT药品数量。5.1.4.2.10 属性 TP药品类型。5.1.5MedcineDao 类5.1.5.1 方法第13 页 共 46 页医药管理系统项目详细设计说明书内部文档5.1.5.1.1loadMedicine 方法5.1.5.1.1.1功能与数据库交互,通过id 号从药品数据库中取得数据,采用h
14、ql 查询语句,并且整个查询过程封装在一个Transaction 事务中以保证操作的并发性。查询结果放在一个Medcine 对象中。该方法用于给其它方法调用。5.1.5.1.1.2参数int id, 为需要查询的药品的id 号,为整型。5.1.5.1.1.3算法load 事务操作过程:1.open Transaction;2.load medcine;3.close medcine.5.1.5.1.2insert 方法5.1.5.1.2.1功能与数据库交互,将一个实例化的Medcine 对象插入到数据库中。采用hql 语句,并且整个插入过程封装在一个Transaction 事务中以保证操作的并
15、发性。该方法返回值为void 。该方法用于给其它方法调用。5.1.5.1.2.2参数Medicine medicine ,即一个要插入数据库的Medcine 对象。5.1.5.1.2.3算法insert 事务操作过程:1.open Transaction;2.insert data;3.close medcine.5.1.5.1.3update 方法5.1.5.1.3.1功能与数据库交互,用于对数据库中的Medcine 数据进行更新操作。采用hql 语句,并且整个更新过程封装在一个Transaction 事务中以保证操作的并发性。该方法返回值为void 。该第14 页 共 46 页医药管理系统
16、项目详细设计说明书内部文档方法用于给其它方法调用。5.1.5.1.3.2参数Medcine medcine ,即最新的Medcine 数据状态。5.1.5.1.3.3算法update 事务操作过程:1.open Transaction;2.insert data;3.close medcine.5.1.5.1.4DeleteMedicine 方法5.1.5.1.4.1功能与数据库交互,用于删除数据库中的制定id 号的 Medcine 数据。采用hql 语句,并且整个更新过程封装在一个Transaction 事务中以保证操作的并发性。该方法返回值为void 。该方法用于给其它方法调用。5.1.5
17、.1.4.2参数int id, 即要删除的Medcine 的 id 号。5.1.5.1.4.3算法Delete 算法的流程图如下:第15 页 共 46 页医药管理系统项目详细设计说明书内部文档5.1.5.1.5loadMedicineAndCategory方法5.1.5.1.5.1功能与数据库交互,用于从数据库中获得制定id 号的 Medcine 和 Category 数据。采用hql语句,并且整个更新过程封装在一个 Transaction 事务中以保证操作的并发性。该方法返回值为一个 Medcine 对象。该方法用于给其它方法调用。5.1.5.1.5.2参数int id ,即要获得的medc
18、ine 的 id 号。5.1.5.1.5.3算法5.1.5.1.6getMedicineByPage 方法5.1.5.1.6.1功能与数据库交互,用于从数据库中获得某一页的Medcine 数据。采用 hql 语句,并且整个更新过程封装在一个 Transaction 事务中以保证操作的并发性。 该方法返回值为一个 Medcine 的 ArrayList 。该方法用于给其它方法调用。5.1.5.1.6.2参数int pageNo ,即需要获得数据的页数。第16 页 共 46 页医药管理系统项目详细设计说明书内部文档5.1.5.1.6.3算法5.1.5.2 属性private Medicine me
19、dicine=new Medicine();private String categoryid=null;private int pageNo;private static String kw;private static String MN ;private static String NM;private static String FA;private static String DP;private static String CT;private static String TP;5.1.5.2.1属性 medicine药品的实体对象。5.1.5.2.2属性 categoryid类别
20、对象编号。第17 页 共 46 页医药管理系统项目详细设计说明书内部文档5.1.5.2.3属性 pageNo信息页的页号。5.1.5.2.4属性 kw模糊查询时的关键字。5.1.5.2.5属性 MN药品编号。5.1.5.2.6属性 NM药品名。5.1.5.2.7属性 FA药品生产公司。5.1.5.2.8属性 DP药品描述。5.1.5.2.9属性 CT药品数量。5.1.5.2.10 属性 TP药品类型。5.2类别管理模块第18 页 共 46 页医药管理系统项目详细设计说明书内部文档5.2.1功能描述用户登录进入类别管理页面, 能进行药品类别的管理, 主要包括类别的添加,修改,查看和统计。5.2.2相关模块5.2.3类图第19 页 共 46 页医药管理系统项目详