<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 identificationMetric 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