J. Michael Moore Software Design CSCE 110 Influenced by material developed by James Tam & Jennifer Welch.

Slides:



Advertisements
Similar presentations
1 ICS102: Introduction To Computing King Fahd University of Petroleum & Minerals College of Computer Science & Engineering Information & Computer Science.
Advertisements

COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
©Brooks/Cole, 2003 Chapter 10 Software Engineering.
Chapter 3: Modularization
Communication between modules, cohesion and coupling
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
ALGORITHMS THIRD YEAR BANHA UNIVERSITY FACULTY OF COMPUTERS AND INFORMATIC Lecture two Dr. Hamdy M. Mousa.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
James Tam Problem Solving How to visualize/picture/quantify non-trivial problems and derive solution.
James Tam Breaking Problems Down This section of notes shows you how to break down a large problem into smaller modules that are easier to implement and.
James Tam Breaking Problems Down This section of notes shows you how to break down a large programming problem into smaller modules that are easier to.
James Tam Breaking Problems Down This section of notes shows you how to break down a large problem into smaller parts that are easier to implement and.
CSCE 121, Sec 200, 507, 508 Software Engineering Fall 2010 Prof. Jennifer L. Welch.
James Tam A High-Level Model For Software Development What is involved in the process of designing, writing and maintaining computer programs?
James Tam Breaking Problems Down This section of notes shows you how to break down a large problem into smaller modules that are easier to implement and.
James Tam Functions: Decomposition And Code Reuse (Part I) This section of notes shows you how to write functions that can be used to: decompose large.
J. Michael Moore Introduction to Computer Science CSCE 110.
James Tam Breaking Problems Down This section of notes shows you how to break down a large programming problem into smaller modules that are easier to.
James Tam Introduction To Problem Solving This section will focus on problem solving strategies.
J. Michael Moore Software Design CSCE 110 Influenced by material developed by James Tam & Jennifer Welch.
James Tam Breaking Problems Down This section of notes shows you how to break down a large problem into smaller modules that are easier to implement and.
James Tam Programming: Part II In this section of notes you will learn about more advanced programming concepts such as looping, functions.
James Tam Breaking Problems Down This section of notes shows you how to break down a large programming problem into smaller modules that are easier to.
CS 201 Functions Debzani Deb.
Modules, Hierarchy Charts, and Documentation
James Tam Breaking Problems Down This section of notes shows you how to break down a large problem into smaller modules that are easier to implement and.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
James Tam Problem Decomposition This section of notes shows you how to break down a large problem into smaller parts that are easier to implement and manage.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
Working With Money Yorubah Banks.  Content Area: Mathematics  Grade Level: Grade 2  Summary: The purpose of this power point is to give the students.
Chapter 2: Developing a Program Prelude to Programming Concepts and Design Copyright © 2001 Scott/Jones, Inc.. All rights reserved. 1 Chapter 2 Developing.
James Tam Breaking Problems Down This section of notes shows you how to break down a large programming problem into smaller modules that are easier to.
Simple Program Design Third Edition A Step-by-Step Approach
Invitation to Computer Science, Java Version, Second Edition.
Algorithms and their Applications CS2004 ( ) Dr Stephen Swift 1.2 Introduction to Algorithms.
First Steps in Modularization Simple Program Design Third Edition A Step-by-Step Approach 8.
Developing an Algorithm
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
I Power Higher Computing Software Development The Software Development Process.
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
Introduction to Programming with RAPTOR
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
Chapter 10 Software Engineering. Understand the software life cycle. Describe the development process models. Understand the concept of modularity in.
The Software Development Process
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
First Steps in Modularization. Simple Program Design, Fourth Edition Chapter 8 2 Objectives In this chapter you will be able to: Introduce modularization.
Chapter 3 Top-Down Design with Functions Part II J. H. Wang ( 王正豪 ), Ph. D. Assistant Professor Dept. Computer Science and Information Engineering National.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Algorithms CS280 – 10/20/05. Announcement  Part 1 of project 2 due.  Read chapters 10, 7 for this unit  Tuesday we will also be in the classroom We.
The Hashemite University Computer Engineering Department
Agenda  Take up homework  Loops - Continued –For loops Structure / Example involving a for loop  Storing Characters in variables  Introduction to Functions.
The single most important skill for a computer programmer is problem solving Problem solving means the ability to formulate problems, think creatively.
Chapter 2 Principles of Programming and Software Engineering.
Computer Science: A Structured Programming Approach Using C1 Objectives ❏ To design and implement programs with more than one function ❏ To be able to.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
How Computers Solve Problems Computers also use Algorithms to solve problems, and change data into information Computers can only perform one simple step.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
CSE 110: Programming Language I Matin Saad Abdullah UB 404.
Software Design and Development Development Methodoligies Computing Science.
Problem Solving Techniques for visualizing non-trivial problems and coming up with solutions.
AP CSP: Creating Functions & Top-Down Design
Topic: Introduction to Computing Science and Programming + Algorithm
Problem Solving How to visualize/picture/quantify non-trivial problems and derive solution.
Problem Solving How to visualize/picture/quantify non-trivial problems and derive solution.
Chapter 4 Functions Objectives
Problem Solving How to visualize/picture/quantify non-trivial problems and derive solution.
Problem Solving How to visualize/picture/quantify the problem and the solution.
Problem Solving How to visualize/picture/quantify the problem and the solution.
Presentation transcript:

