SE2811
Software Component Design

Outcomes

  • Research material not covered in class
  • Orally (and graphically?) present findings to peers
  • Learn from peers
  • Learn a variety of patterns
  • Possibly learn how patterns are used in a variety of languages

Introduction

In this project worked in teams of three, you will explore patterns not covered in class and convey what you learned to the rest of the class

You should work a code example of the pattern you are demonstrating. You may find it helpful to start from one of the lab projects we have already worked in class this quarter (or, if you are investigating a pattern in Python, in the network protocols class last quarter)

Proposal (due in Lab, Week 9)

Proposals will be accepted on a first-come first-serve basis. If another team has already proposed to do a pattern, I will ask you to pick a different pattern. I will accept proposals before the deadline.

Here are some ideas

  • Decorator in Python
  • Abstract Factory
  • Flyweight
  • Builder (taken)
  • State
  • Mediator
  • Memento
  • Object Pool
  • MVC (code example)
  • More...

Code and UML (due Tuesday of Week 10, 11pm)

You should submit to this website (below) your source code in a zip file. As in previous labs, each team member should mark the parts of the code they worked on with @author tags. You should also submit a UML diagram with pattern stereotypes for the pattern you are demonstrating.

Please put all your source code in a package with your usernames and zip this. For example, if your teammembers are Phileas Fogg and Jean Passepartout, when your zip file is unzipped, it should produce the folder foogp_passepartoutj, which is a top-level Java package.

Demonstration support materials (Week 10, Tuesday, 11pm)

One member of your team should email me any materials you used to support your demonstration to the class. (e.g., a PowerPoint file, a worksheet, etc.)

Demonstration to class (in Lab, Week 10)

You will have 20 minutes to teach your peers as much as you can about the pattern. You do not have to follow a traditional lecture approach.

Each student will be required to assess the other teams using a simple form. In particular, you will be asked how much the team facilitated your learning of the pattern.

Grading Rubric

Each quarter, faculty receive a reminder of MSOE's grade definitions:

A Student has performed outstandingly in all regards and is clearly exceptional.
AB Student has performed with excellence.
B Student has shown very high command of course content.
BC Student has done a commendable job dealing with course content.
C Student has an adequate grasp of course content.
CD Student has met fair expectations.
D Student has attained minimal expectations in the course.
F Student has not attained minimal expectations in the course.

In light of these expectations, the rubric requirements for the final grade are as follows:

The project is worth two week's labs in the final grade.

45% of the project grade will be based on the coding example.

45% of the project grade will be based on the quality of instruction in the final presentation.

10% of a student's grade will be based on that student's assessment of the other projects.

A coding example that is clearly exceptional will receive a grade of A. A coding example that includes a real-world example (either an analogy to real-world items or a real coding example), that includes the proper relationship between the classes, that illustrates the pattern well, that runs correctly, and is otherwise free of errors will receive a grade of AB. Coding examples with errors will receive lower grades.

A presentation that is clearly exceptional will receive a grade of A. A presentation which clearly presents the pattern, includes clarifying references to code examples, and appropriately engages the peer audience will receive a grade of AB. Presentations which contain errors of various kinds will receive a lower grade.

A student who provides exceptional assessment of the other presenations will receive an A on the presentation. A student who provides a reasonable assessment of the other students will receive an AB. A student who gives all teams the same numeric ratings and does not provide written feedback will receive a very low grade.

Up to 10% of the final will be on the material presented by your classmates on their final projects.

Submission Form for Dr. Yoder