opposed to DSM design models which
emphasize design process and
manufacturing.
Functionals vs. Structures-only – our
modularity matrices display structor to
functional links, while both DSM matrix
dimensions are labeled by the same
structures.
Baldwin and Clark explicitly state in footnote 2,
page 63 of their book (Baldwin, Clark, 2000)
that “it is difficult to base modularity on functions…
hence their definition of modularity is based on
relationships among structures, not functions”. See
(Ulrich, 1995) for a different view.
In practice, modularity matrices may be much
more compact than DSM. For instance, Parnas’
KWIC DSM (Cai, Sullivan, 2006) has 20
rows/columns instead of just 5 in our Modularity
Matrix.
Although diagonality has seldom been calculated
within modularity, formulas have appeared in other
contexts. Clemins in (Clemins, et al. 2002) used for
speaker identification, the Frobenius norm – the sum
of the squares – of all off-diagonal elements to
measure diagonality. Our offdiag definition is better
suited to modularity, as it directly reflects distance to
the diagonal, while the Frobenius norm just sums
Boolean elements.
An indirect coupling metric is “similarity
coefficients” (Hwang, Oh, 2003), comparing matrix
row pairs, over all columns. The similarity for each
column is: both 1 elements, both 0, or different.
These coefficients ignore distances from the
diagonal.
The Modularity Matrix has a superficial
similarity to a traceability table. But their purposes
are definitely different. Traceability tables are used
to trace code and tests to requirements, while our
functionals' essence is to obtain measures of linear
independence.
The module detection literature is plentiful.
Tools to improve legacy code use clustering to
partition graphs (Mitchell, Mancoridis, 2006),
metrics to increase cohesion (Kang, Bieman, 1999)
and slicing of FDGs – Functional Dependence
Graphs (Rodrigues, Barbosa, 2006), tools to detect
modularity violations (Wong, et al., 2011). Even
with a quantitative flavor, they clearly differ from
the Linear Software Models’ approach.
4.3 Future Work
A mathematical characterization of modularity
matrix outliers deserves further investigation. This
relates to the broader issue of determining block
sizes, after exclusion of outliers, and module
refactoring.
A practical issue is to systematically obtain a
broad class of simple patterns strictly obeying the
Linear-Reducible Model – like the Observer – as
advocated for software building blocks.
Efficiency issues concerning modularity matrix
generation and reordering (cf. Borndorfer, et al.
1998) for large scale systems will be investigated.
This work has found that small software systems
are strictly Linear-Reducible, and some large
software systems are bordered Linear-Reducible.
This poses a variety of open questions.
The larger systems shown to be bordered Linear-
Reducible were developed before the proposal of the
Linear Model. It is conceivable, but still unclear, that
in view of this model they could be modified in a
natural way to comply with the strict Linear-
Reducible model. Similarly, future large scale
systems developed with awareness of linearity, may
show that strictly Linear-Reducibility rather than
limited to certain systems, is indeed applicable to a
wide variety of software systems.
4.4 Conclusions
Software has been perceived as essentially different
from other engineering fields, due to software’s
intrinsic variability, reflected in the soft prefix. This
versatility is often seen as an advantage to be
preserved, even though software composition has
largely resisted theoretical formalization.
We have found that Linear Software Models can
be formulated, without giving up variability. Thus,
software systems of disparate size, function and
purpose, may have Linearity in common.
REFERENCES
Baldwin, C.Y., and Clark, K.B., 2000. Design Rules, Vol.
I. The Power of Modularity, MIT Press, Cambridge,
MA, USA.
Borndorfer, R., Ferreira, C.E., and Martin, A., 1998.
“Decomposing Matrices into Blocks”, SIAM J.
Optimization, Vol. 9, Issue 1, pp. 236-269.
Cai, Y., and Sullivan, K.J., September 2006. “Modularity
Analysis of Logical Design Models”, in Proc. 21
st
IEEE/ACM Int. Conf. On Automated Software Eng.
ASE’06, pp. 91-102, Tokyo, Japan.
Clemins, P. J., Ewalt, H. E., and Johnson, M.T., 2002.
“Time-Aligned SVD Analysis for Speaker
Identification”, in Proc. ICASSP02 IEEE Int. Conf.
ICSOFT 2012 - 7th International Conference on Software Paradigm Trends
100