Practicum: High-level Design
In this practicum rotation, students will be responsible for designing a real software system. The Design II course must be taken before or concurrently with this practicum. The students will perform the following activities during this rotation:
- Develop multiple possible software architectures and examine their trade-offs, focusing on reuse, performance, and quality.
- Refine the software architecture using an appropriate design methodology, modeling the control and data structures of the modules.
- Examine and use applicable design patterns
- Verify the design with the requirements
- Use available CASE tools to produce the design models
- Produce a high-level design specification detailing the design and linking it back to the requirements.
- Participate in design reviews.
- Software Architecture in Practice. Bass et al. Addison-Wesley, 1998.
- Design Patterns Gamma et al.
- Rationale or other general modeling tool.
- Word processor for each student
- Access to requirements documentation and examples of good designs
The goals of this practicum are that students will be able to produce and refine a high level design in a clear, documented manner. Thus, the assessment should be based on both the products produced and on the methods used to reach that product. Additionally, the students should be able to communicate how and why they produced the design, how they would do things differently, and what they learned about design. This could be done using periodic reflections throughout the practicum. Standard performance will be considered a B. Students will have to perform above standard to gain an A. Additionally, there is room in the reflection and process sections to adjust grades for individuals if needed. Thus, the assessment can be broken down as follows:
- Product (50%): The design document should contain both static and dynamic descriptions of the design. It should include rationale for decisions made, particularly where tradeoffs were considered. It should be linked back to the requirements, particularly showing how the design will address the non-functional requirements. Other documents produced should include design review summaries, or summaries of design analysis if any of these activities are performed. These documents could be graded on the decisions or outcomes that occurred due to these activities.
- Reflection (25%): Reflection should be done periodically during the practicum, every couple of weeks. The goal of the reflection is to get the students to articulate what they have been doing, why, what is going right and what is going wrong. The purpose of including reflection in the grade is to allow students to make mistakes. Realizing and recovering from those mistakes is more important than doing it right the first time.
- Process (25%): The goal of the process assessment is that the students are following appropriate design methods properly and in a timely fashion. Process can be assessed through weekly status reports, design drafts, meeting minutes or summaries, and feedback by the TA and project leader.