DOC PREVIEW
UMD CMSC 132 - Software Development

This preview shows page 1-2-24-25 out of 25 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
View full document
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 25 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

CMSC 132: Object-Oriented Programming IISoftware DevelopmentDepartment of Computer ScienceUniversity of Maryland, College Park1Modern Software DevelopmentWhy do we want to study the software development process?To understandSoftware development problemsWhy software projects failImpact of software failures How to develop better software2Software EngineeringDefinition from WikipediaField that creates and maintains software applications by applying technologies and practices from computer science, project management, engineering, application domains, and other fields. 3Software Development ProblemsSoftware isExpensiveCost per line of code growing (unlike hardware)Frequently lateSchedule overrunsMore expensive than projected Cost overrunsDifficult to use & understandMissing featuresToo slow4Software Projects FailAnywhere from 25-50% of custom software failExample – FBI Virtual Case FileBegan Jan 2001Officially scrapped Jan 2005LA Times (Jan 13, 2005)“A new FBI computer program designed to help agents share information to ward off terrorist attacks may have to be scrapped… Sources said about $100 million would be essentially lost if the FBI were to scrap the software…”5Software Projects FailReasons for failure of FBI Virtual Case FilePoor specification800-page requirement documentRepeated changes in specificationNew requirements continually addedPoor managementRepeated management turnoverMicromanagement of software developersFBI personnel with no software experience6Impact of Software Failures IncreasingSoftware becoming part of basic infrastructureSoftware in cars, appliancesBusiness transactions moving onlineComputers becoming increasingly connectedFailures can propagate through internetInternet wormsFailures can be exploited by othersVirusesSpyware7Software Contributes to Real FailuresBugs in software may cause real-world failuresExample – Air Force F-22A Raptor Stealth fighter costing $300 million each1.7 millions lines of code for plane’s avionics8Software Contributes to Real FailuresAir Force F-22A Raptor software fails midairDefenseNews.com (March 5, 2007)“When a dozen Raptors en route from Hawaii to Japan crossed the International Date Line for the first time, the jets’ Global Positioning System navigation avionics went haywire, forcing the pilots to turn around.”GPS software unable to handle change in longitude from W179.99oto E180oRaptor pilots visually followed refueling tankers back to Hawaii9Software Contributes to Real FailuresHappy ending for Raptor?Lockheed-Martin provided software fix in 48 hoursFor “operational security reasons” the USAF declined to elaborate, saying only that the F-22A “experienced a software problem involving the navigation system”Tough being a Raptor test pilotDefenseNews.com (March 5, 2007)“When the plane was in developmental stages … pilots flying the Raptor would often have to reboot the onboard computers that controlled the jet’s high-end functions”10Other Famous Software Failures1990 AT&T long distance calls fail for 9 hoursWrong location for C break statement 1996 Ariane rocket explodes on launchOverflow converting 64-bit float to 16-bit integer1999 Mars Climate Orbiter crashes on MarsMissing conversion of English units to metric units11Why Is Software So Difficult?ComplexitySoftware becoming much largerMillions of line of codeHundreds of developersMany more interacting piecesLength of useSoftware stays in use longerFeatures & requirements changeData sets increaseCan outlast its creators12Software SizeSmall1-2 programmers, < 3000 lines of codeMedium2-5 programmers, < 20,000 lines of codeLarge5-20 programmers, < 100,000 lines of codeVery large20-200 programmers, < 1 million lines of codeExtremely large> 200 programmers, > 1 million lines of code13Source Lines of CodeSource lines of code Software metricMeasures the amount of code in a programAbbreviated as SLOCExample software sizesWindows 95 – 15 million SLOCWindows 98 – 18 million SLOCWindows 2000 – 29 million SLOCWindows XP – 40 million SLOCWindows Vista – 50 million SLOC (estimated)14Software SizeSmall software projectsCan keep track of details in headLast for short periodsWhat students learn in schoolLarge projectsMuch more complexCommonly found in real worldWhy we try to teach youSoftware engineeringObject-oriented programming15Software Life CycleCoding is only part of software developmentSoftware engineering requiresPreparation before writing codeFollow-up work after coding is completeSoftware life cycleList of essential operations / tasksNeeded for developing good softwareNo universal agreement on detailsAlso known as software development process16Components of Software Life Cycle1. Problem specification2. Program design3. Algorithms and data structures4. Coding and debugging5. Testing and verification6. Documentation and support7. Maintenance17Problem SpecificationGoalCreate complete, accurate, and unambiguous statement of problem to be solvedExampleSpecification of input & output of programProblemsDescription may be inaccurate or change over timeDifficult to specify behavior for all inputs18Program DesignGoalBreak software into integrated set of componentsthat work together to solve problem specificationExampleProblemsMethods for decomposing problemHow components work together19Algorithms and Data StructuresGoalSelect algorithms and data structures to implement each componentProblemsFunctionalityProvides desired abilitiesEfficiencyProvides desired performanceCorrectnessProvides desired results20Algorithms and Data StructuresExampleImplement list as array or linked list21Coding and DebuggingGoalWrite actual code and ensure code worksProblemsChoosing programming languageProcedural designFortran, BASIC, Pascal, CObject-oriented designSmalltalk, C++, JavaUsing language featuresExceptions, streams, threads22Testing and VerificationGoalDemonstrate software correctly match specificationProblemProgram verificationFormal proof of correctnessDifficult / impossible for large programsEmpirical testingVerify using test casesUnit tests, integration tests, alpha / beta testsUsed in majority of cases in practice23Documentation and SupportGoalProvide information needed by users and technical maintenanceProblemsUser documentationHelp users understand how to use softwareTechnical documentationHelp coders understand how to modify, maintain software24MaintenanceGoalKeep software working over timeProblemsFix errorsImprove featuresMeet changing


View Full Document

UMD CMSC 132 - Software Development

Documents in this Course
Notes

Notes

8 pages

Recursion

Recursion

12 pages

Sorting

Sorting

31 pages

HTML

HTML

7 pages

Trees

Trees

19 pages

HTML

HTML

18 pages

Trees

Trees

19 pages

Honors

Honors

19 pages

Lecture 1

Lecture 1

11 pages

Quiz #3

Quiz #3

2 pages

Hashing

Hashing

21 pages

Load more
Download Software Development
Our administrator received your request to download this document. We will send you the file to your email shortly.
Loading Unlocking...
Login

Join to view Software Development and access 3M+ class-specific study document.

or
We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Software Development 2 2 and access 3M+ class-specific study document.

or

By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?