版本说明
目 录
1.... 引言... 3
1.1 编写目的... 3
1.2 项目背景... 3
1.3 定义... 3
1.4 参考资料... 3
2.... 项目概述... 3
2.1 软件总体说明... 3
2.2 总体数据流图... 3
2.3 使用者的特点... 4
2.4 条件和限制... 4
3.... 运行环境... 4
3.1 运行软件系统所需的设备能力... 4
3.2 支持软件环境... 4
3.3 接口... 4
3.4 故障处理... 4
4.... 软件详细要求... 4
4.1 性能需求... 4
4.2 功能需求... 4
4.2.1输入工程师资料... 5
4.2.2删除指定工程师资料... 5
4.2.3查询指定工程师资料... 6
4.2.4修改指定工程师资料... 6
4.2.5计算工程师月薪水... 6
4.2.6保存工程师资料... 6
4.2.7输入工程师资料... 6
4.2.8输出工程师资料... 6
4.2.9清空所有工程师资料... 6
4.2.10打印工程师资料信息报表... 6
4.2.11从文件重新得到工程师资料... 7
4.2.12退出系统... 7
5.... 数据需求... 7
1 引言
1.1 编写目的
本软件需求规格说明的目的在于为《软件测试工程师管理系统》项目的开发提供:
a. 提出软件总体要求,作为软件开发人员和最终使用者之间相互了解的基础;
b. 提出软件功能要求、性能要求、接口要求、数据结构等要求,作为软件设计和程序编制的基础;
c. 为软件测试提供依据。
本软件需求规格说明的读者对象主要是项目主管、软件设计人员和最终用户。
1.2 项目背景
该项目的实施主要是为提高北京梅梅公司的人事管理效率而编制的。
1.3 定义
1.4 参考资料
a. 《软件测试工程师管理项目条款》—北京梅梅公司。
2 项目概述
2.1 软件总体说明
本项目的目标是完成一个计算机人事管理系统,实现人事管理的自动化。系统的主要功能包括:人事信息的录入、管理、查询、删除、生成报表等。
进入本系统提供用户选择菜单,要求人机界面友好,具有错误处理和故障恢复能力。
2.2 总体数据流图
按照功能设计,系统数据流图如下:
图一:系统数据流图
2.3 使用者的特点
本软件的最终用户是北京梅梅公司的人事专员和财务专员。具有计算机操作和使用技能。且熟悉业务。
2.4 条件和限制
为了使本系统尽快投入使用,要求本系统的开发周期较短,要求在年内两个月内完成。因此要求系统设计一人,程序员一人,测试工程师一人。
3 运行环境
本软件的最终运行环境是操作系统DOS5.0以上,或Windows95/98/2000/me/NT/XP等DOS环境上,要求有中文平台或操作系统为中文的计算机上,配有一台打印机。
3.1 运行软件系统所需的设备能力
一台微机:主频>=100,硬盘>=1M,内存>=1M;
一台打印机;
3.2 支持软件环境
操作系统:DOS5.0以上,或Windows95/98/2000/me/NT/XP。
开发环境:Microsoft Visual C++6.0;
3.3 接口
该系统硬件和软件与外界软件没有接口,也不需要网络环境;
在界面上,要求使用DOS菜单选择,用户可以随时选择菜单进行;
在操作上,要求操作简单,通过少数的选择菜单或单击按钮即可完成操作;
在系统运行任何阶段,提示给用户当前系统的状态。
3.4 故障处理
当系统缺少参数等情况时,给出提示,并返回安全状态;
当系统出现故障无法返回时,用户的数据不能丢失,重新其它系统,可实现数据恢复。
4 软件详细要求
4.1 性能需求
要求本系统在完成各项功能的同时,要求系统处理迅速,处理事务需要长时间时,提示用户等待且等待时间在用户可接收的范围之内。
4.2 功能需求
根据系统功能的需要,对系统的功能进行划分,表示如下图:
图二:软件测试工程师管理系统功能
下面详述每一项功能的要求:
4.2.1输入工程师资料
工程师的资料主要包括:编号、姓名、性别、生日、籍贯、学历、地址、电话、工龄、基本薪水。
要求:编号为数字,编号使用4为位数字,格式为0001、0002….,不能重复。
姓名:为字符,最长不超过20个字符。不能为空。
性别:用数字表示0表示女,1表示男。不能为其它数值。
生日:用数字分别表示年、月、日。格式例如:年使用四位数字表示,月使用1-12表示, 日使用1-31表示。范围是(1900,2004)
籍贯:使用字符表示,最长不超过10个字符。不能为空。
学历:使用数字表示高中0、学士1、硕士2、博士3、其它为4。不能为其它数字。
地址:使用字符表示,最长不超过30个字符。不能为空。
电话:使用字符表示,最长不超过15个字符。不能为空。
工龄:使用数字表示,工龄范围是(0,50]。
基本薪水:为实型,不能为0。
对这些输入的信息进行合法性检查。保证系统接收合法的输入。用户输入错误时具有提示功能和重新输入功能。
4.2.2删除指定工程师资料
可根据两种方式删除指定工程师资料,一是工程师的编号,二是工程师的姓名。删除资料后,该工程师的信息则完全在系统中删除了。其它工程师编号不变。
4.2.3查询指定工程师资料
可根据两种方式查询指定工程师资料,一是工程师的编号,二是工程师的姓名。查询后打印该工程师的信息,如果没有该工程师资料则给用户提示。
4.2.4修改指定工程师资料
可根据两种方式找到要修改的工程师,一是工程师的编号,二是工程师的姓名。打印原来该工程师的信息,同时提示用户进行修改。
4.2.5计算工程师月薪水
根据当月的月效益,计算工程师的当月工资。在计算机工资时要扣除当月的保险金。计算薪水的算法如下:
程师的月应发的薪水如下计算方法:
薪水=(基本工资+10╳月有效工作日天数+月效益╳工作年限÷100)╳0.9-月保险金
4.2.6保存工程师资料
当用户输入工程师资料、修改、排序后需要用户决定是否保存工程师资料。如果用户不保存,则默认输入和修改等不做保存。
4.2.7输入工程师资料
对工程师资料进行排序,排序使用三种方式:编号排序(升序)、姓名排序(升序)和工龄排序(降序)。采用哪种排序方式,由用户选择。
4.2.8输出工程师资料
打印所有的工程师资料(不包括当月薪水)。
4.2.9清空所有工程师资料
把所有的工程师资料删除,可以重新输入工程师资料。
4.2.10打印工程师资料信息报表
这时输出工程师的所有资料和当月薪水,以表格的形式输出。格式如下:
****************************************************
*编号:0001 *
****************************************************
*姓名:张大同 *
****************************************************
*性别:男 *
****************************************************
…….
4.2.11从文件重新得到工程师资料
这项功能主要是为了用户进行某些操作后,没有保存到文件前,可以从文件重新得到这些数据信息,使用户的操作不起作用。
4.2.12退出系统
当用户不再使用该系统后,可退出该系统。如果用户进行了影响工程师资料信息的操作,提示用户是否进行保存。
5 数据需求
软件测试工程师资料数据类型和说明。
表一:工程师数据成员列表
其它数据需要:
月效益:实型
月保险金:实型
月工资:实型
保存工程师资料文件:在当前目录下,名称为engineer.txt,为文本格式。
输出报表:在当前目录下,名称为report.txt,为文本格式。
第二篇:软件测试工程师管理系统详细设计-1.0
版本说明
1
1 引言
1.1 编写目的
尽可能详细地描述程序各成份的设计思路,以利于编制程序。
1.2 项目背景
该项目的实施主要是为提高武汉飞龙公司的人事管理效率而编制的。
1.3 定义
1.4 参考资料
《使用C语言开发应用程序》
2 程序系统的组织结构
2.1 程序关系
2.2 程序运行过程
系统在运行后,出现系统功能菜单, 同时提示用户选择,并打印用户的选择,选1:提示用户输入软件测试工程师资料信息,选2对工程师资料数据清零,选5:计算工程师应发的薪水,选8输出工程师信息数据。其它(3,6,7)提示功能还没有实现。若0;程序结束。 3系统菜单界面
系统运行中提供用户选择的主菜单如下:
图一:系统主菜单
2
3.1系统处理流程
3
图二系统处理流程
3.2 详细设计描述
按照软件测试工程师管理系统需求,要实现资料的输入,删除,查询,修改等功能,还要实现对月薪水的计算,保存新添加的资料,输出所有信息,打印报表,文件导入等功能。
4.实现各菜单功能
4.1充实“输入测试工程师资料”菜单
按照要求添加显示输入信息:编号,工龄,基本工资,月工作日天数,午餐补助,月保险金。
实现菜单5:计算工程师月薪水
薪水=(基本工资+10*月有效工作日天数+月效益*工作年限/100)*0.9-月保险
界面如下:
4.3修改软件测试工程师资料
添加性别、教育背景
4.4实现菜单“删除指定工程师资料”的功能
4.5修改菜单“计算工程师薪水”
从键盘输入月收益、月保险金
4.6实现菜单“输出所有工程师信息”
5.用函数实现各菜单功能
5.1函数定义
int menu(); //菜单函数
void InputInfo(); //输入信息函数
void Reset(); //清空库函数
void Calcu(); //计算薪水函数
void OutputInfo(); //输出所有信息函数
void ModInfo(); //修改记录函数
void DelInfo(); //删除记录函数
int Search(); //查询函数
void SaveFile(); //保存文件函数
void Export(); //生成报表函数
void Sort(); //排序函数
void Print(int i); //打印函数
void SelectSort(); //选择排序函数
void BubbleSort(); //冒泡排序函数
void InsertSort(); //插入排序函数
void swap(int k,int i); //交换数据函数
5.2实现部分功能
int menu(); //菜单函数,返回用户的选择
4
void InputInfo(); //输入信息函数
void Reset(); //清空库函数
void Calcu(); //计算薪水函数
void OutputInfo(); //输出所有信息函数
void ModInfo(); //修改记录函数
void DelInfo(); //删除记录函数
void SaveFile(); //保存文件函数
void Export(); //生成报表函数
void Print(int i); //打印函数
5.3定义所使用的全局变量结构
//工程师的生日用数据结构表示如下:
struct DateStruct //日期结构,用于存储工程师的出生生日 {
int year;
int month;
int day;
};
//软件测试工程师的数据结构如下:
typedef struct EngineerStruct //声明存储工程师信息的结构体 {
int No; //工程师编号 char Name[20]; //工程师姓名 int Sex; //工程师性别
struct DateStruct Birth; //工程师生日
char Hometown[10]; //工程师籍贯
int Edu; //工程师学历
char Add[30]; //工程师地址
char Tel[15]; //工程师电话
int WorkYear; //工程师工龄
float BaseSalary; //工程师基本薪水
} EI;
EI *EngiInfo[10]; //工程师信息 double Salary[10]={0.0}; //工程师薪水
unsigned int WorkDay[10]={0}; //工程师工作天数 int n=0; //实际记录数
int flag=1; //flag=1表示数据库修改后没有保存
要求:
编号为数字,不能小于或等于0
姓名:为字符,最长不超过10个字符。不能为空。 5
性别:用数字表示0表示女,1表示男。不能为其它数值。 籍贯:使用字符表示,最长不超过10个字符。不能为空。 学历:使用数字表示高中0、学士1、硕士2、博士3、其它为4。不能为其它数字。 地址:使用字符表示,最长不超过30个字符。不能为空。 电话:使用字符表示,最长不超过15个字符。不能为空。 工龄:使用数字表示,工龄范围是[0,60]。 基本薪水:为实型,不能小于或等于0。
月工作日:使用整型,范围[0,30]
5.7用文件形式存储和统计工程师数据 Engineer.txt
Report.txt
6