SlideShare a Scribd company logo
1 of 36
Software Architecture
and Design
An Overview
Lorem
Dolor
Ipsum
Oliver Stadie
Software 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: Development
Context: Agile
Iteration 0: Envisioning
Initial Requirements
Envisioning
Initial Architectural
Envisioning
Iteration 1: Development
Iteration Modeling
Model Storming
Test Driven DevelopmentReviews
agilemodeling.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
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.

More Related Content

What's hot

Google Megastore
Google MegastoreGoogle Megastore
Google Megastore
bergwolf
 

What's hot (20)

An Introduction to Software Architecture
An Introduction to Software ArchitectureAn Introduction to Software Architecture
An Introduction to Software Architecture
 
UML Case Tools
UML Case ToolsUML Case Tools
UML Case Tools
 
Evolutionary process models se.ppt
Evolutionary process models se.pptEvolutionary process models se.ppt
Evolutionary process models se.ppt
 
Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2Architectural Styles and Case Studies, Software architecture ,unit–2
Architectural Styles and Case Studies, Software architecture ,unit–2
 
Software Architecture and Design
Software Architecture and DesignSoftware Architecture and Design
Software Architecture and Design
 
Ch5 system modeling
Ch5 system modelingCh5 system modeling
Ch5 system modeling
 
Ch10 dependable systems
Ch10 dependable systemsCh10 dependable systems
Ch10 dependable systems
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Ch16 component based software engineering
Ch16 component based software engineeringCh16 component based software engineering
Ch16 component based software engineering
 
Architectural Smells Detected by Tools: a Catalogue Proposal
Architectural Smells Detected by Tools:  a Catalogue ProposalArchitectural Smells Detected by Tools:  a Catalogue Proposal
Architectural Smells Detected by Tools: a Catalogue Proposal
 
Architecture design in software engineering
Architecture design in software engineeringArchitecture design in software engineering
Architecture design in software engineering
 
Google Megastore
Google MegastoreGoogle Megastore
Google Megastore
 
Presentation on software construction
Presentation on software constructionPresentation on software construction
Presentation on software construction
 
4+1 view model
4+1 view model4+1 view model
4+1 view model
 
Software Architecture
Software ArchitectureSoftware Architecture
Software Architecture
 
Design Patterns - General Introduction
Design Patterns - General IntroductionDesign Patterns - General Introduction
Design Patterns - General Introduction
 
Uml
UmlUml
Uml
 
Architectural styles and patterns
Architectural styles and patternsArchitectural styles and patterns
Architectural styles and patterns
 
Ch8.testing
Ch8.testingCh8.testing
Ch8.testing
 
Design pattern & categories
Design pattern & categoriesDesign pattern & categories
Design pattern & categories
 

Similar to Software Architecture and Design - An Overview

Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
RaNa HaSan
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
RaNa HaSan
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
Mohamed Bayomi
 
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseJavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
FestGroup
 
Appalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet TechnologyAppalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet Technology
APPALANAIDU KONDALA
 

Similar to Software Architecture and Design - An Overview (20)

Prototyping Workshop - Wireframes, Mockups, Prototypes
Prototyping Workshop - Wireframes, Mockups, PrototypesPrototyping Workshop - Wireframes, Mockups, Prototypes
Prototyping Workshop - Wireframes, Mockups, Prototypes
 
OOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptxOOSAD Chapter 6 Object Oriented Design.pptx
OOSAD Chapter 6 Object Oriented Design.pptx
 
Keeping code clean
Keeping code cleanKeeping code clean
Keeping code clean
 
Design pattern application
Design pattern applicationDesign pattern application
Design pattern application
 
Design Patterns
Design PatternsDesign Patterns
Design Patterns
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
 
Intake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SDIntake_35_Professional_Developer_Track_SD
Intake_35_Professional_Developer_Track_SD
 
Create first android app with MVVM Architecture
Create first android app with MVVM ArchitectureCreate first android app with MVVM Architecture
Create first android app with MVVM Architecture
 
