The Whole and the Parts Chapter 13. Top-Down Design Top-Down design helps in the following ways. 1. Clarity of structure and representation makes the.

Slides:



Advertisements
Similar presentations
Design Constraints By: Tuan Ha Cohort: MCIS 21 Class: MISS 470.
Advertisements

P5, M1, D1.
Coding and Debugging. Requirements and Specification Recall the four steps of problem solving: Orient, Plan, Execute, Test Before you start the implementation.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
Copyright © 2002 W. A. Tucker1 Chapter 1 Lecture Notes Bill Tucker Austin Community College COSC 1315.
Chapter 29: Integration Jacob Harper. The Integration Approach The order of adding components to a system is crucial Benefits to careful integration –
Chapter 2 - Problem Solving
Chapter 2 - Problem Solving
© Janice Regan, CMPT 102, Sept CMPT 102 Introduction to Scientific Computer Programming The software development method algorithms.
Debugging Introduction to Computing Science and Programming I.
Concepts of Version Control A Technology-Independent View.
The Unified Software Development Process - Workflows Ivar Jacobson, Grady Booch, James Rumbaugh Addison Wesley, 1999.
1 CSE1301 Computer Programming: Lecture 15 Flowcharts and Debugging.
Requirements Analysis Lecture #3 David Andrews
Modules, Hierarchy Charts, and Documentation
1 CSE1301 Computer Programming: Lecture 15 Flowcharts, Testing and Debugging.
Compilers and Interpreters. Translation to machine language Every high level language needs to be translated to machine code There are different ways.
COBOL for the 21 st Century Stern, Stern, Ley Chapter 1 INTRODUCTION TO STRUCTURED PROGRAM DESIGN IN COBOL.
Chapter Accreditation Online System Usage Tutorial Department of Member Relations & Grants National Children’s Alliance.
The Project AH Computing. Functional Requirements  What the product must do!  Examples attractive welcome screen all options available as clickable.
Lesson 4 Computer Software
Introduction to High-Level Language Programming
Structured COBOL Programming, Stern & Stern, 9th edition
Testing. Definition From the dictionary- the means by which the presence, quality, or genuineness of anything is determined; a means of trial. For software.
Managing the development and purchase of information systems (Part 1)
Prologue: The Software Process. Main Phases of Software Process 1. Requirements Analysis (answers “WHAT?”) Specifying what the application must do 2.
Simple Program Design Third Edition A Step-by-Step Approach
1 Introduction to Testing CIS*2450 Advanced Programming Concepts Based on “The Practice of Programming” by Brian W. Kernighan and Rob Pike, 1999.
Standard Grade Computing SYSTEM SOFTWARE CHAPTER 19.
1 Debugging and Testing Overview Defensive Programming The goal is to prevent failures Debugging The goal is to find cause of failures and fix it Testing.
Algorithms and Programming
School of Computer Science & Information Technology G6DICP - Lecture 9 Software Development Techniques.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Flowcharts.
Computing Essentials 2014 Programming and Languages © 2014 by McGraw-Hill Education. This proprietary material solely for authorized instructor use. Not.
Oct 15, 2007Sprenkle - CS1111 Objectives Creating your own functions.
Programming for Beginners Martin Nelson Elizabeth FitzGerald Lecture 5: Software Design & Testing; Revision Session.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Chapter 22 Developer testing Peter J. Lane. Testing can be difficult for developers to follow  Testing’s goal runs counter to the goals of the other.
IXA 1234 : C++ PROGRAMMING CHAPTER 1. PROGRAMMING LANGUAGE Programming language is a computer program that can solve certain problem / task Keyword: Computer.
Design Concepts By Deepika Chaudhary.
BMTRY 789 Lecture 11: Debugging Readings – Chapter 10 (3 rd Ed) from “The Little SAS Book” Lab Problems – None Homework Due – None Final Project Presentations.
Modularity Computer Science 3. What is Modularity? Computer systems are organized into components called modules. The extent to which this is done is.
Developer Best Practices R.SANTHANA GOPALAN. Developer Best Practices What is Workspace ? The directory where the developer edit the source files, compile,
Chapter 5 How are software packages developed?. What are the main steps in software project development? Writing Specifications - Analysis Phase Developing.
The Hashemite University Computer Engineering Department
Chapter 2 - VB 2005 by Schneider- modified by S. Jane '081 Chapter 2 - Problem Solving 2.1 Program Development Cycle 2.2 Programming Tools.
04/02/ Procedures Top-down approach / Stepwise Refinement & Sub Procedures.
Version Control and SVN ECE 297. Why Do We Need Version Control?
VIRUSES AND SECURITY  In an information-driven world, individuals and organization must manage and protect against risks such as viruses, which are spread.
Integrating the Code during the Development Alexander Vakrilov Telerik Corporation
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
1 Taking Notes. 2 STOP! Have I checked all your Source cards yet? Do they have a yellow highlighter mark on them? If not, you need to finish your Source.
1 CSE1301 Computer Programming: Lecture 16 Flow Diagrams and Debugging.
Chapter 7: Delivery, Installation, and Documentation Ronald J. Leach Copyright Ronald J. Leach, 1997, 2009, 2014,
Your current Moodle 1.9 Minimum Requirements Ability to do a TEST RUN! Upgrading Moodle to Version 2 By Ramzan Jabbar Doncaster College for the Deaf By.
Software Development. The Software Life Cycle Encompasses all activities from initial analysis until obsolescence Analysis of problem or request Analysis.
Free Electrons. Kernel, drivers and embedded Linux development, consulting, training and support. http//free-electrons.com Participate! During the lectures...
Software Development.
Sample Wiki Comments?.
Problem Identification
How to access your work from home or another computer
Call to Fix HP Printer Installation Error Code 1603
Bryan Burlingame 26 September 2018
Systems Design, Implementation, and Operation
Download Documents from HFM
Debugging at Scale.
CSE 303 Concepts and Tools for Software Development
Bryan Burlingame 6 March 2019
Review of Previous Lesson
Training Presentation For
Presentation transcript:

