very tight bounds for the vector space size were
offered yet.
Modules are preferable to whole patterns as the
bases elements, since various modules appear as
common units in several patterns, obtaining a
desirable uniformity at the module level. This
uniformity facilitates understanding and additive
usability of pattern composition.
5.2 Related Work
Patterns were first proposed by Beck and
Cunningham – see ref. (Beck and Cunningham,
1987).
After the publication of the GoF design patterns,
many other compilations of design patterns
appeared, some of them specialized for specific
purposes, among them for Networks (Buschmann et
al., 1996) and J2EE (Alur et al., 2003).
Different formal approaches were proposed to
deal theoretically with design patterns. To our best
knowledge none of them pursues an algebraic
structure approach similar to ours.
Mikkonen (Mikkonen, 1998) used high-level
abstractions of communications combined with a
Temporal Logic of actions.
Yehudai and collaborators (Eden et al., 1998,
1999) proposed LePUS a system based on predicate
logic, also displaying a readable diagrammatic
representation.
Cechich and Moore (Cechich and Moore, 1999)
use RSL a specification language to formally decide
whether a given design conforms to an intended
design pattern.
Wang and Huang (Wang and Huang, 2008) use
RTPA – real-time process algebra – as a
specification of design patterns. Despite the
algebraic name, it is a formal language oriented
approach.
Most of these approaches solve particular
problems. Our approach is generic, and displays the
power and clarity of an algebraic structure.
5.3 Future Work
The Three-valued Vector Space can certainly be
extended to more general spaces, say real vector
spaces. This will allow, among other possibilities,
consistent treatment of expanded and collapsed
modules in equal foot.
For instance, in ref. (Exman, 2012) collapsed
modules were marked with the trace and diagonality
integers – instead of just Boolean values – to provide
information about the underlying collapsed modules
and to enable their recovery.
The current Linear Software Model and its
vector space may possibly be refined to deal not
only with functionals, but also in a finer scale with
attributes.
5.4 Main Contribution
The main contribution of this paper is the use of
Vector Spaces as a formal tool for analysis of GoF
Design Patterns, based upon Linear Software
Models, a generic theoretical framework for
software composition.
Its practical application is additive composition
of software sub-systems, design patterns and
upwards, from the basis modules.
REFERENCES
Alur, D., Crupi, J., and Malks, D., 2003. Core J2EE
Patterns: Best Practices and Design Strategies, 2
nd
edition, Prentice-Hall, Upper Saddle River, NJ, USA.
Beck, K. and Cunningham, W., 1987. “Using Pattern
Languages for Object-Oriented Programs”, in
OOPSLA-87 Workshop on the Specification and
Design for Object-Oriented Programming.
Borndorfer, R., Ferreira, C.E., and Martin, A., 1998.
“Decomposing Matrices into Blocks”, SIAM J.
Optimization, Vol. 9, Issue 1, pp. 236-269.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P.,
and Stal, M., 1996. Pattern-Oriented Software
Architecture - A System of Patterns. Wiley and Sons.
Cechich, A., and Moore, R., 1999. “A Formal Basis for
Object-Oriented Patterns”, in Proc. 6
th
APSEC Asia
Pacific Software Engineering Conf., pp. 284-291.
Eden, A. H., Gil, J., Hirshfeld, Y. and A. Yehudai, 1999.
“Towards a Mathematical Foundation for Design
Patterns”, Tel-Aviv University, Technical Report,
1999
Eden, A.H., Hirshfeld, Y. and A. Yehudai, 1998.
“Multicast - Observer ≠ Typed Message”. C++
Report, SIGS Publications.
Exman, I., 2012. “Linear Software Models for Well-
Composed Systems”, in S. Hammoudi, M. van
Sinderen and J. Cordeiro (eds.), Proc. 7
th
ICSOFT’2012 Conference, pp. 92-101, Rome, Italy.
Exman, I., November 2012. “Linear Software Models”,
Extended Abstract, in Ivar Jacobson, Michael
Goedicke and Pontus Johnson (eds.), Proc. GTSE
2012, SEMAT Workshop on a General Theory of
Software Engineering, pp. 23-24, KTH Royal Institute
of Technology, Stockholm, Sweden.
http://semat.org/wp-content/uploads/2012/10/GTSE_
2012_Proceedings.pdf. See also video presentation:
http://www.youtube.com/watch?v=EJfzArH8-ls
Gamma, E., Helm, R., Johnson, R., and Vlissides, J.,
1995. Design Patterns: Elements of Reusable Object-
ICSOFT2013-8thInternationalJointConferenceonSoftwareTechnologies
526