
|
Assignment 4
Due date
Friday, December 1, 2000
Objectives
-
Introduction to software architecture tools
-
Applying reverse engineering technology
-
Extracting software architecture
-
Keeping architecture and source code up-to-date and current
Instructions
A key objective for this course is to learn how to extract software architecture artifacts from the descriptions (i.e., code and documentation) of a subject software system and how to document software architecture effectively. In this assignment you are to analyze the Unix gawk utility (20-30 KLOC) using the Rigi reverse engineering environment.
You are to investigate gawk interactively using the analysis tools provided by Rigi through menus. Rigi accepts RSF (Rigi Standard Format) as input. gawk is a C program and it was parsed for you into RSF. The result of this investigation is a conceptual model of the architecture of gawk. This process involves building a subsystem hierarchy.
You are then to write RCL scripts, which automate the process you have just gone through manually using the Rigi menus. Given the RCL scripts the hierarchy of subsystems can be built repeatedly using one command even if the source code underneath the conceptual model changes. Finally, write a brief report that illustrates both the manual and automated process you have gone through.
The report is intended for third year computer science students. Thus, you can assume basic software engineering terms and knowledge.
As an additional requirement for this course, graduate students are expected to write more Tcl scripts than undergraduate students. In particular, graduate students are to compose more than one subsystem hierarchy and, hence, develop two sets of scripts which will lead to two different conceptual models.
Your report should address the following questions:
-
Describe the manual investigation of gawk.
-
Describe the design and implementation of the Tcl scripts in detail.
-
Briefly describe the architecture of gawk.
Hints
-
Start early with this assignment.
-
The Rigi download page can be found at http://www.rigi.csc.uvic.ca/Pages/download.html. You need to use the latest version of Rigi (i.e., Version 5.5.0 on Unix or Version 5.4.3 on Windows). You also need to download the cparse package. The Rigi manual can also be reached from this web page. We will give a brief tutorial on Rigi in class on Tuesday, November 21, 2000.
-
-
-
There are two sections in the Rigi manual dealing with the Rigi Command Language (RCL):
-
RCL is based on and follows the syntax of Tcl (Tool Command Language) developed by John Ousterhout.
-
Develop this report incrementally, that is, make several passes over the entire report.
-
This assignment can be done in groups of two. Please inform the instructor by November 24, 2000 if you plan to complete this assignment as a group. Only one report is to be turned in per group.
What to turn in
The report should be written as an HTML document. The length of the report, including diagrams and references, should not exceed 6 printed pages using a reasonable font size (i.e., 10-12 point for text and 14 point for headings).
Submit your assignment by e-mail to hausi@csr.uvic.ca.M
|
|