A view from the research university CSE 110 – Software Engineering Professor Gregory Kesden Course Staff Abhinav Mishra Anmol Aggarwala Mansi Malik Vrinda.

Slides:



Advertisements
Similar presentations
… with apologies to those who already know all this. Tips for Teaching On-Line How to Succeed With FRED Barriers to Student Learning in an On-Line Environment.
Advertisements

Extreme Programming Alexander Kanavin Lappeenranta University of Technology.
Agile Planning Dealing with Reality. Reality Basic agile principle – don’t expect static plans to hold, be flexible and expect changes.
Overview of the Interaction Design Process. Objectives By the end of today’s class you will be able to… –Describe the major steps in the interaction design.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 4 Slide 1 Software Processes.
Your Interactive Guide to the Digital World Discovering Computers Fundamentals, 2012 Edition.
Your Interactive Guide to the Digital World Discovering Computers Fundamentals, 2012 Edition.
CS 3500 SE - 1 Software Engineering: It’s Much More Than Programming! Sources: “Software Engineering: A Practitioner’s Approach - Fourth Edition” Pressman,
Spring /6.831 User Interface Design and Implementation1 Lecture 1: Usability.
Lecture 2 Page 1 CS 236, Spring 2008 Security Principles and Policies CS 236 On-Line MS Program Networks and Systems Security Peter Reiher Spring, 2008.
29 Jul 2005CSE403, Summer'05 Student Startup Sequence Verify network connection Rotate to Landscape mode Start Presenter 2.0 Maximize Application Role->Student.
Software Engineering General Project Management Software Requirements
Effective Human Factors in Software-Intensive Systems Jo Ann Lane CSE Annual Research Review – March 2006 © USC CSE 2006 University.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Development Processes and Product Planning
SM3121 Software Technology Mark Green School of Creative Media.
CS3500 Software Engineering Agile Software Development (1) Agile software development, proposed in 2001 by the non-profit Agile Alliance, has four basic.
U-Mail System Design Specification Joseph Woo, Chris Hacking, Alex Benson, Elliott Conant, Alex Meng, Michael Ratanapintha April 28,
Discovering Computers Chapter 1 Discovering Computers & Microsoft Office 2010.
Software Development Methodologies For the Computer Science IA (2014 syllabus)
Studying Geography The Big Idea
Software Reliability: The “Physics” of “Failure” SJSU ISE 297 Donald Kerns 7/31/00.
Rapid Prototyping Model
ISO Layer Model Lecture 9 October 16, The Need for Protocols Multiple hardware platforms need to have the ability to communicate. Writing communications.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Why is software engineering worth studying?  Demand for software is growing dramatically  Software costs are growing per system  Many projects have.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
Supercross Shaylene Burd Jolie Dubois Emily Pope.
User-Centered Development Methodology A user interface comprises “ those aspects of the system that the user comes in contact with.” ● Moran [1981]
Computing Fundamentals Module Lesson 19 — Using Technology to Solve Problems Computer Literacy BASICS.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
Object-Oriented Software Engineering Practical Software Development using UML and Java Chapter 1: Software and Software Engineering.
INTRO TO USABILITY Lecture 12. What is Usability?  Usability addresses the relationship between tools and their users. In order for a tool to be effective,
Software Testing and Quality Assurance Software Quality Assurance 1.
Week 3 Outline Post-Mortem By: Jamaral Johnson. 2 After Actions Review In this presentation I will do my best to highlight what went wrong. This is just.
Service Level Agreements Service Level Statements NO YES The process of negotiating and defining the levels of user service (service levels) required.
Karen Martinez.  The first time I went to The Learning Zone, I didn’t have a child and read to Laura’s daughter. She was a good student and then we played.
Connecting with Computer Science2 Objectives Learn how software engineering is used to create applications Learn some of the different software engineering.
An electrician is someone who designs, installs and repairs electronics and wires. Source 1 A hardware engineer is someone who designs and/or creates hardware.
Software Engineering. Acknowledgement Charles Moen Sharon White Bun Yue.
Sight Words.
Chapter 1 The Requirements Problem
Chapter 7 What Can Computers Do For Me?. How important is the material in this chapter to understanding how a computer works? 4.
Lecture 4 Page 1 CS 111 Online Modularity and Virtualization CS 111 On-Line MS Program Operating Systems Peter Reiher.
(1) Test Driven Development Philip Johnson Collaborative Software Development Laboratory Information and Computer Sciences University of Hawaii Honolulu.
Objectives how to use a systematic, top-down process when designing computer networks focuses on the first step in top-down network design: analyzing your.
1 Usability evaluation and testing User interfaces Jaana Holvikivi Metropolia.
Course Introduction David Ferry, Chris Gill Department of Computer Science and Engineering Washington University, St. Louis MO 1E81.
A PC Wakes Up A STORY BY VICTOR NORMAN. Once upon a time…  a PC (we’ll call him “H”) is connected to a network and turned on. Aside: The network looks.
Lectures 2 & 3: Software Process Models Neelam Gupta.
Living in a Digital World Discovering Computers Fundamentals, 2011 Edition.
INTRODUCTION CSE 470 : Software Engineering. Goals of Software Engineering To produce software that is absolutely correct. To produce software with minimum.
Ch 1 A Geographer’s World
Working with the Difficult Employee
Why is software engineering worth studying?
Objectives Overview Explain why computer literacy is vital to success in today’s world Define the term, computer, and describe the relationship between.
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
COMP/EECE 7012/8012: Foundations of Software Engineering
Welcome to Software Engineering!
COMP 7012: Foundations of Software Engineering
CSE 110 – Software Engineering
Introduction Edited by Enas Naffar using the following textbooks: - A concise introduction to Software Engineering - Software Engineering for students-
Tips and Tricks for Using our Scripts
Best menu asset on shop. Level Boss Games The be inspired project
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
UNIT 5 EMBEDDED SYSTEM DEVELOPMENT
Computer Literacy BASICS
CSE 486/586 Distributed Systems Byzantine Fault Tolerance
Chapter 1: Software and Software Engineering
Presentation transcript:

