slide1 n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
OOP PowerPoint Presentation
Download Presentation
OOP

Loading in 2 Seconds...

play fullscreen
1 / 49

OOP - PowerPoint PPT Presentation


  • 124 Views
  • Uploaded on

OOP. Schedule. Wed, 06:25-09:05PM Rice Campus - Wheaton Room RI 148 . Java Must Have. To write your first program, you need: The Java TM 5 Platform, Standard Edition. A text editor. Notepad, the simple editor included with the Windows platforms. You can and should use an IDE Eclipse

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

OOP


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
schedule
Schedule
  • Wed, 06:25-09:05PM Rice Campus - Wheaton Room RI 148
java must have
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
class goals
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.
class goals1
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.)
class goals2
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.
laboratory projects
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 5000 - 10000 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.
text book
Text Book
  • TEXTBOOK (REQUIRED)
    • Object-Oriented Software Development Using Java
    • Xiaoping Jia, Second Edition
contact information
ContactInformation
  • Class Home Page, http://www.csam.iit.edu/~oaldawud/cs445/
  • Omar Aldawudaldaoma@iit.edu
introduction

Introduction

Chapter 1

se generic activities

n

t

g

a

t

h

e

r

i

n

g

estimating

scheduling

tracking

d

e

l

i

v

e

r

y

s

u

p

p

o

r

t

f

e

e

d

b

a

c

k

C

o

m

m

u

n

i

c

a

t

i

o

n

Planning

p

r

o

j

e

c

t

i

n

i

t

i

a

t

i

o

n

r

e

q

u

i

r

e

m

e

M

o

d

e

l

i

n

g

a

n

a

l

y

s

i

s

C

o

n

s

t

r

u

c

t

i

o

n

d

e

s

i

g

n

D

e

p

l

o

y

m

e

n

t

c

o

d

e

t

e

s

t

SE Generic Activities

SW Engineering is the:

  • Analysis, Design, Construction, Verification and Management of Software.
rational unified process
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
the unified process up
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

extreme programming xp
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
extreme programming xp1
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
modeling the real world
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
object orientation
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
booch 94 approach
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
high level languages
High-Level Languages
  • Compiled
    • 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
high level languages1
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
slide27
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.
programming a computer java
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)
java portability

Windows PC

running JVM

Java

Program

Java

Bytecode

Unix box

running JVM

Macintosh

running JVM

Java Portability
slide30
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
the java language
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
java programs
Java Programs
  • Applets
    • 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
an introduction to programming
An Introduction to Programming
  • Programming Basics
  • Program Design with Pseudocode
  • Developing a Java Application
programming basics
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
program design with pseudocode
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
four types of flow of control
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
sequential processing
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

. . .

method call
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

methods
Methods

. . .

sqroot method

SUBPROGRAM1

a meaningful collection

of SEQUENCE,

SELECTION, LOOP,

SUBPROGRAM

selection

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

looping

False

. . .

Condition

True

Statement

WHILE Condition DO Statement1

Looping
  • 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

asynchronous control

EVENTHANDLER

a subprogram executed

when an event occurs

EVENT

ASYNCHRONOUS CONTROL
object oriented programming oop
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 andmethods.
    • A mechanism for encapsulation.
    • modularity
    • information hiding
object oriented programming oop1
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
classes and objects examples
Classes and Objects Examples
  • Date class
    • data: month, day, year
    • operations to set and return month, day, year
  • a Date object
    • Aug
    • 28
    • 2007
classes and objects
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)

classes and objects1
Classes and Objects
  • Inheritance Example:
  • Student
  • GradStudent
  • MSStudent
  • PhDStudent
  • UGStudent
oop advantage reuse
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
an object of c lass time
An Object of class Time

OPERATIONSDATA

Set

Private data:

hrs 8

mins 25

secs 42

Increment

Write

.

.

.

Time