WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.

Slides:



Advertisements
Similar presentations
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Advertisements

WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
Software Engineering Prof. Dr. Bertrand Meyer March 2007 – June 2007 Chair of Software Engineering Static program checking and verification Slides: Based.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010/2013.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010/2013.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
15 min WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010/2013.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
45 min WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010/2013.
WARNING 20 min These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint.
WARNING 40 min These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint.
15 min WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010.
WARNING 20 min These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint.
Presentation transcript:

WARNING These slides are not optimized for printing or exam preparation. These are for lecture delivery only. These slides are made for PowerPoint 2010. They may not show up well on other PowerPoint versions. You can download PowerPoint 2010 viewer from here. These slides contain a lot of animations. For optimal results, watch in slideshow mode.

Famous Software Disaster This shutdown occurred 36.7 seconds after launch, when the guidance system's own computer tried to convert one piece of data -- the sideways velocity of the rocket -- from a 64-bit format to a 16-bit format. Ariane 5, June 4, 1996 [ TE3201 AY1516S2 Lecture 4a ]

Navigation instructions? Here’s an error message

Navigation instructions? Here’s an error message Your code Your teammate’s code

CS2103/T, Lecture 7, Part 2, [March, 2017] Putting up defences to protect our code. Your code Your teammate’s code CS2103/T, Lecture 7, Part 2, [March, 2017]

Putting up defences to protect our code. Your code Your teammate’s code

Putting up defences to protect our code. Lecture 7: Putting up defences to protect our code.

MISUNDERSTANDINGS GO!

int size = Config.getSize(); if( 0 < size < 5) setSizeAsSmall(); MISUNDERSTANDINGS … int size = Config.getSize(); if( 0 < size < 5) setSizeAsSmall(); else setSizeAsBig(); … if(sizeFound()) return readSize(); else return 0; // size > 0

int size = Config.getSize(); if( 0 < size < 5) setSizeAsSmall(); MISUNDERSTANDINGS … int size = Config.getSize(); if( 0 < size < 5) setSizeAsSmall(); else setSizeAsBig(); … if(sizeFound()) return readSize(); else return 0; assert (size > 0)

These are different from JUnit assertions! MISUNDERSTANDINGS These are different from JUnit assertions! … int size = Config.getSize(); if( 0 < size < 5) setSizeAsSmall(); else setSizeAsBig(); … if(sizeFound()) return readSize(); else return 0; assert (size > 0) Make your assumptions explicit. Get the runtime to confirm them.

MISUNDERSTANDINGS

MISUNDERSTANDINGS GO!

MISUNDERSTANDINGS GO!

MISUNDERSTANDINGS MISHAPS GO! GO!

void processAge(int age) { //do stuff with age } MISUNDERSTANDINGS MISHAPS What if age is invalid? void processAge(int age) { //do stuff with age } File corrupted bug? void foo(String fileName) { openFile(fileName); } Handle or raise an Exception Verify using assertion e.g. assert(isValid(age))

Handle or raise an Exception MISUNDERSTANDINGS MISHAPS Developer User/environment Programmer mistake? Environment mishap? Handle or raise an Exception Verify using assertion e.g. assert(isValid(age))

MISUNDERSTANDINGS MISHAPS GO! GO!

MISUNDERSTANDINGS MISHAPS GO! GO!

Assertions Exceptions It depends Your ToDo manager software tries to interact with Google calendar, but finds Google servers are down. This should be handled using, Assertions Exceptions It depends

MISUNDERSTANDINGS MISHAPS MYSTERIES GO! GO! GO!

My computer crashes when I flush the toilet! MISUNDERSTANDINGS MISHAPS MYSTERIES My computer crashes when I flush the toilet!

int size = Config.getSize(); // size > 0 if( 0 < size < 5) MISUNDERSTANDINGS MISHAPS MYSTERIES … int size = Config.getSize(); // size > 0 if( 0 < size < 5) log(LEVEL_INFO, “Setting size to small”); setSizeAsSmall(); else if( size > 5) setSizeAsBig(); else log(LEVEL_WARN, “Size not recognized”);

MISUNDERSTANDINGS MISHAPS MYSTERIES

MISUNDERSTANDINGS MISHAPS MYSTERIES GO! GO! GO!

MISUNDERSTANDINGS MISHAPS MYSTERIES GO! GO! GO!

MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE GO! GO! GO! GO!

void setGirlfriend(Woman w){ girlfriend = w; } … class Woman{ MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE class Man{ Woman girlfriend; void setGirlfriend(Woman w){ girlfriend = w; } … class Woman{ Man boyfriend; void setBoyfriend(Man m){ boyfriend = m; } … girlfriend Man Woman boyfriend

void setGirlfriend(Woman w){ girlfriend = w; } … class Woman{ MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE class Man{ Woman girlfriend; void setGirlfriend(Woman w){ girlfriend = w; } … class Woman{ Man boyfriend; void setBoyfriend(Man m){ boyfriend = m; } … Man harry, ron; Woman hermione; ron.setGirlfriend(hermoine); hermione.setBoyfriend(harry); … ron:Man hermione :Woman harry:Man girlfriend boyfriend

What do you do when it is green light?

Defensive driving can save your life Assume other drivers are idiots

Defensive driving can save your life coding career Assume other drivers are idiots coders

void setGirlFriend(Woman w){ if(girlfriend!=null) MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE class Man{ Woman girlfriend; void setGirlFriend(Woman w){ if(girlfriend!=null) girlfriend.breakupWith(this); girlfriend = w; girlfriend.setBoyFriend(this); } …

MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE

MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE

Bertrand Meyer, Design by Contract and the Eiffel Language MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE Bertrand Meyer, Design by Contract and the Eiffel Language

MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE

MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE GO! GO! GO! GO!

All 4 used in Sample Project. Use them more in your project. MISUNDERSTANDINGS MISHAPS MYSTERIES MISUSE GO! GO! GO! GO! Assertions Exceptions Logging Defensive All 4 used in Sample Project. Use them more in your project.