Cutter

Task3: Case studies and result assessment

You can download this page as pdf.

Seaside Case Study

Seaside is an open-source web application framework written in Smalltalk. It defines various internal domain-specific languages to configure application settings, nest components, define the flow of pages, and generate XHTML.

We selected Seaside as our case study because it represents a real-world and non-trivial application, with a consolidated number of users, but also the because we have the possibility of get feedback from project insiders, since we want to get feedback on our results by experts of the case studies. We selected the versions 2.8 and 3.0 of Seaside to perform our experiments because it represents a refactoring or rewriting to improve code quality. The case study was analyzed (parsed) and represented using the code metamodel FAMIX 3.0 in the MSE format, which generated two code models (Seaside 2.8 and Seaside 3.0). The table below presents an overview of some metrics (absolute and per class) for each code model.

Table-seaside


You can download Seaside 2.8 and 3.0 images or load evaluating the code snippet below in a Pharo 1.3 environment:

Seaside 2.8

Gofer new
    squeaksource: 'MetacelloRepository';
    package: 'ConfigurationOfSeaside28';
    load.
(Smalltalk at: #ConfigurationOfSeaside28) load.

Seaside 3.0

Gofer new
    squeaksource: 'MetacelloRepository';
    package: 'ConfigurationOfSeaside30';
    load.
(Smalltalk at: #ConfigurationOfSeaside30) load.

Morphic Games Case Study

We also selected the Morphic Games to perform our experiments. The case study was then analyzed (parsed) and represented using the code metamodel FAMIX 3.0 in the MSE format, which generated one code model. The table below presents an overview of some metrics (absolute and per class) for the code model.

Table-morphic-game


You can load Morphic Games evaluating the code snippet below in a Pharo 1.4 environment:

Gofer new
   squeaksource: 'Games';
   package: 'MorphicGames';
   load.