Top-Down Design and Modular Development

Slides:



Advertisements
Similar presentations
Modular Design Using Subroutines (functions later)
Advertisements

Chapter 3: Modules, Hierarchy Charts, and Documentation
Summaries of brainstorm tutorials lesterk.myweb.port.ac.uk/inse/storms.
CSCE 121, Sec 200, 507, 508 Software Engineering Fall 2010 Prof. Jennifer L. Welch.
Object-Oriented Metrics. Characteristics of OO ● Localization ● Encapsulation ● Information hiding ● Inheritence ● Object abstraction.
Chapter 2: Developing a Program Extended and Concise Prelude to Programming Concepts and Design Copyright © 2003 Scott/Jones, Inc.. All rights reserved.
Programming Fundamentals (750113) Ch1. Problem Solving
Chapter 1 Program Design
Program Design Divide and Conquer –Divide the program into separate tasks Functional Decomposition Top-Down Design –Divide an overall problem into discrete.
Chapter 8: Introduction to High-Level Language Programming Invitation to Computer Science, C++ Version, Fourth Edition.
Introduction to Methods
OBJECT ORIENTED PROGRAMMING IN C++ LECTURE
1 Object Oriented Programming Computer Systems Engineering (D2) and Programming (P)
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
INTRODUCTION TO PROGRAMMING STRUCTURE Chapter 4 1.
GENERAL CONCEPTS OF OOPS INTRODUCTION With rapidly changing world and highly competitive and versatile nature of industry, the operations are becoming.
Simple Program Design Third Edition A Step-by-Step Approach
สาขาวิชาเทคโนโลยี สารสนเทศ คณะเทคโนโลยีสารสนเทศ และการสื่อสาร.
Programming 1 1. Introduction to object oriented programming and problem-solving.
Program Design CMSC 201. Motivation We’ve talked a lot about certain ‘good habits’ we’d like you guys to get in while writing code. There are two main.
The Program Development Cycle
Modular Programming. Modular Programming (1/6) Modular programming  Goes hand-in-hand with stepwise refinement and incremental development  Makes the.
Copyright © 2009 Pearson Education, Inc. Publishing as Pearson Addison-Wesley STARTING OUT WITH Python Python First Edition by Tony Gaddis Chapter 3 Simple.
Copyright © 2008 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Starting Out with Programming Logic & Design First Edition by Tony Gaddis.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Flowcharts.
Introduction Complex and large SW. SW crises Expensive HW. Custom SW. Batch execution Structured programming Product SW.
Top-Down Design and Modular Development. The process of developing methods for objects is mostly a process of developing algorithms; each method is an.
An Object-Oriented Approach to Programming Logic and Design Fourth Edition Chapter 6 Using Methods.
Software Basics. Some Pioneers Charles Babbage Analytical Engine Countess Ada Lovelace First Programmer ? John Von Neumann storing instructions in memory.
Design & Analysis of Algorithms Lecture 1 Introduction.
Chapter 1 Program design Objectives To describe the steps in the program development process To introduce the current program design methodology To introduce.
Program Development Cycle Modern software developers base many of their techniques on traditional approaches to mathematical problem solving. One such.
CS Data Structures I Chapter 2 Principles of Programming & Software Engineering.
CMSC 104, Version 8/061L17Top-DownDesign.ppt Top-Down Design Topics Top-Down Design Top-Down Design Examples The Function Concept Reading Sections 3.1.
Alice 2.0 an introduction to computer programming.
Chapter 8: Introduction to High-level Language Programming Invitation to Computer Science, C++ Version, Third Edition.
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.
Chapter 8 First steps in modularisation. Objectives To introduce modularisation as a means of dividing a problem into subtasks To present hierarchy charts.
Learners Support Publications Object Oriented Programming.
KIC/Computer Programming & Problem Solving 1.  Introduction  Program Modules in C  Math Library Functions  Functions  Function Definitions  Function.
L061 Algorithms, Part 3 of 3 Topics Top down-design Structure charts Reading Sections , 3.3.
The Art of Programming. The process of breaking problems down into smaller, manageable parts By breaking the problem down, each part becomes more specific.
Computing Higher – SD Unit - Topic 8 – Procedure and Standard Algorithms P Lynch, St Andrew’s High School Unit 2 Software Development Process Topic.
Introduction to OOP CPS235: Introduction.
Introduction to Functions CSIS 1595: Fundamentals of Programming and Problem Solving 1.
Chapter 2 Principles of Programming and Software Engineering.
Program Design. Simple Program Design, Fourth Edition Chapter 1 2 Objectives In this chapter you will be able to: Describe the steps in the program development.
1 Structured Programming Arab Academy for Science and Technology CC112 Dr. Sherif Mohamed Tawfik The Course.
Introduction to Computer Programming Concepts M. Uyguroğlu R. Uyguroğlu.
CSC 421: Algorithm Design & Analysis
Computational Thinking, Problem-solving and Programming: General Principals IB Computer Science.
Visit for more Learning Resources
CMSC201 Computer Science I for Majors Lecture 15 – Program Design
CMSC201 Computer Science I for Majors Lecture 15 – Program Design
CMSC201 Computer Science I for Majors Lecture 11 – Program Design
CSC 421: Algorithm Design & Analysis
©2016 Pearson Education, Inc., Hoboken, NJ. All rights reserved.
Chapter 8: Introduction to High-Level Language Programming
CAPE INFORMATION TECHNOLOGY
Starting Out with Programming Logic & Design
Chapter 4 void Functions
MSIS 655 Advanced Business Applications Programming
Need for the subject.
Authors: Barry Smyth, Mark T. Keane, Padraig Cunningham
Starting Out with Programming Logic & Design
CAPE INFORMATION TECHNOLOGY
CAPE INFORMATION TECHNOLOGY
Algorithms, Part 3 of 3 Topics Top down-design Structure charts
Top-Down Design & JSP Skill Area Part D
CMSC201 Computer Science I for Majors Lecture 12 – Program Design
Presentation transcript:

Top-Down Design and Modular Development

It’s hard to solve big problems. It’s easier to solve small problems than it is to solve big ones. It’s hard to solve big problems.

It’s easier to solve small problems than it is to solve big ones. Computer programmers use a divide and conquer approach to problem solving: a problem is broken into parts those parts are solved individually the smaller solutions are assembled into a big solution These techniques are known as top-down design and modular development.

Top-Down Design Top-down design is the process of designing a solution to a problem by systematically breaking a problem into smaller, more manageable parts.

Top-Down Design First, start with a clear statement of the problem or concept – a single big idea.

Top-Down Design Next, break it down into several parts.

Top-Down Design Next, break it down into several parts. If any of those parts can be further broken down, then the process continues…

Top-Down Design … and so on.

Top-Down Design … and so on. The final design might look something like this organizational chart, showing the overall structure of separate units that form a single complex entity.

Top-Down Design An organizational chart is like an upside down tree, with nodes representing each process.

Top-Down Design An organizational chart is like an upside down tree, with nodes representing each process. The leaf nodes are those at the end of each branch of the tree.

Top-Down Design The leaf nodes represent modules that need to be developed and then recombined to create the overall solution to the original problem. Top-down design leads to modular development.

Modular Development Modular development is the process of developing software modules individually…

Modular Development Modular development is the process of developing software modules individually… …then combining the modules to form a solution to an overall problem.

Modular Development Modular development of computer software: makes a large project more manageable is faster for large projects leads to a higher quality product makes it easier to find and correct errors increases the reusability of solutions

Modular Development … makes a large project more manageable. Smaller and less complex tasks are easier to understand than larger ones and are less demanding of resources.

Modular Development … is faster for large projects. Different people can work on different modules, and then put their work together. This means that different modules can be developed at the same time, which speeds up the overall project.

Modular Development …leads to a higher quality product. Programmers with knowledge and skills in a specific area, such as graphics, accounting, or data communications, can be assigned to the parts of the project that require those skills.

Modular Development …makes it easier to find and correct errors. Often, the hardest part of correcting an error in computer software is finding out exactly what is causing the error. Modular development makes it easier to isolate the part of the software that is causing trouble.

Modular Development … increases the reusability of solutions. Solutions to smaller problems are more likely to be useful elsewhere than solutions to bigger problems. They are more likely to be reusable code.

Modular Development Reusable code makes programming easier because you only need to develop the solution to a problem once; then you can call up that code whenever you need it. Most computer systems are filled with layers of short programming modules that are constantly reused in different situations.

Modular Development Modules developed as part of one project, can be reused later as parts of other projects, modified if necessary to fit new situations. Over time, libraries of software modules for different tasks can be created. Libraries of objects can be created using object-oriented programming languages.

Modular Development