News

Java User Group Presentations on Bridging the Divide between Architecture and Code

Structure101 co-founder, Chris Chedgey, will be delivering his latest talk – ‘Bridging the Divide between Architecture and Code’ at a number of Java User Group events across Europe and North America in the coming months.

We’ll be adding new dates to this list as they’re confirmed, so keep an eye out for updates if you don’t see anything in your area right now.

If you’d like to suggest an event not already on the list for Chris to speak at, drop us a mail, and/or contact your local Java User Group.

Belgium

Brussels
Java Usergroup Brussels

29th May ‘18
Brussels

Germany

Frankfurt
Java User Group Frankfurt

30th May ‘18
German National Library

Berlin
Java Usergroup Berlin-Brandenburg

19th March ‘18
Berlin

München
Java User Group München

16th April ‘18
München

Dortmund
Java User Group Dortmund

17th April ‘18
Dortmund

Dusseldorf
Java User Group Hamburg

18th April ‘18
Hamburg

Hamburg
Java User Group Hamburg

19th April ‘18
Hamburg

Switzerland

Zurich
Java User Group Switzerland

20th March ‘18
Zurich

Bern
Java User Group Switzerland

21st March ‘18
Bern

St GallenJava User Group Switzerland

22nd March ‘18
St Gallen

North America

Boston
Boston Java Meetup Group

30th January ‘18
Cambridge, MA

Houston
Houston Java Users Group

31st January ‘18
PROS, 3100 Main St

Toronto
Toronto Java Users Group

22nd February ‘18
Free Times Cafe, Toronto

New York
New York Java Special Interest Group

28th February ‘18
New York

San Francisco
The San Francisco Java User Group

7th March ‘18
Pivotal Labs, San Francisco

 

Chris’s bio

Chris Chedgey is co-founder, product designer, and developer at Structure101 – a team dedicated to creating techniques and technology for transforming and controlling the structure of large evolving code-bases.

During a career spanning 30 years, Chris also worked on large military and aerospace systems in Europe and Canada, including the International Space Station. He has spoken at many user groups and conferences including Oredev, JavaOne, JAX, Javaland, 33rd Degree, JFocus, and Devoxx.

Presentation

Static diagrams on wikis and white-boards might capture the vision of architects, but they don’t much help programmers to understand how the code they’re working on right now fits into the architecture. Nor are the programmers warned when they violate the diagrams as they forge changes, line-by-line.

This is a huge problem – it is ultimately individual lines of code that make or break an architecture; and we know that a clean architecture will help teams develop a more flexible product, with less complexity, less wasted effort, etc. Worse, without practical architectural guidance, programmers wrestle with invisible structures that emerge from thousands of inter-dependent lines of code.

And being invisible, these structures become ever more complex, coupled, and tangled. In fact, uncontrolled structure actively fights against productive development.

This talk shows how to rein in emergent code-base structures and gradually transform them into a cogent, defined architecture. You will see how…

  • Visualizing the emergent structure makes a code-base easier to understand.
  • Restructuring to remove tangles and reduce coupling makes the visualized code-base easier to work on.
  • Specifying layering and dependency rules converts good structure into a controlled architecture that guides the team as the code-base evolves and grows.

A key ingredient is a live visualization, inside the IDE, of the detailed code the programmer is working on, in the context of the overall architecture. In short, you will learn how bridging the architect/programmer divide can convert code-base structure from liability into an asset that actively works for development productivity.

Structure101 combines multi-award-winning products for organising a codebase

Retrofitting software architecture

Structure101 Studio, combining the award-winning Structure101 and Restructure101 products, is now generally available.

Structure101 Studio makes it feasible to discover, define, communicate, and enforce an architecture for an existing codebase, without major upfront surgery. Structure101 achieves this by letting the software architect construct an external model of the architecture while simultaneously mapping the model right into the code.

Structure101 Studio then inserts the newly-defined architecture into the development workflow, supporting the deliberate evolution of the model with each iteration, always keeping code and model synchronised. The separation of model from the code means that teams gain the benefit of architecture-driven development immediately, while feeding model-code alignment tasks into the workflow at a pace that fits with project schedules.

