Presentation is loading. Please wait.

Presentation is loading. Please wait.

CS445 - Object Oriented Design and Programming OOP Class 2.

Similar presentations


Presentation on theme: "CS445 - Object Oriented Design and Programming OOP Class 2."— Presentation transcript:

1 CS445 - Object Oriented Design and Programming OOP Class 2

2 CS445 - Object Oriented Design and Programming An Object of c lass Time Set Increment Write. Time OPERATIONS DATA Private data: hrs 8 mins 25 secs 42

3 CS445 - Object Oriented Design and Programming Definitions

4 CS445 - Object Oriented Design and Programming Definitions  Definitions of object on the Web:  a tangible and visible entity; an entity that can cast a shadow; "it was full of rackets, balls and other objects"  Definitions of object-oriented on the Web  “object-oriented... techniques where data carries with itself the "methods" (also known as "functions") used to handle that data. An OO programmer, for instance, can write a statement such as "object.print()" without having to be concerned about what kind of object will be involved at "run time" or what its printing method is. Object-oriented code is both more flexible and more organized, so it is far easier to write, read, and change than procedural code…” www.3dartist.com/WP/dempy/help/glossary.htm www.3dartist.com/WP/dempy/help/glossary.htm  “… A style of software development and packaging based on how real world objects relate to one another. Data and procedures are combined in objects; objects communicate with each other via messages; similar objects are grouped together into classes; data and procedures are inherited through a class hierarchy…”www.olenick.com/html/glossary.htmlwww.olenick.com/html/glossary.html

5 CS445 - Object Oriented Design and Programming Definitions  Definitions of object-oriented design on the Web:  entails transforming the analysis model into a feasible design. kaykeys.net/science/computerwork/oodesign/  A software design method that models the characteristics of abstract or real objects using classes and objects. software.allindiansite.com/java/ojava.html  Object-oriented design (OOD) is a design method in which a system is modeled as a collection of cooperating objects and individual objects are treated as instances of a class within a class hierarchy.  en.wikipedia.org/wiki/Object-oriented_design

6 CS445 - Object Oriented Design and Programming Definitions of object-oriented analysis on the Web:  Object-oriented analysis –builds a model of a system that is composed of objects. The behavior of the system is achieved through collaboration between these objects, and the state of the system is the combined state of all the objects in it. Collaboration between objects involves them sending messages to each other.  Definitions of object-oriented programming on the Web: –“… A programming approach based on the concepts of data abstraction and inheritance. Unlike procedural programming techniques, …” –“… Style of programming characterized by the use of separate "objects" to perform different tasks within a program. These "objects" usually consist of an abstract data type or class, along with the methods used to manipulate that abstract data type …” –“… A programming methodology built around objects and based on sending messages back and forth between those objects. The basic concepts of object-oriented programming are encapsulation, inheritance, and polymorphism …”

7 CS445 - Object Oriented Design and Programming Modeling the Real World  Components of a software system is an interpretation of the real world –Model, a representation of parts of the real world –Algorithm, capture the computation needed to manipulate the model  Object Orientation is a software development model that makes use of objects as a representation of the real world –An object represents anything in the real world that can be distinctly identified. –A class represents a set of objects with similar characteristics and behavior

8 CS445 - Object Oriented Design and Programming History FocusModel Used 50’s – 60’s  Algorithm –solving computation problems and –researching efficient algorithms Computation- Oriented Control Flow 70’s – 80’sData complexityData-Oriented Data Flow OOBalanced view of data and computation OO models made of objects which contain data and algorithms

9 CS445 - Object Oriented Design and Programming Find Weighted Average Print Weighted Average Module Structure Chart Main Print Data Print Heading Get Data Prepare File for Reading

10 CS445 - Object Oriented Design and Programming Two Design Strategies FUNCTION OBJECT.................. FUNCTIONAL OBJECT-ORIENTED DECOMPOSITION DESIGN

11 CS445 - Object Oriented Design and Programming Software Process Models

12 CS445 - Object Oriented Design and Programming Unified Process  a “use-case driven, architecture-centric, iterative and incremental” software process closely aligned with the Unified Modeling Language (UML)  Tools are used to describe customer views (use cases)  Used mainly for OO based methodologies  Runs in phases

13 CS445 - Object Oriented Design and Programming inception The Unified Process (UP) inception elaboration Phase 1 Communication + Planning Phase 2 Planning + Modeling Phase 3 Coding, unit test & integrate Components Phase 4 Deployment result

14 CS445 - Object Oriented Design and Programming UP Phases

15 CS445 - Object Oriented Design and Programming UP Work Products

16 CS445 - Object Oriented Design and Programming Agile Development

