->Homepage
->Schedule
->Courses
-->CS183
-->SE281
-->Tentative Schedule
-->Objectives
-->Quiz 1
-->Lab 1
-->Lab 2
-->Lab 3
-->Lab 4
-->Lab 5
->Course Policies
->Electronic Submission
->Documentation Standards
->Old Exams
->C++ Examples
->MSVC++ Info
->Software
->Support Forum
->Unix Info
->Nature Photos

[Home]
[Rich][Home][Rich]
[Author]
SE281 -- Lab 4: Creational Patterns

Spring 2004

Objectives Addressed
  • understand and apply object-oriented design patterns
  • understand the use of UML in the design process
  • be able to design and implement small software components and systems
  • be able to use computer-aided software engineering (CASE) tools in the design process
Overview

The purpose of this assignment is develop a better understanding of creational patterns.

Problem Statement

Identify all of the functions in the Folder class that are dependent on the subclasses of the DesktopItem class. Rewrite all of the identified functions so that they no longer are dependent on the subclasses.

You should run the same test program that you used for the previous lab assignment.

Lab Report (due 11:00pm, the day prior to week 7 lab)

Here is a template file to use as a starting point for this report.

The lab report should consist of the following:

  • A link to your Rational Rose model file and two .png images: one with the UML diagram describing the complete class hierarchy and the other showing a sequence diagram for Folder::open where open reads at least one of each kind of DesktopItem object.
  • Your reaction (a couple of paragraphs on what you learned and what you thought about while working on this assignment) In your reaction you should indicate which pattern you chose to implement for this assignment and justify your decision.
  • Any suggestions you have for how the assignment could be improved.
  • Results from your testing program.
  • An activity log indicating how much time you spent on each phase of the assignment. You should use the format found in the template XML file and report the time in the following categories:
    • Modeling
    • Design
    • Coding
    • Debug (before you think it's working)
    • Test (after you think it's working)
    • Writing Report
    • Other
  • The documented source code for your program.

As with any report you submit, correct spelling and grammar are required. In addition, your report should be submitted electronically following the Electronic submission guidelines. (You may wish to consult the XML help video and/or sample report before submitting your report.) Be sure to keep copies of all your files, in case something gets lost.

Acknowledgment

This laboratory was developed by Dr. Chris Taylor.

Last Updated: Wednesday, 14-Apr-2004 17:44:37 CDT