Software Engineering I (02161)
Week 1
- Assoc. Prof. Hubert Baumeister
Informatics and Mathematical Modelling Technical University of Denmark
Spring 2010
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 1 / 94
Software Engineering I (02161) Week 1 Assoc. Prof. Hubert - - PowerPoint PPT Presentation
Software Engineering I (02161) Week 1 Assoc. Prof. Hubert Baumeister Informatics and Mathematical Modelling Technical University of Denmark Spring 2010 2010 H. Baumeister (IMM) c Software Engineering I (02161) Spring 2010 1 / 94
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 1 / 94
Practical Information
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 3 / 94
Practical Information
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 4 / 94
Practical Information
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 5 / 94
Introduction to Software Engineering Introduction
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 9 / 94
Introduction to Software Engineering Introduction
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 10 / 94
Introduction to Software Engineering Introduction
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 11 / 94
Introduction to Software Engineering Introduction
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 12 / 94
Introduction to Software Engineering Introduction
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 13 / 94
Introduction to Software Engineering Introduction
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 14 / 94
Introduction to Software Engineering Introduction
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 15 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 17 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 18 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 19 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 20 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 21 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 22 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 23 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 24 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 25 / 94
Introduction to Software Engineering Development Example
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 26 / 94
Introduction to Software Engineering Development Example
event guard state state state Idle (I) banana banana
banana
apple apple
apple
money money money cancel Banana selected and not enough money (B) Apple selected and not enough money (A) enough money for banana dispense banana and rest money-> I dispense banana and rest money-> I dispense banana and rest money-> I not enough money for banana no bananas available enough money for apple dispense apple and rest money -> I dispense apple and rest money -> I dispense apple and rest money -> I not enough money for apple no apples available enough money for banana add money to current money dispense banana and rest money-> I add money to current money enough money for apple add money to current money add money to current money dispense apple and rest money -> I not enough money for neither banana nor apple add money to current money add money to current money add money to current money return current money
return current money
return current money
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 27 / 94
Introduction to Software Engineering Development Example
«enumeration» Fruit APPLE BANANA VendingMachine dispensedItem: Fruit currentMoney: int totalMoney: int restMoney: int input(money: int) select(f: fruit) cancel() ~setIdleState() ~dispense(f: Fruit) ~setCurrentStateForFruit(f: Fruit) ~hasFruit(f: Fruit) 1 «interface» VendingMachineState input(m: VendingMachine, money: int) select(m: VendingMachinef: fruit) cancel(m: VendingMachine) IdleState input(m: VendingMachine, money: int) select(m: VendingMachinef: fruit) cancel(m: VendingMachine) FruitSelectionState input(m: VendingMachine, money: int) select(m: VendingMachinef: fruit) cancel(m: VendingMachine) 1 * m.setCurrentMoney(m.getCurrentMoney() + i); if (!m.hasFruit(fruit)) { m.setIdleState(); return; } if (m.hasEnoughMoneyFor(fruit)) { m.setIdleState(); m.dispense(fruit); } else { m.setCurrentStateForFruit(fruit); } m.dispense(null); super.input(m, i); if (m.hasEnoughMoneyFor(selectedFruit)) { m.setIdleState(); m.dispense(selectedFruit); } m.setIdleState(); super.cancel(m);
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 28 / 94
Introduction to Software Engineering Course content
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 30 / 94
Introduction to Software Engineering Course content
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 31 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 33 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 34 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 35 / 94
Software Development Process
Time Features Release date Features
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 36 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 37 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 38 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 39 / 94
Software Development Process
Kent Beck, eXtreme Programming, 1st edition
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 40 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 41 / 94
Software Development Process
AD I T AD I T R AD I T R AD I T R AD I T R AD I T R
F 1 F 2 F 3a F 8 F 4 F 5 F 6
R AD I T
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 42 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 43 / 94
Software Development Process
number of features feature implemantion rate
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 44 / 94
Software Development Process
Queue WIP Queue Queue Queue WIP WIP WIP
LoginBlah
1 3 2 4 5
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 46 / 94
Software Development Process
Figure from David Anderson www.agilemanagement.net
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 47 / 94
Software Development Process
From The Empire State Building by John Tauranac From Building the Empire State by Willis, 1998
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 48 / 94
Software Development Process
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 49 / 94
Eclipse, JUnit, and Exercises
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 51 / 94
Eclipse, JUnit, and Exercises
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 52 / 94
Eclipse, JUnit, and Exercises
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 53 / 94
Eclipse, JUnit, and Exercises
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 54 / 94
Eclipse, JUnit, and Exercises
c 2010 H. Baumeister (IMM) Software Engineering I (02161) Spring 2010 55 / 94