June 2009
Modular Architecture Workshop
Modular architecture: Add a visible interface and a test-bed to your layers
This workshop has been designed to give you a head start in modular architecture practice with abstractions such as the “layer”. You will acquire fundamental knowledge about how to partitions into layers the concerns of the application. We will teach you the best practices regarding application architecture and modularity. We will demonstrate how to apply “top-down” as well as “test-driven” design techniques. You will learn how to correctly design the “velcro”, the visible interface of a module. In the same way, you will learn how to conceive a “fake” implementation, an efficient practice to test a module in an autonomous way. Using a real case study, students will learn how to implement a layered architecture using C# language and Microsoft .NET framework. At the end of this workshop you will understand why architects require a unit of modularity that goes beyond object.
Audience:
Software Architects, lead developers and anyone aspiring to be an architect
Course Outline:
This workshop explains how to partitions into layers the concerns of the application using recognized practices to reduce coupling and to increase testability. Using a real case study, students will learn how to implement a layered architecture using C# and Microsoft .NET framework. We will teach you the best practices regarding application architecture and modularity:
- Modularity: You will learn about the four attributes of a module and how it applies to layers.
- Visible Interface: The greatest leverage in architecting is at the interfaces. Partitioning the concerns of the application requires layers with a unique role and a contract well defined. To express not only the specifications but the dynamic behavior of the contract, we will teach you how to design the “velcro”, the visible interface of a module.
- Hidden implementation: You will learn how to efficiently implement the body of the layer, the hidden part which is not visible in other layers. We will teach you how to use “Dependency Injection” and “Service Locator” as a mediator to reduce coupling with sub-layers.
- Autonomous Testability: Testability at the layer level without having to assemble the whole system is the most important attribute of a module. Using “test-driven” design techniques to express dynamic behavior of a layer, you will learn how “velcro” and “fake” implementation enable to efficiently test a module in an autonomous way (in a test bed).
- Dependency Modeling: Using the upcoming Architecture Edition of Visual Studio Team System 2010, you will learn how to build models to express dependencies between layers. Using the very new “Layer” diagram, you will learn how to codify the dependencies and how to integrate them into daily build so that these constraints perpetuate across versions as an “executable” architecture specification.
At the end of this workshop you will understand why architects require a unit of modularity that goes beyond object.
To learn more:
DevTeach Post Conference Workshop
© 2003-2011 Mario Cardinal. All rights reserved.