毕业设计-软件日志规范描述工具的设计与实现,共42页,17730字,附完整源代码、开题报告等
主要功能:
本软件为软件日志规范描述工具,基于source insight平台。目的是使得用户能够顺利对当前程序进行操作(以关键函数为单位),如查看某个关键函数的相关信息并对其进行定位、修改、删除等等。
在编写、调试代码行数比较多的程序时,用户往往需要随时了解当前文件中每个函数的特定信息。本文档使用MFC和Source Insight两个平台编程,对用户的操作进行制导,如将文件中每个函数的函数名、优先级、判断条件以及关键变量记录到xml文件等过程,并可制导用户对某个特定关键函数的信息进行手动修改、更新、完善。同时,用户也可以随时查看所选定的关键函数的相关信息。
主要技术:
在source insight 中调用MFC程序,MFC程序对source insight中的程序文件进行查询、修改、定位、更新等操作。涉及到很多的进程切换、命令传递、数据共享等编程知识。描述方法的选择:
a,特殊描述一般多见于对于输入参数的复杂操作和判断,如果用户认为分析程序可以放宽定位和判断标准的话,可以让用户描述输入参数相关信息就好了。可是,对应的工作量也不会减少,同时分析的结果的精度会降低。
b,还有一种方式是通过分析代码,找到所有函数以及log使用点,并提示和辅助用户输入描述信息。这里如果提示和辅助是自动化的,输入是半自动化的话应该可以在保证输入正确的前提下大量减少用户的工作量。
中文提要
本文研究的内容是软件日志规范描述工具的设计与实现。软件日志是一种传统的编程实践。日志可以记录程序动态执行的信息,提供程序调试的基本数据,包括机器运行的状态,程序执行路径,函数的关键变量,控制条件等,有效的日志能够帮助程序员快速检测出难以发现的软件错误。软件日志是进行软件故障诊断的重要手段。因此,如何书写正确高效而有助于程序调试的日志成为了一项重要的任务。当前日志多种多样,使用十分随意。即使有专业的日志规范(log4j),无法完全保证日志满足规范,因此目前急迫的需要日志规范检查工具。此工具分析了日志规范检查所需的关键输入信息,系统讨论并选择了精简而全面的日志规范描述方式。通过与软件开发工具source insight集成,该工具为用户提供了友好、便捷的方式进行日志规范描述,进而辅助日志分析工具进行日志规范性的检查。同时,该工具利用source insight提供的程序信息,为日志规范描述提供了定位和关键信息,提高了日志规范检查工具的实用性,并在设计过程中考虑了程序的优化等问题。此外,还向用户提供良好的提示信息,以帮助用户修改和排除错误日志,优化工程代码,提高日志利用率。
关键词:软件日志;规范描述;日志分析;日志优化;source insight
Abstract
The contents of this paper is the design and implementation of a specification description tool for software logs. The software log is a traditional programming practice. Log can record the program dynamic execution and provide program debugging data including the key variables of the machine running the state, program execution path, function and control conditions, etc. Effective logs can help programmers quickly detect the software errors. The software logs are an important means of software fault diagnosis. How to write correct and efficient debugging logs has become an important task. As there has been a variety of current log structure and the use of the log is very casual. Even with professional log specification (log4j), It can not completely guarantee the log to meet the specifications, therefore It is an urgent need to log specification checking tool. This tool analyzes the key input information needed for log specification inspection, and has discussed and selected a streamlined and comprehensive log specification description. By integrating the software development tool Source Insight with this tool, it can provide users with a friendly and convenient way to have a specificate description on software logs and auxiliary the log analysis tool to have a log-normative check . Besides, the tool takes advantage of the information provided by Source Insight programs to locate key functions and collect key messages, and improves the practicality of the log specification checking tool, and program optimization problem is also considered in the design process. In addition, The tool provides users with good messages to help the users to modify and eliminate the wrong logs, optimize the project code, and improve log utilization.
Keywords: software logs; specification description; log analysis; logs optimization; Source Insight
目 录
第1章 引言 - 1 -
1.1 日志的重要性 - 1 -
1.2 日志规范及其检查 - 3 -
1.2.1 日志规范及重要性 - 3 -
1.2.2 日志检查及重要性 - 4 -
1.3 本文的设计目标 - 5 -
1.4 本文的组织结构 - 5 -
第2章 背景介绍 - 6 -
2.1 SOURCE INSIGHT及其宏语言 - 6 -
2.1.1 SOURCE INSIGHT简介 - 6 -
2.1.2 宏语言及宏的触发 - 6 -
2.2 VC++简介 - 7 -
2.3 XML简介 - 7 -
2.4 日志检查工具简介 - 8 -
2.4.1 日志检查工具的规范描述 - 8 -
2.4.2 日志检查工具的功能 - 9 -
2.4.3 日志描述和分析工具的总体 - 9 -
第3章 日志规范描述工具的设计 - 11 -
3.1需求分析 - 11 -
3.1.1 描述方式的选择 - 11 -
3.1.2 描述方法的对比 - 11 -
3.1.3 描述格式的设计 - 12 -
3.2 功能设计 - 13 -
3.3 界面及输入规则设计 - 13 -
3.4 日志描述工具与检查工具的接口设计 - 15 -
第4章 日志规范描述工具的实现 - 16 -
4.1 收集关键函数 - 16 -
4.2 定位功能 - 16 -
4.3 查看“下一个”关键函数 - 16 -
4.4 XML文件的生成 - 17 -
4.4.1 XML文件的DTD - 17 -
4.4.2 XML文档树结构 - 18 -
4.4.3 脚本转化流程 - 19 -
4.5 保存和查看日志信息 - 21 -
4.6 描述工具实现过程中的难点 - 23 -
4.6.1 SI与VC进程的切换 - 23 -
4.6.2 SI与VC信息的共享——文件 - 25 -
4.6.3 字符串以行为单位排序整合 - 26 -
4.6.4 影响运行效率的主要因素 - 26 -
第5章 实验 - 27 -
5.1 实验环境设置 - 27 -
5.2 实验用例选择 - 28 -
5.3 测试用例 - 28 -
5.3.1 日志与关键函数的输入参数相关 - 29 -
5.3.2 日志控制条件与关键函数的输出参数相关 - 30 -
5.3.3 日志控制条件与关键函数的返回值相关 - 30 -
5.3.4 日志控制条件与特殊条件相关 - 31 -
5.3.5 某关键函数与多个日志相关的函数 - 31 -
5.4 与检查工具结合后的测试效果 - 32 -
第6章 总结 - 33 -
6.1 结论 - 33 -
6.2 展望 - 33 -
致谢 - 34 -
参考文献 - 35 -
1.3 本文的设计目标
本文旨在为source insight设计一个日志描述工具。用户在阅读、编辑source insight中某个工程的代码时,如果想知道当前工程的日志提示信息是否正确、规范时,可以使用该工具所提供的界面输入日志函数的相关信息,本工具能生成对本工程的所有日志进行规范描述的XML文件,供日志检查工具分析,并向用户提供良好的提示信息,以帮助用户修改和排除错误日志,优化工程代码。
设计目标有:友好的界面;良好的提示信息;齐全的日志类型;较高的运行效率;所生成的XML日志文件具有较高的可移植性和可读性。
1.4 本文的组织结构
第2章是本文的背景介绍,本文主要用到的背景知识有source insight宏语言编程、VC++编程、XML等基础知识。本文所设计的工具是为了提高日志检查工具的实用性,第二章末简要介绍了日志检查工具的规范描述、功能介绍以及两者的相互联系。
第3章和第4章是本文的核心,介绍了日志规范描述工具的设计与实现及其难点。
第3章介绍了日志规范描述工具的设计,包括需求分析、功能设计、界面及输入规则设计、日志描述工具与检查工具的接口设计等等。
第4章介绍了日志规范描述工具的实现,包括多个模块的实现过程描述,如收集关键函数、定位、保存等功能。重点描述了XML文件的生成过程。此外,工具实现过程中的难点及解决方案也在此进行了详述。
第5章是描述工具的实验部分,主要描述了本工具的实验环境设置、实验用例选择、测试用例以及测试效果等等。
第6章是结束语,是对本文的总结和展望。