实验一 结构化分析实验
1实验目的:
通过此实验了解结构化分析的特点和步骤,和结构化分析所采用的大体图形工具。
2.实验内容:
假设你在一所职业高中工作,负责该校信息系统的建设和保护。财务科长请你研究用学校拥有的pc机生成工资明细表和各类财务报表的可能性。
3.实验要求:
1. 问题概念:请在这个阶段描述你需要解决的问题。包括用户面临的问题和预期的项目规模。最后生成一份问题概念报告书。
2. 可行性研究:在这个阶段产生处置工资事务的大致进程,画出高层逻辑模型,而且画出相应的数据流图,成立数据字典。 3. 对此系统进行本钱效益分析。
4.实验步骤: 问题概念报告书
1.项目名称:工资支付 2.问题描述:
该校一直由会计人工计算工资并编制财务报表,随着学校规模扩大工作量也愈来愈大。目前每一个月都需要两名会计紧张工作半个月才能完成,不仅效率低而且本钱高。此后学校规模将进一步扩大,人工计算工资的本钱还会进一步提高。 3.项目目标:
1) 研究开发费用较低的新工资支付系统的可能性。 4项目规模:
1) 开发本钱应该不超过万元 5.初步假想:
1) 用学校自己的计算机系统生成工资明细表和财务报表 6.可行性研究:
为了更全面地研究工资支付项目的可能性,建议进行大约历时两周的可行性研究。这个研究的本钱不超过4000元。
可行性研究:
1
-
1. 处置工资事务的大致进程 :
1) 每一个月月末教师把他们当月实际讲课时数记录在课时表上,由各系汇总后交给财务
科,职工把他们当月完成承包任务的情况记录在任务表上,汇总后交给财务科。 2) 两名会计按照这些原始数据计算每名教职工的工资,编制工资表、工资明细表和财务
报表。然后,把记有每名教职工工资总额的工资表报送银行。
3) 由银行把钱打到每名教职工的工资存折上,同时把工资明细表发给每名教职工。 2高层逻辑模型:
D1:课时表和任务表事务数据会计1.1审核数据D1.2加工事务数据事务数据2汇总数据事务数据银行D2:工资明细表D2:财务报表
.数据流图:
3分发工资明细表D1:课时表授课时数职工教师D3:工资表3发工资D4:工资明细表职工教师1.1登记1.2汇总课时表任务表2.12.2编制表格计算工资银行承包任务完成情况D2:任务表 D5:财务报表
数据字典:
1)
名字:讲课情况记录表 别名:
描述:记录每一个教师的当月完成的课时及任务。
概念:讲课情况记录表=教职工编号+姓名+职务+职称+大体工资+生活补助+书报费+
交通费+洗理费 位置:输出到打印机 2)
名字:教职工编号 别名:
描述:唯一的标识一个教职工 概念:教职工编号=8{字符}8
2
-
位置:讲课情况记录表 3)
名字:每一个人当月的实发工资数 别名:
描述:记录每一个教师当月应发的工资数
概念:每一个人当月的实发工资数=课时费+职位津贴-个人所得税-住房公积金-保险费 位置:工资明细表 4)
名字:工资明细表 别名:
描述:记录每一个教职工每一个月应得的和应扣除的费用 概念:工资明细表=每一个人当月的实发工资数+课时费+职位津贴+个人所得税+住房公积
金+保险费 位置:输出到打印机
本钱效益分析:
1.低本钱系统:
解决方案:
把每一个月发一次工资改成每两个月发一次工资,则人工计算工资的本钱大约可减少一半,即每一年可节省万元。除已经进行的可行性研究的费用外,再也不需要新的投资。
优缺点:
1) 违背常规; 2) 教职工反对;
3) 不能解决根本问题,随着学校规模扩大,人工处置工资事务的费用也将成比例地增加。
2.中等本钱系统:
解决方案:
1) 建议大体上复制现有系统的功能:课时表和任务表交处处置工资事务的专用机房,操
作员把这些数据通过终端送入计算机
2) 数据搜集程序接收并校核这些事务数据,把它们存储在磁盘上。 3) 然后运行工资支付程序,这个程序从磁盘中读取事务数据,计算工资,打印出工资表、
工资明细表和财务报表。
优缺点:
1) 效率介于高本钱系统与低本钱系统之间,开发本钱也是如此。
2) 仍然需要专门人员来操作管理系统,每一年仍要在这方面花费人力,资力。从长久
利益来看,效益不佳。
3.高本钱系统:
1) 成立一个中央数据库,为开发完整的管理信息系统做好准备,而且把工资支付系统作
为该系统的第一个子系统。
2) 这样做开发本钱大约将增加到12万元,但是从工资支付这项应用中取得的经济效益
并非变。
3
-
最佳方案:
综合以上三个系统的优缺点,中本钱系统是最适合的。起草开发计划如下: 阶段 需要用的时间(月) 可行性研究 需求分析 概要设计 详细设计 实现 总计
4
-
实验二 结构化设计实验
1实验目的
能够通过结构化分析的结构进行设计,了解设计进程中的模块化原理。
2实验内容:
在上一次实验已经用结构化分析方式详细地分析了这个工资支付系统,请从结构化分析所取得的结果(完整数据流图),判断为事务流或是变换流,采用模块化的方式,设计工资支付系统的结构。最终生成一个工资支付软件结构。
3实验要求:
写出设计进程、画出工资支付软件结构,用层次图表现。
4实验步骤
4.1.推荐最佳方案 4.2.起草开发计划
1) 实现中等本钱的工资支付系统的粗略计划 4.3.写出文档提交审查 需求分析
1) 沿数据流图回溯
工资明细表上包括的数据元素: 教职工编号 教职工姓名 大体工资 职称 职务 生活补助 书报费 交通费 洗理费 课时费 工资总额 实发工资
2) 写出文档初稿
结构化分析方式要求,在需求分析阶段完成的正式文档(软件需求规格说明书)中必需
5
-
至少包括三个重要成份:数据流图,数据字典,和一组黑盒形式的算法描述(IPO表)。 名字:工资总额 别名:总工资
描述:扣除个税、公积金和保险之前的月工资 概念:数,最大值= 位置:工资明细表 3) 概念逻辑系统
把新发现的数据源点、数据处置和数据存储补充到数据流图中,取得新的数据流图。 更新人事数据 年度数据
更新年度数据
年度数据包括的数据元素 教职工编号 教职工姓名 本年度累计工资总额 本年度累计实发工资 本年度累计授课时数 上年度月平均工资 工资支付软件结构
补充后的数据流图
细化数据流图
6
-
书写正式文档
编写软件需求规格说明书。
技术审查和管理复审
技术审查:外聘审查小组的组长,会计和系统分析员作为小组成员。
管理复审:财务科长和校长对费用支出和开发进度,从管理角度进行审查
实验三 软件测试实验
1实验目的
了解软件测试的大体概念,和黑盒、白盒测试的大体进程。
2实验内容:
设计测试下列函数的测试方案:
函数Search(somearray,size,value)的功能是,在一个整数数组somearray中搜索一个值为value的整数,若是数组中有这个数,则函数值等于该数的下标,不然函数值等于-1。数组的长度由参数size指定。假定数组第一个元素的下标为1。
3实验要求:
1.采用黑盒测试的方式,写出相应的测试用例
4实验步骤:
黑盒测试(假定数组中的值为:5,8,-56,235,-65,449) 1) 等价划分:
a) 有效输入的等价类: 一个正整数 输入:10 预期的输出:-1 一个负整数 输入:-56
预期的输出:3 b) 无效输入的等价类: 一个非数字符号 输入:S
输出:错误——无效输入 一个浮点型数字 输入:
预期的输入:错误——无效的输入 若干个空格 输入:‘ ’
预期的输出:错误——无效的输入 空输入
7
-
输入:
预期的输出:错误——没有输入 数字和非数字符号的组合 输入:5#
预期的输出:错误——无效的输入 负号与最高位数字之间有空格 输入:- 56
预期的输出:错误——无效的输入 c) 合法输入的等价类:
在计算性能表示的最小负整数和零之间的负整数。 输入:-10000 预期的输出:-1 零
输入:0
预期的输出:-1
在零和计算性能表示的最大整数之间的正整数 输入:10000 预期的输出:-1 d) 非法输入的等价类:
比计算性能表示的最大正整数还大的正整数。 输入:132767
预期的输出:错误——无效的输入
比计算性能表示的最小负整数还小的负整数。 输入:-47561
预期的输出:错误——无效的输入
2) 边界值分析:
使输出恰好等于最小的下标 输入:5
预期的输出:1
使输出恰好等于最大的下标 输入:449
预期的输出:6
使输出不是数组的下标(这里为-1) 输入:500
预期的输出:-1
用c语言实现此函数,而且由此设计白盒测试方案(选做)。 #include<>
int Search(int somearray[],int size,int value) {
for(int i=1;i<=size;i++) {
if(sonearray[i]==value) return i; }
8
-
return -1;
}
void main() {
int size=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); }
开始输入一个整数value否value是整数吗?是Search(soneArray,size+1,value)int i=1结束i++否否i<=size吗?是sonearray[i]==value吗?是return i1) 语句覆盖:
value=8,覆盖路径:abcdefgifghj
9
-
2) 判定覆盖:
Value=8.,覆盖路径:abcdefgifghj Value=,覆盖路径:abckb
Value=10,覆盖路径:abcdefgifk
实验四 面向对象分析
1实验目的:
通过采用面向对象的方式对问题进行分析,成立系统的对象模型和功能模型。动态模型为选作内容。
2实验内容:
某医生开了一家牙科诊所。他有一个牙科助手、一个牙科保健员和一个接待员。医生需要一个软件系统来管理预约。
当病人打电话预约时,接待员将查阅预约记录表,若是病人申请的就医时间与已定下的预约时间冲突,则接待员建议一个就医时间以安排病人及早取得诊治。若是病人同意建议的就医时间,接待员将输入约按时间和病人的名字。系统将核实病人的名字并提供纪录的病人数据,数据包括病人的病历号等。在每次医治或清洗后,助手或保健员将标记相应的预约诊治已经完成,若是有必要,安排病人下一次再来。
系统能够按病人姓名和日期进行查询,能够显示记录的病人数据和预约信息。接待员可以取消预约,可以打印出前两天预约尚未接诊的病人清单。系统可以从病人记录中获知病人的电话号码。接待员还可以打印出关于所有病人的天天和每周的工作安排。
3实验要求:
1.成立牙科诊所管理系统的对象模型
2.用数据流图成立牙科诊所管理系统的功能模型。 3.写出牙科诊所管理系统的脚本(选作)。 4.画出牙科诊所管理系统状态图(选作)。
4实验步骤:
成立牙科诊所管理系统的对象模型
10
-
预约登记表-姓名 : string-预约时间 : object-病历号 : int1*1*接待员-姓名 : string+接听电话() : void+查阅预约登记表() : bool+建议就诊时间() : object+预约登记() : void+取消预约() : bool+打印预约尚未接诊的病人清单() : void+打印工作安排() : void病人-姓名 : string+打电话预约() : void+是否接受建议() : bool11诊所管理系统-病历号 : int-病人姓名 : string-预约日期 : object-病人联系方式 : string+核实病人名字() : bool+提供病人数据() : int+查询预约信息() : void+显示信息() : void*牙科保健员11{OR}*牙科助手-姓名 : string+标记预约诊治已完成() : bool+安排病人下次会诊() : void-姓名 : string+标记预约诊治已完成() : bool+安排病人下次会诊() : void
用数据流图成立牙科诊所管理系统的功能模型。
11
-
3同意就诊时间就诊时间病人就诊时间1预约预约信息接待员4输入约定时间和病人姓名预约系统2.2建议就诊时间预约信息2.1接收预约信息5.2提供病人数据5.1核实病人姓名D1:预约登记表D1:预约登记表牙科助手6.1标记预约诊治已完成牙科保健员D1:预约登记表6.2安排病人下次会诊预约系统
写出牙科诊所管理系统的脚本(选作)。 画出牙科诊所管理系统状态图(选作)。
预约管理系统的正常情况脚本
系统请接待员输入病人预约信息 系统查询该病人是否已预约过
如果预约过,且时间冲突,提示接待员建议一个合适的时间 [病人接受建议的时间]or如果没有预约过,系统提示会诊时间 病人会诊中,系统记录相关病人数据
会诊完毕,系统更改预约信息中预约诊治是否完成信息 系统增加新的预约登记表
预约管理系统的异样情况脚本
系统请接待员输入病人预约信息 系统查询该病人是否已预约过
如果预约过,且时间冲突,提示接待员建议一个合适的时间 如果病人接受建议的时间,系统审核输入信息正确与否 输入病人信息有误,提示重新输入 系统审核输入信息正确与否
[输入信息正确]or如果没有预约过,系统提示会诊时间 病人会诊中,系统记录相关病人数据
会诊完毕,系统更改预约信息中预约诊治是否完成信息 系统增加新的预约登记表
12
因篇幅问题不能全部显示,请点此查看更多更全内容