Upload
nicholas-kirkland
View
49
Download
0
Embed Size (px)
DESCRIPTION
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 - PowerPoint PPT Presentation
Citation preview
Lecture 1 Introduction
January 13, 2009
CSCE 492 Software Engineering
– 2 – CSCE 492 Spring 2009
OverviewToday’s Lecture Today’s Lecture
Course Pragmatics Overview
References: References:
Next Time: Next Time:
– 3 – CSCE 492 Spring 2009
Course PragmaticsGoal: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: Web Site: http://www.cse.sc.edu/~rose/492/index.html Lectures Resources
Links to papers/readingsLinks to other Software Engineering Project sites
– 4 – CSCE 492 Spring 2009
State of the Art in UML tools Argo UMLArgo UML IdeogramicIdeogramic Rational RoseRational Rose TogetherTogether General Diagram Tools: General Diagram Tools:
DiaDia Kivio Kivio VisioVisio
UmbrelloUmbrello
http://jriddell.org/programs/umbrello/html/index.htmlhttp://jriddell.org/programs/umbrello/html/index.html
– 5 – CSCE 492 Spring 2009
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 – CSCE 492 Spring 2009
Role in infrastructureNot just the Internet· Transportation Energy Medicine Finance
– 7 – CSCE 492 Spring 2009
Software QualityHow 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
SeverityHow do you measure the size of code LOC – lines of code ?
– 8 – CSCE 492 Spring 2009
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 – CSCE 492 Spring 2009
Why Measure Software?KKey RReasons for MMeasurement of Software
1. Understanding
2. Managing
3. Guiding improvement
Profit = Sales - Cost
– 10 – CSCE 492 Spring 2009
Software FailuresIBM survey1994
55% of systems cost more than expected
68% overran schedules
88% had to be substantially redesigned
– 11 – CSCE 492 Spring 2009
ExamplesAdvanced 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 – CSCE 492 Spring 2009
PredictionsBureau 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 – CSCE 492 Spring 2009
Accidents
Nathaniel Borenstein http://www.artwanted.com/imageview.cfm?id=234508http://www.artwanted.com/imageview.cfm?id=234508
– 14 – CSCE 492 Spring 2009
Ariane-5Ariane-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
Referencehttp://archive.eiffel.com/doc/manuals/technology/contract/ariane/
page.html
– 15 – CSCE 492 Spring 2009
Therac-25Therac-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 – CSCE 492 Spring 2009
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 – CSCE 492 Spring 2009
Quality SoftwarePraxis 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 – CSCE 492 Spring 2009
Software ContractsCosmotronic 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 – CSCE 492 Spring 2009
Software Testing StrategiesVictor 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 – CSCE 492 Spring 2009
Collection of Software BugsCollection of Software Bugs Collection of Software Bugs
http://www5.informatik.tu-muenchen.de/~huckle/bugse.html
The first bugThe first bug http://www.waterholes.com/~dennette/1996/hopper/bug.htm
– 21 – CSCE 492 Spring 2009
Software as a BusinessCostCost $$ TimeTime Estimated time Estimated time estimate dollars estimate dollars Mythical Man-MonthMythical Man-Month
http://en.wikipedia.org/wiki/The_Mythical_Man-Month
– 22 – CSCE 492 Spring 2009
Software Crisis"[The major cause of the software crisis is] that the "[The major cause of the software crisis is] that the
machines have become several orders of magnitude machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as more powerful! To put it quite bluntly: as long as there were no machines, programming was no there were no machines, programming was no problem at all; when we had a few weak computers, problem at all; when we had a few weak computers, programming became a mild problem, and now we programming became a mild problem, and now we have gigantic computers, programming has become have gigantic computers, programming has become an equally gigantic problem." an equally gigantic problem." Edsger Dijkstra: The Humble Programmer (PDF, 473Kb)
– 23 – CSCE 492 Spring 2009
Water Fall Model requirements analysis requirements analysis DesignDesign ImplementationImplementation Testing (validation) (validation) IntegrationIntegration maintenancemaintenance
ReferenceReference http://en.wikipedia.org/wiki/Waterfall_processhttp://en.wikipedia.org/wiki/Waterfall_process
– 24 – CSCE 492 Spring 2009
Requirements AnalysisSoftware requirements analysis is the activity of Software requirements analysis is the activity of
eliciting, analyzing, and recording eliciting, analyzing, and recording requirements for software systems.
1 Eliciting Requirements1 Eliciting Requirements
2 Analyzing Requirements2 Analyzing Requirements
3 Recording Requirements3 Recording Requirements
– 25 – CSCE 492 Spring 2009
DesignOODAOODA
– 26 – CSCE 492 Spring 2009
Maintenance
– 27 – CSCE 492 Spring 2009
Software testingSoftware testing is the process used to help identify the 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 testing can never completely establish the correctness of arbitrary computer software. correctness of arbitrary computer software.
computability theory, a field of computer science, an computability theory, a field of computer science, an elegant mathematical proof concludes that it is elegant mathematical proof concludes that it is impossible to solve the halting problem, impossible to solve the halting problem,
– 28 – CSCE 492 Spring 2009
Current trends in software engineering AspectsAspects AgileAgile Software architecturesSoftware architectures Software Product linesSoftware Product lines
– 29 – CSCE 492 Spring 2009
Capability Maturity ModelCapability Maturity Model (CMM) is a collection of Capability Maturity Model (CMM) is a collection of
instructions an organization can follow with the instructions an organization can follow with the purpose to gain better control over its software purpose to gain better control over its software development process.development process.
The CMM ranks software development organizations in The CMM ranks software development organizations in a hierarchy of five levels, each with a progressively a hierarchy of five levels, each with a progressively greater capability of producing quality software. greater capability of producing quality software.
1.1. Chaos 75% organizations here.Chaos 75% organizations here.2.2. ..3.3. ..4.4. ..5.5. ..