l23 summary and conclusions
DESCRIPTION
SamantektTRANSCRIPT
![Page 1: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/1.jpg)
Lecture 23Summary and Conclusions
![Page 2: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/2.jpg)
“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
![Page 3: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/3.jpg)
Building Enterprise Applications Building computer systems is hard
– As the complexity of thesystem gets greater, thetask of building thesoftware gets exponentially harder
![Page 4: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/4.jpg)
Building Enterprise Applications Building computer systems is hard
DesignPattern
Middleware
FrameworksOOProgramming
SoftwareArchitecture
![Page 5: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/5.jpg)
Building Enterprise Applications Building computer systems is hard
But now when we know how to, it’s not that hard anymore
![Page 6: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/6.jpg)
“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
![Page 7: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/7.jpg)
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
![Page 8: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/8.jpg)
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
![Page 9: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/9.jpg)
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
![Page 10: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/10.jpg)
Separation of ConcernsOne 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
![Page 11: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/11.jpg)
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
![Page 12: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/12.jpg)
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 upperlayers
![Page 13: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/13.jpg)
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
![Page 14: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/14.jpg)
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
![Page 15: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/15.jpg)
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
![Page 16: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/16.jpg)
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
![Page 17: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/17.jpg)
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
![Page 18: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/18.jpg)
Practical Considerations Risk is in feature creep and things out of
control
![Page 19: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/19.jpg)
Practical Considerations Solutions are designed and implemented
according to time schedule and budget– Hardest part is management of people
![Page 20: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/20.jpg)
Practical Considerations Agile is an attempt to answer this
Backlog
Backlog ordered by Product Owner
Sprintstories
1-2 week sprints
Daily Standup
WorkingProduct
WorkingProductReleased
![Page 21: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/21.jpg)
![Page 22: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/22.jpg)
Tech Radar
![Page 23: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/23.jpg)
Tech Radar
ADOPTStart using when appropriate
TRIALLearn and try out to understand
ASSESSEvaluate how this will impact the company
HOLDProceed withcausion
![Page 24: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/24.jpg)
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
![Page 25: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/25.jpg)
![Page 26: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/26.jpg)
![Page 27: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/27.jpg)
![Page 28: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/28.jpg)
![Page 29: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/29.jpg)
Future of Enterprise Software
![Page 30: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/30.jpg)
2000 2010
THE DIGITAL DECADE
MUSIC
PICTURES
VOICESMARTPHONES
TV SHOWS
MOVIES
BOOKS
![Page 31: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/31.jpg)
1960 1970 1980 1990 2000 2010
Mainframes
Mini computers
Personal Computers
Servers
Clusters
Cloud – utility computing
Laptops
Music player2G Cell phones
CONVERGE
DIVERGESmartphones
Tablets
Smart TV
Internet of things
Wearable
SaaS - APIs
![Page 32: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/32.jpg)
Wearable Era
![Page 33: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/33.jpg)
Internet of Things
![Page 34: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/34.jpg)
WorkMore
information
Focused
Digital Online World
BrowsingConsuming
content
CheckingMobileNow
Consuming
VideoInformatio
n
Real-time
![Page 35: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/35.jpg)
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-2008Digibarn Computer Museum,
Source: Picture from Convergence Transforms Digital Home: Techno-Economic Impact
![Page 36: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/36.jpg)
Challenges in Computing
Software and integration of components and devices are the challenges ahead
Cloud computing and ubiquity Move to Service Oriented Architecture and
APIs
1980 1990 2000
HardwareConnecting hardware
NetworkSoftware
Connectingsoftware
![Page 37: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/37.jpg)
Challenges in Computing
Multiple devices – anything can connect Ability to predict – know the users Data Analytics aka Big Data Real-time streams
2000 2010 2020
SoftwareConnectingsoftware
MobilityWearablesAPIs, SaaS, real-time
![Page 38: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/38.jpg)
Hönnun og smíði hugbúnaðar 2014
![Page 39: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/39.jpg)
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
![Page 40: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/40.jpg)
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
![Page 41: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/41.jpg)
![Page 42: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/42.jpg)
![Page 43: L23 Summary and Conclusions](https://reader030.vdocument.in/reader030/viewer/2022013011/5582eb45d8b42a38168b467a/html5/thumbnails/43.jpg)
Næst Síðasti tími fyrir próf