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
L23 Summary and Conclusions
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
L23 Summary and Conclusions
L23 Summary and Conclusions
L23 Summary and Conclusions
L23 Summary and Conclusions
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
L23 Summary and Conclusions
L23 Summary and Conclusions
Næst 
 Síðasti tími fyrir próf

More Related Content

PPTX
L14 Summary and Conclusions
PPTX
Network Administrator Project PowerPoint
PDF
Software Architecture: Design Decisions
PPTX
L02 Architecture
PPT
Network Administrator
PPTX
Design of network
PDF
Lab Software Architecture (in spanish)
PDF
KIK - resume2016.07
L14 Summary and Conclusions
Network Administrator Project PowerPoint
Software Architecture: Design Decisions
L02 Architecture
Network Administrator
Design of network
Lab Software Architecture (in spanish)
KIK - resume2016.07

Viewers also liked (12)

PDF
L13 The Power of Software
PPTX
Future of Learning
PPTX
The Learning Revolution
PDF
TV Viewing Habits of Students of New Technology
PPT
Whither Smartphone Development
PDF
L12 The Rise of the Machine
PPTX
Disruptive Technology
PDF
L11 The Broadcast Century
PDF
L13 The Rise of the Machine
PPTX
Digital Transformation in the Post-smartphone Age
PDF
L15 Augmented and Virtual Reality
L13 The Power of Software
Future of Learning
The Learning Revolution
TV Viewing Habits of Students of New Technology
Whither Smartphone Development
L12 The Rise of the Machine
Disruptive Technology
L11 The Broadcast Century
L13 The Rise of the Machine
Digital Transformation in the Post-smartphone Age
L15 Augmented and Virtual Reality
Ad

Similar to L23 Summary and Conclusions (20)

PPTX
L01 Enterprise Application Architecture
PDF
L02 What is Software Architecture?
PPTX
Presentation on topic software design and architecture
PDF
Digitization solutions - A new breed of software
PPT
software design and architecture modularity
PDF
L01 Introduction to Enterprise Software
PPT
Object oriented sad-5 part i
PDF
Software Engineering and Fundamentals note
PPTX
Software Development Demo:GDSC&UISS .pptx
PPTX
L08 architecture considerations
PPTX
Latest trends in information technology
PPTX
Architecture Principles CodeStock
PDF
Clean Architecture With Net For True Epub Dino Esposito
PPTX
.NET Architecture for Enterprises
PPTX
Onion Architecture / Clean Architecture
PPTX
A summary of software architecture guide
PPTX
Shut Up And Eat Your Veg
PPTX
PDF
Software Architecture - All you need to know
PPTX
Introducton of event-driven edited.pptx
L01 Enterprise Application Architecture
L02 What is Software Architecture?
Presentation on topic software design and architecture
Digitization solutions - A new breed of software
software design and architecture modularity
L01 Introduction to Enterprise Software
Object oriented sad-5 part i
Software Engineering and Fundamentals note
Software Development Demo:GDSC&UISS .pptx
L08 architecture considerations
Latest trends in information technology
Architecture Principles CodeStock
Clean Architecture With Net For True Epub Dino Esposito
.NET Architecture for Enterprises
Onion Architecture / Clean Architecture
A summary of software architecture guide
Shut Up And Eat Your Veg
Software Architecture - All you need to know
Introducton of event-driven edited.pptx
Ad

More from Ólafur Andri Ragnarsson (20)

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

Recently uploaded (20)

PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Per capita expenditure prediction using model stacking based on satellite ima...
PPTX
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
PPTX
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
PDF
Unlocking AI with Model Context Protocol (MCP)
PDF
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
PPT
Teaching material agriculture food technology
PPTX
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
PDF
KodekX | Application Modernization Development
PDF
The Rise and Fall of 3GPP – Time for a Sabbatical?
PDF
Electronic commerce courselecture one. Pdf
PDF
MIND Revenue Release Quarter 2 2025 Press Release
PDF
NewMind AI Weekly Chronicles - August'25 Week I
PDF
Encapsulation theory and applications.pdf
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
PDF
Encapsulation_ Review paper, used for researhc scholars
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Empathic Computing: Creating Shared Understanding
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Per capita expenditure prediction using model stacking based on satellite ima...
ACSFv1EN-58255 AWS Academy Cloud Security Foundations.pptx
KOM of Painting work and Equipment Insulation REV00 update 25-dec.pptx
Unlocking AI with Model Context Protocol (MCP)
How UI/UX Design Impacts User Retention in Mobile Apps.pdf
Teaching material agriculture food technology
Effective Security Operations Center (SOC) A Modern, Strategic, and Threat-In...
KodekX | Application Modernization Development
The Rise and Fall of 3GPP – Time for a Sabbatical?
Electronic commerce courselecture one. Pdf
MIND Revenue Release Quarter 2 2025 Press Release
NewMind AI Weekly Chronicles - August'25 Week I
Encapsulation theory and applications.pdf
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Encapsulation_ Review paper, used for researhc scholars
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Building Integrated photovoltaic BIPV_UPV.pdf
Empathic Computing: Creating Shared Understanding
“AI and Expert System Decision Support & Business Intelligence Systems”

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
  • 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
  • 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
  • 43. Næst  Síðasti tími fyrir próf

Editor's Notes