[PDF] [PDF] Object Oriented Programming - İTÜ

Dr Feza Buzlaca's Lecture Notes A users manual should be also written 154 OO Programming Concepts 3 Object Oriented Programming Summary



Previous PDF Next PDF





[PDF] OBJECT ORIENTED PROGRAMMING DIGITAL NOTES - MRCET

C provides control over range of integer values and storage space occupied by these values through the data types: short int, int, long int in both signed and



[PDF] Introducing to Object-Oriented Programming - Indico

These lecture notes are designed to provide the basic knowledge on OOP, that stands for Object Oriented Programming During Real-Time Colleges X-Window  



[PDF] INTRODUCTION OF OBJECT ORIENTED PROGRAMMING - dde gjust

Note that the default return type for all function in C++ is int The following main without type and return will run with a warning: main () {



[PDF] Object Oriented Programming - İTÜ

Dr Feza Buzlaca's Lecture Notes A users manual should be also written 154 OO Programming Concepts 3 Object Oriented Programming Summary



[PDF] Object Oriented Programming Using C++ - College of Engineering

LECTURE NOTES ON Object Oriented Programming Using C++ Prepared by Dr Subasish Mohapatra Department of Computer Science and Application



[PDF] Introduction to Object-Oriented Programming

Introduction to Object-Oriented Programming • Objects and Pure Object- Oriented Languages A program is a set of objects telling each other what to do by OOP: Introduction 24 Summary • Classes are "recipes" for creating objects



[PDF] Object-Oriented Programming Basics With Java

Executive Summary Summary • Object-oriented programming takes advantage of our perception of world • An object is an encapsulated completely-specified



[PDF] Object Oriented Programming Dr Robert Harle OO Programming

oriented languages such as C++ and Java Note that I have pluralised “ Language” in the above sentences Terms like “Object-oriented” are really a set of ideas 



[PDF] LECTURE NOTES ON OBJECT ORIENTED PROGRAMMING - IARE

UNIT I: OOPS CONCEPTS AND JAVA PROGRAMMING OOP concepts: Classes and objects, data abstraction, encapsulation, inheritance, benefits of 



[PDF] Notes Subject: Object Oriented Programming through C++ (IT-03

Object oriented Programming is defined as an approach that provides a way of modularizing programs by modifiers are: signed, unsigned, long and short

[PDF] object oriented analysis and design advantages and disadvantages

[PDF] object oriented analysis and design example

[PDF] object oriented analysis and design python

[PDF] object oriented analysis and design with applications 4th edition pdf

[PDF] object oriented approach

[PDF] object oriented design patterns

[PDF] object oriented javascript pdf

[PDF] object oriented javascript tutorial point

[PDF] object oriented php junade ali pdf

[PDF] object oriented php peter lavin

[PDF] object oriented programming in javascript with examples pdf

[PDF] object oriented programming paradigm

[PDF] object oriented programming with abap objects

[PDF] object oriented programming with abap objects pdf

[PDF] objective c o'reilly pdf

1Object Oriented Programming

Version Version 00..11..22

Object Oriented Programming

Binnur Kurt

kurt@ce.itu.edu.tr Istanbul Technical UniversityIstanbul Technical University

Computer Engineering Department

Computer Engineering Department

2

About the Lecturer

About the Lecturer

BSc

TÜ, Computer Engineering Department, 1995

MSc

TÜ, Computer Engineering Department, 1997

Areas of Interest

Digital Image and Video Analysis and Processing

Real-Time Computer Vision Systems

Multimedia: Indexing and Retrieval

Software Engineering

OO Analysis and Design

3

Welcome to the Course

Welcome to the Course

Important Course Information

Course Hours

•10:00-13:00 Thursday

Course Web Page

Join to the group

•blg252e@yahoogroups.com

E-mail

4

Grading Scheme

Grading Scheme

3 Homeworks (5% each)

2 Midterm Exams (20%,25%)

A final exam (40%)

You must follow the official Homework Guidelines

Academic dishonesty including but not limited to cheating, plagiarism, collaboration is unacceptable and subject to disciplinary actions. Any student found guilty will have grade F. Assignments are due in class on the due date. Late assignments will generally not be accepted. Any exception must be approved. Approved late assignments are subject to a grade penalty. 5

References

References

The presentation is based on

Asst.Prof.Dr. Feza Buzlaca's Lecture Notes

6Object Oriented Programming

Tell me and I forget.

Show me and I remember.

Let me do and I understand.

- Chinese Proverb

There is no time for lab sessions

On the course web page you will find lab files for each week. You should do the lab sessions on your own.

Just follow the instructions on these documents.

7Object Oriented Programming

Purpose of the Course

Purpose of the Course

ŹTo introduce several programming paradigms including Object-

Oriented Programming, Generic Programming, Design

Patterns

ŹTo show how to use these programming schemes with the C++ programming language to build "good" programs.

8Object Oriented Programming

1. Introduction to Object Oriented Programming.

2. C++: A Better C.

3. Classes and Objects

4. Constructors and Destructors

5. Operator Overloading

6. Inheritance

7. Pointers to Objects

8. Polymorphism

9. Exceptions

Course Outline

Course Outline

9Object Oriented Programming

10. Templates

11.The Standard Template Library - STL

Course Outline

Course Outline

10Object Oriented Programming

How to Use the Icons

How to Use the Icons

Demonstration

ReferenceDiscussion

Exercise

11

INTRODUCTIONINTRODUCTION

1 12

Introduction1

Object Oriented Programming

Content

Content

ŹIntroduction to Software Engineering

ŹObject-Oriented Programming Paradigm

13

Introduction1

Object Oriented Programming

Software

Software

ŹComputer Software is the product that software engineers design and build.

ŹIt encompasses

-programsthat execute within a computer of any size and architecture, -documents that encompass hard-copy and virtual forms, -datathat combine numbers and text but also includes representations of pictorial, video and audio information. 14

Introduction1

Object Oriented Programming

History

History

ŹCommon problems:

- Why does it take so long? - Why are development costs so high? - Why can't find all faults before delivery? - Why can't we measure the development? 15

Introduction1

Object Oriented Programming

History

History

ŹSoftware Engineering: 1967, NATO Study Group,

Garmisch/GERMANY

Ź1968, NATO Software Engineering Conference:

Software Crisis

- Low quality - Not met deadlines and cost limits 16

Introduction1

Object Oriented Programming

After 35 years

After 35 years

ŹStill softwares are

-Late - Over budget - With residual faults

ŹMeans

- SW has own unique properties and problems - Crisis >>>>> Depression 17

Introduction1

Object Oriented Programming

Is SW An Engineering?

Is SW An Engineering?

ŹMay be?

ŹBridge - Operating System

- After collapse, redesign & rebuild - Inspect similar bridges - Perfectly engineered - Experience - Maintaining 18

Introduction1

Object Oriented Programming

MaintainabilityMaintainability

Flexibility

Flexibility

Testability

TestabilityPortability

Portability

Reusability

Reusability

Interoperability

Interoperability

Correctness

Correctness

Reliability

ReliabilityEfficiency

Efficiency

Integrity

IntegrityUsability

UsabilityPRODUCT TRANSITION

PRODUCT TRANSITIONPPRROODDUUCCTTRREEVVIISSIIOONNPPRROODDUUCCTTRREEVVIISSIIOONN

PRODUCT OPERATION

PRODUCT OPERATION

McCall Quality Triangle

McCall Quality Triangle

19

Introduction1

Object Oriented Programming

20

Introduction1

Object Oriented Programming

ŹCorrectness: The extent to which a program satisfies its specification and fulfills the customer's mission objectives

ŹReliability: The extent to which a program can be expected to perform its intended function with required precision

ŹEfficiency: The amount of computing resources and code required by a program to perform its function

ŹIntegrity: Extent to which access to software or data by unauthorized persons can be controlled ŹUsability: Effort required to learn, operate, prepare input and interpret output of a program ŹMaintainability: Effort required to locate and fix an error in aprogram

McCall Quality Triangle

McCall Quality Triangle

21

Introduction1

Object Oriented Programming

ŹFlexibility: Effort required to modify an operational program ŹTestability: Effort required to test a program to ensure that itperforms its intended function

ŹPortability: Effort required to transfer the program from one hardware and/or software system environment to another

ŹReusability: Extent to which a program can be reused in other applications ŹInteroperability: Effort required to couple one system to another

McCall Quality Triangle

McCall Quality Triangle

22

Introduction1

Object Oriented Programming

Customer-User-Developer

Customer-User-Developer

23

Introduction1

Object Oriented Programming

Development Team

Development Team

24

Introduction1

Object Oriented Programming

ŹRequirements Phase

ŹSpecification Phase

ŹDesign Phase

ŹImplementation Phase

ŹIntegration Phase

ŹMaintenance Phase

ŹRetirement Phase

Software Life Cycle

Software Life Cycle

25

Introduction1

Object Oriented Programming

ŹDefining constraints

- Functions - Due dates -Costs - Reliability -Size

ŹTypes

- Functional - Non-Functional

Requirements Phase

Requirements Phase

26

Introduction1

Object Oriented Programming

ŹDocumentation of requirements

- Inputs & Outputs - Formal - Understandable for user & developer - Usually functional requirements. (what to do) - Base for testing & maintenance

ŹThe contract between customer & developer ?

Specification Phase

Specification Phase

27

Introduction1

Object Oriented Programming

ŹDefining Internal structure (how to do)

ŹHas some levels (or types of docs)

- Architectural design - Detailed design

ŹImportant

- To backtrack the aims of decisions - To easily maintain

Design Phase

Design Phase

28

Introduction1

Object Oriented Programming

ŹSimply coding

ŹUnit tests

- For verification

Implementation Phase

Implementation Phase

29

Introduction1

Object Oriented Programming

ŹCombining modules

ŹSystem tests

- For validation

ŹQuality tests

Integration Phase

Integration Phase

30

Introduction1

Object Oriented Programming

ŹCorrective

ŹEnhancement

- Perfective - Adaptive ŹUsually maintainers are not the same people with developers. ŹThe only input is (in general) the source code of the software?!?

Maintenance Phase

Maintenance Phase

31

Introduction1

Object Oriented Programming

ŹWhen the cost of maintenance is not effective. - Changes are so drastic, that the software should be redesigned. - So many changes may have been made. - The update frequency of docs is not enough. - The hardware (or OS) will be changed.

Retirement Phase

Retirement Phase

32

Introduction1

Object Oriented Programming

ŹExpectations are,

ŹReducing the effort, complexity, and cost of development and maintenance of software systems. ŹReducing the time to adapt an existing system (quicker reaction to changes in the business environment).

Flexibility, reusability.

ŹIncreasing the reliability of the system.

Why Object Technology?

Why Object Technology?

33

Introduction1

Object Oriented Programming

Why C++

Why C++

ŹC++ supports writing high quality programs (supports OO) ŹC++ is used by hundreds of thousands of programmers in every application domain. -This use is supported by hundreds of libraries, hundreds of textbooks, several technical journals, many conferences.

ŹApplication domain:

-Systems programming: Operating systems, device drivers. Here, direct manipulation of hardware under real-time constraints are important. -Banking, trading, insurance: Maintainability, ease of extension, ease of testing and reliability is important. -Graphics and user interface programs -Computer Communication Programs 34

Introduction1

Object Oriented Programming

ŹLike any human language, a programming language provides a way to express concepts. ŹProgram development involves creating models of real world situations and building computer programs based on these models. ŹComputer programs describe the method of implementing the model.

ŹComputer programs may contain computer world

representations of the things that constitute the solutions of real world problems.

What is Programming?

What is Programming?

35

Introduction1

Object Oriented Programming

What is Programming? (Con't)

What is Programming? (Con't)

ŹIf successful, this medium of expression (the object-oriented way) will be significantly easier, more flexible, and efficient than the alternatives as problems grow larger and more complex.

PROGRAMMERProgramming Language

ObjectObjectObject

REAL WORLD

COMPUTER

class {

Abstraction/

Modeling

Implementation

36

Introduction1

Object Oriented Programming

ŹLike human languages, programming languages also have many syntax and grammar rules. ŹKnowledge about grammar rules of a programming language is not enough to write "good" programs. ŹThe most important thing to do when learning C++ is to focus on concepts and not get lost in language-technical details. ŹDesign techniques is far more important than an understanding of details; that understanding comes with time and practice. ŹBefore the rules of the programming language, the programming scheme must be understood. ŹYour purpose in learning C++ must not be simply to learn a new syntax for doing things the way you used to, but to learn new and better ways of building systems

Learning C++

Learning C++

37

Software developer

user • A program must do its job correctly. It must be useful and usable. • A program must perform as fast as necessary (Real-time constraints). • A program must not waste system resources (processor time, memory, disk capacity, network capacity) too much. • It must be reliable. • It must be easy to update the program. • A good software must have sufficient documentation (users manual). • Source code must be readable and understandable. • It must be easy to maintain and update (change) the program. • A program must consist of independent modules, with limited interaction. • An error may not affect other parts of a program (Locality of errors). • Modules of the program must be reusable in further projects. • A software project must be finished before its deadline. • A good software must have sufficient documentation (about development). Object-oriented programming technique enables programmers to build high- quality programs. While designing and coding a program, these quality metrics must be kept always in mind.

Software Quality Metrics

Software Quality Metrics

38

Introduction1

Object Oriented Programming

OO C++

Task/Problem

Analysis/Planning

Design/Modeling

Implementation

Test

Product

Documentation

Software Development Process

Software Development Process

39

Introduction1

Object Oriented ProgrammingŹAnalysis: Gaining a clear understanding of the problem. Understanding

requirements. They may change during (or after) development of the system!

ŹBuilding the programming team.

ŹDesign: Identifying the key concepts involved in a solution. Models of the key concepts are created. This stage has a strong effect on the quality of the software. Therefore, before the coding, verification of the created model must be done. ŹDesign process is connected with the programming scheme. Here, our design style is object-oriented. ŹCoding: The solution (model) is expressed in a program. ŹCoding is connected with the programming language. In this course we will use C++. ŹDocumentation: Each phase of a software project must be clearly explained. A users manual should be also written. ŹTest: the behavior of the program for possible inputs must be examined. 40

Introduction1

Object Oriented Programming

UML UML ŹThey are important design principlesand design patterns, which help us developing high-quality software.

The Unified Modeling Language (UML) is useful to

express the model. 41

Introduction1

Object Oriented Programming

ŹThe UP promotes several best practices.

ŹIterative

ŹIncremental

ŹRisk-driven

Unified Process (UP)

Unified Process (UP)

42

Introduction1

Object Oriented Programming

Unified Process (UP)

Unified Process (UP)

Requirements

Design

Implementation &

Test & Integration

& More Design

Final Integration

& System Test

Requirements

Design

4 weeks (for example)

The system grows

incrementally.Feedback from iteration N leads to refinement and adaptation of the requirements and design in iteration N+1.

Iterations are fixed in

length, or timeboxed. Time

Implementation &

Test & Integration

& More Design

Final Integration

& System Testquotesdbs_dbs20.pdfusesText_26