Software Design & Architecture

Software Design

Gives enough detail to implement software

Software Architecture

Gives enough detail to produce a software design

Constrains implementation to achieve functionality, consistency, reliability and security.

Constrains designs to achieve an organization's business and technology strategy.

Source: https://simplicable.com/new/software-design-vs-software-architecture

Software Design Process

Source: https://secweb.cs.odu.edu/~zeil/cs330/live/website/Slides/uprocess/page/uprocess.html

Microservices Architecture

Source: https://dzone.com/articles/what-are-microservices-actually

AWS IoT Architecture

Source: https://aws.amazon.com/blogs/big-data/build-a-visualization-and-monitoring-dashboard-for-iot-data-with-amazon-kinesis-analytics-and-amazon-quicksight/

Block Diagram

A game of chess

Source: http://www.c-sharpcorner.com/article/a-chess-program-using-C-Sharp/

Exercise #1: Block Diagram

Tetris Block Diagram

Key Principles

  1. Separation of concerns
  2. Single Responsibility principle
  3. Principle of Least Knowledge
  4. Don't Repeat Yourself (DRY)
  5. Minimize upfront design

Source: https://msdn.microsoft.com/en-us/library/ee658124.aspx

Sequence Diagram

Calling from a landline

Source: http://www.upedu.org/process/activity/ac_ucdes.htm

Exercise #2: Sequence Diagram

Score Update

Single User Comment

Multi-user Comment

State Diagram

Calling from a landline

Source: http://www.en.pms.ifi.lmu.de/publications/diplomarbeiten/Sacha.Berger/THESIS/HTML-view/part2.html#2.1.2.2.3.

Exercise #3: State Diagram

Video Player

Source: https://developers.google.com/cast/images/receiver_state_machine.png

Architectural Styles (1)

Source: https://msdn.microsoft.com/en-us/library/ee658117.aspx

Architectural Styles (2)

Source: David Budgen (2013). Software Design. Second Edition. Table 6.1, pg. 113.

Unified Modeling Language(UML 2.5)

Source: http://www.omg.org/spec/UML/2.5/PDF, Figure A.5, pg. 683.

Design Patterns

Creational

Structural

Behavioral

Source: http://www.dasunhegoda.com/wp-content/uploads/2013/10/the23.gif

Software Design & Architecture

By Arvind Padmanabhan

Software Design & Architecture

  • 1,692