<!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>