In this group project, you will explore a new pattern and share your pattern with your peers. The primary emphasis in the presentation project is curiosity. Your goal will be to find one interesting, complex advantage of the pattern and make it simple for your peers by looking at this advantage from multiple perspectives.
In the first phase of the project, you will select a pattern and an interesting advantage of the pattern, and develop an idea for a novel example GUI application illustrating that advantage. Through a complete presentation draft, you will look at this proposed example program from multiple perspectives to illustrate your one key advantage to your peers.
In the second phase of the project, you will actually implement your example program that illustrates your one key idea. During this phase, you may make minor changes to your design as you discover new things about your pattern. You will adjust your presentation to reflect these minor changes. You may find it helpful to read the requirements for this implementation as you brainstorm.
In your final presentations to your peers, you will first demonstrate your program and then elaborate on how it illustrates a variety of perspectives on your one key advantage.
You will work in teams of three. Teams of two or four must be approved by the instructor. How you divide up the work is up to the team, but all must participate in a meaningful way. In particular, everyone must both present and help write the implementation. A significant part of your grade will be based on a short report in which you describe how you contributed.
Your project will be evaluated, in part, according to the Exhibit Curiosity SWE2410 Rubric, which your instructor will provide you.
In general, you may select any design pattern you wish, including any of the design patterns from the Gang of Four that we have not discussed in class:
However, you should avoid these patterns, which have not led to good presentations in the past:
Your pattern must be approved by the instructor. Patterns are available on a first-come, first-served basis.
As you consider the patterns, consider whether there is an interesting, complex advantage of the pattern that you can make simple for your peers. Also consider what “real world” GUI program you could develop to illustrate this advantage. These two ideas will eventually be assessed in the Exhibit Curiosity SWE2410 Rubric under the Exploration and Innovation headings.
During the first week of the lab, you will develop a complete draft of your presentation. This draft should be as close as possible to what you expect to present at the end of the project, after your example program is written.
Your presentation should explore your one key advantage of your design pattern from multiple perspectives. The key advantage should be complex enough to allow for different perspectives. You should certainly include a UML diagram illustrating aspects of the code you plan to write that support this point. (Discuss exceptions with the instructor.)
Your presentation should also include code snippets that focus in on key parts of the program you plan to write and illustrate the advantages of your pattern.
You should also support it from other perspectives, possibly including, but certainly NOT using all ideas from, ideas we have discussed earlier in the course, ideas online, or this brainstorming list:
All of these perspectives should key into your demo app, showing details from the app rather than abstractions or other example programs that are out there. Sometimes, an additional example beyond your app may also be useful, but should not replace tie-ins to your example application. Write the presentation as if the example program already exists. For example, your class diagrams should use names for classes you plan to write in your example program.
Many of these perspectives – especially the required UML class diagrams and code snippets – can be enhanced by contrasting them to a solution that does NOT use the design pattern. In some cases, you may wish to even implement the alternative solution, e.g., to show a performance advantage of the design pattern or to work out what the alternative is more clearly in your own mind.
Do NOT attempt to describe your entire demo application’s source code in your presentation. Class diagrams should include only those classes that support the goal of illustrating key elements of how the pattern is applied to your project. In particular, do not include all attributes and methods within each class. Likewise, code snippets should be just long enough to illustrate your point. You will may need to develop multiple diagrams and combine diagrams with different code snippets (which may be on a diagram!) to illustrate different aspects of the pattern and the pattern’s key advantage. This is an art. The whole team should review each perspective to ensure the level of detail is just right.
Your presentation will be evaluated according to the Exhibit Curiosity SWE2410 Rubric. As you look at multiple perspectives, focus on the Perspectives and Intellectual Inquiry dimensions of the rubric.
At the end of your presentation, include a slide that acknowledge the sources of your ideas in the presentation. Do NOT show this slide to your peers – keep it in an appendix. The purpose for this slide is to acknowledge to your instructor where you got your ideas for the presentation. As nearly all of your perspectives should build on your own original example application, hardly any of the material in the presentation should be quoted or copied from external sources in any case.
Submit your draft as directed by your instructor. Where you plan to supplement your presentation with board work, write what you plan to write on the board in a second PDF that you mention from your presentation.