SlideShare a Scribd company logo
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

More Related Content

Viewers also liked

L13 The Power of Software
L13 The Power of SoftwareL13 The Power of Software
L13 The Power of Software
Ólafur Andri Ragnarsson
 
Future of Learning
Future of LearningFuture of Learning
Future of Learning
Ólafur Andri Ragnarsson
 
L19 Local
L19 LocalL19 Local
The Learning Revolution
The Learning RevolutionThe Learning Revolution
The Learning Revolution
Ólafur Andri Ragnarsson
 
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
Ólafur Andri Ragnarsson
 
Whither Smartphone Development
Whither Smartphone DevelopmentWhither Smartphone Development
Whither Smartphone Development
Adam Blum
 
L12 The Rise of the Machine
L12 The Rise of the MachineL12 The Rise of the Machine
L12 The Rise of the Machine
Ólafur Andri Ragnarsson
 
Disruptive Technology
Disruptive TechnologyDisruptive Technology
Disruptive Technology
Ólafur Andri Ragnarsson
 
L11 The Broadcast Century
L11 The Broadcast CenturyL11 The Broadcast Century
L11 The Broadcast Century
Ólafur Andri Ragnarsson
 
L13 The Rise of the Machine
L13 The Rise of the MachineL13 The Rise of the Machine
L13 The Rise of the Machine
Ólafur Andri Ragnarsson
 
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
Ólafur Andri Ragnarsson
 
L15 Augmented and Virtual Reality
L15 Augmented and Virtual RealityL15 Augmented and Virtual Reality
L15 Augmented and Virtual Reality
Ólafur Andri Ragnarsson
 

