SlideShare uma empresa Scribd logo
1 de 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.

Mais conteúdo relacionado

Mais procurados

Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
saurabhshertukde
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
Himanshu
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
Siva Ayyakutti
 
Software Risk Management
Software Risk ManagementSoftware Risk Management
Software Risk Management
Gunjan Patel
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
Bala Ganesh
 

Mais procurados (20)

Pressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-modelsPressman ch-3-prescriptive-process-models
Pressman ch-3-prescriptive-process-models
 
Software Engineering Practice
Software Engineering PracticeSoftware Engineering Practice
Software Engineering Practice
 
Software design
Software designSoftware design
Software design
 
Software Architecture vs design
Software Architecture vs design Software Architecture vs design
Software Architecture vs design
 
Software process
Software processSoftware process
Software process
 
Introduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTUREIntroduction to SOFTWARE ARCHITECTURE
Introduction to SOFTWARE ARCHITECTURE
 
Architectural structures and views
Architectural structures and viewsArchitectural structures and views
Architectural structures and views
 
Unit 1( modelling concepts & class modeling)
Unit  1( modelling concepts & class modeling)Unit  1( modelling concepts & class modeling)
Unit 1( modelling concepts & class modeling)
 
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
Models of SDLC (Software Development Life Cycle / Program Development Life Cy...
 
Software Architecture: views and viewpoints
Software Architecture: views and viewpointsSoftware Architecture: views and viewpoints
Software Architecture: views and viewpoints
 
Software architecture
Software architectureSoftware architecture
Software architecture
 
Architecture business cycle
Architecture business cycleArchitecture business cycle
Architecture business cycle
 
Software engineering lecture notes
Software engineering lecture notesSoftware engineering lecture notes
Software engineering lecture notes
 
Sdlc
SdlcSdlc
Sdlc
 
Software Risk Management
Software Risk ManagementSoftware Risk Management
Software Risk Management
 
Software architecture and software design
Software architecture and software designSoftware architecture and software design
Software architecture and software design
 
Software Requirement Specification
Software Requirement SpecificationSoftware Requirement Specification
Software Requirement Specification
 
Software Configuration Management (SCM)
Software Configuration Management (SCM)Software Configuration Management (SCM)
Software Configuration Management (SCM)
 
Software engineering Questions and Answers
Software engineering Questions and AnswersSoftware engineering Questions and Answers
Software engineering Questions and Answers
 
software characteristics
software characteristicssoftware characteristics
software characteristics
 

Semelhante a 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
 

Semelhante a 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#
 

Mais de 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
 

Último

introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
VishalKumarJha10
 

Último (20)

Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
%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
 
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
Crypto Cloud Review - How To Earn Up To $500 Per DAY Of Bitcoin 100% On AutoP...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdfintroduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
introduction-to-automotive Andoid os-csimmonds-ndctechtown-2021.pdf
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students8257 interfacing 2 in microprocessor for btech students
8257 interfacing 2 in microprocessor for btech students
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
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
 
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
OpenChain - The Ramifications of ISO/IEC 5230 and ISO/IEC 18974 for Legal Pro...
 
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time ApplicationsUnveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
Unveiling the Tech Salsa of LAMs with Janus in Real-Time Applications
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdfAzure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
Azure_Native_Qumulo_High_Performance_Compute_Benchmarks.pdf
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verifiedSector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
Sector 18, Noida Call girls :8448380779 Model Escorts | 100% verified
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
Direct Style Effect Systems -The Print[A] Example- A Comprehension AidDirect Style Effect Systems -The Print[A] Example- A Comprehension Aid
Direct Style Effect Systems - The Print[A] Example - A Comprehension Aid
 
%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

Notas do Editor

  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?