  Of the factors that determines the quality of a software system is its design
and architecture. Having a good and clear design and architecture allows the
system to evolve (plan and add new features), be easier to comprehend, easier
to develop, easier to maintain; and in conclusion increase the life time of
the, and being more competitive in its market. In the following paper we study
the architecture of two different systems: GIPSY and DMARF. This paper provides
a general overview of these two systems. What are these two systems, purpose,
architecture, and their design patterns? Classes with week architecture and
design, and code smells were also identified and some refactorings were
suggested and implemented. Several tools were used throughout the paper for
several purpose. LOGICSCOPE, JDeodoant, McCabe were used to identify classes
with weak designs and code smells. Other tools and plugins were also used to
identify class designs and relationships between classes such as ObjectAid
(Eclipse plugin).
