intro to
software
@mljungblad
             blog: ljungblad.nu
       code: github.com/archie
mail: marcus.ljungblad@mah.se
what’s an
It’s all about quality,
but you can’t have it all!
Why architect?
Yet!




who’s an
Car requirements



               Drive forwards and backwards

               Use gasoline to power the engine

               Steer the vehicle using a wheel

               Control speed using a foot pedal
define a few
car qualities
”For any different system, there are a
number of available architectures, and the
qualities that you want should
rule which architectural
choices you make.”
cost and time
f(
 feature x using design y
     with downside z        )
What views?

         views
styles
and patterns
A complete mess
Client

Client

         Server




                  Client
$ node mapi.js -p 8000 > /tmp/mapi.log 2>&1 &
Presentation



Business logic



 Data model
C

A

        B




    D       D
C/S

C/S

            C/S




      C/S         C/S
A bible!
what is
”The interesting thing about Cloud
Computing is that we’ve redefined Cloud
Computing to include everything that we
 already do. . . . I don’t understand what
      we would do differently in the light
                of Cloud Computing other
                  than change the wording
                       of some of our ads.”
”Cloud Computing refers to both the
applications delivered as services over the
Internet and the hardware and systems
software in the datacenters that provide
those services.”
Cloud computing




              Illusion of infinite HW resources

              Elimination of upfront commitment

              Pay-as-you-go on short term basis
cloud
arch itecture
what’s an
It’s all about quality,
but you can’t have it all!
Resources
GoF Patterns - http://en.wikipedia.org/wiki/Design_Patterns#Patterns_by_Type  
Scalable Web Architecture and DS - http://www.aosabook.org/en/distsys.html
Code Monkey - http://www.youtube.com/watch?v=5W_wd9Qf0IE
Netflix Techblog - http://techblog.netflix.com/
Above the Clouds - http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf

SW Architecture Talks
George Fairbanks’s Introduction to SW architecture - http://www.youtube.com/watch?v=x30DcBfCJRI

Cases
Heroku architecture - http://www.quora.com/Scalability/How-does-Heroku-work, http://www.heroku.com/how
Dropbox scaling - http://www.quora.com/Dropbox/What-is-Dropboxs-architecture
Highscalability Blog - http://highscalability.com/
Google’s MapReduce - http://research.google.com/archive/mapreduce.html

Creative Commons
http://www.flickr.com/photos/swisscan/633644067/sizes/l/in/photostream/
http://www.flickr.com/photos/banovsky/2721248454/sizes/l/in/photostream/
http://www.flickr.com/photos/-lif-/3213233094/sizes/l/in/photostream/
http://www.flickr.com/photos/shakeskc/7967355494/
http://www.flickr.com/photos/skasuga/139744722/sizes/l/in/photostream/
http://www.flickr.com/photos/stickkim/6013651966/sizes/l/in/photostream/
http://www.flickr.com/photos/jensst/5762063659/sizes/l/in/photostream/
http://www.flickr.com/photos/elizabethbw/8373942339/sizes/m/in/photostream/
http://www.flickr.com/photos/esther-/2516424698/sizes/o/in/photostream/

Introduction to software architecture

  • 1.
  • 2.
    @mljungblad blog: ljungblad.nu code: github.com/archie mail: marcus.ljungblad@mah.se
  • 3.
  • 4.
    It’s all aboutquality, but you can’t have it all!
  • 5.
  • 7.
  • 8.
    Car requirements Drive forwards and backwards Use gasoline to power the engine Steer the vehicle using a wheel Control speed using a foot pedal
  • 10.
  • 11.
    ”For any differentsystem, there are a number of available architectures, and the qualities that you want should rule which architectural choices you make.”
  • 12.
  • 13.
    f( feature xusing design y with downside z )
  • 14.
  • 15.
  • 16.
  • 17.
    Client Client Server Client
  • 18.
    $ node mapi.js-p 8000 > /tmp/mapi.log 2>&1 &
  • 19.
  • 20.
    C A B D D
  • 21.
    C/S C/S C/S C/S C/S
  • 22.
  • 23.
  • 24.
    ”The interesting thingabout Cloud Computing is that we’ve redefined Cloud Computing to include everything that we already do. . . . I don’t understand what we would do differently in the light of Cloud Computing other than change the wording of some of our ads.”
  • 25.
    ”Cloud Computing refersto both the applications delivered as services over the Internet and the hardware and systems software in the datacenters that provide those services.”
  • 26.
    Cloud computing Illusion of infinite HW resources Elimination of upfront commitment Pay-as-you-go on short term basis
  • 30.
  • 31.
  • 32.
    It’s all aboutquality, but you can’t have it all!
  • 34.
    Resources GoF Patterns -http://en.wikipedia.org/wiki/Design_Patterns#Patterns_by_Type   Scalable Web Architecture and DS - http://www.aosabook.org/en/distsys.html Code Monkey - http://www.youtube.com/watch?v=5W_wd9Qf0IE Netflix Techblog - http://techblog.netflix.com/ Above the Clouds - http://www.eecs.berkeley.edu/Pubs/TechRpts/2009/EECS-2009-28.pdf SW Architecture Talks George Fairbanks’s Introduction to SW architecture - http://www.youtube.com/watch?v=x30DcBfCJRI Cases Heroku architecture - http://www.quora.com/Scalability/How-does-Heroku-work, http://www.heroku.com/how Dropbox scaling - http://www.quora.com/Dropbox/What-is-Dropboxs-architecture Highscalability Blog - http://highscalability.com/ Google’s MapReduce - http://research.google.com/archive/mapreduce.html Creative Commons http://www.flickr.com/photos/swisscan/633644067/sizes/l/in/photostream/ http://www.flickr.com/photos/banovsky/2721248454/sizes/l/in/photostream/ http://www.flickr.com/photos/-lif-/3213233094/sizes/l/in/photostream/ http://www.flickr.com/photos/shakeskc/7967355494/ http://www.flickr.com/photos/skasuga/139744722/sizes/l/in/photostream/ http://www.flickr.com/photos/stickkim/6013651966/sizes/l/in/photostream/ http://www.flickr.com/photos/jensst/5762063659/sizes/l/in/photostream/ http://www.flickr.com/photos/elizabethbw/8373942339/sizes/m/in/photostream/ http://www.flickr.com/photos/esther-/2516424698/sizes/o/in/photostream/