Download presentation
Presentation is loading. Please wait.
1
What is Software Engineering?
Engineering is about getting technology to do what it does well so humans can do what they do well Jeff Offutt Professor of Software Engineering Volgenau School of Engineering George Mason University
2
Who Am I ? Jeff Offutt Parent : Steffi (26), Joyce (22), Andrew (14)
Education : BS (Math, Data Processing), PhD (Computer Science, 1988) Professor : GMU, Software Engineering, Volgenau School Scientist : >175 refereed papers Leader : Journal of Software Testing, Verification, and Reliability; IEEE Conference on Software Testing; MS-SWE program CS 101, February 2017 © Jeff Offutt
3
Today’s Talk What is Software Engineering and how is it related to Computer Science? What Software Engineering educational opportunities does GMU offer? Software Engineering quality attributes Testing: Can I break it? Yes I can! Usability: Can I use it? CS 101, February 2017 © Jeff Offutt
4
Comparing Computing Fields
Software Engineering A b s t r a c i o n Calc-1, discrete math, graphs, logic design, test, maintenance, programming, web apps, … How to design, test, maintain & build large, high quality programs Computer Science Calc-2, discrete math, CS theory Programming, … How to make computers work Algorithms, programming, … Computer Engineering Calc-3, discrete math (logic, algebra) 3-4 programming / CS Computer components Chips, memory, cpu, … Electrical Engineering Anything that uses power Transistors, batteries, transformers, … Calc-4 1-2 programming Calc-4, real analysis, … 1 programming Physics How the universe works … CS 101, February 2017 © Jeff Offutt
5
Engineers and Scientists
Science is about adding to the knowledge base Engineering uses the knowledge to solve problems Science is discovery Engineering is invention Engineers use science to build things to improve our lives CS 101, February 2017 © Jeff Offutt
6
Goals of Science and Engineering
Behaviors observe achieve find and describe Science Engineering design and develop Structures CS 101, February 2017 © Jeff Offutt
7
Computer Science and Software Engineering
Computer Science is about fundamentally understanding what we can do with computing devices Software engineering is about building high quality computing solutions to real-life problems CS 101, February 2017 © Jeff Offutt
8
Outline of Today’s Talk
What is Software Engineering and how is it related to Computer Science? What Software Engineering educational opportunities does GMU offer? Software Engineering quality attributes Testing: Can I break it? Yes I can! Usability: Can I use it? CS 101, February 2017 © Jeff Offutt
9
Undergraduate Opportunities
Applied Computer Science Concentration in Software Engineering Minor in Software Engineering 8 undergrad SWE courses Accelerated program into the MS-SWE program Offered by the Department of Computer Science CS 101, February 2017 © Jeff Offutt
10
Distinguishing SWE and CS
Reliability Maintainability Building High Quality Software specifying, modeling, designing, implementing, evaluating, deploying, maintaining, … Scalability Usability Security Availability etc. ... Fact: Engineering software is distinct from the science of computing Goal: Give UG students a coherent treatment of engineering software CS 101, February 2017 © Jeff Offutt
11
ACS Software Engineering
Essentials of Computer Science Degree ACS Foundation: CS 101, 105, 112, 211; Math 113, 114, 125, 203 ACS Core: CS 262, 310, 330, 367, 321, 465, 483, 4xx; ECE 301 Software Engineering Essentials SWE Foundation and Core: SWE 205: Software Usability SWE 301/401: Intern Prep & Reflect SWE 332: OO Design & Impl SWE 437: Software Test & Maint STAT 344; CS 306 SWE Related: 15 Hours From SWE 432, 443 CS 363, 450, 455, 468, 471, 475 Communication/Organizational Skills Cross Disciplinary: ENGH 410: Prof / Tech Writing One of PSYC 333, COMM 320, COMM 335 CS 101, February 2017 © Jeff Offutt
12
SWE Advising Notes If you are ACS / SWE, your advisor should be one of : Paul Ammann Jon Bell Kinga Dobolyi When meeting your advisor, you should first visit the degree requirements page: Then fill out the ACS / SWE study plan spreadsheet: Hassan Gomaa Thomas Latoza Jeff Offutt CS 101, February 2017 © Jeff Offutt
13
Software Engineering Minor
CS 112 (4 hrs) CS 211 (3 hrs) 9 hours from these 6 courses CS/SWE 332 SWE 432 CS/SWE 321 SWE 437 SWE 443 SWE 205 SWE 205 – Usability Analysis and Design CS / SWE 332 – OO software CS / SWE 321 – Intro to software engineering SWE 432 – Software usability and web software SWE 437 – Software testing and maintenance SWE 443 – Software architectures CS 101, February 2017 © Jeff Offutt
14
Outline of Today’s Talk
What is Software Engineering and how is it related to Computer Science? What Software Engineering educational opportunities does GMU offer? Software Engineering quality attributes Testing : Can I break it? Yes I can! Usability : Can I use it? CS 101, February 2017 © Jeff Offutt
15
Software is the Nervous System of Our Civilization
Quote partially due to Dr. Mark Harman CS 101, February 2017 © Jeff Offutt
16
Outline of Today’s Talk
What is Software Engineering and how is it related to Computer Science? What Software Engineering educational opportunities does GMU offer? Software Engineering quality attributes Testing: Can I break it? Yes I can! Usability: Can I use it? CS 101, February 2017 © Jeff Offutt
17
Spectacular Software Failures
NASA’s Mars lander : September 1999, crashed due to a units integration fault Ariane 5: exception-handling bug : forced self destruct on maiden flight (64-bit to 16-bit conversion: about 370 million $ lost) Mars Polar Lander crash site? Toyota brakes : Dozens dead, thousands of crashes Major failures : Ariane 5 explosion, Financial engines, Intel’s Pentium FDIV bug Poor testing of safety-critical software can kill : THERAC-25 radiation machine: 3 dead THERAC-25 design Software testers try to find faults before the faults find users CS 101, February 2017 © Jeff Offutt
18
Airbus 319 Safety Critical Software Control
Loss of autopilot Loss of most flight deck lighting and intercom Loss of both the commander’s and the co‑pilot’s primary flight and navigation displays ! CS 101, February 2017 © Jeff Offutt
19
Northeast Blackout of 2003 508 generating units and 256 power plants shut down Affected 10 million people in Ontario, Canada Affected 40 million people in 8 US states Financial losses of $6 Billion USD The alarm system in the energy management system failed due to a software error and operators were not informed of the power overload in the system CS 101, February 2017 © Jeff Offutt
20
What is Testing & Why is It Hard?
Software Testing tries to find software faults before users do A program can have quadrillions of inputs. And will work correctly on most! If a million inputs trigger the fault. Only chance of finding it ... Software Testers try to find test inputs that will trigger the faults before they get to users CS 101, February 2017 © Jeff Offutt
21
Testing Student Programs
Programming Assignment Submit Debugging Does it work ? All the time ? Maybe not … Customers care ! Thus … your employer will care ! Who cares ? CS 101, February 2017 © Jeff Offutt
22
Software Testing in Real Life
Needs or idea Requirements Deployment Future Evolution Unrecoverable Common !! System Test Architecture Disaster! Very expensive Full System Design Expensive Integration Test Programming Unit Test Integrate CS 101, February 2017 © Jeff Offutt
23
Debugging Sucks Testing Rocks Google’s Motto CS 101, February 2017
© Jeff Offutt
24
Finding faults early saves LOTS of money
Cost Of Late Testing 60 50 40 30 20 10 Assume $1000 unit cost, per fault, 100 faults $250K $35K $360K $150K Fault origin (%) Fault detection (%) Unit cost (X) $18K $20K $100K $13K $100K $6K $50K Total Savings $190K Requirements 28-Oct-2010, at GTAC, added the animation to demonstrate increasing the number of faults found early, thereby decreasing the number of faults found late, and finally saving money. Lots of it! This animation is fairly complicated … must practice first!! Design Prog / Unit Test Integration Test System Test Production Software Engineering Institute; Carnegie Mellon University; Handbook CMU/SEI-96-HB-002 Finding faults early saves LOTS of money CS 101, February 2017 © Jeff Offutt
25
What Do Testing Researchers Do?
Software Testing Researchers invent clever ways to design inputs that will find software faults Build software tools to create tests Run experiments to find out how well the testing ideas work Tell industry how to use the ideas Teach students – the next generation of software testers CS 101, February 2017 © Jeff Offutt
26
Outline of Today’s Talk
What is Software Engineering and how is it related to Computer Science? What Software Engineering educational opportunities does GMU offer? Software Engineering quality attributes Testing: Can I break it? Yes I can! Usability: Can I use it? CS 101, February 2017 © Jeff Offutt
27
Usable software should be :
What is Usability? The ability for a typical user to effectively accomplish a task without needing external help Usable software should be : Learnable within with reasonable effort Tolerant of reasonable user mistakes Efficient to use without undue effort CS 101, February 2017 © Jeff Offutt
28
User Manuals are Just Wrong
If a simple interface needs a user manual, something is probably wrong CS 101, February 2017 © Jeff Offutt
29
Example: Error Messages
People are poor at being perfect … but pretty good at getting “close” Make all actions undoable Make it easy to discover mistakes (visibility) Make it easy to correct mistakes Do not think in terms of “users making errors,” think in terms of users getting close CS 101, February 2017 © Jeff Offutt
30
A Poor Error Message CS 101, February 2017 © Jeff Offutt
31
A Poor Error Message I did! Maybe I need 50 cents … 50
CS 101, February 2017 © Jeff Offutt
32
A Poor Error Message Must enter 2 zeros (other values not allowed) 00
50 00 CS 101, February 2017 © Jeff Offutt
33
More Bad Examples ! HT ACCESS: Error accessing “ “HTTP: File/directory does not exist” The requested web page /offutt.html was not found on ... : Microsoft OLE DB Provider for ODBC Drivers error ' ' [Microsoft][ODBC SQL Server Driver][SQL Server]Your transaction (process ID #85) was deadlocked with another process and has been chosen as the deadlock victim. Rerun your transaction. /script/webkatalogen/pb.asp, line 221 Internal failure, please try again. CS 101, February 2017 © Jeff Offutt
34
More Bad Examples Bus error, core dumped (Unix)
Access through a nil pointer in function GetNext() Terminating thread, due to a stack overflow problem. A VxD, possibly recently installed, has consumed too muhc stack space. Increase the setting of MinSPs in SYSTEM.INI or remove recently installed VxDs. There are currently 5 SPs allocated. (Windows 2000) ??? CS 101, February 2017 © Jeff Offutt
35
https://cs.gmu.edu/~offutt/
Summary Software Engineering & Computer Science Software Engineering Mason Software Engineering quality attributes What is software testing? What is software usability? Jeff Offutt 4430 Engineering Building CS 101, February 2017 © Jeff Offutt
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.