软件工程导论之详细设计
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件工程导论
题目:图书管理系统文档名称:详细设计班级:科技0801
项目组长:唐子龙
项目成员:
唐子龙(05082019)朱磊(05082025)
赵欣(05082023)
刘华琛(05082004)
详细设计
§3.1 设计目标
概要设计是软件开发过程中的一个阶段,在这个阶段需要完成一些明确的事情。概要设计阶段的基本目的是回答“概括的说,系统应该如何实现?”。通过这个阶段,确定系统的组成模块。本图书管理系统由读者管理、图书管理、流通管理、统计管理、查询管理5个大模块组成。每个模块又由自己的子模块组成。§3.2 软件结构图
1.概要设计:
○1需求规定:本软件提供一个既可以存储信息,同时又具有浏览、插入、查询、修改、删除功能,供使用者轻松管理图书馆
的库存图书。数据库信息由使用者进行输入。
○2运行环境:硬件普通PC机
支持环境WINDOWS操作系统,Turbo C 2.0软件○3基本设计概念:本系统由主单函数调用各个子函数(功能函数)来实现各项操作。
功能函数包括插入函数,删除函数,显示函数,文件读入函数,文件读出函数,借出函数,归还函数,退出函数
函数调用关系图如下图所示:
○4系统结构
○5模块划分与功能需求关系
模块编号模块名称功能
M1 身份验证模块输入验证信息
M2 主菜单模块输入选择的功能
M3 插入模块插入相关信息
M4 删除模块删除指定信息
M5 查询模块查询指定信息
M6 显示模块以列表方式显示所有信息
M7 借出模块实现书籍借出
M8 归还模块实现书籍归还
M9 读入模块从外部文件读入信息
M10 备份模块备份文件信息
M11 退出模块退出程序保存文件
○6人工处理过程:数据的录入工作需人工完成
3、数据流图
图书管理系统的顶层数据流图如图3-1所示。
借书证信息
读者S1
图书维护
查询图书信息
管理员
S3
图书
S2
管理员
登录
发出
控制
指令
查询信息
图书管理系统
P1
图3-1 顶层数据流图
一级数据流图
根据顶层数据流图,继续向下分解,得到一级数据流图。如图3-2所示。
S1
借书证
个人信息
S3
图书名称
控制命令
控制命令
查询信息
控制命令
所需统计信息条目
条码识别信
息控制命令
S2
查询信息
图书状态
图书状态
图书借还信息表
图书状态
P1.5
查询管理
P1.1读者管理
P1.4统计管理
P1.2
图书管理P1.3
流通管理
图3-2 一级数据流图
二级数据流图
由一级数据流图继续向下分解,可得二级数据流图。本文档主要针对流通管
理和统计管理画出二级数据流图。流通管理数据流图如图3-3,统计数据管理如图3-4。
图书预定P1.3.1
S3图书损坏、丢失处理
P1.3.4S3图书归还P1.3.3
S3
图书借阅P1.3.2S3
S2图书
D1ISBN 或图书编号
D2图书编号D4图书编号
D7图书信息
F2
历史图书信息表
F1
D3借书信息
D5还书信息
图书借还信息表
D6图书编号F3
图书预定信息表
D8预定信息
F4
图书借还信息表
D9罚金
F0到书通知单
D0到书通知
图3-3 流通管理数据流图
S2图书
D11借还信息
F5
图书借还信息表统计历史借阅信息P1.5.1S3统计借阅信息P1.5.2S3
D12还书信息D14借书信息流通管理P1.3S3
D15借书记录
F7借阅信息表
D13还书记录
F6
历史借阅信息表
′
D10ISBN/图书编号
图3-4 统计管理数据流图
4、接口设计
○1用户接口:用户输入信息按 “书名”(空格)“库存数量” 的
格式输入。TXT 文件也按上述格式保存。
○
2外部接口:用户界面:DOS 界面 软件接口:运行于Win95以上版本,且要求安装Turbo C 2.0
5、运行设计
○
1运行控制:系统运行后先进行身份验证,验证通过后,登录,并调用M2,进入服务选择模块,由用户选择的信息选择激活M3—M10等模块,最后根据用户输入的接受信息退出程序,关闭系统。 ○
2运行时间:各模块运行时间控制在1秒内。
6系统数据结构设计
书名char name[] 剩余数量int sum
7、系统出错处理设计
○1出错信息
出错类型处理方法
用户输入无效字符提示出错,重新输入
借出数量过大提示出错,重新输入
○2维护设计
本软件必须按照软件产品设计规范的步骤进行开发,充分考虑软件的可维护性,以便于未来版本开发及移植等二次开发。
在编写过程中如果发现有的模块没有必要,或者实现比较困难,可以由开发者提出修改意见,决定是否修改。