SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Lecture 23 
Summary and Conclusions
“Advice is a dangerous gift” 
There are no right answers 
Use the advice to prod your thinking, 
but don’t use it as a replacement for 
your thinking 
And remember, architecture is not 
cast in stone
Building Enterprise Applications 
 Building computer systems is hard 
– As the complexity of the 
system gets greater, the 
task of building the 
software gets 
exponentially harder
Building Enterprise Applications 
 Building computer systems is hard 
Design 
Pattern 
Software 
Architecture 
Middleware 
Frameworks 
OO 
Programming
Building Enterprise Applications 
 Building computer systems is hard 
 But now when we know how to, it’s not that hard 
anymore
“A complex system that works is invariably 
found to have evolved from a simple system that 
worked. The inverse proposition also appears 
to be true: a complex system designed from 
scratch never works and cannot be made to 
work. You have to start over, beginning with a 
simple system.” 
— John Gall, systems theorist
Goals of an Enterprise Architecture 
 Be robust 
 Be performing and scalable 
 Take advantage of OO design principles 
 Avoid unnecessary complexity 
 Be maintainable and extensible 
 Be easy to test
Enterprise Systems 
 Building large multi-tier systems is done one line 
at a time 
– Layering 
– Clear interfaces 
– Minimize dependencies 
– Separation of concerns 
– Object Oriented programming 
– Design patterns 
– Frameworks 
– Testable code
Create Abstractions 
 Minimize dependence on subsystems 
– Must be easy to change 
• Gateway, Mapper, Service Stub 
 Abstract things that varies from what stays the 
same 
– Design principles 
• Factory, Plugin, Dependency Injections
Separation of Concerns 
One of the main challenge of frameworks is to 
provide separation of concerns 
Frameworks deal with generic functionality 
Frameworks need patterns to combine generic and 
domain specific functionality
Minimize dependencies 
 Be careful with dependencies 
– It is easy to create code where modules depend on 
other modules 
• Plugin, Factory, Service Layer, Separated Interface, 
Dependency Injection and Observer Pattern
Layering 
 Software systems can get complicated 
– Abstractions are needed 
 Provides abstraction by separating computer 
systems in layers 
– Higher layers use services from 
lower layers 
– Each layer has dedicated task 
and hides complexity from upper 
layers
The Three Layers 
 Presentation 
– User’s interface to the system 
– User can be another system 
– Accepts input, displays views 
 Domain 
– The Application of the system 
– The “Business logic” 
– Has the tendency to creep into other layers 
 Data Source 
– Connection to the database
Three Layers 
 Presentation Layer for the User Interface 
 Domain Layer for the domain logic 
 Persistence Layer for the data access 
Remember the “role” – concern, in each layer
Considerations 
 Don’t overdesign! 
– User Interfaces are really difficult to make generic and 
reusable 
– If there is no need for extra layer, don’t have it 
– If you don’t need an interface, don’t have it 
 Don’t let frameworks rule you! 
– If you have to write code just to satisfy a framework, 
maybe there is another way – or fix the framework 
– Frameworks can overdo it
Considerations 
 Don’t overdo Configurations 
– Sometimes coding is better than config 
– Testing and debugging config is hard 
 Don’t be afraid to Refactor 
– You can always add another indirection 
– You can always add a new layer 
 Design Principles are good guidelines 
– Don’t be afraid to reevaluate them
Considerations 
 Embrace new tools and techniques 
– These exist to help you 
– But be careful, don’t jump at everything – there is a 
cost 
 Use Tech Rader to evaluate 
– Example: ThoughtWorks Radar 
http://www.thoughtworks.com/radar
Practical Considerations 
 Risk is in feature creep and things out of control
Practical Considerations 
 Solutions are designed and implemented 
according to time schedule and budget 
– Hardest part is management of people
Practical Considerations 
 Agile is an attempt to answer this 
Backlog 
Backlog 
ordered by 
Product Owner 
Sprint 
stories 
Daily 
Standup 
1-2 week 
sprints 
Working 
Product 
Working 
Product 
Released
Tech Radar
Tech Radar 
ADOPT 
Start using 
when 
appropriate 
TRIAL 
Learn and 
try out to 
understand 
ASSESS 
Evaluate 
how this 
will impact 
the 
company 
HOLD 
Proceed 
with 
causion
Trends 2014 
 Churn in the JavaScript World 
