welcome to software engineering - uzh§ optional: listen to programming language introduction video...

28
1 Welcome to Software Engineering Thomas Fritz Reid’s reading “Course intro”: https://github.com/ubccpsc/310/blob/2017jan/readings/Introduction.md Many thanks to Reid C. Holmes and Elisa Baniassad (both UBC)

Upload: others

Post on 21-Sep-2020

3 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

1

Welcome to

Software Engineering

ThomasFritz

Reid’sreading“Courseintro”:https://github.com/ubccpsc/310/blob/2017jan/readings/Introduction.md

ManythankstoReidC.HolmesandElisaBaniassad (bothUBC)

Page 2: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

2

Agenda

1. WhySoftwareEngineering?

2. WhatisSoftwareEngineering?

3. CourseOverview

Page 3: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

3

WhySoftwareEngineering?

TheAriane5….

http://youtu.be/gp_D8r-2hwkhttp://www.di.unito.it/~damiani/ariane5rep.html

Page 4: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

4

AnUncaughtException!?

Sadly,theprimarycausewasfoundtobeapieceofsoftwarewhichhadbeenretainedfromthepreviouslauncherssystemsandwhichwasnotrequiredduringtheflightofAriane5.ThesoftwarewasusedintheInertialReferenceSystem(SRI)tocalculatetheattitudeofthelauncher.InAriane4,thissoftwarewasallowedtocontinuefunctioningduringthefirst50secondsofflightasitcouldotherwisedelaylaunchingifthecountdownwashaltedfor anyotherreason,thiswasnotnecessaryforAriane5.Aswell,thesoftwarecontainedimplicitassumptionsabouttheparameters,inparticular thehorizontalvelocitythatweresafeforAriane4butnotAriane5.

Thefailureoccurredbecausethehorizontalvelocityexceededthemaximumvaluefora16bitunsignedintegerwhenitwasconvertedfrom

it'ssigned64bitrepresentation.ThisfailuregeneratedanexceptioninthecodewhichwasnotcaughtandthuspropagatedupthroughtheprocessorandultimatelycausedtheSRItofail.Thefailuretriggeredtheautomaticfail-overtothebackupSRIwhichhadalreadyfailedforthesamereason.Thiscombinedfailurewasthencommunicatedtothemaincomputerresponsibleforcontrollingthejetsoftherocket,however,thisinformationwasmisinterpretedasvalidcommands.Asaresultoftheinvalidcommands,theenginenozzleswereswungtoanextremepositionandthelauncherwasdestroyedshortlyafterwards.

Thefailurewasthusentirelyduetoasinglelineofcode.

Page 5: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

5

“Self-Driving Tesla Was Involved in Fatal Crash, U.S. Says” (TheNewYorkTimes)

“thecrashoccurredwhenatractor-trailermadealeftturninfrontoftheTesla,andthecarfailedtoapplythebrakes”

https://www.nytimes.com/section/business?action=click&contentCollection=Business%20Day&module=Kicker&pgtype=article&region=Header

Page 6: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

6

“Softwareiseatingtheworld”(MarcAndreesen)

EdLazowska &ReidHolmes

machinelearning

naturallanguageprocessing

HCI

cloudcompu5ngbigdata

mobile

sensors

EnergyandSustainability

SecurityandPrivacy

TechnologyforDevelopment

MedicineandGlobalHealth

Educa>on

Scien>ficDiscovery

Transporta>on

NeuralEngineering

ElderCare

Accessibility

Interac>ngwiththePhysicalWorld

CORECS

Page 7: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

7

machinelearning

naturallanguageprocessing

HCI

cloudcompu5ngbigdata

mobile

sensors

EnergyandSustainability

SecurityandPrivacy

TechnologyforDevelopment

MedicineandGlobalHealth

Educa>on

Scien>ficDiscovery

Transporta>on

NeuralEngineering

ElderCare

Accessibility

Interac>ngwiththePhysicalWorld

CORECS

Softwareiseverywhere

EdLazowska &ReidHolmes

Page 8: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

8

WhatisSoftwareEngineering?

Page 9: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

9

Softwareisgrowing

Page 10: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

10

from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/

Page 11: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

11

from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/

Page 12: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

12

from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/

Page 13: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

13

from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/

Page 14: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

14

from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/

Page 15: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

15

WhatisSoftwareEngineering?

People working together,to create

a robust software system that satisfies the client.

Thisinvolvestechnical andinterpersonal challenges!

Page 16: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

16

Smallclassactivity

Haveyoueverdevelopedsoftwareforacompany?§ Ifso,whatSEpracticesdidthey/youuse?(e.g.sourcecontrol,

codingstandards,processes,…)

Whyarethesepracticesuseful?

Page 17: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

17

CourseOverview

Page 18: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

18

Aboutme(Thomas)

AssociateProfessor(sinceJanuary2018)§ (previously)AssistantProfatUZHandUniversityofBritishColumbia§ PhDatUBCin2011(originallyfromMunich)

