<COURSE<PROJECT<TEAM>

<PROJECT

Design Refactoring Documentation
Prepared by <TEAM>:

•John Doe <

•Jane

•Joa Tao <

Product Overview

Analysis of Original Design

Design Weaknesses and Strengths

Use of design patterns.

Subsystem and Class Structure

Sequence Diagrams

Metric Analysis

The Refactored Design

Refactored Class Structure

Design Patterns

Sequence Diagrams

Implementation

Metric Analysis

Reflection

Product Overview

This section provides a brief overview that describes the product and features it includes.

Domain Model

From the initial problem statement and your understanding of the domain, create a domain model for this product.

Analysis of Original Design

This section provides a narrative that describes and analyzes the original design as it existed in the code base you were given to refactor.

Design Weaknesses and Strengths

This subsection discusses the original design's weaknesses and strengths, including incorporation of domain model entities and fidelity to the design documentation.

Use of design patterns.

For each design pattern that you find in the original design, complete a copy of this table.

Name: / GoF pattern:
Participants
Class / Role in pattern / Participant's contribution in the context of the application
Deviations from the standard design pattern:

Subsystem and Class Structure

Include in this section subsystem and class diagrams for the original design along with a narrative description to explain the important aspects to the reader. Since your diagrams must be legible if this is viewed on paper, you will need several diagrams at different levels of abstraction and for different subsystems to completely document your design in a way that the reader can physically see and intelligently understand.

Sequence Diagrams

Include in this section at least two sequence diagrams for major features that will be affected by your refactoring.

Metric Analysis

In this section, answer these questions about the original design: 1) What were the metrics for the original code base? 2) What did these initial measurements tell you about the system? 3) How did you use these measurements to guide your refactoring? You should discuss at least four metrics.

The Refactored Design

Provide an overview narrative describing your refactored design. Describe how it addresses competing criteria such as low coupling, high cohesion, separation of concerns, information hiding, the Law of Demeter, extensibility, reusability, etc.

For each refactoring that you did, give it an identification and complete a copy of this table.

Refactoring identification
Metric evidence
Other evidence
Standard refactoring pattern (if any)
Description of the refactoring
Classes involved

Refactored Class Structure

Provide class diagrams for the areas that you refactored in the design. Follow the guidance provided above for class diagrams.

Design Patterns

Discuss new design patterns that you incorporated into your refactored design. Use copies of the design pattern description table above to document your pattern usage.

Sequence Diagrams

This section includes sequence diagrams from the refactored design for the same features detailed in your analysis of the original design.

Implementation

This section contains a brief discussion of the refactoring that the team was able to implement, including why the team decided to implement those refactorings, and a list of all classes that were modified for each refactoring that you implemented.

Metric Analysis

What are the metrics for the refactored code base? This only has relevance for the areas of the refactored design that you implemented. How did your refactoring affect the metrics? Did your refactoring improve the metrics? In all areas?In some areas? What contributed to these results?

Reflection

In this section provide a short reflection on the process of discovering the design in an existing software system, the utility of metric analysis, and the team's observations on refactoring.

2018-12-29Page 1 of 3