Disorganized codebases are a huge problem in the software industry. Without meaningful higher-level abstractions to guide them, developers drown in an ever-expand sea of source files, and this exacts a heavy tax on every development activity. Tools can visualize existing physical structures, but these structures are generally accidental or arbitrary, so just understanding them is of limited benefit. Structure101 Studio lets you draw on the existing structures to develop new, meaningful architectures. Simply put, developers get more done when the codebase is organized.

Structure101 Studio is a major step forward in our vision of giving teams the tools they need to retrofit a modular architecture to any existing codebase with a fraction of the effort and risk of starting over.

Chris Chedgey, Founder Structure101

 

We have been using Structure101 and Restructure101 at Adesso since 2011, upgrading to Structure101 Studio was an easy decision. It unifies both tools and makes it much easier to not just analyze the architecture of a project but improve it on the spot. It has become a standard tool and we are educating every architect in its usage.

Eberhard Wolff, Head of Technology Advisory Board, Adesso AG

 

Pricing and Availability

Structure101 Studio is available for purchase online at US$995 per user from http://structure101.com/store. Personal licenses can be purchased for US$395. While licenses are available for free for use on open source projects and for academic purposes.

To download a fully functional, 30-day free trial visit  http://structure101.com/downloads

Learn more

To learn more about Structure101 Studio:

  • Visit the product section on structure101.com to understand the process of organising a codebase and how it fits with your existing workflow.
  • Visit the resources section on structure101.com for concise training videos and full product documentation.
About Structure101

Structure101 provides an agile architecture development environment (ADE) that lets the software development team organize a codebase into a modular hierarchy with low and controlled coupling.

According to the US Department of Defense, well structured software is delivered in half the time, at half the cost, and with 8x less bugs.

Structure101 supports C/C++, Java, .Net, ActionScript, InterSystems Cache Objects, Pascal, PHP, Python, SQL and UML.

Structure101 won the 2008 & 2011 Dr Dobb’s Jolt Productivity Award in the Architecture & Design category, and the 2012 JAX most innovative Java technology award.

Thousands of customers every day use Structure101 to manage the architecture of more than a billion lines of code, and have claimed Structure101 shaved months of calendar time and man years of effort off a single project.

Customers include Apache Software Foundation, BMW, Cantor Fitzgerald, Cisco, Credit Suisse, Ebay, Euro Bank, European Commission, Financial Times, GE, JBoss, Junit, Life Technologies, Netflix, RBS, Sony Mobile, Thoughtworks, United Healthcare, VMware, Workday, Wells Fargo, Zurich Financial.

Structure101 is a small, privately-held, distributed, bootstrapped and profitable company with staff located over 5 countries and 3 continents.

# # #

Media Contact

Paul Hickey
+33 9 74 76 07 41
paul.hickey@structure101.com

Upgrade now to Structure101 Studio

Our latest release, Structure101 Studio, combines our two great awarding winning products, Structure101 and Restructure101, into one great package with much improved workflow. See guide for existing customers.

Upgrade Structure101 or Restructure101 on or before March 31st 2014 to avail of these great offers:

  •  Customers with current support, or who purchased on or after May 1st 2013
    • Free to upgrade from Restructure101
    • $395 to upgrade from Structure101
  • Customers without current support
    • 30% discount
  • Personal licenses
    • Free with current support
    • $195 if no current support

If you have any questions just drop us a note.

Rediscovering Modularity in Switzerland

I will be giving my talk to .NET user groups in Switzerland next week, in Bern, Luzern and Zurich.

  • Tuesday May 14 in Berne.
    • Register with Xing, or fill in the contact form on the Berne .NET user group site.
  • Wednesday May 15, Luzern.
  • Thursday May 16 in Zurich.

Come along for the chat and/or beer!

Rediscovering Modularity heads back to Germany

Chris is on the road again and back to Germany.

This time thanks to the good folks at INETA Germany, in particular Lars Keller and Alex Groß.

The focus will be on applying modularity to .Net codebases but the principles are common to all coding languages. So if you missed Chris’s German Java User Group talks from last year do come along.

