welcome to software engineering - uzh§ optional: listen to programming language introduction video...
TRANSCRIPT
1
Welcome to
Software Engineering
ThomasFritz
Reid’sreading“Courseintro”:https://github.com/ubccpsc/310/blob/2017jan/readings/Introduction.md
ManythankstoReidC.HolmesandElisaBaniassad (bothUBC)
2
Agenda
1. WhySoftwareEngineering?
2. WhatisSoftwareEngineering?
3. CourseOverview
3
WhySoftwareEngineering?
TheAriane5….
http://youtu.be/gp_D8r-2hwkhttp://www.di.unito.it/~damiani/ariane5rep.html
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.
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®ion=Header
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
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
8
WhatisSoftwareEngineering?
9
Softwareisgrowing
10
from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
11
from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
12
from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
13
from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
14
from http://www.informationisbeautiful.net/visualizations/million-lines-of-code/
15
WhatisSoftwareEngineering?
People working together,to create
a robust software system that satisfies the client.
Thisinvolvestechnical andinterpersonal challenges!
16
Smallclassactivity
Haveyoueverdevelopedsoftwareforacompany?§ Ifso,whatSEpracticesdidthey/youuse?(e.g.sourcecontrol,
codingstandards,processes,…)
Whyarethesepracticesuseful?
17
CourseOverview
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.
19
CourseAssistantsandTAs
§ManuelaZüger([email protected])§ PhDstudent
§ LukasEisenring
§ ChristophVogel
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
21
Thiscourseisabout…§ Softwareengineering,softwareprocesses,stepsinsoftware
development,designandmodularity,testingandmore
§ Bytheendyoushouldbeableto§ Demonstrateknowledgeandexplainchallengesofthestepsinvolved
inbuildingalarge,complexsoftwaresystem§ Understandbenefitsanddisadvantagesofvariousdesignsfor
constructingsoftwaresystems§ Communicatetechnicalmatterswithprogrammers,managers,and
clientseffectively;andconveytherationalebehindyourchoices
§ Takingsoftwareconstructiontothenextlevel(team,size,…)
22
Wednesdaysessions– somewhatflipped classroom
Eachweekbeforeclass§ Watchvideos/readreadingsintheweekbeforeeachlecture§ VideosonedX,readingsonwebpage§ MostmaterialfromReidHolmes(colleagueatUBC)§ FillinsurveybymidnightSunday(partofparticipationgrade)
Pleaselistanyquestionsthatyouhaveregardingthepre-reading/ videoassignment,thepre-classproblems,orhowthisweek'scontentrelatestotherestofthecoursematerial.Youmustsubmitatleastonequestion.
Incasethereisnoreading/videoà nosurvey
23
Wednesdaysessions– somewhatflipped classroom
Eachweekinclass(bringyourlaptop)§Recap§Predominantlyactivitybased§Willbegreatpracticeformidtermandfinal
Ø lesslistening,morepracticeØ thisisdifferenttobeforeandwearetryingitout,sopleasebarewithus
24
PriorKnowledge&More
Studentsshouldhavecompletedsoftwareconstruction
YoushouldbefamiliarwithObject-OrientedProgramming
ThiscoursewilluseJavaforexamples
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?”
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
27
SEandSoPra
§ Firstyearweputthisintooneterm
§ Notyetinsync+noteveryonetakesbothØ Pleasedonotexpectit,somematerialwillbecoveredherein
moredetail,onlyafteritwaspartofSoPra
§WeareworkingonsyncingitandIwilltrytoputthereading/videomaterialupbeforehand
28
ThingstodoTHISWEEK
§ Readtheintroductiontosoftwareengineeringreading§ Optional:listentoprogramminglanguageintroductionvideo
§ ListentotheProcessmodulevideos(createedX accountforthis);additionallyprovidedreadingalsocapturesmostofthevideomaterial§ WhyProcess?,TraditionalProcesses(Waterfall&Spiral),Agile
Processes(XPandTDD),Scrumà 6videos(1to6minslong)
§ FilloutfirstsurveybySunday(25.02)midnight