1. Project objective

overratedbeltAI and Robotics

Nov 25, 2013 (3 years and 8 months ago)

84 views



PROJECT 2


ECE 750
-
3

Spring 2005


Software Re
-
engineering



1.

Project objective


The objective of this project is to familiariz
e you with

the topic
s

of reverse
engineering and architectural design recovery.


More specifi
cally, we would like to experiment
with
clustering
techniques
to extract
the structural architectur
al view of a medium size system. The system has been parsed
and a repository of high level structural information has been collected. You can use
the fact extractor developed at the first proj
ect for this course or any other freely
available fact extractor or, the set of pre
-
extracted facts have also been collected and
posted in the web site of the course.


2. Design and Implementation Pointers


To
design and
implement such architecture analyze
r
we
would have to consider the
following issues:

1.

The facts to be analyzed:


a.

You can use the fact extractor you have developed in the first project of
this course or,

b.

You can use the Rigi tool to extract facts from the C CLIPS source code.
Links to the Rig
i tool can be found in the web site of the course or,

c.

You can use other freely available toolkits for architectural recovery such
as the Portable Bookshelf

or,

d.

You can use the pre
-
extracted facts that can be found in the site of the
source (see
http://www.swen.uwaterloo.ca/~kostas/clips
-
data
-
rsf.tar.Z
)

e.

Information for the Rigi tool can be obtained from the course Web site or
at
http://www.rigi.csc.uvic.ca/Pages/download.html

and
http://www.rigi.csc.uvic.ca/Pages/resources.shtml


f.

Information on the cppx can be found on
http://swag.uwaterloo.ca/~cppx/

and at
http://swag.uwaterloo.ca/tools.html


g.

Additional facts that pertain to metrics extracted for each function can also
be used as additional information t
o your clustering techniques

(see
http://www.swen.uwaterloo.ca/~kostas/metrics
-
report
)

2.

The

techniques
to be used

a.

The Rigi tool as well as other freely available tools for architectural
recovery allow you to group either manually or using scripts elements of
the fact base. You can either:

i.

Manually cluster entities by using one of the architectural
extraction / visualization tools and record the clustering criteria
and methodology you hav
e used or,

ii.

Develop scripts t
h
at will run in the tool you have selected to use or,

iii.

Develop you own clustering algorithms
by manipulating the fact
base you selected for analysis

3.


Some clustering criteria to use
:

a.

As mentioned above you can use manual cluster
ing / visualization to
achieve the extraction of the architecture. In this case you have to record /
document your actions so that you can generate a report with the (manual)
techniques) you have used.

b.

Some of the algorithms to use to achieve the architec
tural extraction are:

i.

Cluster together all functions that use/update similar data types

ii.

Cluster together all functions that use/update same global data

iii.

Cluster together all functions that have similar metric values or are
clones

iv.

Cluster together all funct
ions that call each other

v.

Cluster together all files that use the same libraries

vi.

Cluster together all files that use / update same global variables

vii.

Cluster together all files that use / update the same data types

c.

The objective is to cluster functions into

modules and files into
subsystems.

d.

The modules and the subsystems should exhibit low coupling and high
cohesion

e.

The Rigi or the Bookshelf visualization tools can be also used to display
the results of your analysis


3. Deliverables and Marking


You will
have to deliver the following information:

1.

A 10
-
15 page report outlining:

a.

The techniques you have used to obtain the architectural decomposition of
the CLIPS system

b.

A critical and comparative analysis of each technique and its effectiveness
(pros/cons) to
wards
a
rchiving an architectural decomposition of the
CLIPS system

c.

Figures illustrating the results and the effects of each clustering technique
you have tried as well as, the final decomposition or decompositions of the
CLIPS system

d.


Any scripts or source

code that you have developed / used to obtain the
system decomposition along with the corresponding executables


The project is worth of 15
% of the total mark of the course. You will have to submit the
project by the day of the last lecture of the class.

For any questions on this project you
can contact the instructor at
Kostas@swen.uwaterloo.ca

or at
e
xt. 2840.