You are on page 1of 47

OBJECT ORIENTATION METHODS

- The 1st Meeting -


The Concept of Object Orientation

E r w i n Yu l i a n t o , S .T. , M . K o m . , C E P. , M C P. ,
http://unla.ac.id
rwinyulianto@yahoo.com
Learning Goal & Method

Goal : Students can understand and explain about object-oriented


software engineering background, object-oriented approach
history, and object-oriented programming language.

Approach :
- Expository (Teacher Centered)
- Inquiry (Student Centered)
- Contextual Teaching & Learning (CTL)
- Direct Method

Method :
- Classic Learning, Ask & Answer, Discussion, Problem Solving,
Presentation
Contents

Software Engineering

Object Orientation Background

Object Oriented Approach History

Object Oriented Programming Language


Software Engineering

Software : program that run on processor.

Engineering : a systematic approach based on science and


engineer experience to produce quality products through cost /
time / human resources effective based solutions.

Software Engineering : a computer science which explain stages to


build practical software system that cover all aspects of software
development, starting from initial stage such as analysis of user
needs, determine the specification of user requirements, data
collecting, system and database design, coding, testing, and
maintenance of the system after launch.
Software Engineering

Software engineering is intended to provide a foundation so that


software development is carried out systematically with the goal
to obtain quality product.

Some methods that used to develop a software engineering such


as :
1. Waterfall Model (Linear Sequential Model)
2. Prototyping Model
3. Rapid Application Development (RAD) Model
4. Incremental Model
5. Spiral Model
6. V-Model
7. ...etc
Software Engineering
Software Engineering

Tools used to sketching software engineering called CASE


(Computer Aided Software Engineering) :
1. Upper Case : Planning, Design & Analysis Tools (Diagramming
Tools, Form and Report Generators, & Analysis Tools) Ms.
Office, Ms. Excel, Ms. Power Point, Ms. Visio, Ms. Project.
2. Lower Case : Implementation & Maintenance Tools (Code
Generator) Java, Eclipse, Visual Studio, Adobe
Dreamweaver.
3. Cross Life-Cycle Case : Project Management Tools Rational
Rose, Argo UML, Star UML, Power Designer, Bizagi Modeler.
Software Engineering

Software engineering must deliver user satisfaction.

Based on Robert Glass formula :


User Satisfaction = product that fulfill user requirement +
good quality +
didnt exceed available budget +
finish on time target
Software Engineering

McCall divide software quality as follow :


1. Product Operation :
a. Correctness : fulfill user requirement
b. Reliability : perform a required function correctly and
consistently
c. Efficiency : perform the necessary functions with minimal
time
d. Integrity : manage and control change
e. Usability : easy to learn and use
2. Product Revision :
a. Maintainability : easy reparation if some fault / error
found
b. Flexibility : easy adaptation for new function / feature
c. Testability : easy and complete testing
Software Engineering

McCall divide software quality as follow :


3. Product Transition :
a. Portability : easy to convert and operate on different
platform
b. Reusability : using of software component for other
application
c. Interoperability : information exchange standard with
other software
Software Engineering

Software development complexity based on Booch & Mynat,


describe as follow :
1. Communication : communication line will increase along with
number of people involved with a formula of n x (n-1) / 2
2. System Development Dependence : analysis design
coding testing maintenance
3. Project Characteristic : number of functional, data structure
complexibility, user requirement change, software
configuration, system security and reliable
4. Human Resource Characteristic : professional developer :
beginner developer = 25 : 1, professional debugger : beginner
debugger = 28 : 1
5. Management Issue
Software Engineering

Based on Meyer, there are seven steps to get satisfied software


result :
1. Object Based Modular Structure : system modularized based
object structure
2. Data Abstraction : object must described as implementation of
ADT
3. Automatic Memory Management : object that no longer used
must deallocated by system without programmer intervention
4. Classes, every type that not simple is a module and every
module is high level type
5. Inheritance, class defined based extension or restriction of
other class
Software Engineering

Based on Meyer, there are seven steps to get satisfied software


