Revised: Aug 1, 20141 ECE Embedded System Design Lesson 8 Structured Programming 12/16/2015.

Slides:



Advertisements
Similar presentations
1 Integration Testing CS 4311 I. Burnstein. Practical Software Testing, Springer-Verlag, 2003.
Advertisements

10 Software Engineering Foundations of Computer Science ã Cengage Learning.
1 Software Design Introduction  The chapter will address the following questions:  How do you factor a program into manageable program modules that can.
Lecture Set 3E Introduction Basic Software Development Issues 1. Notes on Software Development 2. Intro to Software Development Tools 7/31/2008 2:43PM.
Programming Logic and Design Fourth Edition, Introductory
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
IS 460 Notes Documenting a System Analysis with Dataflow Diagrams By Thomas Hilton.
What is Software Design?  Introduction  Software design consists of two components, modular design and packaging.  Modular design is the decomposition.
Copyright Irwin/McGraw-Hill Software Design Prepared by Kevin C. Dittman for Systems Analysis & Design Methods 4ed by J. L. Whitten & L. D. Bentley.
Software Design Deriving a solution which satisfies software requirements.
CMSC 345, Version 11/07 SD Vick from S. Mitchell Software Testing.
Chapter 2- Visual Basic Schneider
© Copyright 2011 John Wiley & Sons, Inc.
©The McGraw-Hill Companies, Inc. Permission required for reproduction or display. 4 th Ed Chapter Software Development Software Life Cycle UML Diagrams.
Structured Programming structured programming: A technique for organizing and coding computer programs in which a hierarchy of modules is used, each having.
Jump to first page 1 System Design (Finalizing Design Specifications) Chapter 3d.
PowerPoint Presentation for Dennis & Haley Wixom, Systems Analysis and Design Copyright 2000 © John Wiley & Sons, Inc. All rights reserved. Slide 1 Key.
Illinois Institute of Technology
Software Engineering Principles and C++ Classes
Chapter 2: Developing a Program Extended and Concise Prelude to Programming Concepts and Design Copyright © 2003 Scott/Jones, Inc.. All rights reserved.
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
1 These courseware materials are to be used in conjunction with Software Engineering: A Practitioner’s Approach, 5/e and are provided with permission by.
Outline Types of errors Component Testing Testing Strategy
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
BY RAJESWARI S SOFTWARE TESTING. INTRODUCTION Software testing is the process of testing the software product. Effective software testing will contribute.
Copyright © 2007 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and.
DCT 1123 PROBLEM SOLVING & ALGORITHMS INTRODUCTION TO PROGRAMMING.
Chapter 2: Developing a Program Prelude to Programming Concepts and Design Copyright © 2001 Scott/Jones, Inc.. All rights reserved. 1 Chapter 2 Developing.
Chapter 9 Moving to Design. The Structured Approach To Designing The Application Architecture Module-an identifiable component of a computer program that.
PHASE 4 SYSTEMS IMPLEMENTATION Application Development SYSTEMS ANALYSIS & DESIGN.
Extended Prelude to Programming Concepts & Design, 3/e by Stewart Venit and Elizabeth Drake Chapter 2: Developing a Program.
หลักการโปรแกรม เพื่อแก้ปัญหาโดยใช้คอมพิวเตอร์
Understand Application Lifecycle Management
Designing and Debugging Batch and Interactive COBOL Programs Chapter 5.
Software Life Cycle Requirements and problem analysis. –What exactly is this system supposed to do? Design –How will the system solve the problem? Coding.
CSC 395 – Software Engineering Lecture 13: Object-Oriented Analysis –or– Let the Pain Begin (At Least I’m Honest!)
1 C++ Plus Data Structures Nell Dale Chapter 1 Software Engineering Principles Modified from the Slides made by Sylvia Sorkin, Community College of Baltimore.
SE: CHAPTER 7 Writing The Program
© 2011 Pearson Addison-Wesley. All rights reserved. Addison Wesley is an imprint of Stewart Venit ~ Elizabeth Drake Developing a Program.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
Systems analysis and design, 6th edition Dennis, wixom, and roth
Chapter 7 Software Engineering Introduction to CS 1 st Semester, 2015 Sanghyun Park.
PowerPoint Presentation for Dennis, Wixom, & Roth Systems Analysis and Design, 3rd Edition Copyright 2006 © John Wiley & Sons, Inc. All rights reserved.
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
ECE450 - Software Engineering II1 ECE450 – Software Engineering II Today: Introduction to Software Architecture.
Software Design Process
Chapter 8 First steps in modularisation. Objectives To introduce modularisation as a means of dividing a problem into subtasks To present hierarchy charts.
1 5.4 Modular Design Top-Down Design Structured Programming Advantages of Structured Programming.
The Art of Programming. The process of breaking problems down into smaller, manageable parts By breaking the problem down, each part becomes more specific.
Software Engineering Saeed Akhtar The University of Lahore.
Topic 4 - Database Design Unit 1 – Database Analysis and Design Advanced Higher Information Systems St Kentigern’s Academy.
Software Engineering Issues Software Engineering Concepts System Specifications Procedural Design Object-Oriented Design System Testing.
How Are Computers Programmed? CPS120: Introduction to Computer Science Lecture 5.
The Hashemite University Computer Engineering Department
Problem-solving with Computers. 2Outline  Computer System  5 Steps for producing a computer program  Structured program and programming  3 types of.
CMSC 2021 Software Development. CMSC 2022 Software Development Life Cycle Five phases: –Analysis –Design –Implementation –Testing –Maintenance.
SYSTEM ANALYSIS AND DESIGN SAFAA S.Y. DALLOUL. DESIGN THE PROGRAM.
Alexandria University Faculty of Science Computer Science Department Introduction to Programming C++
An Introduction to UML COMS 103 section 4 11 January, 1999.
Chapter 2- Visual Basic Schneider1 Chapter 2 Problem Solving.
Software Testing.
Roberta Roth, Alan Dennis, and Barbara Haley Wixom
C++ Plus Data Structures
Systems Analysis and Design
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Problem Solving Techniques
Programming Languages
Chapter 2- Visual Basic Schneider
SYSTEMS ANALYSIS & DESIGN
Presentation transcript:

