AU CSHenrik Bærbak Christensen1 dSoftArk E2014 Software Architecture Programming in the Large
AU CSHenrik Bærbak Christensen2 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
One piece of information Due to copyright issues I cannot publish slides. Solution 1 –Use CourseAdmin manual: loop{”I press here, browse here, press OK”} Solution 2 –Use pwd protected folder Automatic: svn commit USER: dsoftarkPWD:312 AU CSHenrik Bærbak Christensen3
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 Christensen4
AU CSHenrik Bærbak Christensen5 There Will Be Code
Knowledge versus Skills What knowledge, what skills are required for ? –Doing hearth surgeryFlying F16 in combat –Developing the Twitter software and architecture AU CSHenrik Bærbak Christensen6 Knowledge Skills
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 hours of training to become experts! AU CSHenrik Bærbak Christensen7
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 CSHenrik Bærbak Christensen8
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 CSHenrik Bærbak Christensen9
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 CSHenrik Bærbak Christensen10
Complex constructions Two examples... AU CSHenrik Bærbak Christensen11
The question is then... How best to get from nothing to something? AU CSHenrik Bærbak Christensen12
Software Engineering? Best way:BuildingorGrowing AU CSHenrik Bærbak Christensen13
Parameters Consider: –Time span before useful –Revenue generation –Risk –Time before misunderstandings are detected AU CSHenrik Bærbak Christensen14
Example: StarCraft II More than 3 million copies sold first month Large e-sports community –DreamHack: Over live streams during the final AU CSHenrik Bærbak Christensen15
AU CSHenrik Bærbak Christensen16 StarCraft II: Built or Grown?
Development Process WEhttp:// WE Video /Art and Technology / –at to ~ AU CSHenrik Bærbak Christensen17
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 CSHenrik Bærbak Christensen18
How would Bjarne feel? My own experience –”Do not worry, the planes have fuel for another two hours...” AU CSHenrik Bærbak Christensen19
Morale Software must work!!! AU CSHenrik Bærbak Christensen20
dSoftArk Software –Flexible configurable –Reliable it works! –Agile development software is reliably grown –Patterns The book ! –You will need it –Even after graduating! AU CSHenrik Bærbak Christensen21
Learning and Teaching... You learn when –You are exitedbut not scared! –You are challengedbut not overwhelmed! –You feel like a successnot a failure! –You extend knowledge and skillsfrom what they are Thus –Moving from 10 to 12is great! –Moving from 00 to 4is great! –Moving from 00 to 12is probably not possible! Morale:I and TAs should encourage and help, not intimidate, discourage nor scare you! AU CSHenrik Bærbak Christensen22
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 CSHenrik Bærbak Christensen23
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 CSHenrik Bærbak Christensen24
New in 2014 Reorganize deliveries quite a lot in 2014 –Before: Do stuff, Tell about it in report Upload the code for review –Experiment this year Do stuff, Make screen cast, peer review code, rehearse exam… Upload the code for review AU CSHenrik Bærbak Christensen25 Spend time on process and skills! I will be learning how it works as we grow dSoftArk! Tell me!
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 CSHenrik Bærbak Christensen26
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 CSHenrik Bærbak Christensen27
Summary I love strategy games –Mandatory Project: Tribute to the classic... AU CSHenrik Bærbak Christensen28