软件工程实验总结四个实验.docx
《软件工程实验总结四个实验.docx》由会员分享,可在线阅读,更多相关《软件工程实验总结四个实验.docx(9页珍藏版)》请在冰豆网上搜索。
![软件工程实验总结四个实验.docx](https://file1.bdocx.com/fileroot1/2022-11/23/a9d38ff4-4390-4611-ada4-d00305ac31d4/a9d38ff4-4390-4611-ada4-d00305ac31d41.gif)
软件工程实验总结四个实验
软件工程实验报告
实验一结构化分析实验
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髙层逻辑模型,
4.数据字典:
1)
名字:
授课情况登记表别名:
描述:
记录每个教师的当月完成的课时及任务。
定义:
授课情况登记表=教职工编号+姓名+职务+职称+基本工资+生活补贴+书报费+交通费+洗理费
位罝:
输出到打印机
字名述义置名别描定位
名别描
:
教职工编号
:
唯一的标识一个教职工
:
教职工编号=8{字符}8
:
授课情况登记表
:
义
定
S.字名⅛义位名别描定
每个人当月的实发工资数
记录每个教师当月应发的工资数
每个人当月的实发工资数=课时费+岗位津貼-个人所得税-住房公积金-保险
费
工资明细表
工资明细表
置
位
记录每个教职工每个月应得的和应扣除的费用
工资明细表=每个人当月的实发工资数+课时费+岗位津貼+个人所得税+住
房公积金+保险费
输出到打印机
4.3成本效益分析:
1.低成本系统:
解决方案:
把每月发一次工资改为每两个月发一次工资,则人工计算工资的成本大约可减少一半,即每年可节省1.2万元。
除了己经进行的可行性研宄的费用外,不再需要新的投资,
优缺点:
1)违反常规:
2)教职工反对:
3)不能解决根木问趣.随巷学校规模扩大,人工处理工资事务的费用也将成比例地增加。
2.中等成木系统:
解决方案:
1)建议基本上复制现有系统的功能:
课时表和任务表交到处理工资事务的专用机房,操作员把这些数据通过终端送入计算机
2)数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。
3)然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工资,打印出工资表、工资明细表和财务报表。
优缺点:
1)效率介于离成本系统与低成木系统之间,开发成木也是如此。
2)仍然需要专门人员來操作管理系统,每年仍要在这方而耗费人力,资力。
从长久利益來
看.效益不佳。
3.商成木系统:
I)建立一个中央数据库,为开发完整的管理信息系统做好准备,并且把工资支
付系统作为该系统的第一个子系统。
2)这样做开发成本大约将增加到12万元,然而从工资支付这项应用中获得的经济效益并不变。
最佳方案:
综合以上三个系统的优缺点,中成本系统是最适合的。
草拟开发计划如下:
阶段
需要用的时间(月)
可行性研究
0.5
需求分析
1.0
概要设计1
0.5
详细设计J
1.0
实现
2.0
总计I
5.0
实验二结构化设计实验
1.实验目的:
能够通过结构化分析的结构进行设计,了解设计过程中的模块化原理。
2.实验内容:
在上一次实验己经用结构化分析方法详细地分析了这个工资支付系统,请从
结构化分析所得到的结果(完整数据流图),判断为事务流或是变换流,采用模块化的方法,设计工资支付系统的结构。
最终生成一个工资支付软件结构。
3.实验要求:
写出设计过程、画出工资支付软件结构,用层次图表现
4.实验步骤:
4.1设计过程:
1.供选择的方案
1)低成本系统:
把每月发一次工资改为每两个月发一次工资,则人工
计算工资的成本大约可减少一半,即每年可节省1.2万元。
除了己经进
行的可行性研宂的费用外,不再需要新的投资。
2)中成本系统:
i.建议基本上复制现有系统的功能:
课时表和任务表交到处理工资事
务的专用机房,操作员把这些数据通过终端送入计算机
H.数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。
iii.然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工
资,打印出工资表、工资明细表和财务报表。
3)髙成本系统:
建立一个中央数据库,为开发完整的管理信息系统做好准备,并且把工资支付系统作为该系统的第一个子系统。
2.最佳方案
低成本系统存在的问题:
4)违反常规:
5)教职工反对:
6)不能解决根本问题,随着学校规模扩大,人工处理工资事务的费用也将
成比例地增加。
髙成本系统:
开发成本大约将增加到12万元,然而从工资支付这项应用中获得的经济效益并不变。
所以,中等成本系统是最佳方案,成本居于髙成本与低成本之间,而效益不次于髙成本系统。
3.功能分解
1)取数据
a)收集事务数据
b)审核事务数据
2)计算工资
a)计算正常工资
b)计算超额工资C)更新年度报表
3)打印表格
4.2工资支付软件结构:
实验三软件测试实验(2学时)
一、实验目的:
了解软件测试的基本概念,以及黑盒、白盒测试的基本过程。
二、实验内容:
1.设计测试下列函数的测试方案:
函数SearCh(SOmearrayJSiZe)VaIUe)的功能是,在一个整数数组SOmearray中搜索一个值为ValUe的整数,如果数组中有这个数,则函数值等于该数的下标,否则函数值等于-1。
数组的长度由参数SiZe指定。
假定数组第一个元素的下标为1。
三、实验要求
1.采用黑盒测试的方法,写出相应的测试用例
2.用C语言实现此函数,并且由此设计白盒测试方案(选做)。
四、实验步骤:
1.采用黑盒测试的方法,写出相应的测试用例(假定数组中的值为:
5,
8,-56,235,-65,449)
1)等价划分:
a)有效输入的等价类:
一个正整数输入:
10预期的输出:
-1
一个负整数输入:
-56预期的输出:
3
b)无效输入的等价类:
一个非数字符号输入:
S
输出:
错误一一无效输入一个浮点型数字
输入:
23.1
预期的输入:
错误一一无效的输入若干个空格
输入:
',
预期的输出:
错误一一无效的输入空输入
输入:
预期的输出:
错误一一没有输入数字和非数字符号的组合
输入:
5#
预期的输出:
错误一一无效的输入负号与最髙位数字之间有空格
输入:
-56
预期的输出:
错误一一无效的输入C)合法输入的等价类:
在计算机能表示的最小负整数和零之间的负整数。
输入:
-IOoOO预期的输出:
-1
零
输入:
0预期的输出:
-1
在零和计算机能表示的最大整数之间的正整数输入:
IOOOO预期的输出:
-1
d)非法输入的等价类:
比计算机能表示的最大正整数还大的正整数。
输入••132767
预期的输出:
错误一一无效的输入比计算机能表示的最小负整数还小的负整数。
输入:
-47561
预期的输出:
错误一一无效的输入2)边界值分析:
使输出刚好等于最小的下标输入:
5预期的输出:
1
使输出刚好等于最大的下标输入:
449预期的输出:
6
使输出不是数组的下标(这里为-1)
输入:
500预期的输出:
-1
2.用C语言实现此函数,并且由此设计白盒测试方案(选做)
#include
intSearCh(intSOmearray[],intsize,intValUe){
for(inti=1;i<=size;i++)
{
if(sonearray[i]==value)returni;
}
return-1;
}
VOidmain()
{
intSiZe=6;intvalue;
intarray[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.覆盍路径:
abcdefgifghj
2)判定箝盖:
ValUe=8.,播盍路径:
abcdefgifghjValUe=8.5,羝½路径:
abckbValUe=IO,澄½路径:
abcdefgifk
实验四面向对象分析(2学时)
实验目的:
通过采用面向对象的方法对问题进行分析,建立系统的对象模型和功能模型。
动态模型为选作内容。
实验内容:
某医生开了一家牙科诊所。
他有一个牙科助手、一个牙科保健员和一个接待员。
医生需要一个软件系统來管理预约。
当病人打电话预约时,接待员将査阅预约登记表,如果病人申请的就诊时间与己定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。
如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。
系统将核实病人的名字并提供纪录的病人数据,数据包括病人的病历号等。
在每次治疗或淸洗后,助手或保健员将标记相应的预约诊治己经完成,如果有必要,安排摘人
下一次再來。
系统能够按病人姓名和日期进行査询,能够显示记录的病人数据和预约信息。
接待员可以取消预约,可以打印出前两天预约尚未接诊的病人淸单。
系统可以从病人记录中获知病人的电话号码。
接待员还可以打印出关于所有病人的每天和每周的工作安排。
实验要求:
1.建立牙科诊所管理系统的对象模型
2.用数据流图建立牙科诊所管理系统的功能模型。
3.写出牙科诊所管理系统的脚本(选作)。
4.画出牙科诊所管理系统状态图(选作)。
实验步骤:
1.建立牙科诊所管理系统的对象模型
2.用数据流图建立牙科诊所管理系统的功能摸型。
34
写出牙科诊所管理系统的脚本(选作)。
画出牙科诊所管理系统状态图(选作)。
预约管理系统的正常情况脚本
系统请接待员输入病人预约信息系统查询该病人是否己预约过
如果预约过,且时间冲突,提示接待员建议一个合适的时间[病人接受建议的时间】Or如果没有预约过,系统提示会诊时间病人会诊中,系统记录相关病人数据
会诊完毕,系统更改预约信息中预约诊治是否完成信息系统增加新的预约登记表
预约管理系统的异常情况脚本系统请接待员输入病人预约信息系统査询该病人是否己预约过
如果预约过,且时间冲突,提示接待员建议一个合适的时间如果病人接受建议的时间,系统审核输入信息正确与否输入病人信息有误,提示重新输入
系统审核输入信息正确与否
[输入信息正确]or如果没有预约过,系统提示会诊时间病人会诊中,系统记录相关病人数据会诊完毕,系统更改预约信息中预约诊治是否完成信息系统增加新的预约登记表