– Rise of JavaScript libraries 
 Microservices and the Rise of the API 
– Importance of the APIs both within an organization 
and as a bridge to the outside world 
 Conway's Law 
– Ignoring this law is dangerous 
 Re-decentralization 
– Data and infrastructure
Future of Enterprise Software
THE DIGITAL DECADE 
MUSIC 
PICTURE 
S 
TV SHOWS 
MOVIES 
2000 2010 
VOICE 
SMARTPHONES 
BOOKS
Mainframes 
Mini computers 
DIVERGE 
Personal Computers 
Servers 
Laptops 
2G Cell phones 
Clusters 
Smartphones 
Tablets 
Smart TV 
Wearable 
Cloud – utility computing 
Music player 
CONVERGE 
1960 1970 1980 1990 2000 2010 
Internet of things 
SaaS - APIs
Wearable Era
Internet of Things
Digital Online World 
Work 
More 
information 
Focused 
Browsing 
Consuming 
content 
Checking 
Mobile 
Now 
Consuming 
Video 
Information 
Real-time
The Post-PC Era 
 The Personal Computer era is over 
– Rise of the network 
– APIs 
– Enterprise systems are accessible 
by consumers 
– New devices, mobile phone, 
ITV, game machines, MP3 players,... 
Source: (cc) 1998-2008 
Digibarn Computer Museum, 
Source: Picture from Convergence Transforms Digital Home: Techno-Economic 
Impact
Challenges in Computing 
Hardware 
Connecting hardware 
Network 
Software 
1980 1990 2000 
Connecting 
software 
 Software and integration of components and 
devices are the challenges ahead 
 Cloud computing and ubiquity 
 Move to Service Oriented Architecture and APIs
Challenges in Computing 
Software 
Connecting 
software 
Mobility 
Wearables 
APIs, SaaS, real-time 
2000 2010 2020 
 Multiple devices – anything can connect 
 Ability to predict – know the users 
 Data Analytics aka Big Data 
 Real-time streams
Hönnun og smíði hugbúnaðar 
2014
Objectives 
 Know the basics of software design and 
beautiful code 
 Understand and know how to use design 
patterns 
 Implement software framework with component 
reuse in mind
Objectives continued 
 Understand different software architectures and 
the different design choices 
 Understand Software Oriented Architecture 
(SOA) and Software as a Service (SaaS) 
 Understand the practices of how professional 
software is developed in the software industry
Næst 
 Síðasti tími fyrir próf

Weitere ähnliche Inhalte

Andere mochten auch (12)

L13 The Power of Software
L13 The Power of SoftwareL13 The Power of Software
L13 The Power of Software
 
Future of Learning
Future of LearningFuture of Learning
Future of Learning
 
L19 Local
L19 LocalL19 Local
L19 Local
 
The Learning Revolution
The Learning RevolutionThe Learning Revolution
The Learning Revolution
 
TV Viewing Habits of Students of New Technology
TV Viewing Habits of Students of New TechnologyTV Viewing Habits of Students of New Technology
TV Viewing Habits of Students of New Technology
 
Whither Smartphone Development
Whither Smartphone DevelopmentWhither Smartphone Development
Whither Smartphone Development
 
L12 The Rise of the Machine
L12 The Rise of the MachineL12 The Rise of the Machine
L12 The Rise of the Machine
 
Disruptive Technology
Disruptive TechnologyDisruptive Technology
Disruptive Technology
 
L11 The Broadcast Century
L11 The Broadcast CenturyL11 The Broadcast Century
L11 The Broadcast Century
 
L13 The Rise of the Machine
L13 The Rise of the MachineL13 The Rise of the Machine
L13 The Rise of the Machine
 
Digital Transformation in the Post-smartphone Age
Digital Transformation in the Post-smartphone AgeDigital Transformation in the Post-smartphone Age
Digital Transformation in the Post-smartphone Age
 
L15 Augmented and Virtual Reality
L15 Augmented and Virtual RealityL15 Augmented and Virtual Reality
L15 Augmented and Virtual Reality
 

Ähnlich wie L23 Summary and Conclusions

