|This article is being considered for deletion in accordance with Wikipedia's deletion policy.
Please share your thoughts on the matter at this article's entry on the Articles for deletion page.
Feel free to edit the article, but the article must not be blanked, and this notice must not be removed, until the discussion is closed. For more information, particularly on merging or moving the article during the discussion, read the guide to deletion.
|Initial release||8 August 2006|
|Operating system||Microsoft Windows, Linux and Mac OS X|
AgileJ StructureViews® is a commercial Java software visualizer developed by AgileJ Ltd which creates UML class diagrams by reverse engineering Java source code. The product is packaged as two signed Eclipse features and is intended for use by Java software programmers. It was first released under the name AgileJ StructureViews in 2006, after attracting venture capital investment. It places emphasis upon its script-driven filtering and batch-driven generation of reverse engineered class diagrams. The most recent release of this CASE tool, version 1.8.0 was made available on 20 November 2014.
Purpose of the product
There are principally three situations where object oriented source code structure visualization through reverse engineering is beneficial to the software developer. In the first, the purpose is to gain familiarity with the structure of any existing code base, which could mean that of any third-party or open source project, or could mean the existing source code of a project which the user intends to take part in the ongoing development of. In this first case the reverse engineering is a one-off event. In the second, the purpose is the ongoing monitoring of the quality of the object oriented design for code review purposes. Many software design patterns and anti-patterns are easier to identify in class diagrams than through reading the source code as text. In the third situation, class diagrams are used as a communication tool. This is where the architect of an object oriented design wishes to explain the nature of the design to other software developers so as to encourage adoption, extension or re-use.
AgileJ refers to filtering as the process of discriminating between Java elements (classes, fields and methods). The majority of the product user-guide is devoted to the subject of filtering and the product ships with a selection of standard filters. As well as filtering on the basis of language-level characteristics like keyword modifiers, annotations and scope, there are filters which relate to idiomatic terms understood by Java programmers such as POJOs, beans, marker interfaces or serializable classes. Furthermore the filtering extends to common Java frameworks such as Spring and Hibernate. The filtering mechanism built into the product plays various roles across its functions, such as filtering out unwanted detail from class diagrams and selecting which classes to include in automatically generated class diagram.
AgileJ StructureViews has a batch generator which performs automatic class diagram discovery. The generator makes a collection of class diagrams available for inspection by the programmer, saving the programmer from having to create class diagrams manually. This generator examines all of the Java source code open in the Eclipse workbench looking for what AgileJ call 'seed' classes. The classes which qualify as seed are controlled by the filtering mechanism. Once the seed classes have been identified, the batch generator uses four mechanisms for populating candidate class diagrams. By package: the presence of a seed triggers the creation of a class diagram containing all classes in the seed's package. By composition: the seed and all of its immediate field types are added to the class diagram. By inheritance: the seed and all of its immediate supertypes and subtypes are added to the class diagram. By dependency: the seed and all of its incoming and outgoing dependency classes are added to the class diagram. For each of the four class diagram population mechanisms further filtering is applied to control which classes are added. The results of running a batch can be viewed in Eclipse or uploaded to a web container.
- Madhat, Hajar (2014-12-15). "AgileJ dedicated to speeding up tasks, eliminating majority of programmer hours". Financell.com. Retrieved 2015-02-10.
- Yu, Liguo (31 March 2014). Overcoming Challenges in Software Engineering Education: Delivering Non-Technical Knowledge and Skills. IGI Global. pp. 431–. ISBN 978-1-4666-5801-1.
- "Aspiration Capital- 3 Investments in 3 Companies". CrunchBase. Retrieved 2015-01-02.
- Glade, Jim (2014-12-15). "AgileJ StructureViews puts powerful software project visualization into the hands of millions of Java programmers". Tekoholic. Retrieved 2014-12-17.
- "Java Programming Made Easier With AgileJ". Valleycentric. 2015-01-06. Retrieved 2015-02-10.