uniquely combines visual dependency analysis with metric-based quality monitoring. Its innovative features, ease of use and intuitiveness make STAN a major contribution to the market of software quality tools.
STAN integrates perfectly into Eclipse, letting the developer analyze any bunch of code at hand with a single click. That way, STAN puts quality assurance to the heart of the development process, where it's mostly needed.
STAN helps in understanding code as well as keeping code understandable. STAN's dependency analysis capabilities are magnificent, giving new users their first "aha" experiences within seconds while analyzing their projects.
STAN's metrics concept (with traffic light ratings) allows for meaningful ranking of metric violations as well as providing a "degree of pollution", serving as a quick indicator for an artifact's quality.
STAN is available in two variants:
1. as an extension to the Eclipse IDE
2. as an application for Windows, Mac OS or Linux
Please visit http://stan4j.com
for further information.
I hate to sound like a fanboy but I really like Structure101 (www.headwaysoftware.com). 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.
I agree with you that a good structure analysis tool is a 'must have', but - to be honest - I prefer STAN.
As a consultant, I go from client to client and usually have to use the hardware provided by the client. The license for STAN is node-locked (even applies to the personal edition -- you just get a few more nodes) which means it's worthless to me regardless of how good the analysis is. This is unfortunate because, after trying it, it does actually look pretty useful. Especially so as a consultant since I'm expected to get up to speed on existing codebases very quickly and a tool like this can help a lot with that.
Please post something on TSS if you guys ever get a license that a consultant can use.
Structure101 has the same issue so I won't buy it either.
Marc, thanks for pointing out that problem. In fact, the license model doesn't seem to fit your scenario. However, we can issue a "roaming" license to you. Please contact us if you're interested.
Marc, Structure101 (http://www.headwaysoftware.com
) is used a lot by many consultants. In fact we give discounts to consultants because we like that you get the product in front of lots of customers. And we provide multiple keys on a case by case basis.
Chris, this thread is about STAN 1.0 and it's not meant to be a platform for s101 ads. You can be sure that I would have never posted a similar message to a thread about your product.
Christoph, if I was advertizing Structure101 features, the post would have been much longer :-). Given that Marc had posted his impression that Structure101 licensing does not work for consultants, my correction was perfectly reasonable. And you are more than welcome to post to threads about Structure101 anytime. I would encourage anyone that is interested in structural analysis and architecture control tools to look at STAN, Structure101, Lattix and SonarJ (and the free stuff like JDepends, IntelliJ's Dependency Rules, find/grep, ...) and decide what's best for them. We should consider it a blessing that there is lots of choice in this space - it suggests that there is an important problem to be solved (aka a "market").
I think you are mistaking a thread for an ad. As long as there is no hostility involved, I appreciate very much if different vendors take the opportunity to present their respective product's advantages. This saves me time in researching the alternatives, which I would have done anyway prior to purchasing any of the products.
The one I prefer is called Lattix LDM (http://www.lattix.com
). It scales really well and is easy to use. It analyzes not just Java but also configuration files such as Spring and Hibernate as well as databases and other languages.
Yes, I "checked it out"... Aside from "scales really well" and "easy to use", do you think that representing any dependency graph as a numerical matrix is particularly suitable to support humans in their conception of the underlying relations? Check out STAN: a picture is worth as 1000 words, not the other way round!
DSM matrixes have their place. That is really big graphs that are simply impossible to read as a diagram. Structure101
lets you display dependency graphs as either a diagram or a matrix. It also lets you manipulate the structure in a similar way to Lattix but through another (IMHO even more intuitive) representation - the Architecture Diagrams (demo
Yes, a DSM matrix is space efficient, but that's it. However, you won't find these clumsy graphs in a well designed system. With STAN, visual dependency analysis is seamlessly integrated into the IDE, so developers use it continuously and will naturally avoid over-complexity.
I totally agree that a traditional nodes-and-edges dependency graph is way more intuitive to understand than a matrix. And that a well organized code-base will not have dependency graphs that are too big to be understood ("mind-sized chunks"). I also agree that just seeing the structure of the code will encourage developers to keep the structural complexity simpler. However the fact is that the vast majority of the developers that try your excellent product will be working on a code-base with a past, one who's structure has not been monitored all along. And that will contain big ugly graphs that need to be understood and maybe simplified.
Also, it is slightly simplistic to say that the only benefit to the matrix representation is space efficiency. If the matrix is organized by dependency levels, you can very quickly spot the causes of cyclic dependencies. And prominent vertical and horizontal lines kind of indicate something too... But I hate having to use them...
This seems to be turning into a wonderful discussion on matrix computations! Strange, but no single user asked for dependency matrices... Btw, 'simplifying' may have been more appropriate than 'simplistic'.
The vast majority of our users had no chance to start a project with STAN, because this excellent product is so new! And indeed, this is what we'd like to encourage: integration of structure analysis into development, right from the start (whether the start is from scratch or not).
I just did some structure analysis on my application: to be more precise I wanted to know the dependencies of a package within the application I am writing. I simply used 'find' and 'grep'. This tool seems quite nice and interesting (the others that are mentioned sound nice too) but I do not require them (yet!).
There are a few misconceptions about DSMs and Lattix that I want to clarify ...
Christoph, I am glad to learn that you "checked" Lattix out and found that it "scales really well" and was "easy to use" :-) I have spent more than 10 years working on network diagrams. They are used extensively - UML and ER diagrams are two prominent examples. They are useful in detailed design such as looking at inheritance hierarchies and for exchanging ideas on sketch pads - but they simply don't scale. Contrary to your belief, recent history would suggest that there are many developers who think that a network diagram isn't worth a 1000 words of code. Perhaps, STAN will change that. I would urge people to try your product out.
I also want to clarify that as far as architecture diagrams are concerned Lattix has had 'Conceptual Architecture Diagrams' for more than 3 years. They were even mentioned
in our original paper. They are an integral part our process and work well with DSMs.
This discussion has focussed on visualization and that too for Java. But Java applications can contain several other technologies such as Spring framework, struts, object relational mappings etc. This means that a typical application contains elements that are much more than just Java classes and packages. You can represent and manipulate all of these in a DSM. The comprehensiveness of DSMs also makes them better for establishing rules and checking for Architectural conformance.
Thanks for your clarifications.
I would urge people to try your product out.
Good to hear!
This thread has gotten out of hand and should have been focused on STAN but I want to thank Cristoph for taking the time to work with me to accommodate my situation. He's spent a great deal of time (outside of this thread) to do so. If you're a consultant interested in STAN, I encourage you to contact him for special arrangements.
re: DSM vs. graphs
Having looked at Lattix and STAN now with a real project, I can say that even with DSMs you still have a problem with the size of the matrix on even a moderately sized project. You can easily end up with more data in the matrix that can fit on the screen. That said, with practice you can get it to show you the most relevant data on one screen. STAN seems to achieve a similar effect via it's graphing system by letting you focus on the package level you're interested in and even specific interactions so that you're not overwhelmed with data (although it will let you do that too). I think both approaches are workable and each has their advantage. My main criticism of the DSM approach is that it's difficult to show others who don't understand DSMs what's going on because of the level of abstraction it introduces. My main criticism of STANs approach is that you can't arbitrarily select two different package levels for display. You can only view one level of hierarchy at a time.
Each is really cool in its own way but neither are perfect. It's been fun looking at these tools though and I think the analysis you can do with these tools in a few years will be pretty amazing.