Chapter 2. Problem Solving and Software Engineering

Slides:



Advertisements
Similar presentations
COMPSCI 105 S Principles of Computer Science 12 Abstract Data Type.
Advertisements

Chapter 10 THINKING IN OBJECTS 1 Object Oriented programming Instructor: Dr. Essam H. Houssein.
Object Oriented Design An object combines data and operations on that data (object is an instance of class) data: class variables operations: methods Three.
Design The goal is to design a modular solution, using the techniques of: Decomposition Abstraction Encapsulation In Object Oriented Programming this is.
Overview. Why data structures is a key course Main points from syllabus Survey Warmup program And now to get started...
1 SYSTEM and MODULE DESIGN Elements and Definitions.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
The Waterfall Model A Case Study
Chapter 1 Principles of Programming and Software Engineering.
Software Engineering Principles and C++ Classes
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
1 ES 314 Advanced Programming Lec 2 Sept 3 Goals: Complete the discussion of problem Review of C++ Object-oriented design Arrays and pointers.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
Data Structures and Programming.  John Edgar2.
Nyhoff, ADTs, Data Structures and Problem Solving with C++, Second Edition, © 2005 Pearson Education, Inc. All rights reserved Software.
Comp 245 Data Structures Software Engineering. What is Software Engineering? Most students obtain the problem and immediately start coding the solution.
Alyce Brady, Kalamazoo College Engineering = cost-effective solutions to practical problems by applying scientific knowledge in building things in service.
COP 3530 PROGRAM, FILE & DATA STRUCTURES Syllabus Syllabus Lab Information Lab Information Overrides Overrides Questions? Questions?
1 C++ Plus Data Structures Nell Dale Chapter 1 Software Engineering Principles Modified from the Slides made by Sylvia Sorkin, Community College of Baltimore.
Guided Notes Ch. 9 ADT and Modules Ch. 10 Object-Oriented Programming PHP support for OOP and Assignment 4 Term project proposal C++ and Java Designer.
1 Life Cycle of Software Specification Design –Risk Analysis –Verification Coding Testing –Refining –Production Maintenance.
Software Development. Software Developers Refresher A person or organization that designs software and writes the programs. Software development is the.
C++ Programming Language Lecture 2 Problem Analysis and Solution Representation By Ghada Al-Mashaqbeh The Hashemite University Computer Engineering Department.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 11 Slide 1 Design.
Programming Life Cycle Problem analysisunderstand the problem Requirements definition specify what program will do High- and low-level designhow it meets.
Data Structures Using C++1 Chapter 1 Software Engineering Principles and C++ Classes.
Design Concepts By Deepika Chaudhary.
Alyce Brady, Kalamazoo College Software Engineering Friday, Week 4.
Chapter 4 Data Abstraction: The Walls. © 2004 Pearson Addison-Wesley. All rights reserved4-2 Abstract Data Types Modularity –Keeps the complexity of a.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
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.
Data Structures Using C++ 2E
© 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.
Program Development Cycle
Software Engineering and Object-Oriented Design Topics: Solutions Modules Key Programming Issues Development Methods Object-Oriented Principles.
MNP1163/MANP1163 (Software Construction).  Minimizing complexity  Anticipating change  Constructing for verification  Reuse  Standards in software.
CSI 1340 Introduction to Computer Science II Chapter 1 Software Engineering Principles.
Chapter 1 Software Engineering Principles. Problem analysis Requirements elicitation Software specification High- and low-level design Implementation.
The Hashemite University Computer Engineering Department
Chapter 2 Principles of Programming and Software Engineering.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
Chapter 10 Software quality. This chapter discusses n Some important properties we want our system to have, specifically correctness and maintainability.
PROGRAMMING FUNDAMENTALS INTRODUCTION TO PROGRAMMING. Computer Programming Concepts. Flowchart. Structured Programming Design. Implementation Documentation.
Advanced Data Structures Lecture 1
Principles of Programming & Software Engineering
CSE 219 Final exam review.
CSC 222: Object-Oriented Programming
Software Design.
Data Abstraction: The Walls
CSC 222: Computer Programming II
System.
The Art of Programming --
C++ Plus Data Structures
CSCI-235 Micro-Computer Applications
DATA ABSTRACTION AND PROBLEM SOLVING WITH C++
Principles of Programming and Software Engineering
CSC 222: Object-Oriented Programming
About the Presentations
Figure 1.1 The life cycle of software as a water wheel that can rotate from one phase to any of phase.
Software Engineering Summarized Slides.
Figure 1.1 The life cycle of software as a water wheel that can rotate from one phase to any of phase.
Systems Design, Implementation, and Operation
Software Development Process
Object-Oriented and Classical Software Engineering Sixth Edition, WCB/McGraw-Hill, 2005 Stephen R. Schach
Chapter 1 Introduction(1.1)
The Programming Process
POWERPOINT PRESENTATION
Software Development Chapter 1.
Presentation transcript:

Chapter 2. Problem Solving and Software Engineering algorithms + data structures For efficient algorithm design, we need carefully design good data structures Software lifecycle Specification Design Coding (+ some degree of debugging) Testing Maintenance

Good solution Efficient Minimal cost Low resource requirement Fast running time Minimal cost Development time Coding, testing, etc Maintenance time Good algorithm Object oriented programming e.g., C++, JAVA

Procedural abstraction Separates the purpose of a module from its implementation details. Procedural abstraction Separates the purpose of a method (function) from its implementation details. Data abstraction Separates the operations of data from how you will implement them. Algorithms Data structures Abstract data type (ADT) A collection of data and a set of operations on the data Information hiding ~ abstraction Hides the implementation details of algorithms or data

Programming Issues Modularity Modifiability Ease of use Fail-safe programming Style Use of methods; use of private data files; error handling; readability; documentation Debugging

Figure 2.4 A structure chart showing the hierarchy of modules