<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=iso-8859-1">
<TITLE>Nachricht</TITLE>
<META content="MSHTML 6.00.2800.1400" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN
class=334073918-18032004>Hi!</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=334073918-18032004></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=334073918-18032004>Since my company
wants to sell services based on OpenCMS we are going to review the design &
code quality of it. This static-code review will be based on several
tools, mainly sotograph (see <A
href="http://www.software-tomography.de/html/sotograph.htm">http://www.software-tomography.de/html/sotograph.htm</A>)
and will show:</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=334073918-18032004>*) where the code
doesn't meet the architecture (to our knowledge sotograph is the only tool that
can do this)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=334073918-18032004>*) where there are
cycles (over subsystems, packages, classes)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=334073918-18032004>*) where the metrics
indicate bad design/code (e.g. excessive overloading, too many subclasses,
stability-metric violations, ...)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=334073918-18032004>*) where there are
bad-smells that should definitively be removed (huge packages/classe/methods,
unused classes/methods/attribs, ...)</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN
class=334073918-18032004></SPAN></FONT> </DIV>
<DIV><FONT face=Arial size=2><SPAN class=334073918-18032004>I am going
to send a pdf-Version of the report to the list.</SPAN></FONT></DIV>
<DIV><FONT><SPAN class=334073918-18032004></SPAN></FONT><FONT face=Arial><FONT
size=2></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT size=2>B<SPAN class=334073918-18032004>ut I need
some help from you as well:</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>One needs to
describe the defined architecture in the tool - and since I don't know the
architecture of OpenCMS maybe someone could help me to define the architecture.
I haven't found any architecture document that could help me on this
task.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Sotograph
needs an architecture defined like this:</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Packages are
to be grouped in subsystems and subsystems are to be grouped in
layers.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN
class=334073918-18032004>e.g.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Subsystem A =
Package 1, 2, 3, 4 (including all sub-packages)</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Subsystem B =
Package 5, 6, 7</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Layer 1 (GUI)
= Subsystem A & B</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN
class=334073918-18032004></SPAN></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Then one can
restrict the architecture like this:</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Subsystems can
have facade-packages --> a call/reference to a non-facade-package from
outside is illegal</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Layers can
restrict intra-layer-usage --> a call/reference from one subsystem to another
in the layer is illegal</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Layers can
restrict inter-layer-usage --> a call/reference to a distant layer is
illegal, only calls to the next layer are legal</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Layers can
never call upwards --> a call/reference to an upper-layer is always
illegal</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN
class=334073918-18032004></SPAN></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>We should
model all the restrictions that are in the architecture otherwise we will find
out, that OpenCMS has just a few architecture-errors because it has a way to
simple architecture.</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN
class=334073918-18032004></SPAN></FONT></FONT> </DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN class=334073918-18032004>Any help would
be appreciated,</SPAN></FONT></FONT></DIV>
<DIV><FONT face=Arial><FONT size=2><SPAN
class=334073918-18032004>Sebastian</SPAN></FONT></FONT></DIV></BODY></HTML>