武汉轻工大学软件工程实验报告院系:数学与计算机学院班级:软件工程1504姓名: 赵佳璐学号: 1508100065实验一结构化分析实验1实验目得:通过此实验了解结构化分析得特点与步骤,以及结构化分析所采用得基本图形工具。
2、实验内容:假设您在一所职业高中工作,负责该校信息系统得建设与维护。
财务科长请您研究用学校拥有得pc机生成工资明细表与各种财务报表得可能性。
3、实验要求:1.问题定义:请在这个阶段描述您需要解决得问题。
包括用户面临得问题与预期得项目规模。
最后生成一份问题定义报告书。
2.可行性研究:在这个阶段产生处理工资事务得大致过程,画出高层逻辑模型,并且画出相应得数据流图,建立数据字典。
3.对此系统进行成本效益分析。
4、实验步骤:4、1问题定义报告书1、项目名称:工资支付2、问题描述:该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也越来越大。
目前每个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且成本高。
今后学校规模将进一步扩大,人工计算工资得成本还会进一步提高。
3、项目目标:1)研究开发费用较低得新工资支付系统得可能性。
4项目规模:1)开发成本应该不超过7、2万元5、初步设想:1)用学校自己得计算机系统生成工资明细表与财务报表6、可行性研究:为了更全面地研究工资支付项目得可能性,建议进行大约历时两周得可行性研究。
这个研究得成本不超过4000元。
4、2可行性研究:1、处理工资事务得大致过程:1)每月月末教师把她们当月实际授课时数登记在课时表上,由各系汇总后交给财务科,职工把她们当月完成承包任务得情况登记在任务表上,汇总后交给财务科。
2)两名会计根据这些原始数据计算每名教职工得工资,编制工资表、工资明细表与财务报表。
然后,把记有每名教职工工资总额得工资表报送银行。
3)由银行把钱打到每名教职工得工资存折上,同时把工资明细表发给每名教职工。
2高层逻辑模型:3、数据流图:4、数据字典:1)名字:授课情况登记表别名:描述:记录每个教师得当月完成得课时及任务。
定义:授课情况登记表=教职工编号+姓名+职务+职称+基本工资+生活补贴+书报费+交通费+洗理费位置:输出到打印机2)名字:教职工编号别名:描述:唯一得标识一个教职工定义:教职工编号=8{字符}8位置:授课情况登记表3)名字:每个人当月得实发工资数别名:描述:记录每个教师当月应发得工资数定义:每个人当月得实发工资数=课时费+岗位津贴-个人所得税-住房公积金-保险费位置:工资明细表4)名字:工资明细表别名:描述:记录每个教职工每个月应得得与应扣除得费用定义:工资明细表=每个人当月得实发工资数+课时费+岗位津贴+个人所得税+住房公积金+保险费位置:输出到打印机4、3成本效益分析:1、低成本系统:解决方案:把每月发一次工资改为每两个月发一次工资,则人工计算工资得成本大约可减少一半,即每年可节省1、2万元。
除了已经进行得可行性研究得费用外,不再需要新得投资。
优缺点:1)违反常规;2)教职工反对;3)不能解决根本问题,随着学校规模扩大,人工处理工资事务得费用也将成比例地增加。
2、中等成本系统:解决方案:1)建议基本上复制现有系统得功能:课时表与任务表交到处理工资事务得专用机房,操作员把这些数据通过终端送入计算机2)数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。
3)然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工资,打印出工资表、工资明细表与财务报表。
优缺点:1)效率介于高成本系统与低成本系统之间,开发成本也就是如此。
2)仍然需要专门人员来操作管理系统,每年仍要在这方面耗费人力,资力。
从长久利益来瞧,效益不佳。
3、高成本系统:1)建立一个中央数据库,为开发完整得管理信息系统做好准备,并且把工资支付系统作为该系统得第一个子系统。
2)这样做开发成本大约将增加到12万元,然而从工资支付这项应用中获得得经济效益并不变。
最佳方案::实验二结构化设计实验1、实验目得:能够通过结构化分析得结构进行设计,了解设计过程中得模块化原理。
2、实验内容:在上一次实验已经用结构化分析方法详细地分析了这个工资支付系统,请从结构化分析所得到得结果(完整数据流图),判断为事务流或就是变换流,采用模块化得方法,设计工资支付系统得结构。
最终生成一个工资支付软件结构。
3、实验要求:写出设计过程、画出工资支付软件结构,用层次图表现4、实验步骤:4、1设计过程:1.供选择得方案1)低成本系统:把每月发一次工资改为每两个月发一次工资,则人工计算工资得成本大约可减少一半,即每年可节省1、2万元。
除了已经进行得可行性研究得费用外,不再需要新得投资。
2)中成本系统:i.建议基本上复制现有系统得功能:课时表与任务表交到处理工资事务得专用机房,操作员把这些数据通过终端送入计算机ii.数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。
iii.然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工资,打印出工资表、工资明细表与财务报表。
3)高成本系统:建立一个中央数据库,为开发完整得管理信息系统做好准备,并且把工资支付系统作为该系统得第一个子系统。
2.最佳方案低成本系统存在得问题:4)违反常规;5)教职工反对;6)不能解决根本问题,随着学校规模扩大,人工处理工资事务得费用也将成比例地增加。
高成本系统:开发成本大约将增加到12万元,然而从工资支付这项应用中获得得经济效益并不变。
所以,中等成本系统就是最佳方案,成本居于高成本与低成本之间,而效益不次于高成本系统。
3.功能分解1)取数据a)收集事务数据b)审核事务数据2)计算工资a)计算正常工资b)计算超额工资c)更新年度报表3)打印表格4、2工资支付软件结构:实验三软件测试实验(2学时)一、实验目得:了解软件测试得基本概念,以及黑盒、白盒测试得基本过程。
二、实验内容:1.设计测试下列函数得测试方案:函数Search(somearray,size,value)得功能就是,在一个整数数组somearray中搜索一个值为value得整数,如果数组中有这个数,则函数值等于该数得下标,否则函数值等于-1。
数组得长度由参数size指定。
假定数组第一个元素得下标为1。
三、实验要求1.采用黑盒测试得方法,写出相应得测试用例2.用c语言实现此函数,并且由此设计白盒测试方案(选做)。
四、实验步骤:1.采用黑盒测试得方法,写出相应得测试用例(假定数组中得值为:5,8,-56,235,-65,449)1)等价划分:a)有效输入得等价类:●一个正整数输入:10预期得输出:-1●一个负整数输入:-56预期得输出:3b)无效输入得等价类:●一个非数字符号输入:S输出:错误——无效输入●一个浮点型数字输入:23、1预期得输入:错误——无效得输入●若干个空格输入:‘’预期得输出:错误——无效得输入●空输入输入:预期得输出:错误——没有输入●数字与非数字符号得组合输入:5#预期得输出:错误——无效得输入●负号与最高位数字之间有空格输入:- 56预期得输出:错误——无效得输入c)合法输入得等价类:●在计算机能表示得最小负整数与零之间得负整数。
输入:-10000预期得输出:-1●零输入:0预期得输出:-1●在零与计算机能表示得最大整数之间得正整数输入:10000预期得输出:-1d)非法输入得等价类:●比计算机能表示得最大正整数还大得正整数。
输入:132767预期得输出:错误——无效得输入●比计算机能表示得最小负整数还小得负整数。
输入:-47561预期得输出:错误——无效得输入2)边界值分析:●使输出刚好等于最小得下标输入:5预期得输出:1●使输出刚好等于最大得下标输入:449预期得输出:6●使输出不就是数组得下标(这里为-1)输入:500预期得输出:-12.用c语言实现此函数,并且由此设计白盒测试方案(选做)。
#include<stdio、h>int Search(int somearray[],int size,intvalue){for(int i=1;i<=size;i++){if(sonearray[i]==value)return i;}return-1;}void main(){intsize=6;int value;ﻩint array[size]={5,8,-56,235,-65,449};do{printf(“请输入一个整数:”);scanf(“%d”,&value);}while(int(value)!=value);if(int(value)==value)Search(array,size+1,value); }1)语句覆盖:value=8,覆盖路径:abcdefgifghj2)判定覆盖:Value=8、,覆盖路径:abcdefgifghjValue=8、5,覆盖路径:abckbValue=10,覆盖路径:abcdefgifk实验四面向对象分析(2学时)实验目得:通过采用面向对象得方法对问题进行分析,建立系统得对象模型与功能模型。
动态模型为选作内容。
实验内容:某医生开了一家牙科诊所。
她有一个牙科助手、一个牙科保健员与一个接待员。
医生需要一个软件系统来管理预约。
当病人打电话预约时,接待员将查阅预约登记表,如果病人申请得就诊时间与已定下得预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。
如果病人同意建议得就诊时间,接待员将输入约定时间与病人得名字。
系统将核实病人得名字并提供纪录得病人数据,数据包括病人得病历号等。
在每次治疗或清洗后,助手或保健员将标记相应得预约诊治已经完成,如果有必要,安排病人下一次再来。
系统能够按病人姓名与日期进行查询,能够显示记录得病人数据与预约信息。
接待员可以取消预约,可以打印出前两天预约尚未接诊得病人清单。
系统可以从病人记录中获知病人得电话号码。
接待员还可以打印出关于所有病人得每天与每周得工作安排。
实验要求:1.建立牙科诊所管理系统得对象模型2.用数据流图建立牙科诊所管理系统得功能模型。
3.写出牙科诊所管理系统得脚本(选作)。
4.画出牙科诊所管理系统状态图(选作)。
实验步骤:1.建立牙科诊所管理系统得对象模型2.用数据流图建立牙科诊所管理系统得功能模型。
3.写出牙科诊所管理系统得脚本(选作)。
4.画出牙科诊所管理系统状态图(选作)。
预约管理系统得正常情况脚本●系统请接待员输入病人预约信息●系统查询该病人就是否已预约过●如果预约过,且时间冲突,提示接待员建议一个合适得时间●[病人接受建议得时间]or如果没有预约过,系统提示会诊时间●病人会诊中,系统记录相关病人数据●会诊完毕,系统更改预约信息中预约诊治就是否完成信息●系统增加新得预约登记表预约管理系统得异常情况脚本●系统请接待员输入病人预约信息●系统查询该病人就是否已预约过●如果预约过,且时间冲突,提示接待员建议一个合适得时间●如果病人接受建议得时间,系统审核输入信息正确与否●输入病人信息有误,提示重新输入●系统审核输入信息正确与否●[输入信息正确]or如果没有预约过,系统提示会诊时间●病人会诊中,系统记录相关病人数据●会诊完毕,系统更改预约信息中预约诊治就是否完成信息●系统增加新得预约登记表。