l23 summary and conclusions

43
Lecture 23 Summary and Conclusions

Upload: olafur-andri-ragnarsson

Post on 18-Jun-2015

239 views

Category:

Technology


4 download

DESCRIPTION

Samantekt

TRANSCRIPT

Page 1: L23 Summary and Conclusions

Lecture 23Summary and Conclusions

Page 2: L23 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

Page 3: L23 Summary and Conclusions

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

Building Enterprise Applications Building computer systems is hard

DesignPattern

Middleware

FrameworksOOProgramming

SoftwareArchitecture

Page 5: L23 Summary and Conclusions

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

“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

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

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

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

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

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

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

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

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

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

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

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

Practical Considerations Risk is in feature creep and things out of

control

Page 19: L23 Summary and Conclusions

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

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
Page 22: L23 Summary and Conclusions

Tech Radar

Page 23: L23 Summary and Conclusions

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

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
Page 26: L23 Summary and Conclusions
Page 27: L23 Summary and Conclusions
Page 28: L23 Summary and Conclusions
Page 29: L23 Summary and Conclusions

Future of Enterprise Software

Page 30: L23 Summary and Conclusions

2000 2010

THE DIGITAL DECADE

MUSIC

PICTURES

VOICESMARTPHONES

TV SHOWS

MOVIES

BOOKS

Page 31: L23 Summary and Conclusions

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

Wearable Era

Page 33: L23 Summary and Conclusions

Internet of Things

Page 34: L23 Summary and Conclusions

WorkMore

information

Focused

Digital Online World

BrowsingConsuming

content

CheckingMobileNow

Consuming

VideoInformatio

n

Real-time

Page 35: L23 Summary and Conclusions

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

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

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

Hönnun og smíði hugbúnaðar 2014

Page 39: L23 Summary and Conclusions

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

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
Page 42: L23 Summary and Conclusions
Page 43: L23 Summary and Conclusions

Næst Síðasti tími fyrir próf