Assignment 1

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:

  • Describe a real-world solution that uses a pattern or many patterns that you know of or can find in research past what the book has provided in the example.
  • What are the differences between the definition of the pattern and the implementation in the real-world product or implementation? Be specific on what are real-world characteristic versus what principles or guidelines specified by a pattern.
  • If you were asked to build something very similar, how would your implementation differ from that of the implementation you described above? What would you be changing or building differently, yet how would that conform and still be true to the pattern?

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.

Assignment 2

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:

  • Why you chose that pattern
  • What are the key elements you created for the pattern
  • Any particular code elements that are essential for the pattern

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.

Assignment 3

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:

  • Why you chose that pattern
  • What are the key elements you created for the pattern
  • Any particular code elements that are essential for the pattern

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.

Assignment 4

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:

  • Why you chose that pattern
  • The key elements that you created for the pattern
  • Any particular code elements that are essential for the pattern

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.

Assignment 5

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:

  • What are the business goals being realized
  • What pattern helps meet that need
  • What additional elements are needed beyond the pattern
  • How does the pattern help the final implementation

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.

Questions

1.

  • What is a design pattern?
  • Why is the study of patterns beneficial?
  • What information is typically captured about a pattern?
  • What is the difference between a pattern and a framework?

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.

  • Title your post with the pattern name you have chosen.
  • Describe the problem being solved by the pattern in your words.
  • Describe the solution for the pattern in your words.
  • Come up with an example of a problem you could solve with the pattern. It may be related to software, but it could also be an analogy describing the concept. If you are not sure, research the pattern and give an example you find with proper APA attribution.

3. You are continuing to learn and teach patterns, only this week, focusing on structural patterns. This week, you are looking at Structural Patterns.

  • Title your post with the pattern name you have chosen
  • Describe the problem being solved by the pattern in your words
  • Describe the solution for the pattern in your words
  • Come up with an example of a problem you could solve with the pattern. It may be related to software, but it could also be an analogy describing the concept. If you are not sure, research the pattern and give an example you find with proper APA attribution

4. This week will focus on behavioral patterns.

  • Title your post with the pattern name you have chosen.
  • Describe the problem being solved by the pattern in your words.
  • Describe the solution for the pattern in your words.
  • Come up with an example of a problem that you could solve with the pattern. It may be related to software, but it could also be an analogy describing the concept. If you are not sure, research the pattern and give an example you find with proper APA attribution.
Academic Honesty!
It is not our intention to break the school's academic policy. Posted solutions are meant to be used as a reference and should not be submitted as is. We are not held liable for any misuse of the solutions. Please see the frequently asked questions page for further questions and inquiries.
Kindly complete the form. Please provide a valid email address and we will get back to you within 24 hours. Payment is through PayPal, Buy me a Coffee or Cryptocurrency. We are a nonprofit organization however we need funds to keep this organization operating and to be able to complete our research and development projects.