Maintainability improvement program for Java software

zhaozj2021-02-16  53

Summary:

This article describes the maintenanceability solutions to improve Java software by importing JTRACKER.REM

background:

Demand extraction, system analysis, system design, design, development, testing, deployment and maintenance of the life cycle of the software. Software After completing the test phase, the finished product submitted to the user generally includes a regular executable code and a corresponding annotation. However, the test phase does not mean that the bug in the software has been completely cleaned, and it is actually impossible to completely clear. When these bugs appear during the maintenance phase of the software, the maintenance personnel will quickly position the problem. This article will introduce the maintenance of the software itself by importing JTRACKER.REM to import JTRACKER.Rem, reducing software maintenance costs, and improves maintenance quality. .

text:

What is JTRACKER?

JTRACKER is an improved research and development project for development models for Java software

JTRACKER.REM is part of the JAVA software maintainability improvement in the JTRACKER project

Import JTRACKER.REM

During the development phase of the software

We will need to write the debugging information output when the software maintenance response is written in the manner required by JTRACKER.REM during the development phase of the software. Comment content can be the content corresponding to the design book

For example, there is the following treatment in our design book

1.1 Initialization global variables

· ...

· 2.1.1 COUNT plus 1

· ...

· 2.2.2 Output web content end

· ...

· 2.3 Release Resources

When we want to output 1.1, 2.1.1 2.2.2 information when the software corresponds, we can write the corresponding annotations in the source code in the source code in the source code in the source code; import javax.servlet. *; Import javax.servlet. http. *; import java.io. *; import java.util. *; public class samples httpservlet {private static final string content_type = "text / html; charset = GB2312"; static int count = 0; / * << 1.1 initializes global variables >> * / 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 (""); / * << 2.2.1 COUNT plus 1 >> * / count ; out.println (" 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 Output web page content end >> * /} / ** Release resource * / public void destroy ()}}</p> <p>In the maintenance phase of the software When the software occurs in the maintenance phase, it is necessary to emergency response. We can run the corresponding debug server in debug mode (JVM running in debug mode). At this time we can connect to the virtual machine through JTRACKER, get the JTRACKER.REM debugging information we joined in development, and the results of the above example are as follows</p> <p>============== Classname: TestServlet.sample * Lineno: 11 ============== 1.1 Initialization global variable 1.1 ======== ============================================================================================================================================================================================================= ========================= =======================================================================================================================================================================================================================================================2. 1 count plus 1 ============================================= ===================================== Classname: TestServlet.sample * LINENO: 27 ==== ========== 2.2.2 Output web content end =================================== ==================================== can help software maintenance technicians can help software maintenance technicians through this information The actual execution logic, quickly locate the position that bugs may appear.</p> <p>What can jtracker.rem give us what?</p> <p>By importing JTRACKER.REM, we do not need to introduce additional debug code in your code. While do not affect the cleanliness of the code, there is a large number of debugging information we may need during maintenance, and this information is only running in the debug state. Then there is no operational efficiency of the code. At the maintenance phase we can help developers understand the actual runtime process of the program, positioning the location where you may have problems, enhance the maintenanceability of Java software.</p> <p>Term</p> <p>Debug mode: Refers to the JVM where the program is running in debug mode, please refer to Sun's related documentation about the Java virtual machine.</p> <p>Relevant information</p> <p>JTracker.rem: http://www.jtracker.net</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-23031.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="23031" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.042</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'qz5jaMoXd_2BiBeo_2FzcgQWHn9YnyU3rkvTq8PxBvw4hr_2Fi5kzoc_2BeO5Dk59aXejY92cA2XrevYDqdOVWiBmP7NVg_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>