result :
6. Polymorphism & Dynamic Binding, program entity and
operation must enabled to refer to more than one class
7. Multiple & Repeated Inheritance, must enabled to create
class declaration as heir of many of classes
Object Orientation Background

Object Oriented Definition :


1. Firesmith, Lorenz : The paradigm that use objects with identity
that encapsulate properties and operations, message passing,
class, inheritance, polymorphism, and dynamic binding to
develop solution that model problem domains
2. Jacobson : Any technique based on the concept of object,
class, instances and inheritance
3. Coleman : The use of objects as the atom of modeling

To get software specification that people expected, developer are


using visual modeling. They say Picture speak more than Word
Object Orientation Background

Software engineering and software development management


began to shift from structured approach to object oriented
approach, due to the fact of the software as follows :
1. Complex : because of its complexity, the software is very
elusive (hard to understand)
2. Can Not Seen : because it does not seen, so the software
quality development are difficult to measure and traceable
3. Easy to Change : can be modified, but it is difficult to see the
consequences after the changes made
Object Orientation Background

Object Orientation Method (OOM) or can be called Object


Oriented Paradigm / Programming (OOP) is a paradigm that is
oriented to the object. All data and functions in this paradigm is
wrapped in classes or objects.

Object-oriented data model is said to be able to provide more


flexibility, ease of changing the program, and is used widely in
large-scale software engineering. OOP Supporters claim that OOP
approach is easier to learn for beginners compared than the
previous approach and the easier to developed and maintained.
Object Orientation Background
Object Orientation Background

Some of Object Oriented Methods that have been published, such


as :
1. Grady Booch Object Oriented Design
2. Coad & Yourdon Object Oriented Analysis and Design
3. Ivar Jacobsons Objectory
4. James Rumbaughs Object Modelling Technique (OMT)
5. ...etc

To unite all methods above required object oriented notations


called UML (Unified Modelling Language). The Unified Modeling
Language (UML) is a general-purpose visual modeling language
that is used to specify, visualize, construct, and document the
artifacts of a software system.
Object Orientation Background

Advantages of object oriented approach :


1. Analysis that approaching human cognition
2. Produce a system that is able to follow changes
3. Can be used not only in software design, but all of the
software development process
4. Reduce the risks of developing complex systems
5. Help to explore object-based programming language

By using OOP then in solving a problem we do not see how to


solve a problem (structured), but what objects that used to
perform the problem solving.
Object Orientation Background

Object Oriented Paradigm / Programming


Object Oriented Approach History

First Generation : 1986 1992


1. James Rumbaugh (1991) : create Object Modelling Technique
(OMT) with four stages analysis, system design, object
design, and implementation. Adapting a structured model and
has notations for the data model and process
2. Ivar Jacobson (1992) : suggest Object Oriented Software
Engineering (OOSE) focus on create models such as
conceptual model, block design, and use case concept.
Combines data and processes into objects

On first generation, process models are very different with


divergence notation. Most developers still concentrate on object
oriented programming language, object oriented analysis &
design
Object Oriented Approach History

Second Generation : 1993 1996


1. Coleman (1994) : combine structure and object oriented methods
into fusion model
2. Firesmith (1993) : development of libraries / components and
domain development for the purposes of application
development
3. Graham (1995) : using a wrapper technique for building object-
oriented applications in old system gradually
4. Henderson & Edwards (1994) : develop MOSES model that has a
life cycle like a fountain (iterative development)

On second generation, comprehensive process model described on all


software development life cycle (SDLC)
Object Oriented Approach History

Third Generation : 1997 Now


1. Rumbaugh, Jacobson, and Booch : propose Unified Modelling Language
(UML) that accepted as notation standard by Object Management Group
(OMG)
2. Jacobson : evolving Unified Software Development Process (USDP) such as
use case driven, architecture centric, iterative, and incremental
3. Jaaksi : evolving OMT++ (OMT and Fusion based model)
4. Henderson, Firesmith, and Graham : work together to create Object
Oriented Process, Environment, & Notation (OPEN), composite of
Hendersons MOSES method, Grahams SOMA method, and Firesmith
method. Later OPEN become OML (OPEN Modeling Language)