It’s a busy schedule!

  • Tuesday March 12th 19:00 – 21:30
    Location: Berlin, Hotelplan CC Services GmbH, Erich-Weinert-Str. 145.
    More information.
  • Wednesday March 13th 17:00 – 20:00
    Location: Leipzig, Erich-Zeigner-Allee 69-73, 2. OG.
    More information.
  • Thursday March 14th 19:00
    Location: Dresden, InQu Informatics GmbH.
    To be rescheduled.
  • Tuesday March 19th
    Location: Hamburg.
    More information.
  • Wednesday March 20th 19:00
    Location: Braunschweig, Restaurant Zucker.
    More information.
  • Thursday March 21st 18:00
    Location: Bielefeld, Diamant Software, Sunderweg 2.
    More information.
  • Wednesday April 3rd
    Location: Ingolstadt, Hotel-Gasthof zum Anker in der Tränktorstraße 1
    More information.
  • Tuesday April 16 19:00 – 21:30
    Location: Osnabrück, Sedanstraße 61, Osnabrück.
    More information.
  • Wednesday April 17 18:00
    Location: Stuttgart, Haus der Vereine, “Fuchsbau”, Leonberger Straße 39
    More information.
  • Thursday April 18
    Location: Karlsruhe
    More information.
  • Tuesday April 23
    Location: Bonn, Comma Soft AG, Pützchens Chaussee 202-204a
    More information.
  • Wednesday April 24 18:00 – 20:00
    Location: Ratingen, 7P Solutions & Consulting AG, Calor-Emag-Straße 1, Ratingen
    More information.
  • Thursday April 25 19:00 – 22.30
    Location: Erlangen, CLEAR IT GmbH, Am Wolfsmantel 46, Erlangen
    More information.

Rediscovering Modularity Texas

The Rediscovering Modularity tour continues. This time 3 dates in Texas at the end of January.

Chris will be presenting again.

Tuesday January 29th 6:00-8:00pm
Location: San AntonioNew Horrizons.

Wednesday January 30th 6:15-8:15pm
Location: DallasMatrix Consulting, 5151 Beltline Road, Suite 1010 Dallas, TX 75254.

Thursday January 31st 6:30-8:30pm
Location: HoustonTBD.

Many thanks to the Houston, San Antonio and Dallas Java User Group folks, Jim Bethancourt, Ryan Stewart and Dan Kern-Ekins for assisting in the organisation.

Be sure Chris gets to enjoy some of that great Texan prime beef!

Rediscovering Modularity in Brazil

We’re excited, first trip to Brazil!

Founder, Chris Chedgey, will be presenting on Rediscovering Modularity in Brazil next week.

First up in Sao Paulo at JavaOne Latin America on Tuesday December 4th at 13:30.

Then at  the INE Auditorium, UFSC UniversityFlorianopolis on Thursday, December 6th at 18:30, with many thanks to Marcio Marchini at BetterDeveloper and Prof. Patricia Vilain at UFSC.

In between there will be one or two customer visits but I suspect there will be a day on the beach at Florianopolis.

Lucky boy, “the place to be” apparently!

Florianopolis

Rediscovering Modularity – upcoming presentations

Founder, Chris Chedgey, will be presenting on Rediscovering Modularity in an existing codebase (and more) over the coming weeks in The Netherlands, Sweden and Germany. Dates in the US will be announced shortly.

The Netherlands at The JFall Conference
Presentation details: Rediscovering Modularity
Wednesday  October 31st 11.35 – 12.25
Location: Hart van Holland, Nijkerk

Sweden at The Oredev Conference
Tuesday 6th Nov 13.30 – 16.30
Rediscovering Modularity with Restructure101 (3 Hour Workshop)
Note: Registration for this workshop is required.
Friday 9th Nov 11.10 – 12.00
Retrofitting a software architecture to an existing code-base
Location: Malmö

Germany at German Java User Group meetings
Tuesday November 20th 18:30
Location: Große Falterstraße 6a, Stuttgart
Presentation details: Rediscovering Modularity

Wednesday November 21st 19:00
Location: Frankfurter Ring 105 – D-80807, Munich

Thursday November 22nd 18:00
Location: NCC NürnbergConvention Center Ost, Messezentrum, 90471 Nürnberg
Room: “Tagungsraum in der Zwischenebene”
Free entrance to DOAG conference (and party) starting 16:30
(U1, exit Messe) 

Synopsis