Researcharea:softwareengineering,particularly§ Developerproductivity&retrospection§ Biometricsensing§ Informationneeds

Researchwithmultiplecompanies:ABB,Microsoft,IBM,Biovotion,Intearxon,…

Room:2.B.21,Email:[email protected]

Officehoursarebyappointment.Emailmeorgetintouchwithmeafterclass.

Page 19: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

19

CourseAssistantsandTAs

§ManuelaZüger([email protected])§ PhDstudent

§ LukasEisenring

§ ChristophVogel

Page 20: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

20

TentativeCourseSchedule21.02 IntroductiontoSoftwareEngineering

28.02 Process&Agile

07.03 Specification(UserStories)

14.03 DecomposingUserStories

21.03 Modularity&HighLevelDesign

28.03 RESTAPIs&DetailedDesign

04.04 Easterholidays

11.04 Midterm

18.04 DesignPrinciples,SOLID

25.04 DesignPatterns

02.05 Refactoring&Smells

09.05 TestingandSoftwareQuality

16.05 SoftwareEvolution

23.05 CloudDeployment&Release

30.05 Recap /AdvancedTopics

Page 21: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

21

Thiscourseisabout…§ Softwareengineering,softwareprocesses,stepsinsoftware

development,designandmodularity,testingandmore

§ Bytheendyoushouldbeableto§ Demonstrateknowledgeandexplainchallengesofthestepsinvolved

inbuildingalarge,complexsoftwaresystem§ Understandbenefitsanddisadvantagesofvariousdesignsfor

constructingsoftwaresystems§ Communicatetechnicalmatterswithprogrammers,managers,and

clientseffectively;andconveytherationalebehindyourchoices

§ Takingsoftwareconstructiontothenextlevel(team,size,…)

Page 22: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

22

Wednesdaysessions– somewhatflipped classroom

Eachweekbeforeclass§ Watchvideos/readreadingsintheweekbeforeeachlecture§ VideosonedX,readingsonwebpage§ MostmaterialfromReidHolmes(colleagueatUBC)§ FillinsurveybymidnightSunday(partofparticipationgrade)

Pleaselistanyquestionsthatyouhaveregardingthepre-reading/ videoassignment,thepre-classproblems,orhowthisweek'scontentrelatestotherestofthecoursematerial.Youmustsubmitatleastonequestion.

Incasethereisnoreading/videoà nosurvey

Page 23: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

23

Wednesdaysessions– somewhatflipped classroom

Eachweekinclass(bringyourlaptop)§Recap§Predominantlyactivitybased§Willbegreatpracticeformidtermandfinal

Ø lesslistening,morepracticeØ thisisdifferenttobeforeandwearetryingitout,sopleasebarewithus

Page 24: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

24

PriorKnowledge&More

Studentsshouldhavecompletedsoftwareconstruction

YoushouldbefamiliarwithObject-OrientedProgramming

ThiscoursewilluseJavaforexamples

Page 25: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

25

Grading25%Midterm (11.4,10am– 12pm)65%Final (20.6,10am– 12pm)

midterm&finalmostlikelymultiplechoice;havenofear,sincemultiplechoiceallowsustoaskmorequestions,whichmakeseachquestionworthlessandletsyouexcelatpartswhereyou’reconfident;italsomeansfasterfeedbackandlessarbitrarymarking.

10%Participation (weeklysurvey+2assignments)eachsurveyhasonequestion;willbeevaluatedforcompleteness;togetcredit,wewillask:“couldthisanswerhavebeengivenforanyotherweek?”

Page 26: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

26

Resources

Websitehttp://www.ifi.uzh.ch/en/seal/teaching/courses/se.html

OLAThttps://lms.uzh.ch/auth/RepositoryEntry/16371188499§ Linkstovideos/readings§ Survey&assignments§ Forum(doNOTpostsolutionsanddoNOTuseitforpersonalissuesthat

needtobediscussedwithme)§ Othermaterial

InclassresourceswillNOT bedistributedReadingoncourse/videoswilltaketheplaceofslides

Page 27: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

27

SEandSoPra

§ Firstyearweputthisintooneterm

§ Notyetinsync+noteveryonetakesbothØ Pleasedonotexpectit,somematerialwillbecoveredherein

moredetail,onlyafteritwaspartofSoPra

§WeareworkingonsyncingitandIwilltrytoputthereading/videomaterialupbeforehand

Page 28: Welcome to Software Engineering - UZH§ Optional: listen to programming language introduction video § Listen to the Process module videos (create edXaccount for this); additionally

28

ThingstodoTHISWEEK

§ Readtheintroductiontosoftwareengineeringreading§ Optional:listentoprogramminglanguageintroductionvideo

§ ListentotheProcessmodulevideos(createedX accountforthis);additionallyprovidedreadingalsocapturesmostofthevideomaterial§ WhyProcess?,TraditionalProcesses(Waterfall&Spiral),Agile

Processes(XPandTDD),Scrumà 6videos(1to6minslong)

§ FilloutfirstsurveybySunday(25.02)midnight