1 / 30

CS2006 - Data Structures I

CS2006 - Data Structures I. Chapter 2 Principles of Programming & Software Engineering. Topics. Modular Design Concepts Abstraction OO Design Encapsulation Inheritance Polymorphism Top Down Design Structure Chart. My interior design is using Cylinder brakes or Drum brakes.

Download Presentation

CS2006 - Data Structures I

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS2006 - Data Structures I Chapter 2 Principles of Programming & Software Engineering

  2. Topics • Modular Design Concepts • Abstraction • OO Design • Encapsulation • Inheritance • Polymorphism • Top Down Design • Structure Chart

  3. My interior design is using Cylinder brakes or Drum brakes Push the brakes Brake pedal pushed Client box Car Black box Car stop Abstraction & Information Hiding • Example: Cars brakes

  4. I can sort data into ascending order without you knowing how Sort this data please, I don’t care how you do it Unsorted data Client box Sort Black box Sorted data Abstraction • Abstraction separates the purpose of a module from its implementation. • Example: Sorting

  5. Procedural Abstraction • Procedural Abstraction is the process of separating the purpose of a method from its implementation. • Once written the method can be used without any knowledge of how it is implemented - only need to know the parameters. • Example: nearly all methods in the entire Java API.

  6. Abstract Data Types • ADT - a collection of data along with a set of operations that can be performed on that data. • No details about how the data is stored or how the operations on the data are implemented. • An ADT is a general description of the design of a module with no details.

  7. Abstract Data Types • Data Structure - the implementation of an ADT in a programming language. • The details of data storage and how operations are performed are crucial parts of a data structure.

  8. ADT List • Any List in general will allow the following operations: • Create an empty list • Destroy a list • Determine whether a list is empty • Determine the number of items in a list • Insert an item at a given position in the list • What else?

  9. Object-Oriented Design • Three elements to OOD: • Encapsulation - combining data and operations within one object. • Inheritance - objects can inherit data and/or methods from other objects. • Polymorphism - objects can determine operations at execution time. • Every object knows its "true" type regardless of type casting

  10. Inheritance • A class can inherit the variables and methods of another class. • It can keep those it wants and replace those it doesn’t. • Example: our Person class. • we want a class of students. • we can’t change our Person class because • many people are using it as it stands • perhaps we don’t have access to the source code • Create a new class called Student that extends the current class Person by the addition of a new variables and methods parent class super class Person child class subclass Student

  11. Class design • extend the definition of Person • build a subclass for each specific type of person Person Faculty Student

  12. Class hierarchy int getAge() Person String getName() Faculty Student void setId(String new_id) void setSalary(float newSalary) float getHoursWorked() float getGPA()

  13. Object-Oriented Design • Produce a collection of objects that have behaviours • How to do • Identifying the objects in the problem • UML • Contents of Software Engineering (cosc 4506)

  14. Object-Oriented Design • Consider the nouns and verbs in the problem domain Create a ATM machine which allow user to retrieve, deposit, transfer and check balance of their accounts Account Type: String Amount: double transfer (int ) checkBalance() retrieve deposit () ATM Account: account Open () Close()

  15. Top-Down Design • Is a structured programming methodology • Focused on algorithm design. • Goal is to break a large problem into a set of smaller problems that are more easily solved.

  16. Top-Down Design • An attempt is made to solve a problem in terms of small subproblems • Divide and Conquer strategy • How?

  17. Find Median Read Scores Sort scores Get middle score Read score From user Insert score into array Top-Down Design (TDD) • Structure chart:

  18. Structure Charts • Can add some info into our structure chart • to show how we share the data • Two type of info that get passed between our methods • Data • Control Information or flags • Thing like “perform such and such an operation” • Or “ we have hit the end of file”

  19. Structure Charts • Use named arrows to show the data flow • Data arrows • Flag arrows

  20. Structure Charts • Structure chart: Find Median Read Scores Sort scores Get middle score

  21. Structure Charts • Structure chart: Find Median Read Scores Sort scores Get middle score MarkEnrty: contain score and ID Read score Insert score into array MarkArray: contain array of scores

  22. Structure Charts • Structure chart: Find Median Read Scores Sort scores Get middle score EOF MarkEntry MarkEntry MarkEnrty: contain score and ID Read score Insert score into array MarkArray: contain array of scores

  23. Structure Charts • Structure chart: Find Median MarkArray Read Scores Sort scores Get middle score EOF MarkEntry MarkEntry MarkEnrty: contain score and ID Read score Insert score into array MarkArray: contain array of scores

  24. Structure Charts • Structure chart: Find Median MarkArray MarkArray MarkArray Read Scores Sort scores Get middle score EOF MarkEntry MarkEntry MarkEnrty: contain score and ID Read score Insert score into array MarkArray: contain array of scores

  25. Structure Charts • The manner in which this structure diagram would be implemented as a program is obvious • It is now possible to create a skeletal program with all the method headers • All you need is to fill in detail

  26. Structure Charts Public class FindMedian { public static void main (..) { } public static void readScore (int []MarkArray) { } public static void sortScore (int []MarkArray) {} public static int getMedian (int []MarkArray) {} • }

  27. Structure Charts public class FindMedian { public static void main (..) { int MarkArray []; } public static void readScore (int []MarkArray) { } public static void sortScore (int []MarkArray) {} public static int getMedian (int []MarkArray) {} • }

  28. Structure Charts public class FindMedian { public static void main (..) { int MarkArray []; readScore (MarkArray); } public static void readScore (int []MarkArray) { } public static void sortScore (int []MarkArray) {} public static int getMedian (int []MarkArray) {} • }

  29. Structure Charts public class FindMedian { public static void main (..) { int MarkArray []; readScore (MarkArray); sortScore (MarkArray); } public static void readScore (int []MarkArray) { } public static void sortScore (int []MarkArray) {} public static int getMedian (int []MarkArray) {} • }

  30. Structure Charts public class FindMedian { public static void main (..) { int MarkArray []; readScore (MarkArray); sortScore (MarkArray); getMedian (MarkArray); } public static void readScore (int []MarkArray) { } public static void sortScore (int []MarkArray) {} public static void getMedian (int []MarkArray) {} • }

More Related