1、软件体系结构大作业报告姓 名: 于春游 学 号: 班 级: 0805051 院 系: 数学与计算机学院 日 期: 任课教师: 丁月华 软件需求说明书1引言1.1编写目的一个小型图书馆管理系统, 1.2作业题目1. 借书, 还书; 2. 在图书馆中增加/删除一本书; 3. 按照作者名或专业领域检索一批书; 4. 找出被某位读者借出的一批书; 5. 找出最近借走某本图书的读者.该系统有两类用户:图书管理员与普通读者.功能4可供普通读者查找她们自己借出的书目.功能1, 2, 5只供图书管理员使用.该系统必须满足以下限制:1. 馆中所有未借出的书籍能够供读者随时借阅.2. 在同一时刻, 一本书不能既被
2、借出, 又可供借阅.3. 一个读者一次借出的书籍数目不能超过预定值.1.3定义列出本文件中用到的专门术语的定义和外文首字母组词的原词组。1.4参考资料教材: 软件体系结构原理/实践与方法 张友生 等 清华大学出版社 2. 参考书籍l 软件体系结构( 第2版) 张友生 等 清华大学出版社 -11l 软件构架实践( 第2版) (SOFTWARE ARCHITECTURE IN PRACTICE, SECOND EDITION) ( 美) LEN BASS, PAUL CLEMENTS, RICK KAZMAN 清华大学出版社 -3 l 软件体系结构 : (美)MARY SHAW; DAVID GA
3、RLAN 牛振东 江鹏 金福生等编译 清华大学出版社 -3-1 l 大型软件体系结构: 使用UML实践指南 作者: ( 美) JEFF GARLAND RICHARD ANTHONY 译者: 叶俊民 汪望珠 电子工业出版社 -3l 软件架构设计 温昱 电子工业出版社 -3l 面向模式的软件体系结构 卷1: 模式系统 Frank Buschmann, Regine Meunier, Hans Rohnert, Peter Sornmerlad, Michael Stal著, 1996. 译者: 贲可荣 郭福亮 等) l 面向模式的软件体系结构 卷2: 用于并发和网络化对象的模式 Douglas
4、Schmidt, Michael Stal, Hans Rohnert, Frank Buschmann, 著, 1996.l 面向模式的软件体系结构 卷3: 资源管理模式 机械工业出版社 -103. 参考课程网站l http:/125.71.228.222/wlxt/ncourse/72231330/web/website/sadp/index.html 电子科技大学 软件体系结构与设计模式 l http:/210.42.106.79:8080/course/index.htm 华中科技大学 软件体系结构 4参考网站l 豆丁网 l 维普资讯l 万方数据资源系统 l CNKI 中国知网l EB
5、SCO: Elsevier SDOS2任务概述2.1目标实现题目所要求的系统功能l 图书检索系统: 经过图书证读者能够进行查询图书馆书目l 图书管理系统: 管理员能够经过此系统对书进行借出登记、 增加/删除新书、 查询书目信息2.2用户的特点 本软件最终用户为图书馆管理员以及借书人: 其中: 借书人只能进行图书书目查询、 图书管理员能进行全部操作, 因此要求图书管理员能充分掌握该系统。3需求规定 3.1对功能的规定制作的图书管理系统对系统支持和支持的并行操作用户指标作出以下规定: 图书馆客户端的台数: 200台系统支持的终端书: 3个支持的并行操作用户指标: 2003.2对性能的规定3.2.1
6、精度鉴于图书馆数量的要求, 输入输出的精度应控制在0.014运行环境规定4.1设备PC台式机4.2支持软件软件平台: Windows Xp以及更高版本Oracle /Mysql数据库4.3接口用户界面: 实现用户和软件之间的简易操作性硬件接口: 采用标准的键盘鼠标控制接口, 能够提供与多种打印机之间的接口, 该部分有操作系统决定。概要设计说明书2总体设计2.1需求规定按照需求分析文档中的规格要求, 使用条形码扫描进体统, 从而进行借书、 还书, 2.3基本设计概念和处理流程l 借阅管理l 读者信息录入l 图书查询: 2.5功能需求与程序的关系本条用一张如下的矩阵图说明各项功能需求的实现同各块程
7、序的分配关系: 书目管理 读者信息管理打印管理借书读者注册查询图书增加/删除图书查询读者所借出的书找出最近借出的书图书馆图书批量查询2.6人工处理过程借出图书时扫描条形码图书按区摆放3接口设计3.1用户接口采用页面形式的图形界面, 且提供鼠标、 键盘的支持, 界面设计遵循以下规则: 界面的一致性; 给出简单的错误提示; 给予信息反馈; 操作可逆: 使得读者能够进行重复操作3.2外部接口本软件应提供条形码扫描仪的支持; 运行于Windows XP级以上版本的系统; 3.3内部接口系统管理模块是图书管理员的操作模块, 必须设置操作员后才能使用其它模块; 图书管理模块和图书查询模块必须先有图书数据后
8、才能使用统计和查询模块; 借阅模块必须提供借阅者信息后才能继续操作; 5系统数据结构设计5.1逻辑结构设计要点5.2物理结构设计要点在逻辑设计基础上增加如下表结构: 出版社: 记录图书印刷单位出版社信息图书书位信息提示读者图书所在位置系统参数图书馆名, 借阅期限, 以及相应的系统信息5.3数据结构与程序的关系图书维护 图书证办理读者查询借阅管理系统管理报表统计图书信息表【book】读者信息表【reader】用户借阅【borrow】操作员表【login】详细设计说明书1引言1.1编写目的为了完成此次软件结构大作业, 选择了图书管理系统读者为: 作业批改老师1.2背景a 图书管理系统b 本项目的任
9、务提出者、 开发者: 于春游c 用户: 图书馆管理员, 读者用户2程序系统的结构l 软件结构主 模 块用户界面子模块调度用户输入 图书查询 还 书 输 出 借 书 系统操作 借 书 模 块 读者身份查验 用户界面 图书查验 输入 输入 获取相 关信息 输出 数据库查询 借书登记 操作命 令生成数据库操作 还 书 模 块 借书记录查验 记录还书信息 数据库查询 还书登记 操作命 令生成数据库操作 用户界面 输入 获取相 关信息 输出 计算超期 系 统 操 作 模 块系统设置 系统操作 权限查验更改口令 子 模 块 调 度读者库 操作数据统计 用户 界面 输 入 输 出图书库 操作数据备份数据恢复
10、获取记录 数据库查询 数据库操作 图 书 库 操 作 模 块 用户界面 输 入更新显示输出 事 务 处 理移动至上一个记录移动至下一个记录移动 至最后记录移动至第一个记录加入记录删除记录移动 至指定 ID 更新当前记录 输入ID ID查验借书记录查验 数据库查询 数据库操作 更新当前记录 输入ID ID查验获取记录 读 者 库 操 作 模 块 事 务 处 理移动至下一个记录移动 至最后记录移动至第一个记录移动至上一个记录移动 至指定 ID删除记录加入记录 用户界面 输 入更新显示输出获取相关信息数据统计 / 图书查询 用户界面 查询命令生成 数据库查询 结果显示 输入 输出 生成结 果列表 输
11、入 排序 结果列 表显示 系统设置模块 用户界面输入 更新 显示输出 系统设置获取 操作员记录集获取 数据库查询 事务处理上一个操作员下一个操作员删除加入保存当前设置 数据库操作更新当前记录初始化主模块功能系统查询模块图书查询模块还书模块借书模块建立与数据库连接获取系统设置运行主对话框根据输入调用子模块退出系统时断开与数据库的连接输入项目用户鼠标点击输入程序逻辑见右图存储分配内部数据: 数据库连接m_pConnection_ConnectionPtr数据库连接指针m_IsConnectedBOOL数据库连接指示系统设置m_MaxLBNumint可借图书数上限m_MaxLBDayint借书天数上
12、限子对话框m_BookOutDlgCBookOutDlg借书对话框m_BookInDlgCBookInDlg还书对话框m_BookQuiryDlgCBookQuiryDlg图书查询对话框m_SysDlgCSysDlg系统操作对话框测试要点数据库连接情况: 正常情况, 数据库文件缺少, 外部系统异常。系统设置获取: 正常情况, 外部系统异常。对用户输入的响应: 合法输入, 能够正常调用子模块; 非法输入, 系统能否辨别, 并作出响应(提出警告); 子模块的异常状况, 系统能否及时做出响应。借书模块功能查验输入的读者证号运行借书对话框获取该读者的相关信息查验输入的图书号登记借书输入项目读者证号、
13、图书书号(用户输入)输出项目读者信息(姓名); 读者已借图书信息(书名、 借书日期); 程序逻辑接口调用形式: void CBookDlg:LendBook(const _ConnectionPtr pConnection, const int MaxLBNum)传入参数: pConnection数据库连接指针 MaxLBNum系统参数(可借图书上限)传出参数: 无存储分配内部数据: 数据库m_pConnection_ConnectionPtr数据库连接指针用户界面m_strReaderNameCString读者姓名m_strLBInfCString已借图书信息m_strLBNumCStrin
14、g已借图书数显示m_lBookIDlong欲借图书书号内部参数m_lReaderIDlong当前读者证号m_MaxLBNumint可借图书数上限操作取消对话框初始化输入读者证号查 验输入不合理借书对话框点击返回查验出错借书登记更新相关信息及显示关闭对话框2.4借书登记模块功能登录借书信息输入项目读者证号(整型常量); 图书书号(整型常量)输出项目操作结果(BOOL值)程序逻辑生成数据库操作命令调用数据库操作模块IF 操作成功返回”操作成功”ELSE返回”操作失败”接口调用形式: BOOL WriteBlrecord(const long ReaderID,const long BookID)传
15、入参数: ReaderID(整型常量)操作参数(借阅者读者证号) BookID(整型常量)操作参数(借阅图书书号)传出参数: 操作成功/失败标志(返回值)存储分配局部变量:操作命令参数vRecsAffected_variant_t操作影响vtCommand_variant_t操作命令类型转换strCommandCString操作命令类型转换strTodayCString借书日期类型转换oleTodayCOleDateTime借书日期测试要点数据库连接正常数据库操作正常输入参数合法输入参数非法数据库操作异常数据库连接异常还书模块功能运行还书对话框查验输入的图书书号对合法输入登录还书信息显示相关信
16、息(本次还书操作信息, 尚未归还图书的相关信息, 读者信息)输入项目图书书号(用户输入)输出项目相关信息(本次还书操作信息, 尚未归还的图书信息, 读者信息)程序逻辑点击退出初始对话框出错返回借书记录查验模块登记还书更新还书信息及显示关闭对话框接口调用形式: CBookInDlg:ReturnBook(const _ConnectionPtr pConnection,const int MaxLBDay)传入参量: pConnection(数据库连接指针常量)提供数据库连接 MaxLBDay(整型常量)系统参数(借书天数上限)传出参量: 无存储分配内部变量: 数据库m_pConnection_
17、ConnectionPtr数据库连接指针m_pRecords_RecordsetPtr数据库查询结果集指针 用户界面m_lBookIDlong欲还图书书号m_strLenderIDCString借阅者图书证号显示m_strLenderCString借阅者姓名m_strRBInfCString已还图书信息显示m_strNRBInfCString未还图书信息显示m_strRBNumCString已还图书数显示m_strNRBNumCString未还图书数显示 内部参数m_lCurrIDlong当前还书者读者证号m_intRBNumint已还图书计数m_MaxLBDayint借书天数上限测试要点模块
18、正常工作流程对输入的查验, 包括输入值的合法性与合理性检验数据库连接异常能否做出适当处理数据库数据异常时能否判断并给予适当处理图书查询模块功能根据给定查询条件, 查询数据库, 获取图书信息输入项目查询方式指定以及查询关键字输出项目查询结果列表显示程序逻辑接口调用形式: CBookQuiryDlg:QuiryBook(const _ConnectionPtr pConnection)传入参数: pConnection(数据库连接指针)传出参数: 无存储分配内部变量: 数据库m_pBooks_RecordsetPtr数据库查询结果集指针 用户界面m_strAuthorCString作者关键字m_b
19、AuthorBOOL作者查询选择状态m_strBookNameCString书名关键字m_bBookNameBOOL书名查询选择状态m_strPublisherCString出版社关键字m_bPublisherBOOL出版社查询选择状态m_intYear1int出版时间关键字m_intYear2int出版时间关键字m_intMonth1int出版时间关键字m_intMonth2int出版时间关键字m_bPubTimeBOOL出版时间查询选择状态m_intTimeTypeint出版时间查询方式选择局部变量: 查询参数vtQuiry_variant_t查询命令vNull_variant_t查询连接 类型转换strQuiryCString查询命令类型转换测试要点数据库连接正常数据库数据正常获得正确的查询结果并显示数据库数据异常给出警告数据库连接异常给出警告