One of the tricks to using patterns is to be able to identify the situations where they can be used. A design pattern is a concept generalized from real-world problems and then turned around to solve a specific problem. Thus, to be able to discover problems, you need to see their use and then use those characteristics as a guide to solve another problem.
The courses book provides a working example of patterns that can help us see some of their uses in software. Patterns are used all over software, but they can also be applied in solving many engineering needs or just problems in general. For this weeks Individual Project, you will be reflecting on where patterns fit into real-world designs.
Through this course, you will be describing patterns and practicing implementing them and logging all of our progress in the Key Assignment template provided. This document will be turned in each week with the new work and improvements to your past work. This week, start with filling in the following sections:
Remember, you do not have to use a software pattern for this weeks question. The goal is to better understand the concept of a pattern, so look at construction, mechanics, literature, or whatever you think fits into the idea of a pattern. You may choose something that is not a good example of a pattern, but that is okay. Right now, you need to consider your understanding of what a pattern is, and maybe even correct any assumptions or misconceptions you have before we dive in deeper.
Assignment:
For the assignments in this course, you will not be implementing the actual project, but rather, you will be developing a comprehensive Software Design Document. Your first task in this process will be to select an organization or identify a hypothetical organization to use as the basis of your projects. You will also create the shell document for the final project deliverable that you will be working on during each unit. As you proceed through each project phase, you will add content to each section of the final document to gradually complete the final project delivery. Appropriate research should be conducted to support the development of your document and assumptions may be made when necessary.
For the Individual Project, you want to see patterns in action by coding a creational pattern. Take the pattern you chose in the Discussion Board and one of the patterns that you replied to a peer about, and create a code implementation for the example.
You may use any programming language that your instructor finds acceptable. The code should compile and be of your own work, not taken from an existing source. You are not required to build an entire application around the pattern, but you should have a full implementation of the code that would realize the pattern.
As you are creating the code, you should journal the design and code process that goes into the implementation of the pattern. This should take the form of the following:
Include the code and the narrative within the Key Assignment document you started in Phase 1 to keep the journal of all the work you are doing in patterns.
Like last weeks Individual Project, you want to see patterns in action by coding a structural pattern. Take the pattern you chose in the Discussion Board and one of the patterns that you replied to a peer about and create a code implementation for the example.
You may use any programming language that your instructor finds acceptable. The code should compile and be of your own work, not taken from an existing source. You are not required to build an entire application around the pattern, but you should have a full implementation of the code that would realize the pattern.
As you are creating the code, you should journal the design and code process that goes into the implementation of the pattern. This should take the form of the following:
Include the code and the narrative within the Key Assignment document you started in Phase 1 to keep the journal of all the work you are doing in patterns.
Like last weeks Individual Project, you want to see patterns in action by coding a behavioral pattern. Take the pattern you chose in the Discussion Board and one of the patterns that you replied to a peer about and create a code implementation for the example.
You may use any programming language that your instructor finds acceptable. The code should compile and be of your own work, not taken from an existing source. You are not required to build an entire application around the pattern, but you should have a full implementation of the code that would realize the pattern.
As you are creating the code, you should journal the design and code process that goes into the implementation of the pattern. This should take the form of the following:
Include the code and the narrative within the Key Assignment document you started in Phase 1 to keep the journal of all the work you are doing in patterns.
The final project should include all of the elements from phases 14 Individual Projects, including improvements based on all the feedback from your instructor and peers in the discussion board this week. This is a large percentage of the final grade, so make sure you clearly make improvements to any work you have previously lost points for in particular.
The final element to wrap up this is being able to use patterns to solve business problems. You have not been exposed to many patterns, and even given a sample implementation for six patterns. Your final task is to describe a solution that can be improved by using patterns. Include a design that has the following elements:
You are not required to implement this solution, so consider a large problem. The goal is to set your mind to bigger problems and reflect how a pattern can be a tool used to help categorize the need and guide the solution.
1.
2. Starting this week and for the next three weeks, you will be the expert on one of the design patterns and teaching the rest of the class about that pattern. Your job is to read the information on that pattern and do additional research on the one pattern you chose.
3. You are continuing to learn and teach patterns, only this week, focusing on structural patterns. This week, you are looking at Structural Patterns.
4. This week will focus on behavioral patterns.