软件工程实验报告72741

软件工程实验报告72741
软件工程实验报告72741

武汉轻工大学

软件工程实验报告

题目:实验1—4

专业:软件工程

班级:软件工程1403

学号:***********

姓名:*******

指导老师:董正言老师

实验一结构化分析实验

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. 数据流图:

D3:工资表

银行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万元,然而从工资支付这项应用中获得的经济效益并不

变。

最佳方案:

综合以上三个系统的优缺点,中成本系统是最适合的。草拟开发计划如下:

5.实验总结

此实验让我对一个事件可以抽象为一个用例,然后根据用例的基本的法则来考虑设计一个问题并具体抽象的找出设计方案和解决方案。这有利于对一个具体的问题从抽象的角度,用计算机语言和程序去解决。感觉很有用。

实验二结构化设计实验

1.实验目的

能够通过结构化分析的结构进行设计,了解设计过程中的模块化原理。

2.实验内容

在上一次实验已经用结构化分析方法详细地分析了这个工资支付系统,请从结构化分析所得到的结果(完整数据流图),判断为事务流或是变换流,采用模块化的方法,设计工资支付系统的结构。最终生成一个工资支付软件结构。

3.实验要求

写出设计过程、画出工资支付软件结构,用层次图表现

4.实验步骤

4.1设计过程

1.供选择的方案

1)低成本系统:把每月发一次工资改为每两个月发一次工资,则人工计

算工资的成本大约可减少一半,即每年可节省1.2万元。除了已经进行的可行性研究的费用外,不再需要新的投资。

2)中成本系统:

i.建议基本上复制现有系统的功能:课时表和任务表交到处理工资事务的专用机

房,操作员把这些数据通过终端送入计算机

ii.数据收集程序接收并校核这些事务数据,把它们存储在磁盘上。

iii.然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工资,打印出工

资表、工资明细表和财务报表。

3)高成本系统:建立一个中央数据库,为开发完整的管理信息系统做好准备,并且把工

资支付系统作为该系统的第一个子系统。

2.最佳方案

低成本系统存在的问题:

1)违反常规;

2)教职工反对;

3)不能解决根本问题,随着学校规模扩大,人工处理工资事务的费用也将成比例地增加。

高成本系统:

开发成本大约将增加到12万元,然而从工资支付这项应用中获得的经济效益并不变。

所以,中等成本系统是最佳方案,成本居于高成本与低成本之间,而效益不次于高成本系统。

3.功能分解

1)取数据

a)收集事务数据

b)审核事务数据

2)计算工资

a)计算正常工资

b)计算超额工资

c)更新年度报表

3)打印表格

4.2工资支付软件结构

本次实验室结构化的设计,通过上次的结构化的分析,对结构化设计有了一定的了解,再通过本次结构化的设计,对教职工的工资的计算统计和发放,以及记录和数据的更新处理有了更加深刻的理解。

实验三软件测试实验(2学时)

1.实验目的

了解软件测试的基本概念,以及黑盒、白盒测试的基本过程。

2.实验内容

a)设计测试下列函数的测试方案:

函数Search(somearray,size,value)的功能是,在一个整数数组somearray中搜索一个值为value 的整数,如果数组中有这个数,则函数值等于该数的下标,否则函数值等于-1。数组的长度由参数size指定。假定数组第一个元素的下标为1。

1.采用黑盒测试的方法,写出相应的测试用例

2.用c语言实现此函数,并且由此设计白盒测试方案(选做)。

4.实验步骤

1.采用黑盒测试的方法,写出相应的测试用例(假定数组中的值为:5,8,-56,235,-65,449)

1)等价划分:

a)有效输入的等价类:

一个正整数

输入:10

预期的输出:-1

一个负整数

输入:-56

预期的输出:3

b)无效输入的等价类:

一个非数字符号

输入:S

输出:错误——无效输入

一个浮点型数字

输入:23.1