[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLESIvano Malavolta
 
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...DataScienceConferenc1
 
Building Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxBuilding Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxdavorminchorov1
 
Architecting ASP.NET MVC Applications
Architecting ASP.NET MVC ApplicationsArchitecting ASP.NET MVC Applications
Architecting ASP.NET MVC ApplicationsGunnar Peipman
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesObeo
 
META for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMETA for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMatt McLarty
 
Wicsa2011 cloud tutorial
Wicsa2011 cloud tutorialWicsa2011 cloud tutorial
Wicsa2011 cloud tutorialAnna Liu
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture uploadThe Real Dyl
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science PlatformDecision Science Community
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...ghodgkinson
 
Winning People to DevOps
Winning People to DevOpsWinning People to DevOps
Winning People to DevOpsMatthew Skelton
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLESIvano Malavolta
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile DevelopmentHayim Makabee
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Toolsghodgkinson
 
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...mfrancis
 

Ähnlich wie L23 Summary and Conclusions (20)

[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES[2015/2016] Software systems engineering PRINCIPLES
[2015/2016] Software systems engineering PRINCIPLES
 
L01 Enterprise Application Architecture
L01 Enterprise Application ArchitectureL01 Enterprise Application Architecture
L01 Enterprise Application Architecture
 
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
[DSC Europe 23] Igor Ilic - Redefining User Experience with Large Language Mo...
 
Building Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptxBuilding Maintainable PHP Applications.pptx
Building Maintainable PHP Applications.pptx
 
Architecting ASP.NET MVC Applications
Architecting ASP.NET MVC ApplicationsArchitecting ASP.NET MVC Applications
Architecting ASP.NET MVC Applications
 
From Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems ArchitecturesFrom Model-based to Model and Simulation-based Systems Architectures
From Model-based to Model and Simulation-based Systems Architectures
 
META for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motionMETA for Microservices: Getting your enterprise migration in motion
META for Microservices: Getting your enterprise migration in motion
 
Wicsa2011 cloud tutorial
Wicsa2011 cloud tutorialWicsa2011 cloud tutorial
Wicsa2011 cloud tutorial
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
 
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...Software Factories in the Real World: How an IBM WebSphere Integration Factor...
Software Factories in the Real World: How an IBM WebSphere Integration Factor...
 
Winning People to DevOps
Winning People to DevOpsWinning People to DevOps
Winning People to DevOps
 
Cloud Computing & Cloud Storage
Cloud Computing & Cloud Storage Cloud Computing & Cloud Storage
Cloud Computing & Cloud Storage
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
 
Distributed Systems in Data Engineering
Distributed Systems in Data EngineeringDistributed Systems in Data Engineering
Distributed Systems in Data Engineering
 
Intro Cloud Computing
Intro Cloud ComputingIntro Cloud Computing
Intro Cloud Computing
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
 
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise ApplicationsHönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
 
A Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere ToolsA Software Factory Integrating Rational & WebSphere Tools
A Software Factory Integrating Rational & WebSphere Tools
 
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...Journey from Monolith to a Modularized Application - Approach and Key Learnin...
Journey from Monolith to a Modularized Application - Approach and Key Learnin...
 

Mehr von Ólafur Andri Ragnarsson

New Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course IntroductionNew Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course IntroductionÓlafur Andri Ragnarsson
 
New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine Ólafur Andri Ragnarsson
 

Mehr von Ólafur Andri Ragnarsson (20)

Nýsköpun - Leiðin til framfara
Nýsköpun - Leiðin til framfaraNýsköpun - Leiðin til framfara
Nýsköpun - Leiðin til framfara
 
Nýjast tækni og framtíðin
Nýjast tækni og framtíðinNýjast tækni og framtíðin
Nýjast tækni og framtíðin
 
New Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course IntroductionNew Technology Summer 2020 Course Introduction
New Technology Summer 2020 Course Introduction
 
L01 Introduction
L01 IntroductionL01 Introduction
L01 Introduction
 
L23 Robotics and Drones
L23 Robotics and Drones L23 Robotics and Drones
L23 Robotics and Drones
 
L22 Augmented and Virtual Reality
L22 Augmented and Virtual RealityL22 Augmented and Virtual Reality
L22 Augmented and Virtual Reality
 
L20 Personalised World
L20 Personalised WorldL20 Personalised World
L20 Personalised World
 
L19 Network Platforms
L19 Network PlatformsL19 Network Platforms
L19 Network Platforms
 
L18 Big Data and Analytics
L18 Big Data and AnalyticsL18 Big Data and Analytics
L18 Big Data and Analytics
 
L17 Algorithms and AI
L17 Algorithms and AIL17 Algorithms and AI
L17 Algorithms and AI
 
L16 Internet of Things
L16 Internet of ThingsL16 Internet of Things
L16 Internet of Things
 
L14 From the Internet to Blockchain
L14 From the Internet to BlockchainL14 From the Internet to Blockchain
L14 From the Internet to Blockchain
 
L14 The Mobile Revolution
L14 The Mobile RevolutionL14 The Mobile Revolution
L14 The Mobile Revolution
 
New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine New Technology 2019 L13 Rise of the Machine
New Technology 2019 L13 Rise of the Machine
 
L12 digital transformation
L12 digital transformationL12 digital transformation
L12 digital transformation
 
L10 The Innovator's Dilemma
L10 The Innovator's DilemmaL10 The Innovator's Dilemma
L10 The Innovator's Dilemma
 
L09 Disruptive Technology
L09 Disruptive TechnologyL09 Disruptive Technology
L09 Disruptive Technology
 
L09 Technological Revolutions
L09 Technological RevolutionsL09 Technological Revolutions
L09 Technological Revolutions
 
L07 Becoming Invisible
L07 Becoming InvisibleL07 Becoming Invisible
L07 Becoming Invisible
 
L06 Diffusion of Innovation
L06 Diffusion of InnovationL06 Diffusion of Innovation
L06 Diffusion of Innovation
 

Kürzlich hochgeladen

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure servicePooja Nehwal
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking MenDelhi Call girls
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxOnBoard
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking MenDelhi Call girls
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024The Digital Insurer
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...gurkirankumar98700
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsEnterprise Knowledge
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 

Kürzlich hochgeladen (20)

WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure serviceWhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
WhatsApp 9892124323 ✓Call Girls In Kalyan ( Mumbai ) secure service
 
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
Neo4j - How KGs are shaping the future of Generative AI at AWS Summit London ...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men08448380779 Call Girls In Civil Lines Women Seeking Men
08448380779 Call Girls In Civil Lines Women Seeking Men
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
Maximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptxMaximizing Board Effectiveness 2024 Webinar.pptx
Maximizing Board Effectiveness 2024 Webinar.pptx
 
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
08448380779 Call Girls In Diplomatic Enclave Women Seeking Men
 
Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024Finology Group – Insurtech Innovation Award 2024
Finology Group – Insurtech Innovation Award 2024
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
Kalyanpur ) Call Girls in Lucknow Finest Escorts Service 🍸 8923113531 🎰 Avail...
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
IAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI SolutionsIAC 2024 - IA Fast Track to Search Focused AI Solutions
IAC 2024 - IA Fast Track to Search Focused AI Solutions
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 

L23 Summary and Conclusions

  • 1. Lecture 23 Summary and Conclusions
  • 2. “Advice is a dangerous gift” There are no right answers Use the advice to prod your thinking, but don’t use it as a replacement for your thinking And remember, architecture is not cast in stone
  • 3. Building Enterprise Applications  Building computer systems is hard – As the complexity of the system gets greater, the task of building the software gets exponentially harder
  • 4. Building Enterprise Applications  Building computer systems is hard Design Pattern Software Architecture Middleware Frameworks OO Programming
  • 5. Building Enterprise Applications  Building computer systems is hard  But now when we know how to, it’s not that hard anymore
  • 6. “A complex system that works is invariably found to have evolved from a simple system that worked. The inverse proposition also appears to be true: a complex system designed from scratch never works and cannot be made to work. You have to start over, beginning with a simple system.” — John Gall, systems theorist
  • 7. Goals of an Enterprise Architecture  Be robust  Be performing and scalable  Take advantage of OO design principles  Avoid unnecessary complexity  Be maintainable and extensible  Be easy to test
  • 8. Enterprise Systems  Building large multi-tier systems is done one line at a time – Layering – Clear interfaces – Minimize dependencies – Separation of concerns – Object Oriented programming – Design patterns – Frameworks – Testable code
  • 9. Create Abstractions  Minimize dependence on subsystems – Must be easy to change • Gateway, Mapper, Service Stub  Abstract things that varies from what stays the same – Design principles • Factory, Plugin, Dependency Injections
  • 10. Separation of Concerns One of the main challenge of frameworks is to provide separation of concerns Frameworks deal with generic functionality Frameworks need patterns to combine generic and domain specific functionality
  • 11. Minimize dependencies  Be careful with dependencies – It is easy to create code where modules depend on other modules • Plugin, Factory, Service Layer, Separated Interface, Dependency Injection and Observer Pattern
  • 12. Layering  Software systems can get complicated – Abstractions are needed  Provides abstraction by separating computer systems in layers – Higher layers use services from lower layers – Each layer has dedicated task and hides complexity from upper layers
  • 13. The Three Layers  Presentation – User’s interface to the system – User can be another system – Accepts input, displays views  Domain – The Application of the system – The “Business logic” – Has the tendency to creep into other layers  Data Source – Connection to the database
  • 14. Three Layers  Presentation Layer for the User Interface  Domain Layer for the domain logic  Persistence Layer for the data access Remember the “role” – concern, in each layer
  • 15. Considerations  Don’t overdesign! – User Interfaces are really difficult to make generic and reusable – If there is no need for extra layer, don’t have it – If you don’t need an interface, don’t have it  Don’t let frameworks rule you! – If you have to write code just to satisfy a framework, maybe there is another way – or fix the framework – Frameworks can overdo it
  • 16. Considerations  Don’t overdo Configurations – Sometimes coding is better than config – Testing and debugging config is hard  Don’t be afraid to Refactor – You can always add another indirection – You can always add a new layer  Design Principles are good guidelines – Don’t be afraid to reevaluate them
  • 17. Considerations  Embrace new tools and techniques – These exist to help you – But be careful, don’t jump at everything – there is a cost  Use Tech Rader to evaluate – Example: ThoughtWorks Radar http://www.thoughtworks.com/radar
  • 18. Practical Considerations  Risk is in feature creep and things out of control
  • 19. Practical Considerations  Solutions are designed and implemented according to time schedule and budget – Hardest part is management of people
  • 20. Practical Considerations  Agile is an attempt to answer this Backlog Backlog ordered by Product Owner Sprint stories Daily Standup 1-2 week sprints Working Product Working Product Released
  • 21.
  • 23. Tech Radar ADOPT Start using when appropriate TRIAL Learn and try out to understand ASSESS Evaluate how this will impact the company HOLD Proceed with causion
  • 24. Trends 2014  Churn in the JavaScript World – Rise of JavaScript libraries  Microservices and the Rise of the API – Importance of the APIs both within an organization and as a bridge to the outside world  Conway's Law – Ignoring this law is dangerous  Re-decentralization – Data and infrastructure
  • 25.
  • 26.
  • 27.
  • 28.
  • 30. THE DIGITAL DECADE MUSIC PICTURE S TV SHOWS MOVIES 2000 2010 VOICE SMARTPHONES BOOKS
  • 31. Mainframes Mini computers DIVERGE Personal Computers Servers Laptops 2G Cell phones Clusters Smartphones Tablets Smart TV Wearable Cloud – utility computing Music player CONVERGE 1960 1970 1980 1990 2000 2010 Internet of things SaaS - APIs
  • 34. Digital Online World Work More information Focused Browsing Consuming content Checking Mobile Now Consuming Video Information Real-time
  • 35. The Post-PC Era  The Personal Computer era is over – Rise of the network – APIs – Enterprise systems are accessible by consumers – New devices, mobile phone, ITV, game machines, MP3 players,... Source: (cc) 1998-2008 Digibarn Computer Museum, Source: Picture from Convergence Transforms Digital Home: Techno-Economic Impact
  • 36. Challenges in Computing Hardware Connecting hardware Network Software 1980 1990 2000 Connecting software  Software and integration of components and devices are the challenges ahead  Cloud computing and ubiquity  Move to Service Oriented Architecture and APIs
  • 37. Challenges in Computing Software Connecting software Mobility Wearables APIs, SaaS, real-time 2000 2010 2020  Multiple devices – anything can connect  Ability to predict – know the users  Data Analytics aka Big Data  Real-time streams
  • 38. Hönnun og smíði hugbúnaðar 2014
  • 39. Objectives  Know the basics of software design and beautiful code  Understand and know how to use design patterns  Implement software framework with component reuse in mind
  • 40. Objectives continued  Understand different software architectures and the different design choices  Understand Software Oriented Architecture (SOA) and Software as a Service (SaaS)  Understand the practices of how professional software is developed in the software industry
  • 41.
  • 42.
  • 43. Næst  Síðasti tími fyrir próf

Hinweis der Redaktion

  1. 4
  2. 5
  3. 7
  4. 35
  5. 36
  6. 37