Counter V10 概要设计说明书.docx
《Counter V10 概要设计说明书.docx》由会员分享,可在线阅读,更多相关《Counter V10 概要设计说明书.docx(25页珍藏版)》请在冰豆网上搜索。
CounterV10概要设计说明书
CounterV1.0概要设计说明书
拟制
TProject项目组
日期
2003-06-08
评审人
日期
yyyy-mm-dd
修订记录
日期
修订
版本
CR号
修改
章节
修改描述
作者
2003-06-08
1.00
初稿完成
TProject项目组
目录
1简介6
1.1目的6
1.2范围6
1.2.1软件名称6
1.2.2软件功能6
1.2.3软件应用6
2概要设计6
2.1总体设计描述6
2.1.1软件系统环境定义6
2.2第一层设计描述6
2.2.1分解描述6
2.2.2接口描述10
2.3第二层设计描述15
2.3.1界面模块15
2.3.2源文件统计主控模块16
2.3.3参数检查模块16
2.3.4统计空行模块17
2.3.5统计代码行模块17
2.3.6统计注释行模块18
2.3.7统计总行数模块18
2.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
图2Counter软件测试界面7
CounterV1.0概要设计说明书
关键词:
Counter代码统计工具、空行、代码行、注释行、总行数
摘要:
本文是CounterV1.0的概要设计文档,是依据《CounterV1.0软件需求说明书》完成的。
用来指导后续的详细设计和集成测试文档写作。
缩略语清单:
缩略语
英文全名
中文解释
1
简介
1.1目的
《CounterV1.0概要设计说明数》依据《CounterV1.0软件需求规格说明书》,针对每个具体的需求项目,给出具体的设计方案。
本文档用以指导后续的详细设计说明书和集成测试方案、计划和集成测试用例写作。
1.2范围
1.2.1软件名称
CounterV1.0
1.2.2软件功能
参见《CounterV1.0软件需求规格说明书》2.2节。
1.2.3软件应用
本软件用于TProject项目培训,作为软件测试能力培训的被测试对象,没有商用目的。
2概要设计
2.1总体设计描述
2.1.1软件系统环境定义
CounterV1.0是一个单线程的EXE文件,运行在WIN32平台上,功能单一,不与其他进程发生任何通信操作。
2.2第一层设计描述
2.2.1分解描述
1.模块/子系统分解
下面图1是CounterV1.0的模块结构图,该程序是基于GUI的应用程序,因此,都是由用户的输入触发软件的基本功能。
因此,界面模块是应用程序的源头。
参见图2,通过界面模块可以选择被统计的源文件,设置需要统计的类型,执行统计动作,退出应用程序等功能。
通过用户界面,执行统计功能的时候,首先调用“源文件统计主控模块”,然后,由“源文件统计主控模块”按分别调用“参数检查模块”,“统计代码行模块”,“统计注释模块”,“统计空行模块”,“统计总行模块”,最后,通过调用“统计结果输出模块”把统计结果输出到界面的统计结果显示控件中。
图1软件模块结构图
根据软件需求规格说明书,软件界面原型如下图2所示,包含“选择文件”按钮,四个统计方式选择CHECKBOX,一个用于回显被选择文件的的编辑框,以及结果输出编辑框,“开始统计”按钮和“退出”按钮。
图2Counter软件测试界面
1)界面模块
标识:
HLD-COUNTER-001
目的:
该模块实现Counter1.0的界面部分布局和界面控件的响应函数
功能列表:
A.界面所有控件的布局
B.用户选择需要被统计的.c文件,并把用户选择的.c文件显示在编辑框中
C.用户选择需要的统计项目
D.用户执行统计操作
E.用户退出Counter
对应的需求项目:
A.SRS-COUNTER-001,002,003,004
2)参数检查模块
标识:
HLD-COUNTER-002
目的:
该模块实现对用户输入参数的合法性检查
功能列表:
A.检查用户输入的.c文件名的合法性
B.检查用户选择的统计项的合法性
对应的需求项目:
A.SRS-COUNTER-001,002,003,004
3)统计空行模块
标识:
HLD-COUNTER-003
目的:
统计.c文件中的空行
功能列表:
A.统计.c文件中的空行
B.调用结果输出模块,把结果输出到界面上
对应的需求项目:
A.SRS-COUNTER-003
4)统计代码行模块
标识:
HLD-COUNTER-004
目的:
统计.c文件中的代码行
功能列表:
A.统计.c文件中的代码行
B.调用结果输出模块,把结果输出到界面上
对应的需求项目:
A.SRS-COUNTER-001
5)统计注释行模块
标识:
HLD-COUNTER-005
目的:
统计.c文件中的注释行
功能列表:
A.统计.c文件中的注释行
B.调用结果输出模块,把结果输出到界面上
对应的需求项目:
A.SRS-COUNTER-002
6)统计总行数模块
标识:
HLD-COUNTER-006
目的:
统计.c文件中的总行数
功能列表:
A.统计.c文件中的总行数
B.调用结果输出模块,把结果输出到界面上
对应的需求项目:
A.SRS-COUNTER-003
7)统计结果输出模块
标识:
HLD-COUNTER-007
目的:
把统计结果输出到界面上
功能列表:
A.把统计结果输出到界面上
对应的需求项目:
A.SRS-COUNTER-001,002,003,004
8)代码统计主控模块
标识:
HLD-COUNTER-008
目的:
对参数检查模块、4个统计模块和统计输出模块统一调度
功能列表:
A.调用参数检查模块,执行参数检查功能
B.调用统计空行模块,统计源文件中的空行
C.调用统计代码行模块,统计源文件中的代码行行
D.调用统计注释行模块,统计源文件中的注释行
E.调用统计总行数模块,统计源文件中的总行数
F.调用统计结果输出模块,输出源文件中的代码行、注释行、空行、总行。
对应的需求项目:
A.SRS-COUNTER-001,002,003,004
2.2.2接口描述
1.模块接口
1)界面模块接口
软件界面模块提供如下6个接口,分别为选择统计文件接口,选择统计空行接口,选择统计注释行接口,选择统计代码行接口,选择统计总行接口,退出Counter应用程序的接口。
接口1
选择被统计文件接口
形式
函数接口
输入
VOID
输出
g_szStatFileName:
全局变量,被统计文件的全路径。
数据类型:
字符串,有效的windows文件全路径名
返回值
VOID
描述
如图2所示,鼠标点击“选择文件”按钮,则调用该接口,弹出文件选择对话框,把选择的文件全路径赋值给全局变量g_szStatFileName。
表1界面模块-选择被统计文件接口
接口2
选择统计项目——统计空行的接口
形式
函数接口
输入
鼠标点“统计空行”复选框
输出
g_bStatBlankLineFlag:
全局变量,是否统计空行的标志位
数据类型:
布尔类型
取值范围:
STAT-表示统计空行,NOT_STAT表示不统计空行
返回值
VOID
描述
如图2所示,鼠标点击“统计空行”的CHECKBOX控件,则调用该接口,如果选中统计空行控件,则g_bStatBlankLineFlag=STAT,如果取消选中统计空行控件,则g_bStatBlankLineFlag=NOT_STAT
表2界面模块-选择统计空行接口
接口3
选择统计项目——统计代码行的接口
形式
函数接口
输入
鼠标点“统计代码行”复选框
输出
g_bStatCodeLineFlag:
全局变量,是否统计代码行的标志位
数据类型:
布尔类型
取值范围:
STAT-表示统计代码行,NOT_STAT表示不统计代码行
返回值
VOID
描述
如图2所示,鼠标点击“统计代码行”的CHECKBOX控件,则调用该接口,如果选中统计代码行控件,则g_bStatCodeLineFlag=STAT,如果取消选中统计代码行控件,则g_bStatCodeLineFlag=NOT_STAT
表3界面模块-选择统计代码行接口
接口4
选择统计项目——统计注释行的接口
形式
函数接口
输入
鼠标点“统计注释行”复选框
输出
g_bStatCommLineFlag:
全局变量,是否统计注释行的标志位
数据类型:
布尔类型
取值范围:
STAT-表示统计注释行,NOT_STAT表示不统计注释行
返回值
VOID
描述
如图2所示,鼠标点击“统计注释行”的CHECKBOX控件,则调用该接口,如果选中统计注释行控件,则g_bStatCommLineFlag=STAT,如果取消选中统计注释行控件,则g_bStatCommLineFlag=NOT_STAT
表4界面模块-选择统计注释行接口
接口5
选择统计项目——统计总行的接口
形式
函数接口
输入
鼠标点“统计总行”复选框
输出
g_bStatTotalLineFlag:
全局变量,是否统计总行的标志位
数据类型:
布尔类型
取值范围:
STAT-表示统计总行,NOT_STAT表示不统计总行
返回值
VOID
描述
如图2所示,鼠标点击“统计总行”的CHECKBOX控件,则调用该接口,如果选中统计总行控件,则g_bStatTotalLineFlag=STAT,如果取消选中统计总行控件,则g_bStatTotalLineFlag=NOT_STAT
表5界面模块-选择统计总行接口
接口6
退出Counter应用程序的接口
形式
函数接口
输入
VOID
输出
无
返回值
VOID
描述
通过鼠标点击“退出”按钮结束应用程序Counter
表6界面模块-退出Counter应用程序接口
2)源文件统计主控模块接口
接口7
代码统计主控接口
形式
函数接口
输入
VOID
输出
g_iBlankLineNum,统计得到的空行数
g_iCodeLineNum,统计得到的代码行数
g_iCommLineNum,统计得到的注释行数
g_iTotalLineNum,统计得到的总行数
返回值
VOID
描述
如图2所示,用户点击“开始统计”按钮的时候,主控模块调用参数检查模块,对输需要统计的文件全路径以及另外4个统计标志位做参数检查,并调用后面的4个统计模块和统计输出模块,最后把统计结果输出到UI界面上“统计结果”编辑框中
表7源文件统计主控接口
3)参数检查模块的接口
接口1
参数检查模块接口
形式
函数接口
输入
被统计的文件全路径名:
szStatFileName
数据类型:
CString
统计空行标志位:
bStatBlankLineFlag
数据类型:
BOOL
统计代码行标志位:
bStatCodeLineFlag
数据类型:
BOOL
统计注释行标志位:
bStatCommLineFlag
数据类型:
BOOL
统计总行数标志位:
bStatTotalLineFlag
数据类型:
BOOL
输出
无
返回值
布尔类型:
RET_OK-参数检查通过,RET_FALSE-参数检查不通过
描述
如果参数检查不通过,给用户相应的提示信息
表8参数检查模块接口
4)统计空行模块接口
接口1
统计空行模块接口
形式
函数接口
输入
参数1:
用户选择的.c文件名。
数据类型:
字符串
参数2:
统计空行标志位。
数据类型:
布尔类型
输出
g_iBlankLineNum-全局变量,统计.c文件得到的空行数,如果统计失败,该变量值为-1
返回值
VOID
描述
根据两个输入参数,统计.c文件中的空行数目,记录到全局变量g_iBlankLineNum中。
表9统计空行模块接口
5)统计代码行模块接口
接口1
统计代码行模块接口
形式
函数接口
输入
参数1:
用户选择的.c文件名。
数据类型:
字符串
参数2:
统计代码行标志位。
数据类型:
布尔类型
输出
g_iCodeLineNum-全局变量,统计.c文件得到的代码行数,如果统计失败,该变量值为-1
返回值
VOID
描述
根据两个输入参数,统计.c文件中的代码行数目,记录到全局变量g_iCodeLineNum中。
表10统计代码行模块接口
6)统计注释行模块接口
接口1
统计注释行模块接口
形式
函数接口
输入
参数1:
用户选择的.c文件名。
数据类型:
字符串
参数2:
统计注释行标志位。
数据类型:
布尔类型
输出
g_iCommLineNum(全局变量,统计.c文件得到的注释行数,如果统计失败,该变量值为-1)
返回值
VOID
描述
根据两个输入参数,统计.c文件中的注释行数目,记录到全局变量g_iCommLineNum中。
表11统计注释行模块接口
7)统计总行数模块接口
接口1
统计注释行模块接口
形式
函数接口
输入
参数1:
用户选择的.c文件名。
数据类型:
字符串
参数2:
统计总行数标志位。
数据类型:
布尔类型
输出
g_iTotalLineNum(全局变量,统计.c文件得到的总行数,如果统计失败,该变量值为-1)
返回值
VOID
描述
根据两个输入参数,统计.c文件中的总行数,记录到全局变量g_iTotalLineNum中。
表12统计总行数模块接口
8)统计结果输出模块接口
接口1
统计结果输出模块接口
形式
函数接口
输入
参数1:
统计类型
数据类型:
整型
参数2:
统计结果
数据类型:
整型
输出
把统计结果输出到界面上的“统计结果”编辑框中
返回值
VOID
描述
该模块支持输出空行、代码行、注释行和总行结果到“统计结果”编辑框上。
通过输入参数1和参数2分别确定需要输出结果的类型和统计值。
表13统计结果输出模块接口
2.全局变量、数据结构
数据类型
数据项定义
数据项描述
int
g_iBlankLineNum
记录统计得到的空行数目的全局变量
int
g_iCodeLineNum
记录统计得到的代码行数目的全局变量
int
g_iCommLineNum
记录统计得到的注释行数目的全局变量
int
g_iTotalLineNum
记录统计得到的总行数的全局变量
BOOL
g_bStatBlankLineFlag
统计空行标志位
BOOL
g_bStatCodeLineFlag
统计代码行标志位
BOOL
g_bStatCommLineFlag
统计注释行标志位
BOOL
g_bStatTotalLineFlag
统计总行数标志位
Enum
{STAT=0,NOT_STAT}
枚举变量,STAT表示统计,NOT_STAT表示不统计,为上面的统计标志位赋值
Enum
{STAT_BLANK=0,
STAT_CODE,
STAT_COMM,
STAT_TOTAL}
枚举变量,分别表示统计空行、代码行、注释行和总行数。
当调用统计结果输出模块时,为第一个参数赋值
CString
g_szStatFileName
被统计的文件的文件全路径名
Enum
{RET_OK=0,RET_FAIL}
函数的返回值,RET_OK-返回成功,RET_FAIL-返回失败
表14全局变量描述表
2.3第二层设计描述
2.3.1界面模块
1.分解描述
1)选择被统计文件接口
函数:
VOIDSelectStatFile()
功能:
该函数完成选择被统计文件功能
输入:
用户点击“选择文件”按钮
输出:
g_szStatFileName-选择的文件全路径名
返回值:
无
2)设置统计空行标志位接口
函数:
VOIDSetStatBlankLineFlag()
功能:
该函数完成设置统计空行标志位的功能
输入:
用户点击“统计空行”复选框
输出:
g_bStatBlankLineFlag-为统计空行标志位赋值
返回值:
无
3)设置统计代码行标志为接口
函数:
VOIDSetStatCodeLineFlag()
功能:
该函数完成设置统计代码行标志位的功能
输入:
用户点击“统计代码行”复选框
输出:
g_bStatCodeLineFlag-为统计代码行标志位赋值
返回值:
无
4)设置统计注释行标志位接口
函数:
VOIDSetStatCommLineFlag()
功能:
该函数完成设置统计注释行标志位的功能
输入:
用户点击“统计注释行”复选框
输出:
g_bStatCommLineFlag-为统计注释行标志位赋值
返回值:
无
5)设置统计总行数标志位接口
函数:
VOIDSetStatTotalLineFlag()
功能:
该函数完成设置统计总行标志位的功能
输入:
用户点击“统计总行”复选框
输出:
g_bStatTotalLineFlag-为统计空行标志位赋值
返回值:
无
6)退出Counter应用程序
函数:
VOIDExitCounter()
功能:
该函数完成退出Counter应用程序的功能
输入:
用户点击“退出”按钮
输出:
退出Counter应用程序
返回值:
无
2.3.2源文件统计主控模块
函数:
VOIDMainStatFun()
功能:
该函数在用户通过界面单击“开始统计”按钮后,开始运行。
该主控函数具有调度功能,分别调用参数检查模块、代码统计模块和统计结果输出模块,完成一次统计执行过程
输入:
g_iBlankLineFlag,统计空行标志位;g_iCommLineFlag统计注释行标志位;g_iCodeLineFlag统计代码行标志位;g_iTotalLineFlag统计总行标志位;g_szStatFileName被统计文件的全路径名
输出:
g_iBlankLineNum,统计得到的空行数;g_iCodeLineNum,统计得到的代码行数;g_iCommLineNum,统计得到的注释行数;g_iTotalLineNum,统计得到的总行数;
返回值:
无
2.3.3参数检查模块
1.分解描述
1)参数检查主函数
函数:
BOOLCheckParameters(CStringszStatFileName,
BOOLbStatBlankLineFlag,
BOOLbStatCodeLineFlag,
BOOLbStatCommLineFlag,
BOOLbStatTotalLineFlag)
输入:
参见表2
输出:
参见表2
返回值:
参见表2
2)检查用户选择的被统计文件是否合法函数
函数:
BOOLCheckStatFile(CStringszStatFileName)
功能:
该函数完成检查用户选择的被统计文件是否合法
输入:
szStatFileName-用户选择的被统计文件
输出:
无
返回值:
TRUE-参数检查通过,FALSE-参数检查不通过
3)检查用户选择的被统计项是否合法
函数:
BOOLCheckStatItem(BOOLbStatBlankLineFlag,BOOLbStatCodeLineFlag,BOOLbStatCommLineFlag,BOOLbStatTotalLineFlag)
功能:
该函数完成设置统计代码行标志位的功能
输入:
bStatBlankLineFlag-统计空行标志位
bStatCodeLineFlag-统计代码行标志位
bStatCommLineFlag-统计注释行标志位
bStatTotalLineFlag-统计总行数标志位
输出:
无
返回值:
TRUE-参数检查通过,FALSE-参数检查不通过
2.3.4统计空行模块
1.分解描述
1)统计空行模块的主函数
函数:
VOIDMainStatBlankLine(CStringszStatFileName,BOOLbStatBlankLineFlag)
功能:
该函数对bStatBlankLineFlag做检查,如果需要统计空行,则调用StatBlankLine函数统计空行
输入:
szStatFileName-用户选择的被统计文件
bStatBlankLineFlag-统计空行标志位
输出:
g_iBlankLineNum-全局变量,统计得到的空行数目
返回值:
无
2)统计空行模块的统计执行函数
函数:
VOIDStatBlankLine(CStringszStatFileName)
功能:
该函数完成对指定文件StatBlankLine的空行数目统计
输入:
szStatFileName-用户选择的被统计文件
输出:
g_iBlankLineNum-全局变量,统计得到的空行数目
返回值:
无
2.3.5统计代码行模块
1.分解描述
1)统计代码行模块的主函数
函数:
VOIDMainStatCodeLine(CStringszStatFileName,BOOLbStatCodeLineFlag)
功能:
该函数对bStatCodeLineFlag做检查,如果需要统计代码行,则调用StatCodeLine函数统计空行
输入:
szStatFileName-用户选择的被统计文件
bStatCodeLineFlag-统计代码行标志位
输出:
g_iCodeLineNum-全局变量,统计得到的代码行数目
返回值:
无
2)统计代码行模块的统计执行函数
函数:
VOIDStatCodeLine(CStringszStatFileName)
功能:
该函数完成对指定文件StatCodeLine的空行数目统计
输入:
szStatFileName-用户选择的被统计文件
输出:
g_iCodeLineNum-全局变量,统计得到的代码行数目
返回值:
无
3)判断当前字符串是否是代码行
函数:
BOOLIsCodeLine(CStringszStatFileLine,BOOL&bIsComment)
功能:
判断从文件中读取到的当前行是否为代码行
输入:
szSta