29
AU CS Henrik Bærbak Christensen 1 dSoftArk E2015 Software Architecture Programming in the Large

AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Embed Size (px)

DESCRIPTION

School or Study? I assume you can read a web page... –For pretty correct and almost up to date information... Meanwhile... What is dSoftArk really about? AU CSHenrik Bærbak Christensen3

Citation preview

Page 1: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

AU CS Henrik Bærbak Christensen 1

dSoftArk E2015

Software ArchitectureProgramming in the Large

Page 2: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

AU CS Henrik Bærbak Christensen 2

The lecturer

  Henrik Bærbak Christensen  Associate professor (lektor) since 2003

– Collaboration with many Danish IT companies• Systematic, Jyske Bank, Terma, B&O, KMD, Danfoss, …

– Actually have complex software in production   Faglig koordinator for Master og Diplom (SWK)  Owner of

• Course development and consultancy

• http://www.imhotep.dk

Page 3: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

School or Study?

  I assume you can read a web page...– For pretty correct and almost up to date information...

  Meanwhile...

  What is dSoftArk reallyabout?

AU CS Henrik Bærbak Christensen 3

Page 4: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

AU CS Henrik Bærbak Christensen 4

There Will Be Code

Page 5: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Knowledge versus Skills

  What knowledge, what skills are required for ?– Doing hearth surgery Flying F16 in

combat– Developing the Twitter software and architecture

AU CS Henrik Bærbak Christensen 5

KnowledgeSkills

Page 6: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Discussion

  Of course, we need both to be experts!– Deep knowledge of anatomy and physiology of the

hearth• Books! Papers! Discussions!

– Skilled craftsmanship in doing hearth surgery• Training-training-training! Reflections over experience!

  Emperical studies show we need 5.000-10.000 hours of training to become experts!

AU CS Henrik Bærbak Christensen 6

Page 7: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

dSoftArk emphasize…

  Skills!

  The Strategy patterns is defined by Gamma as ...

  Fine, but I prefer to see...

  This code would benefit by introducing the Strategy pattern and in Java I will code it like this: private WinnerStrategy ws = new PlayerWithMostArmiesStrategy(); ...

AU CS Henrik Bærbak Christensen 7

Page 8: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

How do we emphasize skills?

  The schedule reads ”TØ”

  The term ”Teoretiske Øvelser” is banned in dSoftArk!

  We have a three hour lab where you hone your skills in developing reliable and flexible

software using agile processes! (Using the knowledge you gain by reading the book )

AU CS Henrik Bærbak Christensen 8

Page 9: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Exam in Skills...

  Different! Scary?

  At the dSoftArk exam you will be asked to read code, design architecture, implement it!– … and you will train the exam form during our Labs!

  Morale:   Train coding and reflect the next 10 weeks!

AU CS Henrik Bærbak Christensen 9

Page 10: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Complex constructions

  Two examples...

AU CS Henrik Bærbak Christensen 10

Page 11: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

The question is then...

  How best to get from nothing to something?

AU CS Henrik Bærbak Christensen 11

Page 12: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Software Engineering?

  Best way: Building or Growing

AU CS Henrik Bærbak Christensen 12

Page 13: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Parameters

  Consider:– Time span before useful– Revenue generation– Risk– Time before misunderstandings

are detected

AU CS Henrik Bærbak Christensen 13

Page 14: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Example: StarCraft II

  More than 3 million copies sold first month

  Large e-sports community– DreamHack: Over 100.000 live streams during the

final

AU CS Henrik Bærbak Christensen 14

Page 15: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

AU CS Henrik Bærbak Christensen 15

StarCraft II: Built or Grown?

Page 16: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Development Process

  http://www.youtube.com/watch?v=H3R6ZqVQ3WE

  Video /Art and Technology / – at 18.20 to ~ 21.20

AU CS Henrik Bærbak Christensen 16

Page 17: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Morale

  In dSoftArk we will train to grow software!

  “Growing” does not mean we cannot have a plan nor a design..– Or that some things, like algorithms, cannot be

“constructed”

  It means we are agile and prepared to change the plans (even dramatically) as we learn from growing the software!

AU CS Henrik Bærbak Christensen 17

Page 18: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

How would Bjarne feel?

  My own experience– ”Do not worry, the planes have fuel for another two hours...”

AU CS Henrik Bærbak Christensen 18

Page 19: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Morale

  Software must work!!!

AU CS Henrik Bærbak Christensen 19

Page 20: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

dSoftArk

  Software– Flexible

• configurable

– Reliable• it works!

– Agile development• software is reliably grown

– Patterns  The book !

– You will need it– Even after graduating!

AU CS Henrik Bærbak Christensen 20

Page 21: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Learning and Teaching...

  You learn when– You are exited but not scared!– You are challenged but not overwhelmed!– You feel like a success not a failure!– You extend knowledge and skills from what they are

  Thus– Moving from 10 to 12 is great!– Moving from 00 to 4 is great!– Moving from 00 to 12 is probably not possible!

  Morale: I and TAs should encourage and help, not intimidate, discourage nor scare you!

AU CS Henrik Bærbak Christensen 21

Page 22: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

The exam again...

  If you aim for industrial software development...

– You should strive to do well in dSoftArk

  If you aim for research in security, algorithms, physics, or for management...

– You will want just to pass the exam

  There will be a link to ‘How to pass dSoftArk”

AU CS Henrik Bærbak Christensen 22

Page 23: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Tradition: Emperical Evidence

  No QEDs – sorry!

  dSoftArk techniques and industry– These techniques are in use or the

companies work to introduce them!– All tools are industrial strenghts

  First scientific result showing C++ is better than C appeared in year– ?

AU CS Henrik Bærbak Christensen 23

Page 24: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

New in 2014

  Reorganize delivery contents quite a lot in 2014– Before:

• Do stuff,• Tell about it in report• Upload the code for review

– In 2014• Do stuff,• Make screen cast, fill report template, rehearse exam…• Upload the code for review

AU CS Henrik Bærbak Christensen 24

Spend time on process

and skills!

Screencasts need structure as well.More structure will be provided in 2015

Page 25: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

New in 2015

  Reorganize delivery process in 2015– Before

• Hand-in chunk of several exercises at fixed deadline• Wait for the class’s TA to go over all handins• Re hand-in bad material• Wait for TA

– This year• Hand-in each exercise as soon as possible• Some TA feedback in one or max. two days

– Worked very well in my master course ‘CloudArch’

– Experiment: Please tell me what you think…

AU CS Henrik Bærbak Christensen 25

Page 26: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

New in 2015

  Blackboard is still relatively new to me

  Expect some hickups…

AU CS Henrik Bærbak Christensen 26

Page 27: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Summary

  We are going to build complex systems that are flexible and reliable

  We hypothesize this is best made in an evoluationary way– Grow flexible, testable, software– Learn as we go, prepare to get wiser– Agile manifesto

  We need production quality tools to do so– JUnit, Ant, Subversion, IDEs, ...– Start right away...

AU CS Henrik Bærbak Christensen 27

Page 28: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Summary

  Your learning will– Resemble industrial strength development

• Long term maintenance (> 1 week!)

• Customer requirements driven

• Focused on one single project

  Read the intro page about the mandatory project!!!

AU CS Henrik Bærbak Christensen 28

Page 29: AU CSHenrik Bærbak Christensen1 dSoftArk E2015 Software Architecture Programming in the Large

Summary

  I love strategy games – Mandatory Project: Tribute to the classic...

AU CS Henrik Bærbak Christensen 29