SWEA 2023 Weekplan 3

The learning goals for Week 37 are:

Mon: The Strategy pattern derived. Wed: Refactoring and Integration Testing. Definitions of Design Patterns.

Literature:

Slides:

Notes for this weekplan:

The UML presentation is one of those boring 'then-there-is-X-and-Y-and-Z' lectures so it is replaced by a screencast. But do not skip it, because it is important! While rather boring to remember the difference between a dashed and a full line, or the shape of a diamond and which end it should be at, it is vital that you get it right. It makes a huge difference if you say "The ocean is in the fish" but wanted to say "The fish is in the ocean". I see students at the exam describing their designs using incorrect UML ("The PayStation inherits from Receipt" kind of stuff), and it is not good.

Several modern languages avoid implementation inheritance but keeps (aspects) of the essential 'interface' and 'object implements interface' constructs that are essential to the Strategy pattern. If you want to see one way of implementing PayStation's RateStrategy in Go and Rust, you may have a look at my own katas:

  1. paystation.go (GoLang).
  2. paystation.rs (Rust).

Additional exercises:

7.5 7.6 9.1 9.3

Rehearse a TDD exam situation. Sit down and spend 25 minutes to read and prepare a 10 minute oral presentation of one of the TDD exercises in the example exam question set: demo-question-final-2022.pdf.

Next, do a 10 minute presentation at the whiteboard in front of your team.

The team provides constructive feedback on the presentation: Is your presentation clear and understandable, do you discuss the concepts and terms correctly, is you Java example code correct, etc. Swap and ensure all in the team gets a chance to rehearse the situation.

Legend: The typography bold, normal, (brackets), above indicate my perception of how important the exercises are from high to optional. However, solve the mandatory project first!