On third generation, focus on object modelling language which become an


international standard
Object Oriented Programming Language

Object Oriented Programming characteristics :


1. More approach to data object, not the function / procedure.
2. Major programs broken down into objects.
3. Data structure was designed and became the characteristics of
objects.
4. Functions that operate the data combined within the same
object
5. Data is hidden and protected from outside function /
procedure
6. Objects can communicate and send messages to each other
Object Oriented Programming Language

Object-Oriented Programming (OOP) is a programming paradigm


based on the concept of "objects", which are data structures that
contain data, in the form of fields, often known as attributes; and
code, in the form of procedures, often known as methods.

Many of the most widely used programming languages are multi-


paradigm programming languages that support object-oriented
programming include Python, C++, Objective-C, Smalltalk, Delphi,
Java, Swift, C#, Perl, Ruby, PHP, etc.

We will discuss about Java Programming Language, one of object


oriented programming languages.
Object Oriented Programming Language

Java is one of object oriented programming language that was


originally created by James Gosling. Java-based applications are
generally compiled into p-code (bytecode) and can be run on
various Java Virtual Machine (JVM).

Java is a programming language that has general characteristic /


non-specific for general purpose, and is specifically designed to
utilize minimal implementation dependencies as possible.

Java application can run on some different operating system


platform because its functionality. Java known with its slogan,
Write Once, Run Everywhere".
Finding Out !!

Main Developer : ...


Established : ...
Headquarter : ...
First Introduced : ...
Current Developer : ...
Founder : ...
Java Creator : ...

The history of Java begin from Stealth / Green Project. What is it ?


How the name of Java programming language came ?
What is feature of Java programming language ?
Object Oriented Programming Language

Main Developer : Sun Microsystem


Established : 1982
Headquarter : Santa Clara, California
First Introduced : 1999
Current Developer : Oracle
Founder : Bill Joy (VP), Andy Bechtolsheim
Java Creator : James Gosling
Object Oriented Programming Language

The history of Java begin from Stealth / Green Project. What is it ?


At 1991, Sun's "Stealth Project created with the vision of the
project was to develop "smart" consumer electronic devices
that could all be centrally controlled and programmed from a
handheld-remote-control-like device
Stealth Project, which later became known as the Green Project
create extensions and modifications to C++ and named the
language "Oak while staring at an oak tree outside of his
office window !
Later due to a patent search which determined that the name
was copyrighted and used for another programming language,
so they need to change its call name.
Object Oriented Programming Language

How the name of Java programming language came ?


The name Java came from several individuals speculated
involved in the project : James gosling, Arthur Van hoff, Andy
bechtolsheim.
Java name itself inspiration when Gosling and his colleagues
were enjoying a cup of coffee at a coffee shop. Accidentally one
of them mentions the word java that means coffee. Finally
they agreed to give the name of the Java programming
language.
Object Oriented Programming Language

At 1996, first release Java version 1.0 already provide initial


standard package :
1. java.lang : Designated for basic elements class.
2. java.io : Designated for input/output class and file using
management.
3. java.util : Designated for complement class such as data
structure class and date/time class.
4. java.net : Designated for TCP/IP class, enable to communicate
with other computer using TCP/IP network protocol.
5. java.awt : basic class for interface application using GUI.
6. java.applet : basic class for interface application using web
browser.
Object Oriented Programming Language

What is feature of Java programming language ?


1. Multiplatform : Java language is a multiplatform language, which
means it can be used in a wide variety of operating systems.
2. OOP (Object Oriented Programming) : all the aspects contained in
Java are Object
3. Complete Class Libraries : Java is famous for completeness library (a
collection of programs that are included in java programming), Java
library is very easy to use by programmers to build applications.
4. C++ Style : has a syntax similar with C++ programming language so
it attracts a lot of C++ programmers to migrate to Java
5. Automatic Garbage Collector : have a memory usage setting facility
so the programmer does not need to perform direct memory settings
Object Oriented Programming Language