The principles of modularity have been applied to engineering projects since Gorak built the wheel, and Thag the barrow of the world’s first wheelbarrow. Thag’s barrow didn’t care that the wheel was first hewn from rock, and later upgraded to a lighter, wooden one, and the same wheel design was reused for the world’s first chariot.

Analogous abstraction techniques are taught in Software Engineering 101. We apply these routinely as we develop and continuously refactor the code encapsulated within classes. However when the number of classes reaches some limit (‘Uncle’ Bob Martin has suggested 50 KLOC), higher level abstractions are needed in order to manage the complexity of the growing codebase. This limit is usually overshot, and the team is soon drowning in an ocean of classes. It is time to organize the classes into a hierarchy of modules.

 

Restructure101 version 2 released

For Restructure101 version 2 (press release) we rolled in a load of feature requests that came back from users of version 1. A lot of these were around making the existing functionality more accessible. Others make version 1 use-cases much quicker/easier to achieve. In particular, the combination of filtering and slicing is a massive improvement in isolating the exact subset of structure that you need at any time – it is well worth getting very used to these new commands.

image

Above is the fully expanded UI. It’s got a bit busier but it is easier to control the display to hide the different panels. The main differences from version 1 are:

  • The overall layout is now the same as Structure101; the borders between the 4 main panels can be adjusted by dragging, and any panel can be maximized by double clicking its header.
  • The dependency breakout, which was on a pop up in v1, is now in the main UI center bottom (like Structure101).
  • All the Tangles and Fat related information (and only that info) is now co-located in the left panel. This means that the items which contribute to non-zero values in the chart are shown immediately below the chart.
  • The version 1 viewing control panel (which was on the right of the LSM) is now moved to commands on the toolbars. For example the show all/between/selected edges option are on the dropdown second from the left on on the LSM toolbar.
  • Other than the tangles/fat, all the lists that were on the lhs of the LSM are now distributed across the 3 sections of the right panel. Don’t miss the drop-down to select the notables in the top right panel. Also we added a “tags” tab on the center right viewer to make it easy to find tagged items on a large LSM.
  • A new filtering framework is accessed via the main toolbar, and the context menu. Filter commands work off the currently selected items, and you can filter items out (i.e. hide them), or filter items in (i.e. isolate them by filtering everything else out). You can unflilter the contents of just selected items, and clear all filtering so that nothing is hidden. There is a filter stack that you can walk using the forward and back arrows.
  • Hiding of tagged items has been removed – similar functionality is available from the filter in/out tagged items buttons. This is a bit different from the old filter/tags in that it applies to only the current sandbox/action list.
  • You can now create “slice” views of the LSM from the dropdown on the main LSM viewer. These are like the Slice perspective in Structure101, removing composition from the visible model. This means that you no longer need to “flatten to classes” in order to see all the classes in a region of the codebase (“flatten to classes” remains as an action).
  • We changed the name from “sandbox” to “action list” (in preparation for some future features).
  • Setting an action list to be the “to do” action list is now done using the “share” button – we felt this was more familiar/”normal”.
  • We optimized the Over-complexity Chart to not calculate the fat and tangles values for every action on very large action list, just every nth (configurable) action – speeds up loading very large action lists on very large codebases.

There are lots of other less visible changes. If you can’t find something, it is there somewhere, just ask and we’ll tell you where we moved it.

Happy restructuring!

Structure101 adds Doxygen and Understand support for C/C++, Delphi/Pascal and Python

Thanks to Marcio Marchini who developed Doxygen and Understand flavors or “third-party parser plugins”, Structure101, Restructure101 and Structure101 Build now support the parsing of:

  • C, C++ using Doxygen, or Understand from Scientific Toolworks;
  • Delphi/Pascal using ModelMaker, or Understand;
  • beta support for Python using Understand.

So head over to our downloads page if you are working with any of the above and wish to:

  • better understand your software architecture,
  • need to improve communication of your architecture to your development team, or
  • know it’s time to look at refactoring your architecture because there’s too much ‘everything uses everything’.

Getting started is easy! There is a wealth of general “how-to” videos, not to mention:

As one customer who is already up and running put it:

Doxygen parses our ~20 000 C++ files and finds ~100 000 include dependencies between them in less than 15 minutes. Restructure101g eats it up in exactly 30 seconds and Structure101 checks the architecture in about the same time. It is quick and accurate!