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
- Separation of concerns
- Single Responsibility principle
- Principle of Least Knowledge
- Don't Repeat Yourself (DRY)
- 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