《软件工程导论实验报告.pdf》由会员分享,可在线阅读,更多相关《软件工程导论实验报告.pdf(29页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、软件工程导论实验报告 一、实验题目:学生成绩管理系统、图书借阅管理系统、工资管理系统、网络订餐系统、招聘考试成绩管理系统 二、实验目标 通过独立完成项目开发,加深对软件开发分析过程的流程和方法的理解,建立软件工程的思想,同时,明确软件开发的成本和时间管理的相关概念。实验一 实验要求:.在实验题目列出的几个系统中选择一个作为自己要开发的软件系统,要求该系统有明确的功能需求,并建立系统的分析模型。.对系统进行需求分析,掌握 ER 图、DFD、DD 的设计与编写.熟悉 Visio 环境和基本操作,制作一个简单的系统流程图和数据流图、主要数 据项的数据字典描述及主要加工的逻辑说明(自己选择结构语言、判
2、定树、判定表等)。.撰写需求分析规格说明书 用户需求分析 作为图书管理系统,其主要的需求人员是借阅者,借阅者对其的要求可 以大体概括如下:1)能按各种方式,比如书名、编号、作者等查询图书馆的藏书情况;2)能熟悉使用图书管理系统;3)能方便地借阅图书、续借图书、归还图书;4)能查询自己的基本资料、借阅图书情况;5)能方便图书管理员对图书的录入登记、注销;6)能方便对新生的登记或注销已经毕业学生的信息;7)能及时发布一些学院学生借阅图书超期情况、馆内藏书情况等。功能说明 1)、读者管理系统(1)未注册者可以进入注册系统进行注册;(2)已注册借阅者可按姓名、编号或身份证号登陆进入借阅者检索系统查询借
3、阅者情况;(3)、已注册借阅者可按书名、出版社或作者对图书信息进行检索查询或 提出预约请求;2)、图书管理员管理系统(1)图书管理员通过图书管理员身份认证进入图书管理员管理系统;(2)读者可借阅在库图书;(3)在规定期限内借阅者归还借阅图书;(4)读者在不违规情况下可继续借阅已借阅图书;(5)读者可以预约图书。3)、系统管理员管理系统 (1)系统管理员通过系统管理员身份认证进入系统管理员管理系统;(2)系统管理员可以对图书进行图书管理(如:查询、删除、修改图书资料或图书分类查询修改、删除管理);(3)系统管理员可以对借阅者进行学生管理(如:查询、删除、修改借阅者信息或借阅者类别修改、删除管理,
4、查询浏览借阅者详细资料,包括借阅次数,登陆次数,最后登陆时间);4)、罚款管理系统 (1)罚款管理员通过罚款管理员身份认证进入罚款管理系统;(2)罚款处理可以读取借阅信息表再生成超时罚款信息表,通过超时罚款信息表可以生成罚款单给罚款管理员;(3)图书管理员告知罚款系统图书超时未还,经罚款管理员鉴定后,对图书进行注销处理且罚款管理员对借阅者进行罚款处理。DFD 顶层流程图 ER 模型图 程序流程图 数 据 字 典 图书管理系统数据流图中,数据信息和处理过程需要通过数据字典才能描述清楚。在定义的图书管理系统数据字典中,主要对数据流图中的数据项、数据流、数据存储和处理过程进行说明。(1)数据项描述
5、1)数据项名称:借书证号 含义说明:惟一标识一个借书证 类型:字符型 长度:50 逻辑关系:不允许为空 2)数据项名称:用户名 含义说明:读者的名称 类型:字符型 长度:20 逻辑关系:不允许为空 3)数据项名称:密码 含义说明:对用户名和操作员管理员进行加密 类型:字符型 长度:10 逻辑关系:允许为空 4)数据项名称:性别 类型:字符型 长度:10 逻辑关系:允许为空 5)数据项名称:所在系别 类型:字符型 长度:10 逻辑关系:允许为空 6)数据项名称:所在班级 类型:字符型 长度:10 逻辑关系:允许为空 7)数据项名称:操作员名称 类型:字符型 长度:30 逻辑关系:不允许为空 8)
6、数据项名称:操作员简称 含义说明:惟一标识一个操作员 类型:字符型 长度:10 逻辑关系:不允许为空 9)数据项名称:操作员级别 含义说明:对操作员和管理员进行区分 类型:字符型 长度:10 逻辑关系:不允许为空 10)数据项名称:图书编号 含义说明:惟一标识一个图书 类型:字符型 长度:10 逻辑关系:不允许为空 11)数据项名称:图书名称 类型:字符型 长度:50 逻辑关系:不允许为空 12)数据项名称:作者 类型:字符型 长度:50 逻辑关系:不允许为空 13)数据项名称:作者 类型:字符型 长度:50 逻辑关系:不允许为空 14)数据项名称:作者 类型:字符型 长度:50 逻辑关系:不
7、允许为空 15)数据项名称:出版社 类型:字符型 长度:50 逻辑关系:不允许为空 16)数据项名称:出版时间 类型:日期时间型 长度:8 逻辑关系:不允许为空 17)数据项名称:价格 类型:整型 长度:4 逻辑关系:不允许为空 18)数据项名称:备注 类型:字符型 长度:200 逻辑关系:允许为空 19)数据项名称:借书日期 类型:日期时间 长度:8 逻辑关系:不允许为空 20)数据项名称:还书日期 类型:日期时间 长度:8 逻辑关系:不允许为空(2)数据结构描述 1)数据流名称:用户情况 含义说明:定义了一个读者的有关信息 组 成 结 构:用 户 情 况=用 户 名+借 书 证 号+密 码
8、+性 别+所 在 系 别+所 在 班级 2)数据流名称:操作员情况含义说明:定义了一个操作员的有关信息 组 成 结 构:操 作 员 情 况=操 作 员 名 称+操 作 员 简 称+操作 员 级 别+操 作 员密码 3)数据流名称:图书情况 含义说明:定义了一个图书的有关信息 组成结构:图书情况=图书编号+图书名称+作者+出版社+出版时间+价格+备注(3)数据流(非数据项)说明 1)数据流名称:借书单 含义:读者借书时要填写的单据 来源:读者 去向:审核借书 数据流量:250份/天 组成:借书单=借书证号+图书编号+借书日期 2)数据流名称:还书单 含义:读者还书时要填写的单据 来源:读者 去向
9、:审核还书 数据流量:250份/天 组成:还书单=图书编号+还书日期 (4)数据存储说明 1)数据存储名称:图书数据表 含义说明:存放图书的有关信息 组成结构:图书编号+图书名称+作者+出版社+出版时间+价格+备注 说明:书号具有惟一性和非空性 2)数据存储名称:用户信息表 含义说明:存放读者的注册信息 组成结构:用户名+借书证号+密码+性别+所在系别+所在班级 说明:证号具有惟一性和非空性,性别只能是男和女 3)数据存储名称:借书记录 含义说明:存放读者的借书,还书信息 组成结构:借书证号+图书编号+借书日期+还书日期 说明:要求能够立即查询 (5)处理过程说明 1)处理过程名称:图书管理
10、输入:图书情况,输出:图书记录 处理说明:对馆内所有图书按图书编号进行管理,将图书数据数据化,存储图书数据表中。2)处理过程名称:读者管理 输入:读者情况,输出:读者记录 处理说明:建立读者信息表,对读者进行统一编号,实现读者记录 表的增删改维护功能。3)处理过程名称:查看数目 输入:借书请求,读者,输出:借书记录,图书信息 处理说明:实现根据图书编号等查询图书。4)处理过程名称:借书处理 输入:图书情况,读者,借书记录 输出:借书记录 处理说明:确认读者符合借书条件,办理借书手续。5)处理过程名称:还书处理 输入:图书情况,输出:借书记录 处理说明:对照相应的图书编号可办理还书手续。6)处理
11、过程名称:安全管理 输入:操作员情况,用户情况 输出:操作员级别,操作员记录,用户记录 处理说明:通过用户名和口令,确认用户身份,保证系统的安全型。实验二 实验内容:采用面向数据流的设计方法设计系统软件结构,使用 Visio 画出软件层次图。(2 学时)实验要求:学习总体设计的基本方法;掌握面向数据流的设计方法;通过对实验(一)中 DFD 图的分析,使用 Visio 画出软件层次图。编写出初步的系统设计报告 实验结果:顶层数据流图:第 0 层图:第一层图:(1):登入子系统 (2):管理子系统 (3):查询子系统 第二层图:(1):处理新书购入 (2)处理学生借书(3):处理学生还书(4):处
12、理图书注销(5)处理学生信息查询(6)处理图书信息查询 实验三 完成实验(二)中的两到三个主要功能模块的详细设计;编写部分代码(2 学时)要求:学习详细设计的基本方法;掌握详细设计图形工具的使用方法;给出主要功能模块的算法 选择程序设计语言编写主要功能模块代码 图书基本信息录入模块 首先输入图书录入的编号(不为 0)判断是否有重复的编号,若有,则提示用户该书已存在,若无则继续录入书名、作者、出版社、单价。void putin()/*定义录入函数*/int y=1;system(cls);while(y)printf(t 请输入您的书籍的书号:);scanf(%s,library.booklib
13、rary.count.number);printf(t 请输入书名:);scanf(%s,library.booklibrary.count.name);printf(t 请输入作者名:);scanf(%s,library.booklibrary.count.author);printf(t 请输入出版社:);scanf(%s,library.booklibrary.count.publish);printf(t 请输入出版时间:);scanf(%s,library.booklibrary.count.time);printf(t 请输入该书的价格:);fflush(stdin);scanf(
14、%f,&library.booklibrary.count.price);library.count+;printf(n 是否继续录入(1.继续;0,退出录入):);fflush(stdin);scanf(%d,&y);if(y!=1)y=0;break;save();图书基本信息查询模块 用户先选择图书查询方式(按书名查找或按书号查找)输入图书书名或书号后,查找出该图书是否存在,若存在,则显示该图书信息,若不存在则提示用户无此图书信息。void search_by_author()/*定义按作者名查询*/char s320;int flag=1;printf(请输入要查询的书的作者:);ff
15、lush(stdin);scanf(%s,s3);printf(图书号t 图书名t 作者名t 出版社t 出版日期t 图书价格n);for(int i=0;ilibrary.count;i+)if(strcmp(s3,library.booki.author)=0)flag=0;printf(%st%st%st%st%st%6.2fn,library.booki.number,library.booki.name,library.booki.author,library.booki.publish,library.booki.time,library.booki.price);if(flag)p
16、rintf(cannot found!);fflush(stdin);getchar();图书基本信息修改模块 用户输入要修改的书名,判断该书是否存在,若不存在,则提示用户无此图书信息;若存在,则提示用户选择修改项目,然后提示用户图书信息修改完成。void modify()/修改图书信息 char number10;system(cls);/*清屏*/printf(n Please type in the number of the book you want to delete:);fflush(stdin);scanf(%s,number);inti;for(i=0;i90 预期输出:接受
17、违约惩罚 3、测试路径:0-1-2-3 输入条件:retno 存在,borday90 预期输出:接受违约处罚 2、测试路径:0-1-2-7 输入条件:borday=90,borno 不存在 预期输出:不存在该图书 3、测试路径:0-1-2-3-8 输入条件:borday=90,borno存在,onself 不存在 预期输出:图书已借出 4、测试路径:0-1-2-3-4-5 输入条件:borday90 预期输出:接受违约惩罚 2、测试路径:0-1-8 输入条件:borday5 预期输出:超出所借数目的最大 3、测试路径:0-1-2-3-9 输入条件:borday5,bookno 不存在 预期输出
18、:所借图书编号不存在 4、测试路径:0-1-2-3-4-10 输入条件:borday5,bookno 存在,onshelf 不存在 预期输出:书不在架 5、测试路径:0-1-2-3-4-5-6 输入条件:borday5,bookno 存在,onshelf 存在 预期输出:借书成功(4)对于查询功能模块,模块的程序流程图如下:流程图中判定节点为 2,环形复杂度为:2+1=3 采用路径覆盖测试法,测试用例如下:1、测试路径:0-1-6 输入条件:bookno 不存在 预期输出:要查找的图书不存在 2、测试路径:0-1-2-3 输入条件:bookno 存在,onself=1 预期输出:要查找的图书已
19、被借走 3、测试路径:0-1-2-4-5 输入条件:bookno 存在,onself=0 预期输出:返回查找图书信息 2.)确认测试:采用黑盒测试法测试 确认测试,主要是为了检测接口功能应对的各种非预期性输入时系统的可靠性和容错性等性能。本小型图书管理系统将对用户和管理员与图书管理系统之间的交互接口进行测试,所以测试的主要内容有 2 个:图书管理系统和管理员接口,图书管理系统和读者接口。(1)读者与图书管理系统之间的接口 读者登陆图书管理系统,应受到系统如下的约束:用户名需要以字母开头,后面是数字和字母组合,不能超过最大长度为 10,密码长度不超过 6 划分了等价类,情况如下所示:输入条件 有
20、效等价类 编号 无效等价类 编号 用户名开头 字母(a-z)1 非字母 4 余下字符 数字和字母组合 2 非数字和字母 5 字符数 小于 10 3 大于 10 6 有效等价类的测试用例:测试编号 输入条件 预期输出 覆 盖 等价 类 开头 余下字符 个数 T1 a dd32323 8 add32323 1、2、3 无效等价类的测试用例:测 试 编号 输入条件 预 期 输出 覆盖等价类 开头 余下字符 个数 T1 2 dd32323 8 输 入 错误 2、3、4 T2 A*?5 输 入 错误 1、3、5 T3 a 1234567899 11 输 入 错1、2、6 误 实验五 面向对象方法建模(2
21、 学时)实验要求:学习面向对象软件的设计方法;掌握 UML 建模语言的使用,ROSE 工具使用;对前四个实验所建系统的用例图和类图。用例图 1.借阅者请求服务的用例图 用例图说明:(1)Serch for Book:书籍查询用例。(2)Reserve the book:书籍预订用例。(3)Logon the system:登陆系统。(4)Query Info:查询借阅信息。(5)Borrow the book:借阅书籍。(6)Return the book:归还书籍。(7)Return With Fine:还书时交纳罚金。如果借阅者所借书籍超过借阅期限未还,还书的 时候就要交纳一定的罚金。2.
22、图书馆管理员处理借书、还书等的用例图 用例图说明:(1)Get book:书籍归还处理 (2)Lend book:书籍借阅处理 (3)Remove Reservation:删除书籍预订信息 (4)Get With Fine:还书时收取罚金 (5)Check user count:检查用户借阅凭证的合法性,图书管理员在借阅者借书的时候要 检查用户借阅凭证的合法性 3.系统管理员进行系统维护的用例图 用例图说明:(1)Query Borrower Info:查询读者信息 (2)Query Book Info:查询书籍信息 (3)Add Title:增加书目 (4)Remove or Update Title:删除或更新书目(5)Add Book:增加书籍 (6)Remove Book:删除书籍 (7)Add Borrower:添加借阅者帐户 (8)Remove or Update Borrower:删除或更新借阅者帐户信息 类图 对图书馆管理系统中,对需求规格说明书进行分析,完成图书馆管理系统中,系统包图和类图的设计。