Information Technology Reference
In-Depth Information
sented this information in the form of HTML reports, which we inte-
grated into the CruiseControl CI server. On newer projects, we did not
allow the build to pass if there were any violations of the coding standard.
Scenario: Architectural Adherence
Source code that does not follow the intended design is more difficult
to maintain. Have you been on a project that had established a very
elegant software architecture at the beginning of the project only to
have it morph into a “Big Ball of Mud” 5 by the end of the project? Per-
haps the architect designed the whole system using a UML modeling
tool and said something like, “Follow this reference architecture.” This may
be the extreme and, as always, there are shades of gray in between.
A discrepancy between the intended and the actual architecture
can be problematic. For example, let's say you have an architectural
guideline like: “The data layer should never 'talk' to the business
layer.” Perhaps the architect used a UML modeling tool to forward-
engineer the model based on this architecture into the source code.
However, over time, the code changed and the architecture got out of
sync with its intended design. For instance, let's say a new developer
starts on the project and finds some useful methods in the business
layer and calls them from the data layer. This is a violation of the
project's architecture. How can you ensure that this doesn't happen?
Jenn (Architect): Are you guys following the architecture? I found
some problems in one of the controllers in which one of you is calling
a component in the data layer directly.
Mark and Charlie (Developers): (Perplexed expressions)
Jenn: The reason I created all of those UML diagrams is so that
everyone will follow the established software architecture. You're not
following the established protocol that has been in place for months.
Charlie: I looked at those at the beginning of the project, but the
architecture has changed a few times since then and it's difficult to
keep up.
5. “A system…that has no real distinguishable architecture.” From http://en.wiki-
pedia.org/wiki/Big_ball_of_mud.
Search WWH ::




Custom Search