|
Susan Elliott Sim Department of Computer Science University of Toronto 10 Kings College Rd. Toronto, Ontario Canada M5S 3G4 Tel. +1 (416) 978-4158 Fax. +1 (416) 978-4765 simsuz@cs.utoronto.ca |
Dr. Margaret-Anne Storey Assistant Professor Department of Computer Science University of Victoria PO Box 3055 STN CSC Victoria, BC Canada V8W 3P6 Tel: +1 (250) 721 8796 Fax: +1 (250) 721 7292 mstorey@csr.uvic.ca |
Thank you for agreeing to participate in the Collective Tool Demonstration. The day promises to be fun, exciting, and even nerve-wracking, for participants and organizers alike. Over the course of the today and Wednesday, we expect to learn a lot about the program comprehension tools you have brought-- more than we could by doing separate demonstrations. We want to emphasize that the goal of this workshop is not to find a winner. We are more interested in learning which aspects of the studied tools are useful for particular tasks. In addition, comparing tools directly would be difficult, if not impossible, as it is likely that the participating tools were designed to support varying tasks, and will therefore have different strengths and weaknesses.
We have selected a subject system for you to analyze and your tasks will be given to you in the form of a scenario. In the scenario, you will take the role of a development team assigned to work on an unfamiliar application. You will be using your tool to help understand this subject system. You will be given two sets of tasks. The first set of tasks is primarily concerned with the overall structure of the subject system and you are required to complete these tasks. The second set of tasks is similar to the to-do list for a maintenance programmer. Please complete at least one task from this second set. As you complete the tasks, document your progress as suggested in the General Instructions, below.
The remainder of this handbook is organized as follows:
An observer has been assigned to your team. The observer should be viewed as an apprentice trying to learn both how to use the tool set and to understand the concepts underlying the analysis that you perform. Please assist them with their assignment and answer whatever questions they have.
For each of the tasks, you need to submit two things: a deliverable and a description. The deliverable is the solution to the task. The description is a short note on how you arrived at your solution. If you use any additional resources, please make a note of this in your description. Additional resources include:
You may run the program to view its behaviour.
The observer may participate in the analysis of the subject system.
There will be a lunch break from 12-1PM.
Stop work at 5PM-- you've earned a break. Afterwards, you can work on your
presentations, but your analysis should be essentially complete.
You have been assigned, along with some of your colleagues,
to rescue the future development of the xfig application.
You are placed under a new manager, a recent MBA graduate, who
is impressed that you are going to use some fancy tools to get
him and the rest of your new team up to speed.
The first thing the new manager would like you to do is
to use your tool(s) to create some documentation which would
summarize the main structures and architecture of the xfig application.
He would also like you to explore how you would
go about implementing some of the changes that were
identified in the inherited "TODO" list.
Provide a textual and/or graphical summary of how the
xfig source code is organized. This documentation should
provide the manager with an overview of the system, and
may include a call graph, subsystem decomposition,
description of the main data and file structures or
any other appropriate information. Use whatever format
you think is appropriate, text files, HTML, Word documents,
graphics, etc.
Deliverable: The documentation you have created.
1.2 Evaluate the structure of the application.
Your manager would like you to form an opinion on the
structure of the xfig program. In particular, you should
answer the following questions:
Deliverable: Your opinion on the answers to the above questions, and
justification for the above.
Scenario
xfig is a drawing application that runs on a variety of UNIX platforms.
The current version is 3.2.1 and consists of about 30 000 lines of
ANSI C. The old xfig team and manager quit the xfig project to
move south for higher salaries!
Section 1: Required Tasks
1.1 Documentation