How does MaintainJ help users？
Why should developers be interested?
Any developer who has ever tried to change a large Java application should not need much persuasion. For the remaining few, here are a few reasons :
Dynamic Binding - Dynamic or runtime binding in Java makes understanding code more difficult. Developers often need to understand the runtime object interactions for a specific use case either to debug or enhance the application. Dynamic binding helps in building very flexible systems but, at the same time it increases the time to understand the system. It is also common to employ multiple levels of dynamic binding, like a Vector containing another Vector, which further complicates the issue.
Observer Pattern - Many enterprise applications follow Observer Pattern for flexibility, where 'listener' (or observer) objects change model state besides 'listening' (or observing) for the state changes. When many such listener objects, which are often determined at runtime, change the model, it becomes hard to understand and debug a large application.
Multi-threaded Applications - Multi-threaded applications are always difficult to code and debug. Using MaintainJ, one can see the sequence of method calls happening in each thread in a neat sequence diagram. This makes debugging multi-threaded applications much easier.
Externalized Data and Rules - Externalizing configuration data as well as rule based logic to XML files is very commonly found in the present day Java applications. Very often, the logic to determine the runtime classes is soft-coded in xml files. In a not so well documented large-scale system, it is very hard to understand how the xml file drive the system.
Poor Design - Designing robust and flexible systems at the same time is hard. Maintaining them as the systems evolve is harder. If poor design slips into this equation, it becomes very hard to understand a system after 2-3 years from initial launch.
Here are some other scenarios where MaintainJ helps developers.
Complements Debugger - MaintainJ complements debugger rather than replacing it. By generating the class and sequence diagrams for a use case, it reduces the time spent in debugger. Unlike other reverse engineering tools, MaintainJ offers uncluttered and focused UML diagrams. For sequence diagrams, which get cluttered very easily, MaintainJ offers features like call folding to generate crisp diagrams.
During Code reviews - MaintainJ can also be used during code reviews. Rather than reviewing the entire source code, one can review the diagrams to find deviations from the design standards. Class diagrams showing the dependencies help to weed out unwanted dependencies.
For Agile Teams - For agile programming teams, MaintainJ provides always up-to-date documentation of the system. Useful UML diagrams can be generated whenever one needs them.
更新时间:2017-04-25 10:41:01.000 | 录入时间:2012-07-08 22:20:25.000 | 责任编辑:郑恭琳