预期的输入:错误——无效的输入

若干个空格

输入:‘’

预期的输出:错误——无效的输入

空输入

输入:

预期的输出:错误——没有输入

数字和非数字符号的组合

输入:5#

预期的输出:错误——无效的输入

负号与最高位数字之间有空格

输入:- 56

预期的输出:错误——无效的输入

c)合法输入的等价类:

在计算机能表示的最小负整数和零之间的负整数。

输入:-10000

预期的输出:-1

输入:0

预期的输出:-1

在零和计算机能表示的最大整数之间的正整数输入:10000

预期的输出:-1

d)非法输入的等价类:

比计算机能表示的最大正整数还大的正整数。

输入:132767

预期的输出:错误——无效的输入

比计算机能表示的最小负整数还小的负整数。

输入:-47561

预期的输出:错误——无效的输入

2)边界值分析:

使输出刚好等于最小的下标

输入:5

预期的输出:1

使输出刚好等于最大的下标

输入:449

预期的输出:6

使输出不是数组的下标(这里为-1)

输入:500

预期的输出:-1

2.用c语言实现此函数,并且由此设计白盒测试方案(选做)。

这里只给出流程图:

5.实验总结

基于对软件测试的基本概念,黑盒测试是黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试;白盒测试全面了解程序内部逻辑结构、对所有逻辑路径进行测试。所以相对的来说,白盒测试会更加的细致和困难,花费的时间和精力以及投入会比较大,但是这样的测试对软件的掌握和维护会更加的有利。

实验四面向对象分析(2学时)

1.实验目的

通过采用面向对象的方法对问题进行分析,建立系统的对象模型和功能模型。动态模型为选作内容。

2.实验内容

某医生开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。医生需要一个软件系统来管理预约。

当病人打电话预约时,接待员将查阅预约登记表,如果病人申请的就诊时间与已定下的预约时间冲突,则接待员建议一个就诊时间以安排病人尽早得到诊治。如果病人同意建议的就诊时间,接待员将输入约定时间和病人的名字。系统将核实病人的名字并提供纪录的病人数据,数据包括病人的病历号等。在每次治疗或清洗后,助手或保健员将标记相应的预约诊治已经完成,如果有必要,安排病人下一次再来。

系统能够按病人姓名和日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关于所有病人的每天和每周的工作安排。

3.实验要求

1.建立牙科诊所管理系统的对象模型

2.用数据流图建立牙科诊所管理系统的功能模型。

3.写出牙科诊所管理系统的脚本(选作)。

4.画出牙科诊所管理系统状态图(选作)。

4.实验步骤

1.建立牙科诊所管理系统的对象模型

2.用数据流图建立牙科诊所管理系统的功能模型。

3.写出牙科诊所管理系统的脚本(选作)。

4.画出牙科诊所管理系统状态图(选作)。

预约管理系统的正常情况脚本

系统请接待员输入病人预约信息

系统查询该病人是否已预约过

如果预约过,且时间冲突,提示接待员建议一个合适的时间

[病人接受建议的时间]or如果没有预约过,系统提示会诊时间

病人会诊中,系统记录相关病人数据

会诊完毕,系统更改预约信息中预约诊治是否完成信息

系统增加新的预约登记表

预约管理系统的异常情况脚本

系统请接待员输入病人预约信息

系统查询该病人是否已预约过

如果预约过,且时间冲突,提示接待员建议一个合适的时间

如果病人接受建议的时间,系统审核输入信息正确与否

输入病人信息有误,提示重新输入

系统审核输入信息正确与否

[输入信息正确]or如果没有预约过,系统提示会诊时间

病人会诊中,系统记录相关病人数据

会诊完毕,系统更改预约信息中预约诊治是否完成信息

系统增加新的预约登记表

5.实验总结

通过采用面向对象的方法对问题进行分析,建立系统的对象模型,通过数据流图建立系统的功能模型。

相关主题
相关文档
最新文档