摘要:
本文介绍通过导入JTracker.rem改进java软件的可维护性的解决方案
背景:
软件的生命周期中需求提取,系统分析,系统设计,实现设计,开发,测试,部署,维护。软件在完成测试阶段后,提交给用户的成品一般包括规整的可执行代码及相应的注释。但测试阶段完成并不代表着软件当中的bug已完全清除干净,实际上也不可能完全清除。这些bug在软件的维护阶段出现时,维护人员如何快速的定位问题的所在,本文将介绍通过在开发阶段导入JTracker.rem,来改进软件本身的可维护性,降低软件的维护成本,提高维护质量。
正文:
什么是JTracker
JTracker是一致力于java软件的开发模式改进的研发项目
JTracker.rem是JTracker项目中致力于java软件可维护性改进的部分
导入JTracker.rem
在软件的开发阶段
我们在软件的开发阶段加代码注释时将需要在软件维护应对时输出的调试信息以JTracker.rem所要求的方式书写。注释内容可以为设计书上对应的内容
比如我们的设计书中有如下处理
· 1.1 初始化全局变量
· ...
· 2.1.1 count加1
· ...
· 2.2.2 输出网页内容结束
· ...
· 2.3释放资源
当我们希望在软件对应时输出1.1, 2.1.1 2.2.2信息时,我们可以按JTracker.rem的规范在源代码中写相应的注释
package testservlet;
import javax.servlet.*;
import javax.servlet.http.*;
import java.io.*;
import java.util.*;
public class sample extends HttpServlet {
private static final String CONTENT_TYPE = "text/html; charset=gb2312";
static int count=0;
/*<<1.1初始化全局变量>>*/
public void init() throws ServletException {
}
public void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType(CONTENT_TYPE);
PrintWriter out = response.getWriter();
out.println("<html>");
/*<<2.2.1 count加1>>*/
count++;
out.println("<head><title>sample</title></head>");
out.println("<body>");
out.println("<p>The servlet has received a GET. This is the reply.</p>");
out.println("</body></html>");
/*<<2.2.2输出网页内容结束>>*/
}
/**释放资源*/
public void destroy() {
}
}
在软件的维护阶段
当软件在维护阶段出现bug,需要紧急应对时。我们可以将对应的调试服务器运行于调试模式(JVM运行于调试模式)。这时我们可以通过JTracker连接到该虚拟机,获得我们在开发时加入的JTracker.rem调试信息,对于上面的例子结果如下
==============className:testservlet.sample*lineNo:11 ==============
1.1 初始化全局变量 1.1
=====================================================================
==============className:testservlet.sample*lineNo:21 ==============
2.2.1 count加1
=====================================================================
==============className:testservlet.sample*lineNo:27 ==============
2.2.2 输出网页内容结束
=====================================================================
通过这些信息结合设计书可以帮助软件维护技术人员了解程序实际的执行逻辑,快速定位bug可能出现的位置。
JTracker.rem 能给我们带来什么
通过导入JTracker.rem我们不需要在代码中引入额外的调试代码,在不影响代码的整洁性的同时,又留下了大量我们可能在维护时需要的调试信息,并且这些信息只有运行在调试状态才出现,并不会影响代码的运行效率。
在维护阶段我们可以通过这些信息可以帮助开发者了解程序的实际运行流程,定位可能出现问题的位置,增强java软件的可维护性。
相关术语
调试模式:指该程序所在的JVM运行于调试模式,请参照sun公司有关java虚拟机的相关文档。
相关资料
JTracker.rem : http://www.jtracker.net