Java Architecture
Object Oriented Programming Language

Java Virtual Machine (JVM) : acts as an interface between Java application and
the host devices operating system interpreter machine
Reduced Object Code size into 50-80 KB.
Minimal Memory utilization.
Performance made effective in 16-bit or 32-bit processors.
Highly portable architecture with minimal platform specific code.
Independent Multithreading System and Garbage Collection.

Connected Limited Device Configuration (CLDC) : designed for devices with


intermittent network connections, slow processors and limited memory devices
such as mobile phones, two way pagers and PDAs. It guarantee portability and
interoperability of profile-level code between the various kinds of mobile (CLDC)
devices.
Connected Device Configuration (CDC) : designed for devices that have more
memory, faster processors, and greater network bandwidth, such as TV set-top
boxes, residential gateways, in-vehicle telematics systems, and high-end PDAs.
Object Oriented Programming Language

Configuration : defines a minimum platform including the Java


language, Java Virtual Machine features and minimum class
libraries to describe basic runtime for a grouping of devices with 2
kinds of setting, namely CLDC and CDC

Mobile Information Device Profile (MIDP) : consists of Java


classes and libraries to address Graphical User Interfacing, I/O and
Networking and Persistent Storage in Java ME applications.

Profile : supports higher-level services common to a more specific


class of devices. A profile builds on a configuration but adds more
specific APIs to make a complete environment for building
applications. (E.g. Mobile Information Device Profile (MIDP))
Object Oriented Programming Language

Optional Package : it provides specialized service or functionality that may not


be associated with a specific configuration or profile.
The following table lists some of the available packages :

Vendor Specific Classes (OEM) : company that makes a part that is marketed by
another company typically as a component of the second company's product.

Native Operating System : is not a product. It is a phrase that describes the


operating system that the device comes with, and applications written
specifically for that OS (as opposed to Java apps, which are cross-platform).
Object Oriented Programming Language
Object Oriented Programming Language

Heap : share memory resource among all threads and stores all
created objects & array
The heap space itself is separated into several spaces :
Young generation with eden space and survivor space :
New/Short-Term Objects are instantiated in the eden
space.
Survived/Mid-Term Objects are copied from the eden space
to the survivor space.
Old Generation with tenured space
Tenured/Long-Term Objects are copied from the survivor to
the old generation space
Perm Space : for class definition, meta data and string pools.
Object Oriented Programming Language
Object Oriented Programming Language

By separating objects by their life time allows a shorter time


consumption of the minor garbage collection and in return there
is more CPU time for the application.

Garbage collection (GC) is a form of automatic memory


management

The reason is that in Java, unlike C, memory is freed (by destroying


objects) automatically by two different garbage collectors :
1. Minor Garbage Collection.
2. Major Garbage Collection.
Object Oriented Programming Language

Many vendors create IDE (Integrated Development Environment)


for Java, such as :
1. Dr. Java, free, developed by Rice Univercity, United States
2. BlueJ, free, developed by Monash Univercity, Australia
3. NetBeans, an open source Common Development and
Distribution License (CDDL). Sponsored by Sun Microsystem
4. Eclipse JDT (Java Development Tools), an open source Eclipse
Public License), developed by Eclipse Foundation company,
such as IBM, BEA, Intel, Nokia, and Borland
5. Oracle JDeveloper, free, developed by Oracle
6. JCreator, written in C/C++, faster and using less memory from
most IDE.
Object Oriented Programming Language
Object Oriented Programming Language
Object Oriented Programming Language
Task 01

1. Mention advantage and disadvantage of software engineering


methods above !
2. Explain about Object Oriented Paradigm Models components
above !

Create Power Point file and presenting on the next week !!


Next Week Presentation

Object Oriented Approach & Principles :


Object
Class
Object Oriented Criterias
Abstraction
Decomposition
Encapsulation
Modularity
Reusability
Inheritance
Polymorphism
T H A N K
Y O U

You might also like