DOC PREVIEW
UMD CMSC 132 - Software Life Cycle

This preview shows page 1-2-3-4-5-6 out of 18 pages.

Save
View full document
View full document
Premium Document
Do you want full access? Go Premium and unlock all 18 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 18 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 18 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 18 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 18 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 18 pages.
Access to all documents
Download any document
Ad free experience
Premium Document
Do you want full access? Go Premium and unlock all 18 pages.
Access to all documents
Download any document
Ad free experience

Unformatted text preview:

Software Life CycleSlide 2Program DesignDesign – How To Divide WorkSlide 5Design – Decomposition ExampleSlide 7Design – Comparison ExampleDesign – Comparing ApproachesSlide 10Design – ComponentsDesign – Interface & ConditionsAlgorithms and Data StructuresSlide 14Coding and DebuggingTesting and VerificationDocumentation and SupportMaintenanceSoftware Life CycleFawzi EmadChau-Wen TsengDepartment of Computer ScienceUniversity of Maryland, College ParkSoftware Life Cycle1. Problem specification2. Program design3. Algorithms and data structures4. Coding and debugging5. Testing and verification6. Documentation and support7. MaintenanceProgram DesignGoalBreak software into integrated set of components that work together to solve problem specificationProblemsMethods for decomposing problemHow to divide workWhat work to divideHow components work togetherDesign – How To Divide WorkDecomposing problemBreak large problem into many smaller problemsCannot solve large problems directlyDivide and conquer1. Break problem up into simpler sub-problems2. Repeat for each sub-problem3. Stop when sub-problem can be solved easilyDesign – How To Divide WorkFunctional approachTreat problem as a collection of functions TechniquesTop-down designSuccessively split problem into smaller problemsBottom-up designStart from small tasks and combineDesign – Decomposition ExampleTop-down design of banking simulatorDesign – How To Divide WorkObject-oriented approachTreat problem as a collection of data objectsObjects Entities that exist that exist in problemContain dataPerform actions associated with dataDesign – Comparison ExampleBank simulationFunctional programmingArrivals, departures, transactionsObject-oriented programmingCustomers, lines, tellers, transactionsDesign – Comparing ApproachesFunctional approachTreat problem as a collection of functionsFunctions perform actionsThink of functions as verbsObject-oriented approachTreat problem as a collection of data objectsObjects are entities that exist that exist in problemThink of objects as nounsDesign – Comparing ApproachesAdvantages to object-oriented approachHelps to abstract problemSimpler high-level viewHelps to encapsulate dataHides details of internals of objectsCentralizes and protects all accesses to dataSeems to scale better for larger projectsIn practiceTend to use a combination of all approachesDesign – ComponentsComponents must work together easilyEach component requiresInterfaceHow component is accessedPre-conditionsWhat conditions are true before invocationPost-conditionsWhat conditions are true after invocationDesign – Interface & ConditionsFunction positivePower()Calculate xn for positive values of x & nInterfacepublic static float positivePower(float x, int n)Pre-conditionsx has positive floating point value > 0.0n has positive integer value  0Post-conditionsReturns xn if preconditions are metReturns –1.0 otherwiseAlgorithms and Data StructuresGoalSelect algorithms and data structures to implement each componentProblemsFunctionalityProvides desired abilitiesEfficiencyProvides desired performanceCorrectnessProvides desired resultsAlgorithms and Data StructuresExampleImplement list as array or linked listCoding and DebuggingGoalWrite actual code and ensure code worksProblemsChoosing programming languageFunctional designFortran, BASIC, Pascal, CObject-oriented designSmalltalk, C++, JavaUsing language featuresExceptions, streams, threadsTesting 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 practiceDocumentation and SupportGoalProvide information needed by users and technical maintenanceProblemsUser documentationHelp users understand how to use softwareTechnical documentationHelp coders understand how to modify, maintain softwareMaintenanceGoalKeep software working over timeProblemsFix errorsImprove featuresMeet changing specificationAdd new


View Full Document

UMD CMSC 132 - Software Life Cycle

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 Life Cycle
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 Life Cycle 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 Life Cycle 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?