Benefits of using software design patterns and when to use design pattern
Benefits of using software design patterns and when to use design patternBenefits of using software design patterns and when to use design pattern
Benefits of using software design patterns and when to use design pattern
 
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java UniverseJavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
JavaFest. Антон Лемешко. Model-Driven Development in the Open Java Universe
 
Clean architecture with asp.net core
Clean architecture with asp.net coreClean architecture with asp.net core
Clean architecture with asp.net core
 
SachinResume - Copy
SachinResume - CopySachinResume - Copy
SachinResume - Copy
 
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
Dirigible powered by Orion for Cloud Development (EclipseCon EU 2015)
 
Microservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learnedMicroservices as an evolutionary architecture: lessons learned
Microservices as an evolutionary architecture: lessons learned
 
Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10Software Engineering with Objects (M363) Final Revision By Kuwait10
Software Engineering with Objects (M363) Final Revision By Kuwait10
 
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
Sioux Hot-or-Not: Model Driven Software Development (Markus Voelter)
 
Appalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet TechnologyAppalanaidu_4.4 Years Exp in DotNet Technology
Appalanaidu_4.4 Years Exp in DotNet Technology
 
Easy path to machine learning (2023-2024)
Easy path to machine learning (2023-2024)Easy path to machine learning (2023-2024)
Easy path to machine learning (2023-2024)
 
Discrete Event Simulation, CASE tool built using C#
Discrete Event Simulation, CASE tool built using C#Discrete Event Simulation, CASE tool built using C#
Discrete Event Simulation, CASE tool built using C#
 

More from Oliver Stadie (8)

UML Stereotypen und Profile
UML Stereotypen und ProfileUML Stereotypen und Profile
UML Stereotypen und Profile
 
UML Composite Structure Diagrams
UML Composite Structure DiagramsUML Composite Structure Diagrams
UML Composite Structure Diagrams
 
Schwarmverhalten - Anwendungen Formationen Emergenz
Schwarmverhalten - Anwendungen Formationen EmergenzSchwarmverhalten - Anwendungen Formationen Emergenz
Schwarmverhalten - Anwendungen Formationen Emergenz
 
Irish Commission and Nedap Hack
Irish Commission and Nedap HackIrish Commission and Nedap Hack
Irish Commission and Nedap Hack
 
Autonomic Computing - Diagnosis - Pinpoint Summary
Autonomic Computing - Diagnosis - Pinpoint SummaryAutonomic Computing - Diagnosis - Pinpoint Summary
Autonomic Computing - Diagnosis - Pinpoint Summary
 
Ästhetik und Software
Ästhetik und SoftwareÄsthetik und Software
Ästhetik und Software
 
Komfortable, systematische Modellierung und Automatisierung von GUI-Tests
Komfortable, systematische Modellierung und Automatisierung von GUI-TestsKomfortable, systematische Modellierung und Automatisierung von GUI-Tests
Komfortable, systematische Modellierung und Automatisierung von GUI-Tests
 
Software Architecture & Design - Our Meetup Group
Software Architecture & Design - Our Meetup GroupSoftware Architecture & Design - Our Meetup Group
Software Architecture & Design - Our Meetup Group
 

Recently uploaded

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
masabamasaba
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
shinachiaurasa2
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
chiefasafspells
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 

Recently uploaded (20)

%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
%+27788225528 love spells in Huntington Beach Psychic Readings, Attraction sp...
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni%in Benoni+277-882-255-28 abortion pills for sale in Benoni
%in Benoni+277-882-255-28 abortion pills for sale in Benoni
 
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Toronto Psychic Readings, Attraction spells,Brin...
 
What Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the SituationWhat Goes Wrong with Language Definitions and How to Improve the Situation
What Goes Wrong with Language Definitions and How to Improve the Situation
 
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital TransformationWSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
WSO2Con2024 - WSO2's IAM Vision: Identity-Led Digital Transformation
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
tonesoftg
tonesoftgtonesoftg
tonesoftg
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
The title is not connected to what is inside
The title is not connected to what is insideThe title is not connected to what is inside
The title is not connected to what is inside
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
WSO2CON 2024 - WSO2's Digital Transformation Journey with Choreo: A Platforml...
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
Love witchcraft +27768521739 Binding love spell in Sandy Springs, GA |psychic...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
%in kaalfontein+277-882-255-28 abortion pills for sale in kaalfontein
 
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
%in Stilfontein+277-882-255-28 abortion pills for sale in Stilfontein
 

Software Architecture and Design - An Overview

Editor's Notes

  1. about “Software Architecture and Design” what it is, what it isn’t giving a basic idea about the terms
  2. Generalist -> passion for AnD, since it’s the intersections of all technologies Currently Finishing my studies in informatics Freelancer
  3. responsibility separation: Request - Response
  4. TCP/IP alias internet protocol suite stack layers and restrict communication channels
  5. Split a system into 3 main components. What the user sees What is done (activities) What is stored
  6. restrict the instances of a class to one by far the most popular pattern on SO often used badly
  7. A.k.a.: (Event-)Listener, Publish/Subscribe, Dependents defines one-to-many dependency
  8. Something like a definition follows...
  9. Waterfall is outdated approach, but makes boundaries and duties clear Based on requirements Independent from Code
  10. Agile Modelling Approach Modelling == Creating Design / Architecture (another word) More complex integration
  11. I used best rated answers from stackoverflow, to present a “common opinion”
  12. Architecture: design of the entire system skeleton highest level of abstraction Design: design individual module / component / class can be directly translated to programming language, unlike architecture. Overall: different diagram types
  13. Differentiation by question type.
  14. Example Questions use these words anyway! “How” could be reformulated to “What Protocol”. Can’t reformulate “What”.
  15. Model can be confused with M in MVC Design can be confused with Graphic Design etc. Architecture can be confused with Building Architecture. Just say “Software Architecture”, “Software Design” or “software Modelling”
  16. What are the use cases and applications of AnD? What are the benefits of AnD?
  17. CASE == Computer aided software engineering fast vs. digital disposable vs. reusable
  18. It can be hard to understand software details
  19. AnD provides an own language only few people speak it
  20. AnD provides mechanisms to plan SW before expensively implementing it. E.g. as everybody knows, it’s hard to build a Dalek without proper planning.
  21. AnD helps understand problems and software simplification & information hiding: focus on interesting aspects. easy trial-and-error: it’s much easier and quicker to slightly change a diagram, than 100 LOCs
  22. AnD can be used to document code and SW. classical code documentation can be bulky ...
  23. … while diagrams can supplement documentation in a cleaner way.
  24. generate working SW or code snippets from model may save a lot of work Requires CASE instead of sketches
  25. generate accurate models from code help understand, communicate and plan again
  26. It’s easy to equip one soldier but thousands need additional coordination. Same is true for Software: 1 Library vs. 100; 100 LOC vs. 1.000.000 Two issues: Clean & Scaling Scaling: minimize additional coordination Clean: ease work (understanding, time, etc.)
  27. What are the subtopics of AnD?
  28. principles: SOLID patterns: GoF frameworks & libraries: often enforce a certain design technologies: have to be considered when designing common sense, exp: most of all intuition. Very important point, since there is no right or wrong. application: the thing you want to build. anti-pattern: examples of how you shouldn’t do it. best practices: examples of how to do it.
  29. legals: are there patents for AnD? Philosophy: How important is AnD? Notations: How to draw our ideas? -> UML Processes & Workflows: remember waterfall and agile Standards: UML, common sense Tools: CASE, MDD, etc. Social: Had good intuition 5 years ago, but nobody listened. Learned buzzwords and anti-patterns. Now bosses are impressed and listen. something I forgot?