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 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 UniversityComputer Engineering Department
Computer Engineering Department
2About the Lecturer
About the Lecturer
BScTÜ, Computer Engineering Department, 1995
MScTÜ, 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
3Welcome to the Course
Welcome to the Course
Important Course Information
Course Hours
•10:00-13:00 ThursdayCourse Web Page
Join to the group
•blg252e@yahoogroups.comGrading 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. 5References
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 ProverbThere 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
11INTRODUCTIONINTRODUCTION
1 12Introduction1
Object Oriented Programming
Content
Content
ŹIntroduction to Software Engineering
ŹObject-Oriented Programming Paradigm
13Introduction1
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. 14Introduction1
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? 15Introduction1
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 16Introduction1
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 17Introduction1
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 18Introduction1
Object Oriented Programming
MaintainabilityMaintainability
Flexibility
Flexibility
Testability
TestabilityPortability
Portability
Reusability
Reusability
Interoperability
Interoperability
Correctness
Correctness
Reliability
ReliabilityEfficiency
Efficiency
Integrity
IntegrityUsability
UsabilityPRODUCT TRANSITION
PRODUCT TRANSITIONPPRROODDUUCCTTRREEVVIISSIIOONNPPRROODDUUCCTTRREEVVIISSIIOONNPRODUCT OPERATION
PRODUCT OPERATION
McCall Quality Triangle
McCall Quality Triangle
19Introduction1
Object Oriented Programming
20Introduction1
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 aprogramMcCall Quality Triangle
McCall Quality Triangle
21Introduction1
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 anotherMcCall Quality Triangle
McCall Quality Triangle
22Introduction1
Object Oriented Programming
Customer-User-Developer
Customer-User-Developer
23Introduction1
Object Oriented Programming
Development Team
Development Team
24Introduction1
Object Oriented Programming
ŹRequirements Phase
ŹSpecification Phase
ŹDesign Phase
ŹImplementation Phase
ŹIntegration Phase
ŹMaintenance Phase
ŹRetirement Phase
Software Life Cycle
Software Life Cycle
25Introduction1
Object Oriented Programming
ŹDefining constraints
- Functions - Due dates -Costs - Reliability -SizeŹTypes
- Functional - Non-FunctionalRequirements Phase
Requirements Phase
26Introduction1
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
27Introduction1
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 maintainDesign Phase
Design Phase
28Introduction1
Object Oriented Programming
ŹSimply coding
ŹUnit tests
- For verificationImplementation Phase
Implementation Phase
29Introduction1
Object Oriented Programming
ŹCombining modules
ŹSystem tests
- For validationŹQuality tests
Integration Phase
Integration Phase
30Introduction1
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
31Introduction1
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
32Introduction1
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?
33Introduction1
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 34Introduction1
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?
35Introduction1
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
36Introduction1
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 systemsLearning C++
Learning C++
37Software 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
38Introduction1
Object Oriented Programming
OO C++Task/Problem
Analysis/Planning
Design/Modeling
Implementation
TestProduct
Documentation
Software Development Process
Software Development Process
39Introduction1
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. 40Introduction1
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. 41Introduction1
Object Oriented Programming
ŹThe UP promotes several best practices.
ŹIterative
ŹIncremental
ŹRisk-driven
Unified Process (UP)
Unified Process (UP)
42Introduction1
Object Oriented Programming
Unified Process (UP)
Unified Process (UP)
Requirements
Design
Implementation &
Test & Integration
& More DesignFinal Integration
& System TestRequirements
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.