J. Michael Moore Software Design CSCE 110 Influenced by material developed by James Tam & Jennifer Welch

J. 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 Development

J. 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 Moore Software _________________ 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 ____________________________________ requirements

J. Michael Moore Software Development What you should do in this class. What many of you will probably end up doing that will be reflected in your grades. Activities in the lifetime of a piece of software _____________________________________

J. Michael Moore Why Use Modular Decomposition Benefits 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 __________ levels

J. Michael Moore Top Down Design 1.Outline the _________ parts (_____________) 2._____________ the solution for each part My autobiography Chapter 1: The humble beginnings Chapter 2: My rise to greatness … Chapter 1: The humble beginnings It all started seven and one score years ago with a log-shaped work station…

J. Michael Moore Top-Down Approach: Breaking Down A Large Problem Figure extracted from Computer Science Illuminated by Dale N. and Lewis J. General approach Approach to part of problem Specific steps of the solution Abstract/ General Particular Top Bottom Approach to part of problem Specific steps of the solution

J. Michael Moore Modules 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 Moore Modules 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 B

J. Michael Moore Modules What should be made into a module? A relatively _________________ piece of code that accomplishes a ______________________ task.

J. Michael Moore Design: 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 Moore Example 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 Moore Top Down Approach: Breaking A Programming Problem Down Into Parts (Modules) ___________________ _______________________________________________

J. Michael Moore Making Change (Paraphrased from the book “Pascal: An introduction to the Art and Science of Programming” by Walter J. Savitch. Problem statement: Design a program to make change. Given an amount of money, the program will indicate how many quarters, dimes and pennies are needed. The cashier is able to determine the change needed for values of a dollar and above. Actions that may be needed: Action 1: Prompting for the amount of money Action 2: Computing the combination of coins needed to equal this amount Sub-action 2A: Compute the number of quarters to be given out. Sub-action 2B: Compute the number of dimes to be given out Sub-action 2C: Compute the number of pennies to be given out. Action 3: Output: Display the number of coins needed

J. Michael Moore Structure Diagram Of The Modules ___________ Change program (main) ______________ ______ ________ _____ _______ ________ _____ _______ ______

J. Michael Moore Structure Diagram Of The Modules __________ Change program (main) _____________ ______ ________ _____ _______ ________ _____ _______ ______________ __________ _____ ______ __________ ________ __________ _______ ______