addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1linklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Rediscovering Modularity

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 Gorak’s wheel design was reused for the world’s first chariot. This is how humans make sense of complexity – we divide and conquer.

Analogous principles of modularity are taught in Software Engineering 101 – information hiding, interfaces, clear responsibility, high internal cohesion, low external coupling, etc., and we apply these routinely as we develop, and continuously refactor the code encapsulated within classes.

However when the number of classes reaches some threshold, 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. At this point it is time to restructure the code-base into a hierarchy of modules above the class level, or watch the team’s frustration continue to rise, and productivity plummet.

This talk proposes a measurement framework for assessing the quality of a modular structure, identifying regions of poor modularity, and for assessing the impact of restructuring or refactoring actions. Based on this framework, the talk introduces strategies for retro-fitting modularity to an existing codebase, with minimum impact on the code logic itself.

This material is based on experience gained while helping many development teams through the restructuring process. The concepts will be illustrated by examples.

 

Speaker: Chris Chedgey
Chris has a Masters in Software Engineering from Trinity College Dublin, with over 25 years software engineering experience gained in Ireland, Canada and the United States.
Chris joined the International Space Station Project in 1990 where he was a member of the team that defined the software development processes and tools for the program, and then technical lead on the Remote Manipulator System control software. In 1994 he moved to the $1.5bn Iris program which replaced the entire communications systems for the Canadian armed forces, first on the process/toolsmithing side, and then the product development side. In 2000 he founded Headway Software to address the lack of large-scale modularity that he saw as pervasive in software industry.
He lives on the south coast of Ireland, where he likes to sail when it’s windy, and walk the dog when it’s not.

 

Join or login to comment.

  • Graham J M.

    A solid product covering a complex subject. Brings the architect's voice/concerns back into the product development discussion and backs it all up with facts and figures. All the makings of a successful product. Just vamp it up with some good process integration and the killer app has arrived.

    Now can I have my free version, Chris?

    Cool to meet a bunch of .Net enthusiasts in a comfortable and relaxing (if not hot) environment. Well done Jacob, Jose and Stamford.

    See you all soon.

    May 17, 2013

  • Pawel N.

    It was really great to meet you guys again :) I liked the presentation, it was really interesting. I was missing a little bit more detailed comparison (table?) with differences between Structure101 and other products available on the market (topic for some another presentation? :))
    Personally, I think I would bite this topic from a little bit another perspective - some .net project prepared earlier, show how to apply the changes with Structure101 and finally the output from the application (I was missing this part yesterday).

    1 · May 17, 2013

  • Patrick D.

    Thanks to the organizer and thanks to Chris for the stuning demonstration of Structure101. I will definitely give it a try and kind'a "redo" the magic Chris did with NUnit and log4net.
    I look forward for the next fascinating meetup.

    May 17, 2013

  • nigel f.

    Are the slides available?

    May 17, 2013

  • Rene P.

    A wonderful talk by Chris Chedgey. His theory on structuring unstructured software was brilliant. After seeing his companies software, Structure101, in action, I wanted to try it myself on a project, I am currently involved in. I do hope, I can get the advantages of the tool as it was demonstrated, at yesterdays talk!

    1 · May 17, 2013

  • Matthias R.

    Modularity, Structure, Abstraction, Interfaces, Refactoring, ... everybody has to deal with it. Nice talk, and very interesting to see Structure101 Studio in Action.

    1 · May 17, 2013

  • Ahoo

    I found the topic very interesting and the presentation pretty informative. I also like the new location! =)
    [Though I wish that somehow that sheet of glass would be removed from the projection wall, it only makes the text blurry!]

    Thanks for organizing!

    1 · May 16, 2013

  • Vladimir P.

    The theoretical part was interesting although maybe a little bit too much. The presented product was very good and had some very nice features.

    A suggestion to Chris from my side would be to use more .net terms and less Java terms when presenting to a .net dedicated group (talk more about "assemblies" and "visual studio" and less about "packages" and "eclipse"). Also using .net-like icons in the .net product might make the .net developer feel more at home and more willing to adopt it (currently it is clearly visible that it is a separate and more Java oriented product by just looking at the interface).

    1 · May 16, 2013

  • Konstantinos B.

    Simply super! Very simple and neat presentation! Well done! Super organisation.

    1 · May 16, 2013

  • Rene P.

    When will the location be specified?

    May 6, 2013

Our Sponsors

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy