Presentation is loading. Please wait.

Presentation is loading. Please wait.

CompSci 001 20.1 Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7.

Similar presentations


Presentation on theme: "CompSci 001 20.1 Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7."— Presentation transcript:

1 CompSci 001 20.1 Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7

2 CompSci 001 20.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 o User Friendliness o Help Desk / 800 Number  Training  Follow on Products o Dealing with Competing Products o “Creeping Featurism”

3 CompSci 001 20.3 What Makes a Successful Product?  Class Experiences  Good o…o… o…o…  Bad o…o… o…o…  Scenario: “Bad” Product looks “Good”  Scenario: “Good” Product looks “Bad”  Which is really the good product?  Which will succeed?

4 CompSci 001 20.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 CompSci 001 20.5 Program Life Cycle Understanding Problem / Specification  Communicating with the Customer o Often customer doesn’t understand  Capabilities of computer systems  Limitations of computer systems o Possible role of user documentation  Specification languages o Can be very technical and involved o In some cases more trouble than they are worth

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

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

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

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

10 CompSci 001 20.10 Program Life Cycle  Net Productivity: 15 LINES OF CODE / DAY  Rather: 15 LINES OF CODE / DAY

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

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


Download ppt "CompSci 001 20.1 Today’s topics Industry Practice Software Engineering Upcoming The Killer Robot Reading Great Ideas, Chapters 7."

Similar presentations


Ads by Google