《软件测试工程师管理系统详细设计.doc》由会员分享,可在线阅读,更多相关《软件测试工程师管理系统详细设计.doc(19页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、 文档编号_ 保密级别_ 软件测试工程师管理系统详细设计说明书版本说明日期版本号发布说明作者批准人签字岗位目录1引言41.1编写目的41.2项目背景41.3定义41.4参考资料42程序系统的组织结构42.1程序关系42.2程序运行过程42.3系统菜单界面42.4系统处理流程52.5接口设计53总体设计53.1输入项目53.2输出项目63.3功能要求63.4性能要求63.5系统数据结构设计63.6系统数据处理流程73.7各函数调用关系74各功能函数设计74.1主函数74.1.1程序描述74.1.2功能74.1.3性能74.1.4输入项目74.1.5输出项目84.1.6算法84.1.7程序逻辑84
2、.1.8接口94.1.9存储分配94.1.10限制条件94.1.11测试要点94.2输入工程师信息函数94.2.1程序描述94.2.2功能94.2.3性能94.2.4输入项目104.2.5输出项目104.2.6算法104.2.7程序逻辑104.2.8接口144.2.9存储分配144.2.10限制条件144.2.11测试要点145程序与数据结构145.1全局变量145.2数据结构使用146系统出错处理设计157安全保密计划151 引言1.1 编写目的尽可能详细地描述程序各成份的设计思路,以利于编制程序。1.2 项目背景该项目的实施主要是为提高北京梅梅公司的人事管理效率而编制的。1.3 定义1.4
3、 参考资料2 程序系统的组织结构2.1 程序关系本系统的每一项功能由一个或几个函数来实现。每一个菜单对应一个功能函数。2.2 程序运行过程1. 系统在运行后,首先从文件中得到被保存的软件测试工程师信息,来初始化系统与工程师信息有关的数据结构;2. 用户选择在系统功能菜单中选择要进行的操作,选择后调用对应的函数;3. 完成必要的相应的功能模块;4. 系统完成该项功能后,显示结果信息给用户;5. 系统可返回第2步,供用户继续选择要进行的操作;6. 用户选择菜单中的0系统结束,在系统结束时如果用户修改的数据,则提示用户是否把数据保存到文件。2.3系统菜单界面系统运行中提供用户选择的主菜单如下:图一:
4、系统主菜单2.4系统处理流程系统启动判断数据文件中有工程师数据吗?Y填充工程师数据结构N显示菜单用户选择添加工程师资料删除指定工程师资料查询指定工程师资料修改指定工程师资料计算工程师月薪水保存新添加的工程师资料对工程师资料进行排序输出所有工程师资料清空所有工程师资料打印工程师所有资料报表重新导出工程师资料用户选择退出了吗?NY如修改了数据提示用户需要保存否?数据写文件系统结束YN图二:系统处理流程2.5接口设计系统使用DOS环境和windows下的虚拟DOS环境。与用户的接口是通过控制台交互,系统提供用户菜单,系统接收用户键盘输入,输入和输出均等均在显示器上显示。3总体设计3.1输入项目系统的
5、输入项目主要是用户的输入和选择。在提示用户选择时,提示用户选择菜单的编号,编号以数字的输入。在提示排序时也是以提示用户选择排序方式,排序方式也是以数字编号的形式输入。用户在输入软件测试工程师信息时,输入用户的输入有可能是数字(包括实型),也可能是字符或字符串。输入限制在函数功能设计中进行说明。3.2输出项目系统的输出主要是工程师信息资料,各项信息以要求的形式输出。输出格式在函数功能设计中说明。输出也包括计算出的工程师当月薪水。3.3功能要求要求系统能够接收用户输入的工程师信息。3.4性能要求要求本系统在完成各项功能的同时,要求系统处理迅速,处理事务需要长时间时,提示用户等待且等待时间在用户可接
6、收的范围之内。精度要求:输出实型数据时只保留两位小数。3.5系统数据结构设计软件测试工程师的数据结构如下:struct EngineerStruct /声明存储工程师信息的结构体 unsigned int EngineerNo; /工程师编号char EngineerName20; /工程师姓名unsigned int EngineerSex; /工程师性别struct DateStruct EngineerBirth; /工程师生日char EngineerHometown10; /工程师籍贯unsigned int EngineerEducation; /工程师学历char Enginee
7、rAddress30; /工程师地址char EngineerPhone15; /工程师电话unsigned int EngineerWorkYears; /工程师工龄float EngineerBaseSalary; /工程师基本薪水 ;工程师的生日用数据结构表示如下:struct DateStruct /日期结构,用于存储工程师的出生生日 int year; int month; int day;声明枚举类型:enum StatusFALSE,TRUE;/控制输入情况的两种状态enum Sexmale,female; /性别分类,默认0为男、1为女enum Educationhigh,ba
8、chelor,master,docter,other; /学历分类,默认0开始存储软件测试工程师的的当月工资天数和当月薪水的数据结构如下:double Salary10=0.0; /工程师薪水unsigned int EngineerMonthWorkDays10=0; /工程师工作天数3.6各函数调用关系主函数mainInitDataInputEngineerInformationmenuWhichChooseDeleteEngineerInformationSearchEngineerInformationModifyEngineerInformationCalculateEngineer
9、SalaryEngineerInfomationSaveEngineerInformationNoSortEngineerInformationNameSortEngineerInformationWorkYearSortOutputEngineerInfomationDeleteEngineerEngineerInfomationReportEngineerInformationReloadSystemOver图三:函数调用关系图4各功能函数设计4.1主函数int main(void);4.1.1程序描述主函数是完成系统各个功能模块的调用。同时定义系统使用的变量数据以及一些控制系统运行状态的
10、变量。4.1.2功能主函数的功能主要是完成各个功能函数的调用,处理各个函数之间的接口关系。控制系统的运行状态等。只能选择功能菜单中提示的功能,如果用户选择错误,则显示菜单供用户重新选择。4.1.3性能主函数性能要求相应用户选择菜单迅速及时,同时在用户输入错误时能够及时提示用户输入错误,并提示用户重新输入。4.1.4输入项目用户输入的的功能菜单编号。为无符号整型数据,定义变量为unsigned int select;4.1.5输出项目主函数在运行结束后返回到操作系统。正常退出返回0。异常退出返回1。4.1.6算法显示供用户选择的菜单,提示用户选择,接收用户选择,根据用户选择调用相应的功能函数。4
11、.1.7程序逻辑初始化数据显示菜单调用功能函数用户的选择输入系统退出菜单用户修改了数据吗?Y需要保存数据到文件吗?Y保存数据到文件系统退出NN入口图四:主函数流程图4.1.8接口调用初始化数据函数InitData(engineer);调用menu()函数显示系统功能菜单。4.1.9存储分配由操作系统分配该系统的内存使用。4.1.10限制条件无。4.1.11测试要点用户选择输入错误时是否具有错误提示功能以及重新显示菜单功能。4.2输入工程师信息函数void InputEngineerInformation(struct EngineerStruct *Engineer);参数:struct En
12、gineerStruct *Engineer,工程师数据结构指针。 返回值:无4.2.1程序描述该函数的主要是完成系统软件测试工程师信息的输入。4.2.2功能主函数的功能主要是完成软件测试工程师信息的输入。在提示用户输入信息中,提示用户输入的数值或字符串。同时对用户的输入进行合法性值域判断,如果用户输入错误则提示用户重新输入。最多存储10个软件测试工程师的信息。4.2.3性能接收用户输入及时,错误提示信息明确。4.2.4输入项目用户输入软件测试工程师的信息如下:unsigned int EngineerNo; /工程师编号char EngineerName20; /工程师姓名unsigned
13、int EngineerSex; /工程师性别struct DateStruct EngineerBirth;/工程师生日char EngineerHometown10; /工程师籍贯unsigned int EngineerEducation; /工程师学历char EngineerAddress30; /工程师地址char EngineerPhone15; /工程师电话unsigned int EngineerWorkYears; /工程师工龄float EngineerBaseSalary; /工程师基本薪水要求:编号为数字,编号使用4为位数字,格式为0001、0002.,不能重复。姓名
14、:为字符,最长不超过20个字符。不能为空。性别:用数字表示0表示女,1表示男。不能为其它数值。生日:用数字分别表示年、月、日。格式例如:年使用四位数字表示,月使用1-12表示,日使用1-31表示。范围是(1900,2004)籍贯:使用字符表示,最长不超过10个字符。不能为空。学历:使用数字表示高中0、学士1、硕士2、博士3、其它为4。不能为其它数字。地址:使用字符表示,最长不超过30个字符。不能为空。电话:使用字符表示,最长不超过15个字符。不能为空。工龄:使用数字表示,工龄范围是(0,50。基本薪水:为实型,不能为0。4.2.5输出项目函数调用后设置工程师数据已经修改标志,IfModfiy=
15、TRUE;表示工程师的信息有变化,以供在退出系统前,提示用户是否要保存。4.2.6算法算法使用下面的流程图来表示。4.2.7程序逻辑初始化数据根据当前存在的工程师人数提示是否输入工程师的信息Y编号在00019999之间吗?YNN提示输入工程师编号函数返回该编号已经存在了吗?YN提示输入工程师性别姓名长度在(0,20之间吗?NY提示输入工程师姓名NY入口性别为0或1吗?提示输入工程师生日年为1900,2004之间吗?NY月为1,12之间吗?日为1,31之间吗?NNYY提示输入工程师学历学历为0-4之间的合法数值吗?提示输入工程师籍贯籍贯长度在(0,10之间吗?YNY提示输入工程师家庭住址地址长度
16、在(0,30之间吗?NY提示输入工程师联系电话长度在0,15之间吗?NY输入的都是数字和-吗?NY提示输入工程师工龄输入的为(0,50字之间吗?NY提示输入工程师基本工资输入的为0吗?Y函数结束图五:输入工程师信息流程图4.2.8接口调用后通过参数修改了主函数中的工程师数据结构。4.2.9存储分配由操作系统分配该系统的内存使用。4.2.10限制条件无。4.2.11测试要点用户选择输入错误时是否具有错误提示功能以及重新提示输入功能。其它函数需要学员自己填充。5程序与数据结构5.1全局变量程序中定义的全局变量可如下:#define MAXNUM 10 /宏定义,最多存储的工程师人数FILE *fp
17、; /保存文件的指针char *FileName=engineer.txt;/保存工程师信息char *ReportName=report.txt;/生成报表文件unsigned int ActualNum=0;/实际存储的工程师人数unsigned int *pNumber=&ActualNum;/指向实际存储人数的变量enum Status IfModfiy=FALSE; /是否对工程师信息数据进行修改的状态,TRUE是已修改5.2数据结构使用各函数模块与所用到的数据结构如下表所示:模块标识操作数据InitDataEngineerStructmenuWhichChooseEngineerS
18、tructSystemOverEngineerStructInputEngineerInformationEngineerStruct、StatusDeleteEngineerInformationEngineerStructSearchEngineerInformationEngineerStructModifyEngineerInformationEngineerStruct、StatusCalculateEngineerSalaryEngineerStruct、Salary、EngineerMonthWorkDaysEngineerInfomationSaveEngineerStruct
19、EngineerInformationNoSortEngineerStructEngineerInformationNameSortEngineerStructEngineerInformationWorkYearSortEngineerStructOutputEngineerInfomationEngineerStruct、Salary、EngineerMonthWorkDaysDeleteEngineerEngineerStructEngineerInfomationReportEngineerStructPrintEngineerInfomationEngineerStructEngineerInformationReloadEngineerStruct6系统出错处理设计当系统运行出错时,用户可以重新启动本系统,重新执行,且能够恢复用户的数据。7安全保密计划存储软件测试工程师资料的文件可使用加密的形式存储。