《Counter V1.0概要设计说明书.doc》由会员分享,可在线阅读,更多相关《Counter V1.0概要设计说明书.doc(22页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、Counter V1.0 概要设计说明书拟制慧谷博为峰软件测试工作室日期2003-06-08评审人日期yyyy-mm-dd修订记录日期修订版本CR号修改章节修改描述作者2003-06-081.00初稿完成TProject项目组目 录1简介61.1目的61.2范围61.2.1软件名称61.2.2软件功能61.2.3软件应用62概要设计62.1总体设计描述62.1.1软件系统环境定义62.2第一层设计描述62.2.1分解描述62.2.2接口描述102.3第二层设计描述152.3.1界面模块152.3.2源文件统计主控模块162.3.3参数检查模块162.3.4统计空行模块172.3.5统计代码行模
2、块172.3.6统计注释行模块182.3.7统计总行数模块182.3.8统计结果输出模块19表目录表1 界面模块选择被统计文件接口11表2 界面模块选择统计空行接口11表3 界面模块选择统计代码行接口11表4 界面模块选择统计注释行接口11表5 界面模块选择统计总行接口12表6 界面模块退出Counter应用程序接口12表7 源文件统计主控接口12表8 参数检查模块接口13表9 统计空行模块接口13表10 统计代码行模块接口13表11 统计注释行模块接口14表12 统计总行数模块接口14表13 统计结果输出模块接口14表14 全局变量描述表15图目录图1 软件模块结构图7图2 Counter软
3、件测试界面7Counter V1.0 概要设计说明书关键词:Counter 源文件统计工具、代码行、注释行、空行、总行数摘 要:本文是Counter V1.0的概要设计文档,是依据Counter V1.0软件需求规格说明书完成的。用来指导后续的详细设计和集成测试文档写作。缩略语清单: 缩略语英文全名中文解释1 简介1.1 目的Counter V1.0 概要设计说明书依据Counter V1.0软件需求规格说明书,针对每个具体的需求项目,给出具体的设计方案。本文档用以指导后续的详细设计说明书和集成测试计划、方案和集成测试用例写作。1.2 范围1.2.1 软件名称Counter V1.01.2.2
4、 软件功能参见Counter V1.0软件需求规格说明书2.2节。Counter V1.0是一个C源文件代码行统计工具,该工具用单线程实现,如果用户执行了统计操作,只能等到统计操作结束才能正常退出,可以根据用户的选择分别统计源文件中的总代码行数、空行数、注释行数和非空非注释行数。图1是软件的界面样板。具体的需求在第三节中说明。1.2.3 软件应用本软件用于TProject项目培训,作为软件测试能力培训的被测试对象,没有商用目的。2 概要设计 2.1 总体设计描述2.1.1 软件系统环境定义Counter V1.0是一个单线程的EXE文件,运行在windowns98以上的操作系统,功能独立,不与
5、其他进程发生任何通信操作。2.2 第一层设计描述2.2.1 分解描述1. 模块/子系统分解下面图1是Counter V1.0的模块层次图,该程序是基于GUI的应用程序,因此,都是由用户的输入触发软件的基本功能。因此,界面模块是应用程序的源头。参见图2,通过界面模块可以选择被统计的源文件,设置需要统计的类型,执行统计动作,退出应用程序等功能。通过用户界面,执行统计功能的时候,首先调用“源文件统计主控模块”,然后,由“源文件统计主控模块”按分别调用“参数检查模块”,“统计代码行模块”,“统计注释模块”,“统计空行模块”,“统计总行模块”,最后,通过调用“统计结果输出模块”把统计结果输出到界面的统计
6、结果显示文本框中。统计代码行模块统计注释行模块统计空行模块统计总行模块统计结果输出模块参数检查模块界面模块源文件统计主控模块图1 软件模块结构图根据软件需求规格说明书,软件界面原型如下图2所示,包含“选择文件”按钮,四个统计方式选择CHECKBOX,一个用于回显被选择文件及其路径的的编辑框,以及结果输出编辑框,“开始统计”按钮和“退出”按钮。图2 Counter软件用户界面1) 界面模块标识:COUNTER- HLD-001目的:该模块实现Counter 1.0的界面部分布局和界面控件的响应函数功能列表:A. 界面所有控件的布局B. 用户选择需要被统计的.c文件,并把用户选择的.c文件路径以及
7、文件名显示在编辑框中C. 用户选择需要的统计项目D. 用户执行统计操作E. 统计结果显示在结果编辑框中F. 界面上的文件显示的文本框和统计结果的文本框只读,不能编辑G. 用户退出Counter,如果在统计源码的过程中进行退出,系统需要给出提示信息对应的需求项目:A. SRS-COUNTER-001,002,003,0042) 参数检查模块标识:COUNTER-HLD- COUNTER-002目的:该模块实现对用户输入参数的合法性检查 功能列表:A. 检查用户输入文件的文件路径的合法性B. 检查用户输入的.c文件是否存在C. 检查用户输入的.c文件名的合法性D. 检查文件大小是否超过1MBE.
8、检查用户选择的统计项的合法性对应的需求项目:A. SRS-COUNTER-001,002,003,0043) 统计代码行模块标识:COUNTER -HLD-COUNTER-004目的:统计.c文件中的代码行功能列表:A. 统计.c文件中的代码行对应的需求项目:A. SRS-COUNTER-0014) 统计注释行模块标识:COUNTER-HLD- COUNTER-005目的:统计.c文件中的注释行功能列表:A. 统计.c文件中的注释行对应的需求项目:A. SRS-COUNTER-0025) 统计空行模块标识:COUNTER-HLD- COUNTER-003目的:统计.c文件中的空行功能列表:A.
9、 统计.c文件中的空行对应的需求项目:SRS-COUNTER-0036) 统计总行数模块标识:COUNTER-HLD- COUNTER-006目的:统计.c文件中的总行数功能列表:A. 统计.c文件中的总行数对应的需求项目:A. SRS-COUNTER-0047) 统计结果输出模块标识:COUNTER-HLD- COUNTER-007目的:把统计结果输出到界面上功能列表:A. 把统计结果输出到界面上对应的需求项目:A. SRS-COUNTER-001,002,003,0048) 源文件统计主控模块标识:COUNTER-HLD- COUNTER-008目的:对参数检查模块、4个统计模块和统计输出
10、模块统一调度功能列表:A. 调用参数检查模块,执行参数检查功能B. 调用统计空行模块,统计源文件中的空行C. 调用统计代码行模块,统计源文件中的代码行行D. 调用统计注释行模块,统计源文件中的注释行E. 调用统计总行数模块,统计源文件中的总行数F. 调用统计结果输出模块,输出源文件中的代码行的行数、注释行的行数、空行的行数、总行的行数。对应的需求项目:A. SRS-COUNTER-001,002,003,0049 ) 性能统计模块标识: HLD-COUNTER-HLD-009目的:在30秒内实现1M文件的源码统计功能列表:A. Counter V1.0支持对1M的源文件统计, 统计代码行的最长
11、等待时间不超过30秒钟B. 大于1M的提示用户超出统计范围,对于1M的源文件对应的需求项目:(相关内容和srs保持一致,因为srs目前没有修改,所以这里没有做对应修改)2.2.2 依赖关系1.2.2.3 接口描述1. 模块接口 说明:接口中的参数定义参见2 全局变量,数据结构1) 界面模块接口软件界面模块提供如下7个接口,分别为界面模块与主控模块接口,选择统计文件接口,选择统计空行接口,选择统计注释行接口,选择统计代码行接口,选择统计总行接口,退出Counter应用程序的接口。缺少界面和主控模块的接口接口1选择被统计文件接口形式函数接口输入通过界面选择某个.c文件输出g_szStatFileN
12、ame:全局变量,被统计文件的全路径。数据类型:字符串,有效的windows文件全路径名返回值无描述如图2所示,鼠标点击“选择文件”按钮,则调用该接口,弹出文件选择对话框,把选择的文件全路径赋值给全局变量g_szStatFileName。表1 界面模块选择被统计文件接口接口2选择统计项目统计空行的接口形式函数接口输入鼠标点“统计空行”复选框输出g_bStatBlankLineFlag:全局变量,是否统计空行的标志位数据类型:布尔类型取值范围:STAT表示统计空行, NOT_STAT表示不统计空行返回值无描述如图2所示,鼠标点击“统计空行”的CHECKBOX控件,则调用该接口,如果选中统计空行控
13、件,则 g_bStatBlankLineFlagSTAT,如果取消选中统计空行控件,则g_bStatBlankLineFlagNOT_STAT表2 界面模块选择统计空行接口接口3选择统计项目统计代码行的接口形式函数接口输入鼠标点“统计代码行”复选框输出g_bStatCodeLineFlag:全局变量,是否统计代码行的标志位数据类型:布尔类型取值范围:STAT表示统计代码行, NOT_STAT表示不统计代码行返回值无描述如图2所示,鼠标点击“统计代码行”的CHECKBOX控件,则调用该接口,如果选中统计代码行控件,则 g_bStatCodeLineFlagSTAT,如果取消选中统计代码行控件,则
14、g_bStatCodeLineFlagNOT_STAT表3 界面模块选择统计代码行接口接口4选择统计项目统计注释行的接口形式函数接口输入鼠标点“统计注释行”复选框输出g_bStatCommLineFlag:全局变量,是否统计注释行的标志位数据类型:布尔类型取值范围:STAT表示统计注释行, NOT_STAT表示不统计注释行返回值无描述如图2所示,鼠标点击“统计注释行”的CHECKBOX控件,则调用该接口,如果选中统计注释行控件,则 g_bStatCommLineFlagSTAT,如果取消选中统计注释行控件,则g_bStatCommLineFlagNOT_STAT表4 界面模块选择统计注释行接口
15、接口5选择统计项目统计总行的接口形式函数接口输入鼠标点“统计总行”复选框输出g_bStatTotalLineFlag:全局变量,是否统计总行的标志位数据类型:布尔类型取值范围:STAT表示统计总行, NOT_STAT表示不统计总行返回值无描述如图2所示,鼠标点击“统计总行”的CHECKBOX控件,则调用该接口,如果选中统计总行控件,则 g_bStatTotalLineFlagSTAT,如果取消选中统计总行控件,则g_bStatTotalLineFlagNOT_STAT表5 界面模块选择统计总行接口接口6退出Counter应用程序的接口形式函数接口输入用户点击“退出”按钮,或者点击标题栏X按钮输
16、出无返回值无描述通过鼠标点击“退出”按钮结束应用程序Counter;统计未结束时,结束应用程序,系统应该给出提示信息表6 界面模块退出Counter应用程序接口2 ) 源文件统计主控模块接口建议将控制接口转化为数据接口接口7源文件统计主控接口形式函数接口输入无输出g_iBlankLineNum,统计得到的空行数g_iCodeLineNum,统计得到的代码行数g_iCommLineNum,统计得到的注释行数g_iTotalLineNum,统计得到的总行数返回值无描述如图2所示,用户点击“开始统计”按钮的时候,主控模块调用参数检查模块,对输需要统计的文件全路径以及另外4个统计标志位做参数检查,并调
17、用后面的4个统计模块和统计输出模块,最后把统计结果输出到UI界面上“统计结果”编辑框中表7 源文件统计主控接口3 )参数检查模块的接口接口1参数检查模块接口形式函数接口输入被统计的文件全路径名及文件名:szStatFileName数据类型:字符串统计空行标志位:bStatBlankLineFlag数据类型:布尔类型统计代码行标志位:bStatCodeLineFlag数据类型:布尔类型统计注释行标志位:bStatCommLineFlag数据类型:布尔类型统计总行数标志位:bStatTotalLineFlag数据类型:布尔类型输出无返回值布尔类型:RET_OK-参数检查通过,RET_FALSE-参
18、数检查不通过描述如果参数检查不通过,给用户相应的提示信息表8 参数检查模块接口4 )统计代码行模块接口接口1统计代码行模块接口形式函数接口输入参数1:用户选择的.c文件名。数据类型:字符串参数2:统计代码行标志位。数据类型:布尔类型输出g_iCodeLineNum全局变量,统计.c文件得到的代码行数返回值无描述根据两个输入参数,统计.c文件中的代码行数目,记录到全局变量g_iCodeLineNum中。表9 统计代码行模块接口5 )统计注释行模块接口接口1统计注释行模块接口形式函数接口输入参数1:用户选择的.c文件名。数据类型:字符串参数2:统计注释行标志位。数据类型:布尔类型输出g_iComm
19、LineNum全局变量,统计.c文件得到的注释行数返回值无描述根据两个输入参数,统计.c文件中的注释行数目,记录到全局变量g_iCommLineNum中。表10 统计注释行模块接口6 )统计空行模块接口接口1统计空行模块接口形式函数接口输入参数1:用户选择的.c文件名。数据类型:字符串参数2:统计空行标志位。数据类型:布尔类型输出g_iBlankLineNum全局变量,统计.c文件得到的空行数返回值无描述根据两个输入参数,统计.c文件中的空行数目,记录到全局变量g_iBlankLineNum中。 表11 统计空行模块接口7 )统计总行数模块接口接口1统计总行模块接口形式函数接口输入参数1:用户
20、选择的.c文件名。数据类型:字符串参数2:统计总行数标志位。数据类型:布尔类型输出g_iTotalLineNum全局变量,统计.c文件得到的总行数返回值无描述根据两个输入参数,统计.c文件中的总行数,记录到全局变量g_iTotalLineNum中。表11 统计总行数模块接口8 )统计结果输出模块接口接口1统计结果输出模块接口形式函数接口输入参数1:统计类型数据类型:枚举类型参数2:统计结果数据类型:整型 输出把统计结果输出到界面上的“统计结果”编辑框中返回值无描述该模块支持输出空行、代码行、注释行和总行结果到“统计结果”编辑框上。通过输入参数1和参数2分别确定需要输出结果的类型和统计值。表12
21、 统计结果输出模块接口2. 全局变量、数据结构数据类型数据项定义(初始值)数据项描述Intg_iBlankLineNum=0 记录统计得到的空行数目的全局变量Intg_iCodeLineNum=0记录统计得到的代码行数目的全局变量Intg_iCommLineNum=0记录统计得到的注释行数目的全局变量Intg_iTotalLineNum=0记录统计得到的总行数的全局变量BOOLg_bStatBlankLineFlag NOT STAT统计空行标志位BOOLg_bStatCodeLineFlag NOT STAT统计代码行标志位BOOLg_bStatCommLineFlag NOT STAT统计
22、注释行标志位BOOLg_bStatTotalLineFlag NOT STAT统计总行数标志位EnumSTAT=0,NOT_STAT枚举变量,STAT表示统计,NOT_STAT表示不统计,为上面的统计标志位赋值EnumSTAT_BLANK=0,STAT_CODE,STAT_COMM,STAT_TOTAL枚举变量,分别表示统计空行、代码行、注释行和总行数。当调用统计结果输出模块时,为第一个参数赋值Cstringg_szStatFileName被统计的文件的文件全路径名EnumRET_OK0,RET_FAIL函数的返回值,RET_OK-返回成功,RET_FAIL-返回失败表13 全局变量描述表2.
23、3 第二层设计描述2.3.1 界面模块 说明:该模块需要补充层次图1. 分解描述1) 选择被统计文件接口函数:VOID SelectStatFile()功能:该函数完成选择被统计文件功能输入:用户点击“选择文件”按钮输出:g_szStatFileName选择的.c文件全路径与文件名显示在编辑框中返回值:无2) 设置统计空行标志位接口函数:VOID SetStatBlankLineFlag()功能:该函数完成设置统计空行标志位的功能输入:用户点击“统计空行”复选框 输出:g_bStatBlankLineFlag为统计空行标志位赋值返回值:无3) 设置统计代码行标志位接口函数:VOID SetSt
24、atCodeLineFlag()功能:该函数完成设置统计代码行标志位的功能输入:用户点击“统计代码行”复选框 输出:g_bStatCodeLineFlag为统计代码行标志位赋值返回值:无4) 设置统计注释行标志位接口函数:VOID SetStatCommLineFlag()功能:该函数完成设置统计注释行标志位的功能输入:用户点击“统计注释行”复选框 输出:g_bStatCommLineFlag为统计注释行标志位赋值返回值:无5) 设置统计总行数标志位接口函数:VOID SetStatTotalLineFlag()功能:该函数完成设置统计总行标志位的功能输入:用户点击“统计总行”复选框 输出:g
25、_bStatTotalLineFlag为统计总行标志位赋值返回值:无6) 退出Counter应用程序函数:VOID ExitCounter()功能:该函数完成退出Counter应用程序的功能输入:用户点击“退出”按钮 输出:退出Counter应用程序返回值:无2.3.2 源文件统计主控模块函数:VOID MainStatFun()功能:该函数在用户通过界面单击“开始统计”按钮后,开始运行。该主控函数具有调度功能,分别调用参数检查模块、统计代码行模块、统计注释行模块、统计空行模块、统计总行模块和统计结果输出模块,完成一次统计执行过程输入:g_bStatBlankLineFlag 统计空行标志位;
26、g_bStatCommLineFlag 统计注释行标志位; g_bStatCodeLineFlag 统计代码行标志位;g_bStatTotalLineFlag 统计总行标志位;g_szStatFileName 被统计文件的全路径名输出:g_iBlankLineNum 统计得到的空行数;g_iCodeLineNum 统计得到的代码行数;g_iCommLineNum 统计得到的注释行数;g_iTotalLineNum 统计得到的总行数;返回值:无2.3.3 参数检查模块1. 分解描述检查被统计文件是否合法的函数CheckStatFile参数检查主函数CheckParameters检查被统计项目是否
27、合法的函数CheckStatItem1) 参数检查主函数函数:BOOL CheckParameters(CString szStatFileName,BOOL bStatBlankLineFlag,BOOL bStatCodeLineFlag,BOOL bStatCommLineFlag,BOOL bStatTotalLineFlag)输入:参见表8输出:参见表8返回值:参见表8 2) 检查用户选择的被统计文件是否合法函数函数:BOOL CheckStatFile(CString szStatFileName)功能:该函数完成检查用户选择的被统计文件是否合法输入:szStatFileName用
28、户选择的被统计文件输出:无返回值:TRUE-参数检查通过,FALSE-参数检查不通过3) 检查用户选择的被统计项是否合法函数:BOOL CheckStatItem(BOOL bStatBlankLineFlag, BOOL bStatCodeLineFlag, BOOL bStatCommLineFlag, BOOL bStatTotalLineFlag)功能:该函数完成设置统计代码行标志位的功能输入:bStatBlankLineFlag统计空行标志位 bStatCodeLineFlag 统计代码行标志位 bStatCommLineFlag 统计注释行标志位 bStatTotalLineFla
29、g 统计总行数标志位输出:无返回值:TRUE-参数检查通过,FALSE-参数检查不通过2.3.4 统计空行模块1. 分解描述空行统计的执行函数StatBlankLineStatBlankLine统计空行主函数1) 统计空行模块的主函数函数:VOID MainStatBlankLine(CString szStatFileName,BOOL bStatBlankLineFlag)功能:该函数对bStatBlankLineFlag做检查,如果需要统计空行,则调用StatBlankLine函数统计空行输入:szStatFileName用户选择的被统计文件 bStatBlankLineFlag统计空行
30、标志位输出:无返回值:无2) 统计空行模块的统计执行函数函数:VOID StatBlankLine(CString szStatFileName)功能:该函数完成对指定文件StatBlankLine的空行数目统计 输入:szStatFileName用户选择的被统计文件输出:g_iBlankLineNum全局变量,统计得到的空行数目返回值:无 2.3.5 统计代码行模块1. 分解描述代码行统计的执行函数统计代码行主函数判断当前字符串是否是代码行的函数1) 统计代码行模块的主函数函数:VOID MainStatCodeLine(CString szStatFileName,BOOL bStatCo
31、deLineFlag)功能:该函数对bStatCodeLineFlag做检查,如果需要统计代码行,则调用StatCodeLine函数统计代码行输入:szStatFileName用户选择的被统计文件 bStatCodeLineFlag统计代码行标志位输出:无返回值:无2) 统计代码行模块的统计执行函数函数:VOID StatCodeLine(CString szStatFileName)功能:该函数完成对指定文件StatCodeLine的代码行数目统计 输入:szStatFileName用户选择的被统计文件输出:g_iCodeLineNum全局变量,统计得到的代码行数目返回值:无3)判断当前字符
32、串是否是代码行函数:BOOL IsCodeLine(CString szStatFileLine,BOOL &bIsComment)功能:判断从文件中读取到的当前行是否为代码行输入:szStatFileLine 文件中当前行的字符串,该行字符串不是空行 bIsComment 标识当前行是否处于注释体内。TRUE处于注释体内,输出:bIsComment: 如果该行为注释的最后一行,bIsComment赋值false返回值:RET_OK是代码行,RET_FAIL该行为注释行2.3.6 统计注释行模块1. 分解描述注释行统计的执行函数统计注释行主函数判断当前字符串是否是代码行的函数1) 统计注释行模
33、块的主函数函数:VOID MainStatCommLine(CString szStatFileName,BOOL bStatCommLineFlag)功能:该函数对bStatCommLineFlag做检查,如果需要统计注释行,则调用StatCommLine函数统计注释行输入:szStatFileName用户选择的被统计文件 bStatCommLineFlag统计注释行标志位输出:无返回值:无2) 统计注释行模块的统计执行函数函数:VOID StatCommLine(CString szStatFileName)功能:该函数完成对指定文件StatCommLine的注释行数目统计 输入:szSt
34、atFileName用户选择的被统计文件输出:g_iCommLineNum全局变量,统计得到的注释行数目返回值:无3)判断当前字符串是否是注释行函数:BOOL IsCodeLine(CString szStatFileLine,BOOL &bIsComment)功能:判断从文件中读取到的当前行是否为注释行输入:szStatFileLine 文件中当前行的字符串,该行字符串不是空行 bIsComment 标识当前行是否处于注释体内。TRUE处于注释体内,输出:bIsComment: 如果该行为注释的最后一行,bIsComment赋值false返回值:RET_OK 代码行 RET_FAIL 注释行
35、2.3.7 统计总行数模块1. 分解描述总行统计的执行函数统计总行主函数代码行、注释行、空行统计项目均被选中?将其他3项统计结果相加NY1) 统计总行模块的主函数函数:VOID MainStatTotalLine(CString szStatFileName,BOOL bStatBlankLineFlag,BOOL bStatCodeLineFlag,BOOL bStatCommLineFlag,BOOL bStatTotalLineFlag)功能:该函数对bStatTotalLineFlag做检查,如果需要统计总行,则对bStatBlankLineFlag,bStatCodeLineFlag
36、和bStatCommLineFlag做检查,如果上述三个统计项目均被选中,则把三个统计结果相加,得到总行数,否则调用StatTotalLine函数统计总行输入:szStatFileName用户选择的被统计文件 bStatTotalLineFlag统计总行标志位输出:无返回值:无2) 统计总行模块的统计执行函数函数:VOID StatTotalLine(CString szStatFileName)功能:该函数完成对指定文件StatTotalLine的总行数目统计 输入:szStatFileName用户选择的被统计文件输出:g_iTotalLineNum全局变量,统计得到的总行数目返回值:无2.
37、3.8 统计结果输出模块1. 分解描述1) 统计结果输出模块函数函数:VOID StatResultOutput(enum iResultType,int iStatVal)功能:该函数通过参数iResutlType,区分需要上报的统计结果类型,然后把相应的统计值iStatVal输出到界面上 输入:iResultType输出结果类型。取值范围:STAT_BLANK上报空行数,STAT_CODE上报代码行数,STAT_COMM上报注释行数,STAT_TOTAL上报总行数 iStatVal相应的统计结果数值输出:把统计结果用字符串的形式输出到界面的“统计结果”编辑框中 返回值:无 参考资料清单:1 慧谷博为峰软件测试工作室 Counter V1.0软件需求规格说明书2 慧谷博为峰软件测试工作室 Counter V1.0 项目工作任务书