17 CS445 - Object Oriented Design and Programming The Manifesto for Agile Software Development “We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and toolsIndividuals and interactions over processes and tools Working software over comprehensive documentationWorking software over comprehensive documentation Customer collaboration over contract negotiationCustomer collaboration over contract negotiation Responding to change over following a planResponding to change over following a plan That is, while there is value in the items on the right, we value the items on the left more.” Kent Beck et al

18 CS445 - Object Oriented Design and Programming What is “Agility”?  Effective (rapid and adaptive) response to change  Effective communication among all stakeholders  Drawing the customer onto the team  Organizing a team so that it is in control of the work performed Yielding …  Rapid, incremental delivery of software

19 CS445 - Object Oriented Design and Programming An Agile Process  Is driven by customer descriptions of what is required (scenarios)  Recognizes that plans are short-lived  Develops software iteratively with a heavy emphasis on construction activities  Delivers multiple ‘software increments’  Adapts as changes occur

20 CS445 - Object Oriented Design and Programming Extreme Programming (XP)  The most widely used agile process, originally proposed by Kent Beck  XP Planning –Begins with the creation of “user stories” –Agile team assesses each story and assigns a cost –Stories are grouped to for a deliverable increment –A commitment is made on delivery date –After the first increment “project velocity” is used to help define subsequent delivery dates for other increments

21 CS445 - Object Oriented Design and Programming Extreme Programming (XP)  XP Design –Follows the KIS principle –Encourage the use of CRC cards (see Chapter 8) –For difficult design problems, suggests the creation of “spike solutions”— a design prototype –Encourages “refactoring”—an iterative refinement of the internal program design  XP Coding –Recommends the construction of a unit test for a store before coding commences –Encourages “pair programming”  XP Testing –All unit tests are executed daily –“Acceptance tests” are defined by the customer and executed to assess customer visible functionality

22 CS445 - Object Oriented Design and Programming Extreme Programming (XP)

23 CS445 - Object Oriented Design and Programming OO Design & Programming Java Basics

