Presentation is loading. Please wait.

Presentation is loading. Please wait.

OOP.

Similar presentations


Presentation on theme: "OOP."— Presentation transcript:

1 OOP

2 Wed, 06:25-09:05PM Rice Campus - Wheaton Room RI 148
Schedule Wed, 06:25-09:05PM Rice Campus - Wheaton Room RI 148

3 Java Must Have To write your first program, you need:
The JavaTM 5 Platform, Standard Edition. A text editor. Notepad, the simple editor included with the Windows platforms. You can and should use an IDE Eclipse Jbuilder JDeveloper

4 Class Goals Explain and justify the principles of Object Oriented concepts: (review abstraction & abstract data types, encapsulation, inheritance, polymorphism, aggregation) Analyze and identify the strengths (and weaknesses) of in-depth areas of the Object Oriented paradigm. Analyze, explain, & compare the qualities of Object Oriented languages and how well they support the object model. Explain and analyze the key points of Object Oriented analysis.

5 Class Goals Explain and analyze the key points of Object Oriented design. Design, implement, test and debug multi-phased Object Oriented application. Explain and utilize contemporary Object Oriented methodologies (data-driven methodology and behavior-driven methodology) Utilize recent notation (Unified Modeling Language) to express the artifacts of Object Oriented Analysis & Design (class design, class relationships, object interaction, object states, etc.)

6 Class Goals Perform Object Oriented Analysis & Design on a real-world problem. Explain and Utilize Complex Design Patterns. Create an implementation of the resultant Object Oriented design. Examine new & contemporary concepts in Object Orientation. Communicate the deliverables of a software development project.

7 Laboratory Projects A 2-part large-scale Object Oriented software development project is required by each student in which the student will experience designing, coding, testing and debugging a significant Object Oriented application. The combined parts of the course project are generally range from lines of code. Part 1 (6 weeks): object-oriented analysis and design of the software system. Part 2 (6 weeks): object-oriented detailed design, implementation using object oriented language, and testing of the software system.

8 Text Book TEXTBOOK (REQUIRED)
Object-Oriented Software Development Using Java Xiaoping Jia, Second Edition

9 Contact Information Class Home Page, Omar Aldawud

10 Introduction Chapter 1

11 SE Generic Activities SW Engineering is the:
o m u n i c a t Planning M d e l g s r D p y j q h estimating scheduling tracking v f b k SW Engineering is the: Analysis, Design, Construction, Verification and Management of Software.

12 SE Waterfall Model

13 Evolutionary Models: The Spiral

14 Rational 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

15 The Unified Process (UP)
inception Phase 1 Communication + Planning Phase 2 Planning + Modeling elaboration inception Phase 3 Coding, unit test & integrate Components Construction Transition result Phase 4 Deployment Production

16 UP Phases

17 UP Work Products

18 Extreme Programming (XP)
The most widely used agile process, originally proposed by Kent Beck. It encompasses the following activities: XP Planning Begins with the creation of “user stories” Agile team assesses each story and assigns a cost Stories are grouped to form 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 Project Velocity is a measure of the number of stories implemented in the first release

19 Extreme Programming (XP)
XP Design Follows the KIS principle – Simple Design Design provide implementation guidelines for a story Encourage the use of CRC cards or class diagram For difficult design problems, suggests the creation of “spike solutions”—a design prototype XP Coding Recommends the construction of a unit test for a story before coding Encourages “pair programming” for stories Integration Team – integrates all stories XP Testing All unit tests are executed daily “Acceptance tests” are defined by the customer and executed to assess customer visible functionality

20 Extreme Programming (XP)

21 Modeling the Real World
Components of a software system is an interpretation of the real world Model Algorithm Object Orientation is a software development model that makes use of objects as a representation of the real world

22 Object Orientation OO development processes is similar to those of the waterfall model (What Booch calles Macro Process) Conceptualization – requirements gathering OO Analysis and Modeling Goal to build models of the system’s behavior using UML A model should capture the essential and relevent aspects of the real world OO Design Goal to create an architecture for implementation Implementation Use OO programming language (such as Java) to implement the design Coding, testing and debugging Maintenance Evolution support

23 Booch [94] Approach Proposed an iterative SW development process for OOSD The approach consist of a number of successive iterations (micro process): Identify the classes Identify the semantics (attributes and behavior) Identify the relationships Define class interfaces Implementing the class Booch’s approach adopted by RUP and XP

24 High Level Programming Languages
Java Introduction

