Presentation is loading. Please wait.

Presentation is loading. Please wait.

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

Similar presentations


Presentation on theme: "CS2006 - Data Structures I Chapter 2 Principles of Programming & Software Engineering."— Presentation transcript:

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

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

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

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

5 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 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 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 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 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 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 Person Student parent class super class child class subclass

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

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

13 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 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 ATM Account: account Open () Close() Account Type: String Amount: double transfer (int ) checkBalance() retrieve deposit ()

15 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 16 Top-Down Design An attempt is made to solve a problem in terms of small subproblems Divide and Conquer strategy How?

17 17 Top-Down Design (TDD) Structure chart: Find Median Get middle scoreSort scoresRead Scores Read score From user Insert score into array

18 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 19 Structure Charts Use named arrows to show the data flow Data arrows Flag arrows

20 20 Structure Charts Structure chart: Find Median Get middle scoreSort scoresRead Scores

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

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

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

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

25 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 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 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 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 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 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) {} }


Download ppt "CS2006 - Data Structures I Chapter 2 Principles of Programming & Software Engineering."

Similar presentations


Ads by Google