1 / 39

Software Engineering 3156

Software Engineering 3156. Fall 2001 Section 1 5-Sep-01 Class #1: Intro Phil Gross. Today. What and Why of SoftE Course Mechanics. What Is Software Engineering?. An attempt to apply engineering principles to the creation of software

dennis
Download Presentation

Software Engineering 3156

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Software Engineering 3156 Fall 2001 Section 1 5-Sep-01 Class #1: Intro Phil Gross

  2. Today • What and Why of SoftE • Course Mechanics

  3. What Is Software Engineering? • An attempt to apply engineering principles to the creation of software • Production of fault-free software, on time and under budget, that fulfills the users’ needs. • Chemistry vs. Chemical Engineering

  4. Some Software Has To Work • Safety/Control • “Please wait while we reboot the nuclear power plant” • Military • “Oops, my gun crashed” • Embedded • “The microwave seems to be locked on ‘high’” • Etc. • “If your pacemaker freezes, find the little ctrl-alt-del buttons”

  5. Some Software Needs Many Programmers • No matter how bright you are, you will have a hard time “hacking together” • The airline reservation system • The Microsoft Office suite • Control software for an aircraft carrier • A fully compliant C++ compiler

  6. Consider The Advanced EHF Satellite • Budgeted for billions • Once it goes up, difficult to fix major bugs • Needs to work reliably • Complex communications protocol • Many contractors working together • http://www.spacedaily.com/news/milstar-00b.html

  7. Unfortunately • Software Engineering is an ambitious name (cf. Political Science) • Think about Computer Engineering major • Compare to AI

  8. Situation Is Grim • http://www.space.com/businesstechnology/technology/ehf_satellite_delay_0102262.html • RISKS Digest • http://catless.ncl.ac.uk/Risks • Terrible engineering combined with widespread belief in computer infallibility

  9. Why Is Most Software So Bad? • Minor consequences for failure • Reboot/reinstall • Programmer delusion • Bugs don’t appear until integration • Last step • Too late • Kick a bridge and it still stands. But flip a bit…

  10. Don’t Forget Management Idiocy • “You’re behind; I’m assigning 75 novice programmers to the project to help speed you up.” • “Take this ancient software and make it…” • “Multi-user and Fault-tolerant” • “Work on this new system” • Cf. collapsing buildings • Dilbert

  11. Why Should You Take This Class? • Arguably one of the most useful classes • Chemical Engineering and Applied Physics are entire departments • This is all you’re going to get • Become a better programmer • Thinking beyond the immediate algorithm or data structure

  12. Marketable • Real companies use SoftE techniques • Or rapidly become ex-real-companies • Advanced tool use and language topics • When you’re involved in a software fiasco (and you will be) gives you techniques for dodging blame • The move to management

  13. It Can Be Fun • Team programming, when going well, is exhilarating • Team programming, when going poorly, is like Survivor, only geekier • You get to take revenge on the slackers • But, can also be stressful, sleep-depriving • In the past, also unbelievably, hypnotically, unbearably dull

  14. Course Overview • How to successfully build commercial-scale software • How to program with a team • Advanced programming skills

  15. Differences From The Usual • Focus on process more than product • Large-scale techniques used on medium-small project • The instructors • Both have taken SoftE at Columbia

  16. Advanced Programming • Networking • Sockets, Event Models • Concurrency • Threads, IPC, Synchronization • Languages • C/C++, Libraries, APIs • Useful Stuff • XML, Tools

  17. Design Patterns • Similar high-level design problems occur repeatedly • Good solutions to these problems are recorded • This can save you a lot of time • Start off with flexible, extensible, scalable designs, rather than rearchitecting later • The power of naming

  18. About Me • Philip Nathaniel Gross, age 32 • phil@cs.columbia.edu • Went to Cornell as a computer-programming English major, class of 1990 • Didn’t graduate, moved to Holland • Seven years in the Netherlands as full-time computer professional

  19. More Me • Worked for 9 months as maintainer of vast, poorly written, vertical application for the printing industry • Last two years as third-line Digital Unix tech support for PTT Telecom (Dutch phone monopoly at the time) • Back to USA and Columbia Jan 1998 • Ugrad (GS), Masters, and now PhD candidate

  20. Course Mechanics • Prerequisite • cs3137 or 3139, or equivalent • Proficiency in Java • See me if you don’t match this • This is a Four credit course! • “Last of the weed-outs” • Due to registrar mix-up, recitation not formally required, but highly recommended

  21. Course Website • http://softe.cs.columbia.edu • Syllabus and slides will be posted • Questionnaire to be filled out by Monday’s class • Discussion forum • Access after questionnaire submission • Not the standard AcIS bboard

  22. Lectures • Scintillating, witty, fascinating, educational, entertaining, enlightening, erudite, and, of course, humble • You’re responsible for knowing the content of the lectures (!= content of books) • If you can’t make it, get the info from someone • Sleeping in class: I’ve done it too, to be sure, but isn’t your bed much more comfortable?

  23. Other Section • Taught by Janak Parekh • TR 5:40-6:55 • Good for the really late sleepers • Very closely synchronized with this section

  24. Other Section Continued • TAs will be “pooled” • Possible to have cross-section groups • Exams will be different

  25. Teaching Assistants • Each group will be assigned to one: • Suhit Gupta (head TA and recitation instructor), suhit@cs.columbia.edu • Daniel Medina (possibly 2nd recitation instructor), medina@cs.columbia.edu • Bethe Gordon, bg171@columbia.edu • Marek Marcinkiewicz, mom7@columbia.edu • Shen Li, sl697@columbia.edu

  26. Office Hours • Tuesday 2:30-4:30pm • 608 CEPSR, alias “SoftE Central” • TA office hours TBD • Janak is Wednesday 2-4pm

  27. Books • Mythical Man-Month, Anniversary Edition, by Brooks • A classic, part of many SoftE classes • UML Distilled, 2nd Ed., by Fowler • Succinct guide to the most-used design representation • Object-Oriented and Classical Software Engineering, 5th Ed., by Schach • Best we could find, costs a fortune

  28. Books, cont. • All are available at Papyrus • 114th and Broadway, downstairs • Might be cheaper on-line

  29. Grade breakdown Homeworks: 100 points Exam: 100 Group project: 400 Group eval: 75 Total: 675 Extra credit: 25

  30. Homeworks • Four of them • Based on the books • Straightforward • Late Policy • Three late days to use at your discretion • Except for last homework (#4) • Notify your TA • Homework never accepted after solutions have been presented

  31. Usual Plagiarism Blah-Blah • I really will report plagiarism • Don’t believe me? Then try it. I’m sure your parents will be just as impressed as the Dean with your investigatory zeal. • Think: • the person who’s stupid enough to let you copy from them is probably not the best person to copy from • The person who’s so stupid they need to copy from you is probably not smart enough to disguise it well • For the record, I have no problem giving Fs, either

  32. Exam • Schedule still in flux • Covers homeworks

  33. Group Project • MMORPG • Microscopically Multiplayer On-line Role Playing Game • Clients, Servers, Actors, Service locators

  34. Project Breakdown • Specification 100 points • Design 100 • Implementation 100 • Code Review 50 • Demo 50

  35. Project Milestones • No late days! • Turn in whatever you have when it’s due • Make sure you have something, anything, ready a few days early, just in case

  36. But, But, […] Happened, and… • Group crisis? Unexpected complications? Vanishing team members? • Happens every semester • Will happen to your group • Plan defensively • Some folks have very late drop dates

  37. Group Eval • 75 points of your grade will be determined by the other members of your group • You can slack, but you can’t hide • Work within the group is generally zero-sum • It’s a lot easier to bamboozle your professors than your fellow students

  38. Groups • Approximately five • You can propose a group, or just let us pick • For the project only, not for the homeworks • We’ll be setting them up next week

  39. That’s It • I hope you enjoy the course • I’m looking forward to it

More Related