25 High-Level Languages Compiled Interpreted
Compiler converts source code (instructions and data) into machine language, then program is executed Interpreted Interpreter converts instructions into machine language at run time as instructions are executed Usually executes more slowly than compiled program

26 High-Level Languages Are portable
Are translated into machine code by compilers Instructions are written in language similar to natural language Examples -- FORTRAN, COBOL, Pascal, C, C++ Many are standardized by ISO/ANSI to provide an official description of the language

27 Java Combination of compiler and interpreter
Compiler converts source code into byte codes (an instruction set for a virtual, machine-independent processor) At run time, the Java Virtual Machine (JVM) interprets the byte codes and converts them into the machine language on which the program is running.

28 Programming a Computer: Java
The Java Programming Language A high-level language Java compiler translates to Java bytecodes for execution on a Java Virtual Machine (JVM)

29 Java Portability Windows PC running JVM Java Program Unix box
Macintosh Bytecode

30 Java Achieves portability by using both a compiler and an interpreter
Java compiler translates a Java program into an intermediate Bytecode--not machine language An interpreter program called the Java Virtual Machine (JVM) translates each successive instruction in the Bytecode program to machine language and immediately runs it

31 The Java Language Created by Sun Microsystems in 1995
Syntax based on C++ Object-Oriented Support for Internet applications Extensive library of prewritten classes Portability among platforms Built-in networking

32 Java Programs Applets Servlets Applications
Small programs designed to add interactivity to Web sites Downloaded with the Web page and launched by the Internet browser Servlets Run by Web server on the server Typically generate Web content Applications Programs that run standalone on a client

33 An Introduction to Programming
Programming Basics Program Design with Pseudocode Developing a Java Application

34 Programming Basics Programming is translating a problem into ordered steps consisting of operations a computer can perform: Input Calculations Comparisons of values Moving data Output The order of execution of instructions is called flow of control

35 Program Design with Pseudocode
Pronounced sue-dough-code English-like language for specifying the design of a program Programmer can concentrate on design of program without worrying about Java language rules (syntax) Then convert pseudocode into Java code

36 Four Types of Flow of Control
Sequential Processing Execute instructions in order Method Call Jump to code in method, then return Selection Choose code to execute based on data value Looping or Iteration Repeat operations for multiple data values

37 Sequential Processing
The pseudocode for calculating the sum of two numbers would look like this: read first number read second number set total to (first number second number) output total Statement Statement Statement . . .

38 Method Call Calling the method executes the method
Methods can take arguments (data to use) and return values Here is pseudocode for calculating the square root of an integer:   read an integer call the square root method, with integer as argument output the square root

39 a meaningful collection
Methods . . . sqroot method SUBPROGRAM1 a meaningful collection of SEQUENCE, SELECTION, LOOP, SUBPROGRAM

40 IF Condition THEN Statement1 ELSE Statement2
Selection The pseudocode for determining if a number is positive or negative is: read a number if the number is greater than or equal to 0 write "Number is positive." else write "Number is negative." True Statement Condition . . . Statement Statement False

41 Looping False . . . True Condition
WHILE Condition DO Statement1 The pseudocode for finding the sum of a set of numbers is: set total to 0 read a number while there was a number to read, add number to total read the next number write total Statement . . . False True Condition

42 ASYNCHRONOUS CONTROL EVENTHANDLER a subprogram executed EVENT
when an event occurs

43 Object-oriented Programming (OOP)
Class tool for encapsulating data and operations (methods) into one package defines a template or model for creating and manipulating objects Objects data created using the class and its methods an object is an instance of the class creating an object is instantiation A software components consists of variables and methods. A mechanism for encapsulation. modularity information hiding

44 Object-oriented Programming (OOP)
Message Objects communicate via message passing. A message consists of an object (the recipient), a method, and optional parameters. Inheritance A mechanism to organize classes by commonalities. subclasses, specialization superclass, generalization

45 Classes and Objects Examples
Date class data: month, day, year operations to set and return month, day, year a Date object Aug 28 2007

46 void move(int dx, int dy)
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)

47 Classes and Objects Inheritance Example: Student GradStudent MSStudent
PhDStudent UGStudent

48 OOP Advantage: Reuse Well-written classes can be reused in new applications Shortens development time because programmers don't need to write new code Programs are more robust because the class code is already tested

49 An Object of class Time OPERATIONS DATA Set Increment Write . Time
Private data: hrs mins 25 secs Increment Write . Time


Download ppt "OOP."

Similar presentations


Ads by Google