Viewers also liked (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
 

Similar to 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 PRINCIPLES
Ivano Malavolta
 
L01 Enterprise Application Architecture
L01 Enterprise Application ArchitectureL01 Enterprise Application Architecture
L01 Enterprise Application Architecture
Ólafur Andri Ragnarsson
 
[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.pptx
davorminchorov1
 
Architecting ASP.NET MVC Applications
Architecting ASP.NET MVC ApplicationsArchitecting ASP.NET MVC Applications
Architecting ASP.NET MVC Applications
Gunnar 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 Architectures
Obeo
 
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
Matt McLarty
 
Wicsa2011 cloud tutorial
Wicsa2011 cloud tutorialWicsa2011 cloud tutorial
Wicsa2011 cloud tutorial
Anna Liu
 
Agile architecture upload
Agile architecture uploadAgile architecture upload
Agile architecture upload
The Real Dyl
 
Technology insights: Decision Science Platform
Technology insights: Decision Science PlatformTechnology insights: Decision Science Platform
Technology insights: Decision Science Platform
Decision 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 DevOps
Matthew Skelton
 
Cloud Computing & Cloud Storage
Cloud Computing & Cloud Storage Cloud Computing & Cloud Storage
Cloud Computing & Cloud Storage
Priyesh Pratap Singh
 
Software systems engineering PRINCIPLES
Software systems engineering PRINCIPLESSoftware systems engineering PRINCIPLES
Software systems engineering PRINCIPLES
Ivano Malavolta
 
Distributed Systems in Data Engineering
Distributed Systems in Data EngineeringDistributed Systems in Data Engineering
Distributed Systems in Data Engineering
Oluwasegun Matthew
 
Intro Cloud Computing
Intro Cloud ComputingIntro Cloud Computing
Intro Cloud Computing
DSK Chakravarthy
 
Software Architecture for Agile Development
Software Architecture for Agile DevelopmentSoftware Architecture for Agile Development
Software Architecture for Agile Development
Hayim Makabee
 
Hönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise ApplicationsHönn2014 L01 Enterprise Applications
Hönn2014 L01 Enterprise Applications
Ólafur Andri Ragnarsson
 
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
ghodgkinson
 
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
 

Similar to 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...
 

More from Ólafur Andri Ragnarsson

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
Ólafur Andri Ragnarsson
 
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
Ó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
 
L01 Introduction
L01 IntroductionL01 Introduction
L01 Introduction
Ólafur Andri Ragnarsson
 
L23 Robotics and Drones
L23 Robotics and Drones L23 Robotics and Drones
L23 Robotics and Drones
Ólafur Andri Ragnarsson
 
L22 Augmented and Virtual Reality
L22 Augmented and Virtual RealityL22 Augmented and Virtual Reality
L22 Augmented and Virtual Reality
Ólafur Andri Ragnarsson
 
L20 Personalised World
L20 Personalised WorldL20 Personalised World
L20 Personalised World
Ólafur Andri Ragnarsson
 
L19 Network Platforms
L19 Network PlatformsL19 Network Platforms
L19 Network Platforms
Ólafur Andri Ragnarsson
 
L18 Big Data and Analytics
L18 Big Data and AnalyticsL18 Big Data and Analytics
L18 Big Data and Analytics
Ólafur Andri Ragnarsson
 
L17 Algorithms and AI
L17 Algorithms and AIL17 Algorithms and AI
L17 Algorithms and AI
Ólafur Andri Ragnarsson
 
L16 Internet of Things
L16 Internet of ThingsL16 Internet of Things
L16 Internet of Things
Ólafur Andri Ragnarsson
 
L14 From the Internet to Blockchain
L14 From the Internet to BlockchainL14 From the Internet to Blockchain
L14 From the Internet to Blockchain
Ólafur Andri Ragnarsson
 
L14 The Mobile Revolution
L14 The Mobile RevolutionL14 The Mobile Revolution
L14 The Mobile Revolution
Ó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
 
L12 digital transformation
L12 digital transformationL12 digital transformation
L12 digital transformation
Ólafur Andri Ragnarsson
 
L10 The Innovator's Dilemma
L10 The Innovator's DilemmaL10 The Innovator's Dilemma
L10 The Innovator's Dilemma
Ólafur Andri Ragnarsson
 
L09 Disruptive Technology
L09 Disruptive TechnologyL09 Disruptive Technology
L09 Disruptive Technology
Ólafur Andri Ragnarsson
 
L09 Technological Revolutions
L09 Technological RevolutionsL09 Technological Revolutions
L09 Technological Revolutions
Ólafur Andri Ragnarsson
 
L07 Becoming Invisible
L07 Becoming InvisibleL07 Becoming Invisible
L07 Becoming Invisible
Ólafur Andri Ragnarsson
 
L06 Diffusion of Innovation
L06 Diffusion of InnovationL06 Diffusion of Innovation
L06 Diffusion of Innovation
Ólafur Andri Ragnarsson
 

More from Ó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
 

Recently uploaded

Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
Wask
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
Edge AI and Vision Alliance
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Precisely
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
tolgahangng
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
saastr
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
panagenda
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
AstuteBusiness
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
Chart Kalyan
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
Intelisync
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
Hiike
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
Jakub Marek
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Jeffrey Haguewood
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
Zilliz
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
Alex Pruden
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
Zilliz
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
Jason Packer
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
Dinusha Kumarasiri
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
DanBrown980551
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
Ivanti
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc
 

Recently uploaded (20)

Digital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying AheadDigital Marketing Trends in 2024 | Guide for Staying Ahead
Digital Marketing Trends in 2024 | Guide for Staying Ahead
 
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
“Temporal Event Neural Networks: A More Efficient Alternative to the Transfor...
 
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframeDigital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
Digital Banking in the Cloud: How Citizens Bank Unlocked Their Mainframe
 
Serial Arm Control in Real Time Presentation
Serial Arm Control in Real Time PresentationSerial Arm Control in Real Time Presentation
Serial Arm Control in Real Time Presentation
 
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
Overcoming the PLG Trap: Lessons from Canva's Head of Sales & Head of EMEA Da...
 
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUHCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAU
 
Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |Astute Business Solutions | Oracle Cloud Partner |
Astute Business Solutions | Oracle Cloud Partner |
 
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdfHow to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
How to Interpret Trends in the Kalyan Rajdhani Mix Chart.pdf
 
A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024A Comprehensive Guide to DeFi Development Services in 2024
A Comprehensive Guide to DeFi Development Services in 2024
 
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - HiikeSystem Design Case Study: Building a Scalable E-Commerce Platform - Hiike
System Design Case Study: Building a Scalable E-Commerce Platform - Hiike
 
Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)Main news related to the CCS TSI 2023 (2023/1695)
Main news related to the CCS TSI 2023 (2023/1695)
 
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
Salesforce Integration for Bonterra Impact Management (fka Social Solutions A...
 
Programming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup SlidesProgramming Foundation Models with DSPy - Meetup Slides
Programming Foundation Models with DSPy - Meetup Slides
 
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...
 
Generating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and MilvusGenerating privacy-protected synthetic data using Secludy and Milvus
Generating privacy-protected synthetic data using Secludy and Milvus
 
Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024Columbus Data & Analytics Wednesdays - June 2024
Columbus Data & Analytics Wednesdays - June 2024
 
Azure API Management to expose backend services securely
Azure API Management to expose backend services securelyAzure API Management to expose backend services securely
Azure API Management to expose backend services securely
 
5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides5th LF Energy Power Grid Model Meet-up Slides
5th LF Energy Power Grid Model Meet-up Slides
 
June Patch Tuesday
June Patch TuesdayJune Patch Tuesday
June Patch Tuesday
 
TrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy SurveyTrustArc Webinar - 2024 Global Privacy Survey
TrustArc Webinar - 2024 Global Privacy Survey
 

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

Editor's Notes

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