The most prevalent software architecture style is still "The Big Ball of Mud." Restructure101 is a superb weapon in our continuing battle against architecture entropy.
2011 Jolt Productivity Award - Restructure101 - Dr. Dobb's
This fragility in the code structure would likely have caused a maintenance overhead as Spring Security evolved, so the decision was made to restructure the code for the 3.0 release to give us a stable base for future development.
I'll plug the one commercial tool I've used extensively that doesn't appear on enough lists: Structure101. To me, this is the MUST HAVE tool if you're analyzing and restructuring a large, complex body of Object-Oriented software (and no, I don't work for them).
Software Architect, Integritas
I was using IDEA and Eclipse to analyze the dependencies in my code. However, I now use Structure101 because it has way more in this area, all wrapped in an easy-to-use and understand interface.
Lead, Jodd Open Source Utility Library
Using Structure101 when performing code and architecture reviews is a real kick-start for our consultants. We can very quickly get a comprehensive overview of the structure of an application or framework and of its quality. With Structure101 in our toolbox we can help clients analyse and refactor their code-base into a consistent architecture with decreasing dependencies and better distribution of responsibilities. After such an activity, clients find their code-base easier and more cost efficient to maintain, change and enhance.
I have looked at pretty much all the open source and commercial tools and Structure101 is the best I have come across for figuring out dependency data.
Senior Architect, iTKO
Structure101 - I've never had the need to look beyond for better.
Playing with a new version of #structure101 - love it for cleaning an architecture.
Structure101 blew me away! I can't begin to tell you how many 'aha!' moments I was having ... everything from the cool way code trees are grouped into "partitions", to the various slices through the code, to the matrix view.
Our developers are realizing the value of Structure101. One good recent example - five teams started development simultaneously. After two months they realized that one team was developing much faster than the others. That team had deliberately used Structure101 from the beginning and that really paid off in terms of speed.
Jayway Consultant @ leading Swedish teleco
The guys at headwaysoftware.com are awesome; how many companies mail you back on a Saturday?
Bill de hOra
Reseach in Motion
Tools exist for enforcing your architecture. Start today! No more "Word architectures"!
Enterprise Architect, Jayway
I find that the architecture diagrams are extremely useful for understanding a large codebase very quickly. It often unnerves the people I deal with at the bank -- they'll send me the code expecting me to take a couple of days to get to grips with the basic parts, and I will ring them up 30 minutes later discussing how they need to fix the code up.
I've used Structure101 for a couple of years now, and found it to be fantastic for getting a very good (and fast) overview of large systems. The architecture diagrams in particular show the automatic layering of 500kloc systems well.
The micro-architectural stuff (packages and classes) is also well catered for with the dependency diagrams. Worth its weight in gold.
Independent Consultant, Retail Bank
Structure101 has proven very useful, we've mainly concentrated on the architectural model since this gave us the greatest gains.
I recently made major changes, removing unused functionality and products, and the collaboration perspective was used extensively. I highly recommend it to anyone else doing similar work. Paddling left and right was particularly useful. I saved a huge amount of manual work by using this perspective.
Business Analyst, Thompson Reuters
Structure101 has proved invaluable... It has excellent support for analysing the dependencies between components and identifying anomalous dependencies. I've really appreciated the support from the Structure101 developers who have helped me get the best out of the tool.
At first I thought a Structural Analysis tool was a 'nice to have' but as I use Structure101 its value has increased to the point where it's a 'must have', same as an IDE.
When you are busy implementing new features it’s easy for cyclic package dependencies to creep into the application. With Structure101 it was straightforward to identify the cycles and fix them.
Java consultant, author "POJOs in Action"
Structure101 helped me manage the refactoring process with success. An easy to use program that not only provides insight for maintenance, but is the perfect tool to help design applications from scratch.
University of Kent
Structure101 for .Net rocks! Want to understand the structure of your app? Structure101 should be your first choice.
While our software system was growing larger and larger, every developer had some kind of overall architecture map in mind. But these differed and it was hard to introduce them to new developers.
Structure101 is exactly the tool we were looking for to make this map visible, agreeable and at the same time capable of expressing formal architecture rules.
Many thanks for this great product and the fast and professional support!
Dr. Karin Damerow
There's been a need for a product like Structure101 for a very long time. The ability you have to click through and navigate up and down the structure of the code base is both eye opening and addictive. I found the online Flash tutorials great to not only get familiar with the Structure101 concepts, but also to see some of the intent for how its designers envision it being used.
Structure101 is indispensable for understanding a system's architecture. In addition to providing great, simple code metrics, it excels at providing an intuitive way to visualize and navigate dependencies from major subsystems down to classes that is unmatched by any other tool we have used.
Structure101 has helped us dramatically improve our design by highlighting where we needed to remove bad or unnecessary coupling.
Teaching software architecture to students is difficult, IDEs like Eclipse only show class level details, and UML tools like Poseidon only show the desired structure at design time. Structure101 allows me to make visible what the students can't see otherwise and makes for an impressive learning experience. Especially the architecture diagrams which stick in the mind and get the user thinking in layers. I strongly recommend Structure101 for teaching purposes.
Prof. Marko Boger, HTWG Konstanz,
founder of Gentleware (Poseidon UML)
I, as a Fornax cartridge developer for the oAW code generation framework, naturally want to see if the generated code is well structured.
Structure101 is just the right tool to see results in a snap. It is an easy to use, easy-to-understand code analyzer.
No matter how big your code base is - with the help of this great tool - you can always check if you are going in the right direction.
A perfect tool that just gets the job done, keep up the superb work!
Senior Architect, Fornax
I spent a bit of time setting up some architecture diagrams for the project (along with some transformations), which I found really simple and intuitive. The Structure101 GUI is slick, quick and offers great insight, I'm sure it'll be extremely valuable as time passes on!
Structure 101, the best tool I have found to get an overview of your system design/architecture.
With 2 big projects, over 50 developers and millions of lines of code, we were fighting with what we call jar-cancer, almost blindly using refactorings.
Structure101 is an X-ray device that allows us to identify dangerous cross-module calls ahead of time and helps us find solutions quickly.
I evaluated several alternatives, however Structure101 is truly superior in terms of performance and usability: it will be my privilege to use it.
@jridley I found this article by Structure101 absolutely fascinating. What an incredible tool. http://bit.ly/eEhys
I loaded our application code and in a matter of minutes I was blown away by the simplicity and the power of Structure101 to analyze the organization and design of your code.
I love the architecture diagram functionality. With it we are able to define our architecture standards and enforce them during design and construction. As a Chief Architect who is responsible for overall design and system architecture, this capability is a great value-added to an already fantastic product.
Chief Architect, EPL
Overall, a nice piece of work to keep control of complexity. [...] A seriously amazing product!
Structure101 is not free, but it does it's job really well and at the time I can't think of a free alternative that would be just as good.
After evaluating all of the open source code complexity analysis tools, I found Structure101. Within a few minutes I could see the difference, seeing exactly where my cyclic package dependencies were, drilling down, and identifying the offending methods and classes. Simple as that.
Structure101 is fantastic! In a matter of minutes, you can pinpoint the packaging and dependency issues in your application. The ability to move Java classes around on-the-fly helps jump start refactoring exercises. If you're an architect working on an system of any size, Structure101 greatly simplifies controlling the integrity of your application.
I downloaded Structure101 a few days ago and used it to analyze complex applications that I am working on. I found the tool very intuitive, easy to use and insightful. The Structure Guys did an awesome job!
CEO GetGlue, co-creator of IBM's SA4J
Software evolution and maintenance are the purest forms of code entropy; with Headway's Structure101 products, we keep the creeping chaos at bay.
VP Eng., Ecologic Leasing Services
Our research would NOT have been possible without your help and guidance. Structure 101 is one of the best tool in its category. I am a proud user and fan of Structure101.
Even in the short amount of time I've been able to spend learning Structure101 since downloading yesterday, I've already been able to gain tremendous insight about a number of my own large codebases. In a lot of ways, this program seems to be something I've been looking for literally for years.
Instructor, Wake Forest University
Amazing tool. After every milestone I check my architecture with Structure101 and almost always I need to do refactoring after that.
I am a freelance Java developer and team lead with many different clients. I need to familiarize myself with the client's code bases in a really short time. I found myself constantly returning to Structure101 for that job. A few minutes with Structure101 shows me the architecture of the code and highlights the problem areas. So, finally, it seemed only fair to become a customer.
Kees Jan Koster
I just bought a license for Structure101 today, it just does exactly what I was looking for.
I am a Java consultant, and Structure101 is one of the coolest tools I have ever seen. I have been wanting something like for this for a long time.
I'm absolutely impressed with Structure101, I only wish I found it a long time ago. Thanks for the tutorials, you guys managed to make these complicated concepts look easy.
I spent the last three weeks full time doing high-level refactoring and solving tangles. I did all of that with the Eclipse plugin "Metrics", with Structure101 I'm sure I would have done the same thing in one week.
My company has decided to start by buying a few licenses but I am sure more will follow since all developers I have demonstrated it to want it. I think it is the best developer tool I have seen since I found IDEA some 5 years ago.
Open Source developer
I used Structure101 in several open source projects in my graduate research. It's been instrumental - from helping me to refactor complex software using design patterns to generating interesting metrics and models that visualize my code. These features only scratch the surface and I will consider Structure101 a must-have when working with Java software in the future.
I would argue against using the term 'reverse engineering' for Headway . To me, reverse engineering is salvaging some sort of design from code. What Headway offers in my opinion is a visualization of the code itself. It just so happens to use reverse engineering techniques to achieve this - however this is arguably an implementation detail. UML reverse engineering 'may' offer to help discover the intent of the original designer, whereas Headway tells it like it is i.e. it provides an implementation view rather than merely an abstract design model.