Earlier, I showed you the Functional Decomposition architecture and used it and an about to be alpha tested tool called “Measure” to present measurements of the various parts of our source tree. This was as a pre-cursor to doing weekly build size, complexity and change metrics reporting.
Today, I’ll show you the other architecure I’ll be using – Staff. Using the Functional Decomposition architecture developed in about 45 minutes, I was able to create “Staff”, or who owns what, in about 15 minutes. This is what it looks like when seen in the Architect->Browse Architectures window:
Read more »
Our engineers all use Understand 2.0 all day every day as they maintain it and also develop new features and tools.
Rob G. recently joined us from Utah State University. Because we already had a Rob, we call him [new]Rob. So far he has added the Contextual Information Sidebar, re-worked the Architecture mapper, and also helped in work on a new tool for software maintenance estimation (change scoping) that we intend to incorporate into Understand 2.0.
[new]Rob works with two monitors. The right monitor is flipped vertically, the left is the typical landscape (horizontal layout).
I like the dock layout on my left monitor because it has everything that I use the most in one location. I spend most of my time in the selector, especially when I have many editors open, and the entity filter. And having the docks on my other monitor gives me the most room to work in Understand. I also keep the CIS sidebar located on the bottom of my editor, which can be moved around by right-clicking on the editor’s tab or title bar, because of the limited horizontal room that I have on that monitor.
Click on the pic below to see [new]Rob’s
Understand’s Information Browser provides a one stop source for virtually all available information about a given piece of source code (entity).
So where is our new Architecture information in the Information Browser?
Well, one obvious place is the Architectures field, which tells you what part of a given architecture the entity is in.
Here we can learn, quite quickly, that the class “GenericTree” is in the “guitrees” directory, was developed by Mark F., is part of the Scitools Specific Qt Enhancements, and was modified this month:
Hmmm… we learned a lot in just four lines… maybe this Architecture stuff could be useful (-:
Read more »
We believe that if we use our own tools they will be better.
Hence, in the coming weeks, using just tools we sell or are about to introduce, I will be posting build metrics about each build we release. I will give static views of the size and scope of our various development efforts and on week two I’ll start showing change metrics describing what is new, changed and removed.
Today, I’ll start that off by showing you “Functional Decomposition”, the first Architecture I will be using to organize future reports.
First off, Understand provides automatically a Filesystem architecture that is automatically derived from the directory structure of the project.
Understand’s Assistant, also suggests three that you can do by hand that will take you a long way. They are “Functional Decomposition”, “Staff”, and “Requirements”. Since we don’t deal with formal requirements here at Scitools, I’ll just be doing “Functional Decomposition” today and “Staff” tomorrow.
On the left is the basic Filesystem architecture I started with, and on the right one I whipped up in about 45 minutes:
Read more »
One of the new features of 2.0 is “Architecture”. Loosely described Architecture is a mapping of any abstraction onto the source of a project. The abstraction can be anything – Functional Decomposition, Requirements, Staff, Security Classification, Internal vs Externally Owned code – whatever you can dream up, Understand’s Architect component lets you map it onto our source. And as the source changes it keeps it mapped correctly, including adding/removing files and entities.
Over the next few weeks, I’ll be showing you all the places Architecture can be used. Yesterday, for instance, I showed how the Calendar architecture can be used to limit where you search in Find in Files.
Today, I’ll explain a relatively new feature – the Architecture Dependence Graph Browser. Basically, pick an architecture, right click on it, and choose ‘Dependence Graph”.
Something like this pops up (BTW: this is a broad overview of the products in our Maintain family at the source level):
Read more »
Here is how Devin Pitcher, one of our engineers who sits on a Solaris Intel box all day, sets up his Understand.
He has two monitors. His left monitor is devoted to source code and information about where he is in the source code (the C.I.S.):
On his right monitor he has organized a set of undocked information palettes. He has the Project Browser available for quick traversing around the project tree. He has the Entity Filter up, set to filter on Functions. He has the Architecture browser setup to browse based on a Architecture it automatically derives while analyzing the source. And he has the Selector window up for quick access to any files he has open. In the middle, with plenty of space to show full reference text he has an Information Browser setup to sync so that any entity he clicks on will have its information shown there.
This setup is pretty common among our engineers. Source on one big monitor (often vertically oriented) and information/navigational aids on another monitor.
Thanks for sharing Devin!
In Part I I described how in Understand 2.0 we are attempting to have not SDI, or MDI, but “Any DI” – where you can put windows where you want and have them stay that way. I described how you can move dock and information windows around in the GUI and anywhere on your monitor(s). In this segment I’ll cover document windows (editor and graph windows).
Here is Understand 2.0 with a couple tabbed editor documents and a tabbed graph:
Read more »
Understand 1.4 had two windowing modes – SDI and MDI. On X-Windows, it had only SDI.
One of the big design goals for 2.0 was what we call “Any DI”, which basically means, put windows where you want. In a container window (MDI), all alone (SDI), or docked together, so forth.
Read on to learn how you can put information windows (IB, ENtity Filter, so forth) – what we call Dock Windows anywhere on your screen and have Understand 2.0 remember where you put them next time you run it.
Read more »
For a few years now we have been asked by users to add some “push” to Understand. “Don’t make me right click, show me what I need to know”, they ask. In Understand 2.0 we have addressed that wish in two primary ways:
- Browse mode in the editor (I’ll write about that in a post soon)
- Contextual Information Sidebar (CIS)
Read more »
Understand 2.0 has many more GUI layout options that Understand 1.4 did. It is also very smart about remembering the state, position and size of the various GUI components. Furthermore, these states are saved by monitor setup, so you can easily switch between a single and multiple monitor setup and have appropriate/pleasant/efficient layouts.
Right now I use a single 24” monitor. Here is how I currently have Understand 2.0 setup when I’m reviewing checkins and looking at crashlog stacks that arrive via e-mail periodically. Click to see it in its full beauty (-:
On the left I keep my Architecture browser, set to Calendar and File System architectures. These let me see what is changing and also browse. On the bottom I have the Locator Window (Project->Browse ENtities) which quickly lets me filter and find lots of interesting things. Notice the two “Command Window” tabs on the bottom? These are commands I frequently use – making Understand itself. The left one does a SVN update and make, the right makes new tools “Measure” and “Impact”. I just sit in Understand all day, doing updates, visiting syntax errors (if any), doing most of my business right in Understand. On the right is the new “Context Information Browser” – see my next posting for info about it.
Over time, I’ll be asking all of our engineers to post up their setups (they vary greatly).