上节课分析了图书馆管理系统的需求,大致明确了系统的业务流程。
这节课来进行具体的系统设计,完成概要设计。
概要设计
通过分析上节课完成的需求分析以及具体的业务流程,可以得出图书馆管理系统的概要设计如下:
内部管理功能:
登录页面:账号、密码、验证码、登录
后台主页面:系统名称、登录用户名、退出、菜单一览
员工管理:一览页面,查询条件:姓名、账号,查询结果:ID、姓名、账号、菜单权限
员工管理:详细页面,编辑字段:ID、姓名、账号、密码、菜单权限
图书管理:一览页面,查询条件:书名、出版社、ISBN、作者,查询结果:ID、书名、出版社、ISBN、作者、版次、价格
图书管理:详细页面,编辑字段:ID、书名、出版社、ISBN、作者、版次、价格、封面图片
库存管理:一览页面,查询条件:ID、书名、ISBN、位置信息、状态,查询结果:ID、书名、ISBN、位置信息、状态
库存管理:详细页面,编辑字段:ID、书名和ISBN、位置信息、状态,状态=未上架、已上架、已借出、已报废
用户管理:一览页面,查询条件:ID、姓名、IC卡号、身份证号码、手机号码、状态,查询结果:ID、姓名、IC卡号、身份证号码、手机号码、状态
用户管理:详细页面,编辑 字段:ID、姓名、IC卡号、密码、身份证号码、手机号码、状态,状态=正常、结束
借书管理:IC卡号查询,或身份证号码查询,显示用户信息和借书信息,多行输入:库存ID,显示库存图书信息,可删,确定借书。
还书管理:IC卡号查询,或身份证号码查询,显示用户信息,多行显示:库存ID,显示库存图书信息、借书时间、借阅费,可以多选后做操作:确认还书,确认损毁丢失;选择是否退卡;生成费用结算清单,可删清单,可确认支付。
补卡管理:IC卡号查询,或身份证号码查询,显示用户信息,输入新的IC卡号,确定补卡,生成费用清单,确认支付。
费用查询:一览页面:查询条件:书名、ISBN、用户姓名、IC卡号、借书时间开始和结束、还书时间开始和结束、费用分类:全部/借阅费/赔偿金/补卡费/收押金/退押金
查询结果:借阅ID,书名、ISBN、价格、位置信息、用户姓名、IC卡号、借书时间、还书时间、借阅费、赔偿金;合计金额。
公开访问功能:
热门排行榜功能:历史热门、最近一年热门、最近一月热门
图书查询功能:一览页面,查询条件和结果:书名、ISBN、作者姓名、版次、库存有无
图书查询功能:详细页面,图书封面、书名、ISBN、作者姓名、版次、价格;库存一览:ID、位置编码、状态
用户登录:账号、密码、验证码、登录
用户待支付借阅费合计金额
用户借阅历史记录:一览页面,分页显示:书名、ISBN、作者姓名、第几版、价格、位置编码、借书时间、还书时间、借阅费、赔偿金
开发成本估算
一般来说,完成概要设计之后,对于整个系统的构成、页面功能、数据结构、系统运行流程,基本上都有一个大概的认识。
这个时候,对于一个IT系统,就需要做一个成本估算,决定需要投入多少人力资源,需要多长时间能够完成整个项目。
成本估算有很多种方法,学哥这里仅仅以自己常用的方法来示例一下。
按功能进行评估开发所需人天工时,然后汇总之后,按照设计=开发0.2,测试=开发0.5的工作量估算设计和开发的工作量。
最后再加上项目管理和部署上线和其它工作的工时,这个就看整个项目的复杂度和人员的多少来估算。
登录页面:1人天
后台主页面:1人天
员工管理:3人天
图书管理:3人天
库存管理:4人天
用户管理:3人天
借书管理:3人天
还书管理:3人天
补卡管理:2人天
费用查询:2人天
热门排行榜:3人天
图书查询功能:3人天
用户借阅历史记录:3人天
开发合计:34人天
设计合计:34*0.2=7人天
测试合计:34*0.5=17人天
项目管理:3人天
部署上线:3人天
IC卡和条码扫码集成:1人天
总开发成本:34+7+17+3+3+1=65人天=3人月
项目进度计划
根据详细每个功能的开发成本估算,就可以得出总的人月数,比如前面的3人月,也就是如果1个人就要做3个月,如果是3个人就要做1个月。此时就可以根据项目人员的配备情况,合理安排整个项目的进度计划。具体可以细分到每个人每天应该做哪个功能,这样项目管理才能很具体的执行下去,每天都可以进行进度汇报和评估。当然项目实际进行当中,很可能有各种情况发生,比如设计变化了,人员变化了,或者工时估算的不准等等,这时候,就需要及时调整项目进度,掌控整个项目,确保项目的进度在可控范围之内,防止整个项目失控的危险。
这里,学哥打算请一个朋友帮忙来做开发,因此2个人需要1.5个月完成整个项目。
另外,学哥给大家看看另外一个项目的进度计划是什么样子的,让大家有一个直观的认识。当然这个进度计划仍然是一个粗的计划,因为项目规模并不大,所以按照人月在做计划。要记住:越是大项目,进度安排越是要细致。
架构设计
在概要设计的同时,就要进行系统架构设计。
架构设计就是要决定系统由哪些人使用,系统如何组成,有哪些软硬件组成,系统各部分之间如何配合,如何运转,开发环境和工具是什么,编程的软件技术架构是什么,数据库用哪种以及版本,服务器如何配置等等。
下面就是学哥对图书馆管理系统做的架构设计:
完成以上的工作任务之后,接下来就是要将概要设计进行细化,进行详细设计,将每个功能的页面UI设计和功能设计用文档描述出来。
详细设计是必须要的,它的作用首先是帮助系统设计人员明确每一个细节,防止系统功能遗漏或者系统矛盾,其次是减少设计人员和开发人员之间的沟通成本,大家都遵循一致的设计来进行项目建设。