A view from the research university CSE 110 – Software Engineering Professor Gregory Kesden Course Staff Abhinav Mishra Anmol Aggarwala Mansi Malik Vrinda Gupta Wesley Febrian Tim Wilson More coming soon! 1

Software Runs Everything  Software connects us  Software protects us  Software cures us  Software entertains us  Software is everywhere  Software is in everything  Software is important 2 The global software market had total revenues of $292.9 billion in MarketLine

But Building Great Software is Hard  2/3 of projects late [TATA]  1/4 of all projects cancelled [Standish]  1/2 run over budget [Tata, SGR CACM] 3

Why? Scale Gibbs, Software’s Chronic Crisis, Sci. Am., Sept Users want more and more features

And Released Software is Buggy 5

Important + Late = Disaster Allstate set out in 1982 to automate all of its office operations. They set a 5-year timetable and an $8 million budget. Six years and $15 million later, Allstate set a new deadline and readjusted its sights on a new budget of $100 million. 6 from Rapid Development, McConnell

Important + Buggy = Disaster  Therac-25 Radiation Machine (“An Investigation of the Therac-25 Accidents”, Leveson) On June 3, 1985, the patient was set up for a 10-MeV electron treatment to the clavicle area. When the machine turned on, she felt a "tremendous force of heat... this red-hot sensation.”…she developed a reddening and swelling in the center of the treatment area. Her pain had increased to the point that her shoulder “froze”. …But her oncologists continued to send her [for] Therac-25 treatments….the physicist at Kennestone noticed that the patient had a matching reddening on her back as though a burn had gone through her body, and the swollen area had begun to slough off layers of skin. She had received a 100x excess dose. 7

S.E. Practices Make a Difference Rework Cost (% of total) Productivity Increase (%)

In this class you will learn the: Why What and How Of great software development 9

Best SE Book in the World 10 Buy it.

