+ All Categories
Home > Software > Software Architecture and Design - An Overview

Software Architecture and Design - An Overview

Date post: 15-Jul-2015
Category:
Upload: oliver-stadie
View: 346 times
Download: 0 times
Share this document with a friend
36
Software Architecture and Design An Overview Lorem Dolor Ipsum
Transcript

Software Architecture

and Design

An Overview

Lorem

DolorIpsum

Oliver StadieSoftware Engineer • Generalist

IT Consulting • Game Developer

waog.net

Content

● Popular examples

● Context

● Architecture vs. Design

● Uses

● Aspects

Popular Examples

Stuff you may know

Popular Examples: Client-Server

Popular Examples: Layer

Network Access Layer

Internet Layer

Transport Layer

Application Layer

Popular Examples: MVC

Model

View Controller

Popular Examples: Singleton

Popular Examples: Observer

Context

When is it used?

Context: Waterfall

Analysis / Requirements

Architecture & Design

Implementation / Code

...

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

Architecture vs. Design

Whats the difference?

Architecture vs. Design

● often subjective

● different definitions

● fuzzy boundary

● both are kinds of

Models / Modelling

Architecture vs. Design - Granularity

Architecture vs. Design - Question

Where?

How? What?

Architecture vs. Design - Question

Where?

How? What?

Architecture vs. Design - Question

Where?

How? What?

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?

Architecture vs. Design - Conclusion

● hairsplitting → don’t bother

● all are ambiguous → attach “Software”

ModelArchitecture

Design

Uses

What’s its purpose?

Uses: Sketch vs. CASE

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 __();

};

Use: Communication (2)

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

Use: Understanding

● simplification

● information hiding

● easy trial-and-error

● 2d information

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

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

*/

Use: Documentation (2)

Use: Model Driven Development

Use: Reverse Engineering

Use: Clean Scaling

Aspects

What to consider?

Aspects: Structure of A ‘n’ D

Patterns

Frameworks,

Libraries,

Technologies

Common

Sense,

EXP

Principles

Your Application Anti-Pattern

Best

Practices

Aspects: A ‘n’ D

Philosophy

Legals

Processes

&

Workflows

… ?

Requirements

Standards

Social

Notations

Tools

Thx!

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.


Recommended