1 / 29

Lecture 1 Introduction

Lecture 1 Introduction. CSCE 492 Software Engineering. January 13, 2009. Overview. Today’s Lecture Course Pragmatics Overview References: Next Time:. Course Pragmatics. Goal: To give you “real world” experience in team development of a large software system

Télécharger la présentation

Lecture 1 Introduction

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. Lecture 1 Introduction CSCE 492 Software Engineering January 13, 2009

  2. Overview Today’s Lecture • Course Pragmatics • Overview References: Next Time:

  3. Course Pragmatics Goal: • To give you “real world” experience in team development of a large software system • To provide you an opportunity to show your skills, build a portfolio Web Site: • http://www.cse.sc.edu/~rose/492/index.html • Lectures • Resources • Links to papers/readings • Links to other Software Engineering Project sites

  4. State of the Art in UML tools • Argo UML • Ideogramic • Rational Rose • Together • General Diagram Tools: • Dia • Kivio • Visio • Umbrello http://jriddell.org/programs/umbrello/html/index.html

  5. Why does software engineering matter? Software’s contribution to US economy • Based on 1996 figures: greatest trade surplus of exports • $24B software exported, $4B imported, $20B surplus· • compare: agriculture 26-14=12, • aerospace 11-3=8, • chemicals 26-19=7, • vehicles 21-43=(-22), • manufactured goods 200-265=(-64)·

  6. Role in infrastructure Not just the Internet· • Transportation • Energy • Medicine • Finance

  7. Software Quality How many errors do you think exist in a released software product? How do you measure the quality of code? • Error counts • Total errors • #Errors/size of code • Severity How do you measure the size of code • LOC – lines of code • ?

  8. How do you Quantify Software? Software metrics • http://sel.gsfc.nasa.gov/website/documents/online-doc/94-102.pdf How do you measure the size of code • Megabytes • LOC – lines of code • http://en.wikipedia.org/wiki/Source_lines_of_code • Programs for counting lines of code • Characters?

  9. Why Measure Software? Key Reasons for Measurement of Software 1. Understanding 2. Managing 3. Guiding improvement Profit = Sales - Cost

  10. Software Failures IBM survey1994 55% of systems cost more than expected 68% overran schedules 88% had to be substantially redesigned

  11. Examples Advanced Automation System (FAA, 1982-1994) • industry average was $100/line • expected to pay $500/line • ended up paying $700-900/line • $6B worth of work discarded

  12. Predictions Bureau of Labor Statistics (1997) • for every 6 new systems put into operation • 2 cancelled • probability of cancellation is about 50% for biggest systems • average project overshoots schedule by 50% • 3/4 systems are regarded as ‘operating failures’

  13. Accidents Nathaniel Borenstein • http://www.artwanted.com/imageview.cfm?id=234508

  14. Ariane-5 Ariane-5 (June 1996) • European Space Agency • complete loss of unmanned rocket shortly after takeoff • due to exception thrown in Ada code • faulty code was not even needed after takeoff • due to change in physical environment: undocumented assumptions violated Reference • http://archive.eiffel.com/doc/manuals/technology/contract/ariane/page.html

  15. Therac-25 Therac-25 (1985-87) • radiotherapy machine with software controller • hardware interlock removed, but software had no interlock • software failed to maintain essential invariants: • either electron beam mode • and plate intervening, to generate X-rays • several deaths due to burning • programmer had no experience with concurrent programming

  16. So What’s Good Software? Software Quality Measure: bugs/kloc • measured after delivery • industry average is about 10 • high quality: 0.1 or less

  17. Quality Software Praxis CDIS system (1993) • UK air-traffic control system for terminal area • used formal methods: precise specification • no increase in net cost • much lower bug rate: about 0.75 defects/kloc • even offered warranty to client!

  18. Software Contracts Cosmotronic Software Unlimited Inc. does not warrant that the functions contained in the program will meet your requirements or that the operation of the program will be uninterrupted or error-free. …

  19. Software Testing Strategies Victor R. Basili and Richard W. Selby. Comparing the Effectiveness of Software Testing Strategies. IEEE Transactions on Software Engineering. Vol. SE-13, No. 12, December 1987, pp. 1278–1296. This paper compares 3 state-of-practice software testing techniques: • Code reading by stepwise Abstraction • Functional testing using equivalence partitioning and boundary value abstraction • Structural testing (100 percent statement coverage criteria) The three aspects that are compared for the test are: • Fault Detection effectiveness • Fault detection Cost • Classes of fault detected

  20. Collection of Software Bugs Collection of Software Bugs • http://www5.informatik.tu-muenchen.de/~huckle/bugse.html The first bug • http://www.waterholes.com/~dennette/1996/hopper/bug.htm

  21. Software as a Business Cost • $ • Time • Estimated time  estimate dollars • Mythical Man-Month • http://en.wikipedia.org/wiki/The_Mythical_Man-Month

  22. Software Crisis "[The major cause of the software crisis is] that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem." • Edsger Dijkstra: The Humble Programmer (PDF, 473Kb)

  23. Water Fall Model • requirements analysis • Design • Implementation • Testing (validation) • Integration • maintenance Reference • http://en.wikipedia.org/wiki/Waterfall_process

  24. Requirements Analysis Software requirements analysis is the activity of eliciting, analyzing, and recording requirements for software systems. 1 Eliciting Requirements 2 Analyzing Requirements 3 Recording Requirements

  25. Design OODA

  26. Maintenance

  27. Software testing Software testing is the process used to help identify the correctness, completeness, security and quality of developed computer software. • testing can never completely establish the correctness of arbitrary computer software. • computability theory, a field of computer science, an elegant mathematical proof concludes that it is impossible to solve the halting problem,

  28. Current trends in software engineering • Aspects • Agile • Software architectures • Software Product lines

  29. Capability Maturity Model Capability Maturity Model (CMM) is a collection of instructions an organization can follow with the purpose to gain better control over its software development process. The CMM ranks software development organizations in a hierarchy of five levels, each with a progressively greater capability of producing quality software. • Chaos 75% organizations here. • . • . • . • .

More Related