1 / 12

Today’s topics

Today’s topics. Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas , Chapters 7. Engineering a Program. Programming in the Large Not the toy programs we are writing and demonstrating

berwick
Télécharger la présentation

Today’s topics

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. Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7

  2. Engineering a Program • Programming in the Large • Not the toy programs we are writing and demonstrating • What do we require of Software Products for Commercial or Industrial Use? • Robustness • Testing • Documentation • Customer Support • User Friendliness • Help Desk / 800 Number • Training • Follow on Products • Dealing with Competing Products • “Creeping Featurism”

  3. What Makes a Successful Product? • Class Experiences • Good • … • … • Bad • … • … • Scenario: “Bad” Product looks “Good” • Scenario: “Good” Product looks “Bad” • Which is really the good product? • Which will succeed?

  4. Program Life Cycle • Define the Product • Developing the Program Specifications • Designing the System Structure • Coding the System (small part!) • Testing the Code • Revision • Documentation • Delivery and Training • Maintenance and Upgrade

  5. Program Life Cycle Understanding Problem / Specification • Communicating with the Customer • Often customer doesn’t understand • Capabilities of computer systems • Limitations of computer systems • Possible role of user documentation • Specification languages • Can be very technical and involved • In some cases more trouble than they are worth

  6. Program Life Cycle Design Strategies/Models • Classical Waterfall Model • Everything moves forward at steady pace • Little customer involvement in design • Revision possible • Late in the game • At great expense • http://myprojects.kostigoff.net/methodology/development_models/pages/waterfall.htm • Rapid Prototyping Model • Build Prototype quickly • Get customer involved • Then: • May scrap prototype and start over • If prototype good enough, may build on it

  7. Program Life Cycle Implementation Strategies • Top Down Implementation • Stubs • Can test many parts in the absence of other parts • Output First • Allows you to “see” what the program is doing • Test as you go • Make it Run • Make it Right • Make it Fast • Always have a “running” program

  8. Program Life Cycle • Debugging (dealing with Defects) • Testing • Can only show presence, not absence of bugs • Design for Testability • Modular • Hierarchical • Correctness • Proofs • Formal Definition of Specs • Formal definition language • Very hard • Used in life-critical applications • What is a correct Graphical User Interface (GUI)?

  9. Program Life Cycle • Documentation • On-line documentation • Comments on comments in code • Program header • Block header • Function (method) specifications • Pre-conditions • Post-conditions • Variable descriptions • Java Docs • Available for Java API (see class web page) • Can produce for your own code as well

  10. Program Life Cycle • Net Productivity: 15 LINES OF CODE / DAY • Rather: 15 LINES OF CODE / DAY

  11. Aspects of Software Engineering • Psychology of Programming has its effects • Design by Committee (good or bad?) • Communications problems • Interaction • Creator Independence • 2nd System Syndrome • Organizational Schemes • Chief Programmer Team (Harlan Mills) • NY Time Morgue Project (1969) • Surgical Team Model • Assume that some people are 100 time better than others when programming

  12. Aspects of Software Engineering • Nitty-Gritty Practical Problems • Back-ups • Revision Control System • Backwards Compatibility • Staff Turnover • Pleasant Environment • Silicon Valley • . . . • Programming Tools (CASE) • E.g., IDE’s such as Eclipse • . . .

More Related