Introduction

You communicate about your design and code in different ways. UML models are used to communicate your design information. These include: domain model, class model, statecharts, and sequence diagrams. Code is not just for machines to understand; humans have to read your code as well. Not just for the newbie that just joined the team, but also for you or rather your future self when you have to fix a bug in your "old" code. This lesson describes the purpose of each of the UML models that you will create through this term, and teaches good coding ettiquete.


Peer review – an activity in which people other than the author of a software deliverable examine it for defects and improvement opportunities – is one of the most powerful software quality tools available. Peer review methods include inspections, walkthroughs, peer deskchecks, and other similar activities. After experiencing the benefits of peer reviews for nearly fifteen years, I would never work in a team that did not perform them.
From Humanizing Peer Reviews by Karl E. Wiegers

Code reviews serve a dual purpose. Reviews improve the quality of the product. Simultaneously, reviews increase the overall skill of the team. Code reviews can be informal (one member with another) or formal (with the whole team). Modern source repository tools support online, virtual asynchronous reviews; git's pull request feature is one such tool.

Learning Outcomes


Study Resources

For your study of the UML models refer to resources in the lessons Domain analysis, Review OO concepts, State-based behavior I, and Sequence diagrams. (Note: the Sequence diagrams lesson is later in the term.)

For your study of code communication, use these resources.

Video Lessons

Web Articles and Blogs

Wikipedia

Class Lecture

Exercises

After-Class Exercises