Revised: Aug 1, ECE Embedded System Design Lesson 8 Structured Programming 12/16/2015

Revised: Aug 1, Overview - Structured Design If this worth my time - a parable The “divide-and-conquer” technique Requirements Partitioning - “The Black Box” Structure Chart Pseudo (Fake) Code Implementation Techniques Testing Techniques Documentation Unified Modeling Language (UML) 12/16/2015

Revised: Aug 1, If this worth my time - a parable Long, long ago in a graduate program far, far away… –needed to learn C –couldn’t pass entrance quiz –took prereq course is Pascal –course was supposed to be Pascal & data structures discussed structured design techniques!? –my view changed! 12/16/2015

Revised: Aug 1, The “divide-and-conquer” technique Paper writing/Book writing –Solid outline allows “big picture” view –Write project a paragraph at a time Use same technique in SW/HW design – divide project into understandable, doable pieces –A.K.A.: top-down-design, bottom-up- implementation... 12/16/2015

Revised: Aug 1, Requirements Overall goal of structured design is to provide tools to transform system requirements into a plan into implement a system Your responsibility to ensure you understand requirements –iterative process with customer 12/16/2015

Revised: Aug 1, Partitioning - “The Black Box” Break a large, complex system into a hierarchical description of “black boxes” –“black box”: small definable pieces know inputs, outputs, general details of function –define relationship between “black boxes” use a graphical tools relationship Structure Chart provides big picture 12/16/2015

Revised: Aug 1, Structure Chart 12/16/2015

Revised: Aug 1, Pseudo (Fake) Code Once hierarchy is defined begin working out details of black box. Develop functional relationship between the boxes’ inputs and outputs Use pseudocode to defer details –not trying to avoid details –defer until higher level details worked out 12/16/2015

Revised: Aug 1, Implementation Techniques Incremental Approach - get a little bit working at a time Top-down: implement top module (e.g. menu software) –lower level code simulated with stubs (empty modules) Bottom-up: implement module at lowest level. –Higher level code simulated with drivers Hybrid: use of mixture of both techniques and meet in the middle 12/16/2015

Revised: Aug 1, Testing Techniques Compile time errors Run Time errors Everything is O.K. except project completed to incorrect requirements!!! Test Plan 12/16/2015

Revised: Aug 1, Documentation External documentation - support information –Structure Chart Internal documentation –Comments –Self-documenting code - wise choice of variable, function names –Program Formatting - “pretty printing” - use blank spaces to help illustrate the control structure of the program 12/16/2015

Revised: Aug 1, Unified Modeling Language (UML) Standardized set of graphical tools to model a complex system prior to implementation –fundamental property -- communication! Used to describe object-oriented design Activity Diagram -- UML-compliant flow chart 12/16/2015

Revised: Aug 1, Unified Modeling Language (UML) 12/16/2015