J. Michael MooreSoftware DesignCSCE 110Influenced by material developed by James Tam & Jennifer WelchJ. Michael Moore• Activities in the lifetime of a piece of software• _____________________________________• _____________________________________• _____________________________________• _____________________________________• _____________________________________• The phases are _____________________________________.• There __________________________between the different activities.• Often you have ___________________________of a previous phase.• Different models and approaches• ____________________• ____________________• ____________________• ____________________Software DevelopmentJ. Michael Moore_______________________________________• Identify the _____________________ and what the system _________ (and ________________) do.• ___________ and ___________ requirements• The resulting set of _________ describe the ___________• (e.g., data must not be available to unauthorized people).• Convert into ____________________________________• (e.g., 10 character passwords).J. Michael MooreSoftware _________________• Break system into ___________ ________, or _________.• ______________________________ is key to the ability to create large systems.J. Michael Moore_______________________• Write the __________. (most of what we do in this course)J. Michael Moore____________________• Test each _________________.• Test the _______________________(_______________ testing).• Make sure _______________________________ is tested.J. Michael Moore___________________________________• ________________ the software• _______________• ________ bugs• Modify ____________________________________requirementsJ. Michael MooreSoftware DevelopmentWhat you should do in this class.What many of you will probably end up doingthat will be reflected inyour grades.• Activities in the lifetime of a piece of software• _____________________________________• _____________________________________• _____________________________________• _____________________________________• _____________________________________J. Michael MooreWhy Use Modular DecompositionBenefits of __________________________(i.e. breaking things into modules):• _________________________ - concentrate on one task at a time• Saves ________________if the same (or similar) code needs to be _________________.• Helps programmer see ____________________aspects of the code so the solution is easier to __________________.• Easier to ________ the program• Easier to ________(if modules are _____________, then ________in one module should not _______________ other modules)Drawback• _______________ – understanding and setting up inter-module communication may appear daunting at first• __________________the program may appear harder as execution appears to “__________” around between modules.J. Michael Moore_______________ design• Start by identifying _________ _________ at the __________ level and then _____________ them to solve the main problem.• Disadvantages:—how do you know the required __________________ initially?—Trying to address ______________ of a large problem all at once may prove to be _______________.• Advantage:—favors ______________ existing _________.J. Michael Moore_____________ design• Start with _______ level idea of solution, and ______________ ____________ it.• Favors ________________________ organization, with __________ inside _____________.• Advantage:—__________ and ____________ the problem• Disadvantage: —design ____________ made at ________ levels are ______________ for __________ levelsJ. Michael MooreTop Down Design1. Outline the _________ parts (_____________)2. _____________ the solution for each partMy autobiographyChapter 1: The humble beginningsChapter 2: My rise to greatness…Chapter 1: The humble beginningsIt all started seven and one score years ago with a log-shaped work station…J. Michael MooreTop-Down Approach: Breaking Down A Large ProblemFigure extracted from Computer Science Illuminated by Dale N. and Lewis J.General approachApproach to part of problemSpecific steps of the solutionAbstract/GeneralParticularTopBottomApproach to part of problemApproach to part of problemSpecific steps of the solutionSpecific steps of the solutionSpecific steps of the solutionJ. Michael MooreModules• Information that is _______ between _______ module A and _____module B with ___________________ and ___________________.• Some modules we have already seen• writeln• readln• trunc• sqrt• Types of modules that can be implemented in Pascal• _______________• _______________• Places you’ll see _______________ and _______________ referenced• _____________: This is where the ________ for the _____________are _________• ________: This is where the __________ is _________________ to run, i.e. where _____________ of the module ______________J. Michael MooreModules• Modules can ___________ other modules:• Modules A includes a __________ to _________ module B• When ____________of A reaches the __________, __________is _____________ to the ________________ of B• The _______________of B are _____________ until the __________of B• __________________is _______________________ back to A, just ___________________the _____________ to BJ. Michael MooreModules• What should be made into a module?• A relatively _________________ piece of code that accomplishes a ______________________task.J. Michael MooreDesign: Finding _______________ Modules• The process of going from a __________ ______________(________ that ____________ what a program is ___________ to do) to writing a program that ___________those requirements cannot be _________________ in just a series of steps that fit ______ __________________.• The first step is to look at _________ either directly in the __________ ______________ (indicates what __________the program should entail) or those which can be ________from the __________ ______________ .• Each ________ may be _______________ as a module but ________ ________ may have to be ____________ further into several additional modules (i.e. sub-modules).J. Michael MooreExample Problem• Design a program that will perform a simple interest calculation.• The program should prompt the user for the appropriate values, perform the calculation and display the values onscreen.J. Michael MooreTop Down
View Full Document