The Whole and the Parts Chapter 13

Top-Down Design Top-Down design helps in the following ways. 1. Clarity of structure and representation makes the precise statement of requirements and functions of the modules easier 2. Partitioning and independence of modules avoids system bugs 3. Suppression of detail makes flaws in the structure more apparent 4. The design can be tested at each of its refinement steps, so testing can start earlier and focus on the proper level of detail for each step

Keeping the big picture in mind One wants to think about control structures of a system as control structures, not as individual branch statements One wants to think about control structures of a system as control structures, not as individual branch statements

!GOTO GO TO, produces structures that lend themselves to logical errors. – Dijkstra GO TO, produces structures that lend themselves to logical errors. – Dijkstra Just don’t do it Just don’t do it

Useful debugging tips (for large scale debugging) The prep work at your desk should usually take about as long as the debugging at the computer. The prep work at your desk should usually take about as long as the debugging at the computer. About half the time is typically updating the debugging log and filling updated program listings in the system notebook, explaining strange phenomena (documentation) About half the time is typically updating the debugging log and filling updated program listings in the system notebook, explaining strange phenomena (documentation)

Debugging Warning: Debugging takes a LONG TIME. Warning: Debugging takes a LONG TIME. Build Scaffolding Build Scaffolding Dummy Components –Faked data & small test cases Miniature File – ie. When search testing a file, use a small one to save time Auxilary Programs – Creates test data, shows special analysis. Note: It’s not uncommon for Scaffolding to take up 1/3 of the total code written.

Control Changes Appoint a dictator Appoint a dictator Playpen copies Playpen copies Backed up latest working version (used for testing) One copy under test, with fixes being installed Add one component at a time Add one component at a time Use common sense “To do it requires dummies and other scaffolding, and that takes work. And after all, perhaps all that work won’t be needed? Perhaps there are no bugs? No! Resist the temptation!”

Quantize Updates Testing updated components should take less time than testing new components, but still needs to be done. Testing updated components should take less time than testing new components, but still needs to be done. Changes should be done in the exact manner of anti-virus updates. Small changes all the time, or big changes every once and a while. Changes should be done in the exact manner of anti-virus updates. Small changes all the time, or big changes every once and a while.

Extra THINK ABOUT WHAT YOU WRITE THINK ABOUT WHAT YOU WRITE

Das Ende Fragen? Fragen? Goto: thedailywtf.com