Download presentation
Presentation is loading. Please wait.
Published byClyde Butler Modified over 9 years ago
1
AU CSHenrik Bærbak Christensen1 dSoftArk Software Architecture Programming in the Large
2
AU CSHenrik Bærbak Christensen2 The lecturer Henrik Bærbak Christensen Associate professor (lektor) since 2003 –Software developer/architect in industry, 91-94 –Collaboration with many Danish IT companies Systematic, Jyske Bank, Terma, B&O, KMD, Danfoss, … Faglig koordinator for Master og Diplom (SWK) Owner of Course development and consultancy http://www.imhotep.dk
3
One piece of secret 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:hotciv AU CSHenrik Bærbak Christensen3
4
From nothing to something How do we develop software? AU CSHenrik Bærbak Christensen4
5
[ Growing or Building] AU CSHenrik Bærbak Christensen5
6
OLD SLIDES AU CSHenrik Bærbak Christensen6
7
This is where... The intro on the web continued with 28 slides of really really correct information about the course, book, web site, exam, lectures,... However... Q: Is this a school or a study? (and what is the difference?) AU CSHenrik Bærbak Christensen7
8
The dSoftArk Study... I assume you can read a web page... –For pretty correct and almost up to date information... Meanwhile Let’s get talk and study a bit... AU CSHenrik Bærbak Christensen8
9
Tradition: Emperical Evidence No QEDs – sorry! dSoftArk techniques and industry –These techniques are in use or the companies work to introduce them! First scientific result showing C++ is better than C appeared in year –? AU CSHenrik Bærbak Christensen9
10
The Book Buy it before your mates ! –You will need it –Even after graduating! Keywords –Flexible –Reliable –Patterns –Agile development AU CSHenrik Bærbak Christensen10
11
A bit about agile development and reliable software AU CSHenrik Bærbak Christensen11
12
Make it reliable – or else... http://www.youtube.com/watch?v=UlUIjxoO2vc Start http://www.youtube.com/watch?v=pPTegBMzfF E&NR=1&feature=endscreenhttp://www.youtube.com/watch?v=pPTegBMzfF E&NR=1&feature=endscreen Ca 12 min AU CSHenrik Bærbak Christensen12
13
Would you like...... to put your latest programming project to an audience of ~ 5.000 spectators?... live – on stage? or ~ 5.000.000 users? AU CSHenrik Bærbak Christensen13
14
Reflections... How many of you... –Play Blizzard games regularly –Average # of hours per week –For how many months SCII released 2010 WoW released 2004 D3 released 2012 How many have experienced a bug? How is such a system built? AU CSHenrik Bærbak Christensen14
15
Development Process http://www.youtube.com/watch?v=H3R6ZqVQ3 WEhttp://www.youtube.com/watch?v=H3R6ZqVQ3 WE Video /Art and Technology / – at 18.20 AU CSHenrik Bærbak Christensen15
16
Discussions Is there an intrinsic strict sequence in which features/code must be developed? –Race A before race B? –I cannot make explosions before ’creep’ developed? –’destruction sequence’ require ’unit movement’ Software building versus Bridge building? Features that take a ’long time’ before verification? –’feature X cannot be tested until 3 months later’? Can we experiment with features? –i.e. Pull them out if we find them less desirable AU CSHenrik Bærbak Christensen16
17
Discussions What is the value of ’old versions’ –If any? How do we validate such systems –Formal models ? –Manual testing ? –Automatic testing ? –Reviewing code ? What does Blizzard do? AU CSHenrik Bærbak Christensen17
18
A bit about flexible software... AU CSHenrik Bærbak Christensen18
19
Demo... [Demo ’swpt’ from Backgammon project] Class Game { // move checker, return false is not valid move boolean move(Location from, Location to) // roll the dice, and make the turn go over... void nextTurn() } Consider... What can these two method’s code look like Can you validate their behaviour without first implementing a full board class to store and move the checkers? AU CSHenrik Bærbak Christensen19
20
Morale We can do it in a number of ways… –Some of them are plainly wrong –Some are good short-term solutions that turn out to become night mares in the long run (and you would not discover it you do not write code that lasts much longer than 7 weeks before it dies!) –Very few are pretty good solutions that can stand the test of time AU CSHenrik Bærbak Christensen20
21
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 Christensen21
22
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 Christensen22
23
Summary I love strategy games –Mandatory Project: Tribute to the classic... AU CSHenrik Bærbak Christensen23
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.