software engineering ece444 introductionexams.skule.ca/exams/csc444h1_20199_66156872613501... ·...
TRANSCRIPT
![Page 1: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/1.jpg)
Software EngineeringECE444
Introduction
Michael StummECE
University of Toronto
![Page 2: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/2.jpg)
About the instructor• Contact information
• Email: [email protected] (best way to contact me)• Office: SF2001
• Online presence• Webpage: none• Facebook: zero posts• LinkedIn: https://www.linkedin.com/in/stumm/• Twitter: @stummm
• Research Interests• Systems Software incl. operating systems• Software engineering• Publications: https://scholar.google.ca/citations?user=SfN31P4AAAAJ
![Page 3: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/3.jpg)
Course Objectives• Learn how software is developed in modern tech
companies
• Learn by doing
![Page 4: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/4.jpg)
Premise: Software is Important• Computers are everywhere:
Financial & insurance industry, government, hospitals, restaurants, stores, gas stations, cars, trains, planes, bombs, missiles, watches, pace makers, TV’s, tablets, cameras, (smart) phones, etc….
Software is everywhere• Software key in every discipline
• Electrical engineering, physics, chemistry, biology, medicine etc.
• Software key to business:• Differentiation: new unique features & capabilities• Competitiveness: cost-advantage
• Software: 3rd largest industry• TO a big hub
• Software is changing the world as we know it !
![Page 5: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/5.jpg)
Yet most software sucks…
• has lots of errors• noticeably crashes periodically• has poor user interface• doesn’t work properly for some features• wastes resources • is not secure• doesn’t perform well and is not scalable
An estimated 50% of the software producedis never used because it is useless or doesn’t work
Typically Software…
![Page 6: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/6.jpg)
Famous bugs I• ObamaCare’s Exchange (>$700 million)• British NHS system scrapped after spending $20B• US Air Forces cancels ERP project after spending $1B • US FAA Air Traffic Control system scrapped after
spending $2.6B• IBM OS 360: 1960’s
Over 1 year lateShipped with 1000 known bugs only to increase200 Person Years to 5,000 Person Years
• IBM Workplace OS: 1999Cancelled after $2 billion investment
• Ariane 5 explosion: 1996Integer Overflow
![Page 7: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/7.jpg)
Famous bugs II• Canadian Therac-25 radiation machine burns 6 : 1985
• Software never tested
• F16 flips over when crossing the equator: ’79
• San Francisco BART: • ghost train in tunnel• doors open while train at full speed
• Woman kills daughter and self • software bug incorrectly diagnoses incurable disease.
• North America Blackout of 2003
![Page 8: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/8.jpg)
In fact…• 28% of banking portals are secure
16% of gov portals
• 32% of software projects are successful• 50% of them cost > 30% than expected• 35% very late
• 80% of dev costs: identifying and correcting defects
![Page 9: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/9.jpg)
Why all these problems?• Software is hard! And complex!• Constantly changing technologyè no permanent platform to build on
• Software mostly done and taught the wrong way• Most programmers are not good. • Lack of first principles (laws)• Lack of measurable standard unit of work• Most don’t understand SW is art & engineering
![Page 10: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/10.jpg)
and software reqs increasingly complex
• Real-time demands
• Cross-platform requirementsà browsers, smart phones, tablets
• Concurrency and parallelism
• Internetworking / distributed systems
• Mobile, hand-held Systems
• Security
![Page 11: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/11.jpg)
Software productivity mostly flat… despite decades of research, new languages, processes, formal methods, dev tools, etc. etc.
![Page 12: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/12.jpg)
Waterfall model• Engineering approach: plan and document• Approach followed by most (big) companies
Business Req’sSpecification
DesignImplementation
TestingIntegration
DeploymentMaintenance
![Page 13: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/13.jpg)
But…• Properties of software vastly different than for
traditional engineering systems
• Software systems are abstract and intangible;not constrained by physical laws or manufacturing processes
• No natural limits to the potential of softwaree.g., singularity
• It probably doesn't make sense to apply typicalengineering methods and processes to software.But that is what tradition SE tells us to do!
![Page 14: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/14.jpg)
We will teach a different approach
Continuous DeploymentContinuous Delivery
Continuous IntegrationAgile Development • self-organizing,
cross-functional team
• practice ofdeploying small,incrementalsoftware updatesto production
• within hours of creation
• by developers
• with no testing team
![Page 15: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/15.jpg)
The different approach…
Embraced by more and more companies
![Page 16: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/16.jpg)
Example: first day working at Etsy.com
At the time
Revolutionaryin how software is
produced and maintained
![Page 17: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/17.jpg)
We will primarily learn by doingDesign and Implement Online Service-oriented AppUsing:
Model - View - Controller Architecture
Presentationtier
WebService
Logictier
Persistencetier
AppServer DB
Client - Server Architecture
![Page 18: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/18.jpg)
Using Agile approach…
GithubCloud Services
HerokuApp
Server
clients
![Page 19: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/19.jpg)
Homework
Come up with an online service worth having
![Page 20: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/20.jpg)
Resources• Ruby:
• http://ruby-lang.org• http://ruby-doc.org• https://ruby.github.io/TryRuby/• https://rubygems.org - for gems
• Rails:• https://rubyonrails.org
![Page 21: Software Engineering ECE444 Introductionexams.skule.ca/exams/CSC444H1_20199_66156872613501... · Premise: Software is Important •Computers are everywhere: Financial & insurance](https://reader034.vdocument.in/reader034/viewer/2022051811/60201ca20f849640534f12a1/html5/thumbnails/21.jpg)
Mark Composition
• Project & Homework: 45%• Midterm & Tests: 20%• Final Exam: 35%