Reverse Engineering Software Architecture
Software Methodology

Goal: The goal of the reverse engineering assignment is to take the original source code of your project and manually create a high-level software architecture model of this code.

Deliverables

There is one primary document that will be turned in for this phase.

  1. Architecture diagram. Develop a boxes-and-arrows depiction of the high-level software architecture of the project. While the granularity of components will vary from project to project, expectations are that each component (box) in the architecture diagram will represent multiple (perhaps even 10s of) classes in the source code. The idea is to create meaningful groupings of functionality, represent that functionality as a component, then represent communication paths (arrows) among the components. Major sources of external input (users, other systems) and output (screen displays, repositories, file system, etc.) also should be incorporated into the architecture diagram. The purpose of the architecture diagram is to create a representation of the system that is useful for your group to understand the existing structure of the project.

    For this phase, you will create a cross-reference list. This list will give the names all of the classes in the original source code, and for each class, list which component (or components) in your architectural diagram contain that class. If a class is not modeled by an component in the architecture, provide a brief description why.

Last updated: 12/10/2002