Top Banner
Software Architecture and Design An Overview Lorem Dolor Ipsum
36

Software Architecture and Design - An Overview

Jul 15, 2015

Download

Software

Oliver Stadie
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Software Architecture and Design - An Overview

Software Architecture

and Design

An Overview

Lorem

DolorIpsum

Page 2: Software Architecture and Design - An Overview

Oliver StadieSoftware Engineer • Generalist

IT Consulting • Game Developer

waog.net

Page 3: Software Architecture and Design - An Overview

Content

● Popular examples

● Context

● Architecture vs. Design

● Uses

● Aspects

Page 4: Software Architecture and Design - An Overview

Popular Examples

Stuff you may know

Page 5: Software Architecture and Design - An Overview

Popular Examples: Client-Server

Page 6: Software Architecture and Design - An Overview

Popular Examples: Layer

Network Access Layer

Internet Layer

Transport Layer

Application Layer

Page 7: Software Architecture and Design - An Overview

Popular Examples: MVC

Model

View Controller

Page 8: Software Architecture and Design - An Overview

Popular Examples: Singleton

Page 9: Software Architecture and Design - An Overview

Popular Examples: Observer

Page 10: Software Architecture and Design - An Overview

Context

When is it used?

Page 11: Software Architecture and Design - An Overview

Context: Waterfall

Analysis / Requirements

Architecture & Design

Implementation / Code

...

Page 12: Software Architecture and Design - An Overview

Iteration 3: Development

Iteration 2: DevelopmentContext: Agile

Iteration 0: Envisioning

Initial Requirements

Envisioning

Initial Architectural

Envisioning

Iteration 1: Development

Iteration Modeling

Model Storming

Test Driven DevelopmentReviewsagilemodeling.com

Page 13: Software Architecture and Design - An Overview

Architecture vs. Design

Whats the difference?

Page 14: Software Architecture and Design - An Overview

Architecture vs. Design

● often subjective

● different definitions

● fuzzy boundary

● both are kinds of

Models / Modelling

Page 15: Software Architecture and Design - An Overview

Architecture vs. Design - Granularity

Page 16: Software Architecture and Design - An Overview

Architecture vs. Design - Question

Where?

How? What?

Page 17: Software Architecture and Design - An Overview

Architecture vs. Design - Question

Where?

How? What?

Page 18: Software Architecture and Design - An Overview

Architecture vs. Design - Question

Where?

How? What?

Page 19: Software Architecture and Design - An Overview

Architecture vs. Design - Examples

● What kind of data

storage?

● How do modules

interact with each

other?

● What recovery

systems are in

place?

● What are the

responsibilities of

module X?

● What are the

functions of class

Y?

● What can a class

do, and what not?

Page 20: Software Architecture and Design - An Overview

Architecture vs. Design - Conclusion

● hairsplitting → don’t bother

● all are ambiguous → attach “Software”

ModelArchitecture

Design

Page 21: Software Architecture and Design - An Overview

Uses

What’s its purpose?

Page 22: Software Architecture and Design - An Overview

Uses: Sketch vs. CASE

Page 23: Software Architecture and Design - An Overview

Use: Communication (1)

var __extends = this.__extends ||

function (d, b) {

for (var p in b) if

(b.hasOwnProperty(p)) d[p] = b[p];

function __() { this.constructor =

d; }

__.prototype = b.prototype;

d.prototype = new __();

};

Page 24: Software Architecture and Design - An Overview

Use: Communication (2)

Page 25: Software Architecture and Design - An Overview

Use: Planning

so

urc

e:

http://w

ww

.bbcshop.c

om

/docto

r-w

ho/d

octo

r-w

ho-d

ale

k-b

lueprint-

poste

r/in

vt/fp

2558

Page 26: Software Architecture and Design - An Overview

Use: Understanding

● simplification

● information hiding

● easy trial-and-error

● 2d information

Page 27: Software Architecture and Design - An Overview

Use: Documentation (1)

/** ===========================

* This class uses class B

* It also uses class C

* It extends class D, through

* which it is used by class E

* ===========================

*/

Page 28: Software Architecture and Design - An Overview

Use: Documentation (2)

Page 29: Software Architecture and Design - An Overview

Use: Model Driven Development

Page 30: Software Architecture and Design - An Overview

Use: Reverse Engineering

Page 31: Software Architecture and Design - An Overview

Use: Clean Scaling

Page 32: Software Architecture and Design - An Overview

Aspects

What to consider?

Page 33: Software Architecture and Design - An Overview

Aspects: Structure of A ‘n’ D

Patterns

Frameworks,

Libraries,

Technologies

Common

Sense,

EXP

Principles

Your Application Anti-Pattern

Best

Practices

Page 34: Software Architecture and Design - An Overview

Aspects: A ‘n’ D

Philosophy

Legals

Processes

&

Workflows

… ?

Requirements

Standards

Social

Notations

Tools

Page 35: Software Architecture and Design - An Overview

Thx!

Page 36: Software Architecture and Design - An Overview

Reuse & Licence

● You may reuse & change it non-commercially.

● You have to contact and inform me about any

changes or re-publications.

● The “Oliver Stadie” and “Reuse & Licence”

pages have to remain unchanged.

● Anything else is like in this creative commons:Software Architecture and Design - An Overview

by Oliver Stadie is licensed under a Creative

Commons Attribution-NonCommercial-ShareAlike

4.0 International License.