Best Design Patterns Book in the World 11 Buy it.

“Fast, good, and cheap: pick any two” 12 Tradeoffs sometimes come in more than two variables Or you can “solve” a two-variable tradeoff by adding a third variable (such as cost) This triangle has a couple of names: Project management triangle Iron triangle

What is “Software Engineering”  What is “Software”?  What is “Engineering”?  What does it mean to be an “Engineer”? 13

What is “Software”?  Okay. We know this one!  A product that results from a computer program.  It isn’t the code, itself, but what is realized once the code is actually running 14

What is “Engineering”?  We’ve got this, intuitively.  The use of well-accepted and well-understood methodology to apply science and technology to the design and analysis of individual products or systems.  It is worth noting that methodology includes tools, techniques, and processes, etc. 15

Who is an “Engineer”?  We’ve also got this!  An engineer is someone who uses science and technology to design and/or develop products, but who is uniquely characterized among other developers by the use of a well-accepted and well-understood methodological, process- oriented approach. 16

Well-Understood? Well-Accepted?  It is important that the methodology be well understood and well-accepted because it enables communication and inspires confidence  Lessons are learned over time. Best practices leverage this.  All other things being equal, projects are more successful when the methodology is well-understood and accepted by everyone. Being on the same page improves communication, coordination, etc. 17

Is there One Right Way?  Want to remodel kitchen  One contractors process:  I understand what you want: Give me $30,000 and I’ll build it.  Another contractor’s process:  Let me create a drawing, show it to you, and make sure we’re on the same page.  Then, let me add the fine details we didn’t discuss, and get your feedback and approval.  Then, let me put together a project plan, scheduling the trades (electricians, plumbers, HVAC mechanics, etc), and make sure it makes sense to you.  Then, let me put the project out for bids, pick the best bid in each category, and review it with you, to make sure you like the details of how the projects will proceed.  Let me show you the final schedule, including city inspections – and your inspections – to make sure that you are happy every step of the way, and if not, we can fix it before it gets too expensive to undo.  Let’s also talk about the final walk-through and acceptance checklist  Does this make sense? Can I get a down payment? 18

Is there one right way?  A faucet is leaking  One contractor’s approach  I’m going to replace the washer and tighten the screws. If it doesn’t stop, I’m going to replace it.  Another contractor’s approach:  I’m going to gather the original design documents and specifications for the faucet, including the envioronmental and part tolerances.  I’m going to measure th air pressure and water pressure, opening and closing windows and turning other devices on-and-off to determine if the air pressure, water pressure, and pressure differences are within spec.  I’m going to disassemble the faucet, measure each part, and compare it to the spec, to see which, if any parts, are out of tolerance.  I’m going to computer the system deviation and compare it to the system tolerance, to determine if there is a tolerance stacking issue.  I’m going to optimize to determine the minimum cost environmental or faucet mitigations to make to correct the leak  I’m going to make or cause these mitigations be made. 19

The Right Way?  Depends upon many factors:  Clarity and stability of requirements  Time to delivery and cost of delay  Cost of failure  Cost of R&D iteration  Complexity/Interactions within product/ecosystem 20

Examples  Software embedded in a satellite orbiting earth  Software managing an aircraft’s flight controls  Software in a pacemaker or implanted defibrillator  Algorithm for high-frequency trading  Multi-user networked game  Enterprise information management application  Word processor  Single-Player game  Mobile-phone flashlight app  Air-traffic control airspace management software 21

Human Users  Not really a part of this class, but worth mentioning now  Humans are a critical element of any human-facing system  Story of the Satori (boat caught in hurricane): People are part of a system and affect its capability  Engine loss at takeoff: Automation and pilot perception  CA Flight 3407 stick shaker and pusher: What is intuitive?  Password rules and 3M notes: Security and Human Fsactors  UPMC hospital software: Tuning for the situation time, and people  Robots respecting conventions and anticipating people to interact smoothly with people  User-experience, HCI, Usability, User-testing  Critically important specializations for any human-facing system 22