oopls help companies reduce complexity increase competition in open markets speeds up development...

18
A Comparison of Object Oriented Languages in Software Engineering Written by Mohammed Reza Nami Presented by Mark Simko

Upload: phoebe-hawkins

Post on 01-Jan-2016

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

A Comparison of Object Oriented Languages in Software Engineering

Written by Mohammed Reza Nami

Presented by Mark Simko

Page 2: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Introduction

OOPLs Help companies reduce complexity Increase competition in open markets Speeds up development Improves maintenance, resusability,

modifiability of software

Page 3: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Importance

O-O improves efficiency in development and maintainance

Decreases complexity Scalable Distributed Systems

Page 4: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Survey

AT&T Bell Labs project using OOPL found

30% reduction in development time 20% reduction in staff effort Able to reuse the code in many other

projects

Page 5: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

O-O Concepts

Object and Class

Object being a black box Objects are individual instances of a

class

Page 6: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

O-O Concepts (con’t)

Properties

Inheritance Polymorphism Dynamic Binding Encapsulation Information Hiding

Page 7: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Object Oriented Programming Languages

Smalltalk C++ Java Eiffel

Page 8: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Smalltalk

Pure OOL Run-time binding Objects can do 3 things Hold state Receive a message Send a message to itself or another

object

Page 9: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

C++

Compatible with C Fast and efficient Utilizes compile-time binding High run-time efficiency with small

code size Trades off some power to reuse classes

Page 10: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Java

Portable, can be used on any web-enabled computer

Mixture of C++ and Smalltalk Syntax of C++ but improved upon it Garbage Collection Virtual Machine

Page 11: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Eiffel Language

Portable Open System Design by Contract Automatic Documentation Multiple Inheritance Repeated Inheritance Statically Typed Dynamically Bound

Page 12: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Static Typing

Eiffel – Statically typed C++ - Statically typed (however the

language supports C-style “casts” which really amount to invitations to violate type rules

Java – typed, mostly statically but dynamic typing is required for generic container structures

Smalltalk – Dynamically typed

Page 13: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Compilation Technology

Eiffel – Combination of interpretation and compilation in same environment

C++ - Usually complied Java – Usually mix of interpretation and

“on-the-fly” compilation Smalltalk – Historically interpreter-

based, currently mix of interpretation and compliation

Page 14: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

OOPLs and Quality Factors

Eiffel – Efficiency and portability C++ - Efficiency, maintainability,

portability and functionality Java – Maintainability, Usability,

Functionality, and Portability Smalltalk – Functionality and

Maintainability

Page 15: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Automatic Documentation

Eiffel can generate many views, graphical or textual

Class interfaces Inheritance hierarchies High level “bubbles and arrows” Diagrams

Page 16: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Multiple Inheritence

Eiffel – Multiple and repeated inheritance, widely used

C++ Multiple inheritance (though discouraged by many for various problems)

Java – Single inheritance (but multiple interface facility)

Smalltalk – Single Inheritance

Page 17: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Building Infrastructures

Java RMI (Remote Method Invocation) Communicates between networking

and distributed computing Uses a proxy object Can have many types Client can find out what service was

returned

Page 18: OOPLs  Help companies reduce complexity  Increase competition in open markets  Speeds up development  Improves maintenance, resusability, modifiability

Conclusion

Used worldwide for commercial, DoD, and other government projects

Less complexity = increase in maintainability

OOPL must treat the O-O paradigm to gain the benefits