24 CS445 - Object Oriented Design and Programming Classes and Objects  An object: point1  Attributes or fields: int x, y;  A method: void move(int dx, int dy)  A message: point1.move(10, 10) Class Point { Int x, y; Public void move (intd dx, int dy) { x +=dx; y +=dy; }

25 CS445 - Object Oriented Design and Programming An Object of c lass Time Set Increment Write. Time OPERATIONS DATA Private data: hrs 8 mins 25 secs 42 Modularity Abstraction Encapsulation Inheritance Polymorphism Message Passing

26 CS445 - Object Oriented Design and Programming Developing a Java Application 1.Write the source code Using an Integrated Development Environment (IDE) or text editor Save in a.java file 2.Compile the source code: javac ClassName.java Creates.class file 3.Execute the application: java ClassName Run by the Java Virtual Machine (JVM)

27 CS445 - Object Oriented Design and Programming A First Application 1 // First program in Java 2 // FirstProgram.java 3 4 public class FirstProgram 5 { 6 public static void main( String [] args ) 7 { 8 System.out.println( "Programming is not " 9 + " a spectator sport!" ); 10 System.exit( 0 ); 11 } 12 }

28 CS445 - Object Oriented Design and Programming  Class: FirstProgram  Method: main (...)  Statement: System.out.println(...)  Comments: – // a comment – /* another comment */  Source file: FirstProgram.java

29 CS445 - Object Oriented Design and Programming Program Errors  Compiler errors –Found by the compiler. –Usually caused by incorrect syntax or spelling  Run-time errors –Reported by the JVM –Usually caused by incorrect use of prewritten classes or invalid data  Logic errors –Found by testing the program –Incorrect program design or incorrect execution of the design

30 CS445 - Object Oriented Design and Programming Program Life Cycle

31 CS445 - Object Oriented Design and Programming Introduction: Java Platform  Java TM platform is based on the idea that the same software should run on many different kinds of computers, consumer gadgets, and other devices.  Portability –Java platform allows you to run the same Java application on lots of different kinds of computers.

32 CS445 - Object Oriented Design and Programming JVM  Java virtual machine or "JVM TM ” –a translator that turns general Java platform instructions into tailored commands that make the devices do their work

33 CS445 - Object Oriented Design and Programming Java Program Phases 1.Edit –IDE, vi, emacs, notepad 2.Compile –javac 3.Load –Class Loader 4.Verify –Verifier (Security and Validation) 5.Execute –Java Interpreter (java or appletviewer)

34 CS445 - Object Oriented Design and Programming The java Compiler  javac –Creates bytecodes –Stored on disk as.class –Each file contains bytecode for one and only one class

35 CS445 - Object Oriented Design and Programming The java Class Loader  Loads bytecodes in memory –Loads.class files from disk into memory

36 CS445 - Object Oriented Design and Programming The java Bytecode Verifier  Confirms that all bytecodes are: –Valid and –Don't violate Java’s Security restrictions  Works on bytecodes from memory

37 CS445 - Object Oriented Design and Programming The java Interpreter  Reads bytecodes and translate them into a language that is relevant to the targeted computer architecture –PC –Machintosh –Cell Phone  For applets execution its built into the browser or the appletviewer

38 CS445 - Object Oriented Design and Programming Your first program: HelloWorldApp.java  Displays the greeting "Hello world!". To create this program, you will:  Create a source file –A source file contains text, written in Java.  Compile the source file into a bytecode file. –The compiler, javac, converts these instructions into a bytecode file

39 CS445 - Object Oriented Design and Programming Your first program: HelloWorldApp  Run the program contained in the bytecode file –The Java interpreter implements the Java VM –This interpreter takes your bytecode file and carries out the instructions by translating them into instructions that your computer can understand.

40 CS445 - Object Oriented Design and Programming JRE

41 CS445 - Object Oriented Design and Programming JAVA Program public class HelloWorldApp { public static void main(String[] args) { System.out.println("Hello World"); }

42 CS445 - Object Oriented Design and Programming Steps 1.Save the file as HellowWordApp.java 2.Compile –Javac HellowWordApp.java  HellowWordApp.class 3.Run the program –Java HellowWordApp

43 CS445 - Object Oriented Design and Programming Output

44 CS445 - Object Oriented Design and Programming What Can be a Class?  Physical Objects – equipments, devices, products  People – Students, Faculty, Customers  Organizations – Universities, Companies, Departments, Bank  Places – Buildings, Rooms, Seats  Events – Mouse click, order request, purchase orders  Concepts – Transaction  The domain determines the classes

45 CS445 - Object Oriented Design and Programming What Features Should a Class Have?  Actions should be modeled as methods of a class  Verb phrases  Underline the verbs and nouns in the description of the requirements and use cases  Nouns are candidate classes or attributes  Verbs are candidate methods

46 CS445 - Object Oriented Design and Programming Java Programming Language  Java Basics  OO Basics  UML Basics

47 CS445 - Object Oriented Design and Programming Data Types, Variables, and Constants  We use Symbolic Names to refer to data  We must assign a data type for very identifier (symbolic name)  Declaring Variables  Primitive Data Types  Initial Values and Literals  String Literals and Escape Sequences  Constants

48 CS445 - Object Oriented Design and Programming Data Types  For all data, assign a name (identifier) and a data type  Data type tells compiler: –How much memory to allocate –Format in which to store data –Types of operations you will perform on data  Compiler monitors use of data – Java is a "strongly typed" language  Java "primitive data types" byte, short, int, long, float, double, char, boolean

49 CS445 - Object Oriented Design and Programming Declaring Variables  Every Variable must be given a name and a data type  Variables hold one value at a time, but that value can change  Syntax: dataType identifier; or dataType identifier1, identifier2, …;  Naming convention for variable names: –first letter is lowercase –embedded words begin with uppercase letter

50 CS445 - Object Oriented Design and Programming Java Primitive Data Types  byte, short, int, long, float, double, char, boolean primitive integralfloating point byte char short int long float double boolean

51 CS445 - Object Oriented Design and Programming OO Design

52 CS445 - Object Oriented Design and Programming Topics  Class Basics and Benefits  Creating Objects Using Constructors  Calling Methods  Using Object References

53 CS445 - Object Oriented Design and Programming Object-Oriented Programming  Classes combine data and the methods (code) to manipulate the data  Classes are a template used to create specific objects  All Java programs consist of at least one class.  Two types of classes –Application/Applet classes –Service classes

54 CS445 - Object Oriented Design and Programming Example  Student class –Data: name, year, and grade point average –Methods: store/get the value of each piece of data, promote to next year, etc.  Student Object: student1 –Data: Maria Gonzales, Sophomore, 3.5

55 CS445 - Object Oriented Design and Programming Some Terminology  Object reference: identifier of the object  Instantiating an object: creating an object of a class  Instance of the class: the object  Methods: the code to manipulate the object data  Calling a method: invoking a service for an object.

56 CS445 - Object Oriented Design and Programming Class Data  Instance variables: variables defined in the class and given values in the object  Fields: instance variables and static variables (we'll define static later)  Members of a class: the class's fields and methods  Fields can be: –any primitive data type (int, double, etc.) –objects

57 CS445 - Object Oriented Design and Programming Encapsulation  Implementation of a module should be separated from its users.  Instance variables are usually declared to be private, which means users of the class must reference the data of an object by calling methods of the class.  Thus the methods provide a protective shell around the data. We call this encapsulation.  Benefit: the class methods can ensure that the object data is always valid.

58 CS445 - Object Oriented Design and Programming Modularity  Divide-and-conquer  Decompose a complex system into a highly cohesive loosely coupled modules. –Cohesion single-mind-ness of a module Each module should small and simple –Coupling the degree of connectivity between modules Interactions between modules should be simple

59 CS445 - Object Oriented Design and Programming Abstraction  Separating the essential from the nonessential  The behaviors of a module should be characterized in a precise way using its interfaces.  Server provider for example is a client that provide services (methods) to it’s clients. –Clients need to know only the contract API.

60 CS445 - Object Oriented Design and Programming Polymorphism  Many shapes  Same method many ways to call it (dynamic)  Replacing an object with its parent

61 CS445 - Object Oriented Design and Programming Reusability  Reuse: class code is already written and tested, so you build a new application faster and it is more reliable Example: A Date class could be used in a calendar program, appointment-scheduling program, online shopping program, etc.

62 CS445 - Object Oriented Design and Programming How To Reuse A Class  You don't need to know how the class is written.  You do need to know the application programming interface (API) of the class.  The API is published and tells you: –How to create objects –What methods are available –How to call the methods

63 CS445 - Object Oriented Design and Programming Declare an Object Reference Syntax: ClassName objectReference; or ClassName objectRef1, objectRef2…;  Object reference holds address of object  Example: Date d1;

64 CS445 - Object Oriented Design and Programming Instantiate an Object  Objects MUST be instantiated before they can be used  Call a constructor using new keyword  Constructor has same name as class.  Syntax: objectReference = new ClassName( arg list );  Arg list (argument list) is comma-separated list of initial values to assign to object data

65 CS445 - Object Oriented Design and Programming Constructor  Constructor method special method with the same name as the class that is used with new when a class is instantiated public class name { public name(String frst,String lst) { first = frst; last = lst; } Name name; name = new Name(“john”, “Dewey”);

66 CS445 - Object Oriented Design and Programming Date Class API constructor: special method that creates an object and assigns initial values to data Date Class Constructor Summary Date( ) creates a Date object with initial month, day, and year values of 1, 1, 2000 Date( int mm, int dd, int yy ) creates a Date object with initial month, day, and year values of mm, dd, and yy

67 CS445 - Object Oriented Design and Programming Instantiation Examples Date independenceDay; independenceDay = new Date( 7, 4, 1776 ); Date graduationDate = new Date( 5, 15, 2008 ); Date defaultDate = new Date( ); Example Next Slide

68 CS445 - Object Oriented Design and Programming Constructors.java public class Constructors { public static void main( String [] args ) { Date independenceDay; independenceDay = new Date( 7, 4, 1776 ); Date graduationDate = new Date( 5, 15, 2008 ); Date defaultDate = new Date( ); } Figure Next Slide

69 CS445 - Object Oriented Design and Programming Objects After Instantiation

70 CS445 - Object Oriented Design and Programming Calling a Method

71 CS445 - Object Oriented Design and Programming Method Classifications  Accessor methods –get… –gives values of object data  Mutator methods –set… –change values of object data

72 CS445 - Object Oriented Design and Programming Date Class Methods Return valueMethod name and argument list intgetMonth( ) returns the value of month intgetDay( ) returns the value of day intgetYear( ) returns the value of year voidsetMonth( int mm ) sets the value of month to mm voidsetDay( int dd ) sets the value of day to dd voidsetYear( int yy ) sets the value of year to yy

73 CS445 - Object Oriented Design and Programming The Argument List in an API  Pairs of dataType variableName  Specify –Order of arguments –Data type of each argument  Arguments can be: –Any expression that evaluates to the specified data type

74 CS445 - Object Oriented Design and Programming Modeling Relationships and Structures  UML

75 CS445 - Object Oriented Design and Programming UML Class Diagram  Used to model the static structure and relationships among the classes of an OO software system  A class diagram is made of: –Nodes (Classes and Interfaces) –Links (Relationships)

76 CS445 - Object Oriented Design and Programming Relationships  Inheritance –Extension Relationship (specialization and generalization) –Extension between two interfaces –Implementation (when a class implements an interface) –UML uses hollow triangle pointing toward the super class –See Page 30 for an example  Association  Aggregation and Composition  Dependency

77 CS445 - Object Oriented Design and Programming Read Ahead  Chapter 2 including the case study on page 44


Download ppt "CS445 - Object Oriented Design and Programming OOP Class 2."

Similar presentations


Ads by Google