Object Oriented Programming

3y ago
125 Views
14 Downloads
3.14 MB
561 Pages
Last View : 9d ago
Last Download : 3m ago
Upload by : River Barajas
Transcription

Object Oriented ProgrammingBinnur Kurtkurt@ce.itu.edu.trIstanbul Technical UniversityComputer Engineering DepartmentObject Oriented Programming1Version 0.1.2

AboutAbout thethe LecturerLecturer 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 Design2

WelcomeWelcome toto thethe CourseCourse Important Course Information¾ Course Hours 10:00-13:00 Thursday¾ Course Web Page http://www.cs.itu.edu.tr/ kurt/courses/blg252e¾ Join to the group http://groups.yahoo.com/group/blg252e blg252e@yahoogroups.com¾ E-mail3

GradingGrading SchemeScheme¾ 3 Homeworks (5% each)¾ 2 Midterm Exams (20%,25%)¾ A final exam (40%)¾ You must follow the official Homework .html).¾ Academic dishonesty including but not limited to cheating,plagiarism, collaboration is unacceptable and subject to disciplinaryactions. Any student found guilty will have grade F. Assignmentsare due in class on the due date. Late assignments will generally notbe accepted. Any exception must be approved. Approved lateassignments are subject to a grade penalty.4

ReferencesReferencesThe presentation is based onAsst.Prof.Dr. Feza Buzlaca’s Lecture Notes5

Tell me and I forget.Show me and I remember.Let me do and I understand.—Chinese ProverbThere is no time for lab sessionsOn the course web page you will find lab files for eachweek. You should do the lab sessions on your own.Just follow the instructions on these documents.Object Oriented Programming6

PurposePurpose ofof thethe CourseCourse To introduce several programming paradigms including ObjectOriented Programming, Generic Programming, DesignPatterns To show how to use these programming schemes with the C programming language to build “good” programs.Object Oriented Programming7

CourseCourse OutlineOutline1. Introduction to Object Oriented Programming.2. C : A Better C.3. Classes and Objects4. Constructors and Destructors5. Operator Overloading6. Inheritance7. Pointers to Objects8. Polymorphism9. ExceptionsObject Oriented Programming8

CourseCourse OutlineOutline10. Templates11.The Standard Template Library - STLObject Oriented Programming9

HowHow toto UseUse thethe IconsIconsDemonstrationReferenceObject Oriented ProgrammingDiscussionExercise10

1 INTRODUCTION11

ContentContentIntroduction 1 Introduction to Software Engineering Object-Oriented Programming ParadigmObject Oriented Programming12

Introduction 1SoftwareSoftware Computer Software is the product that software engineersdesign and build. It encompasses– programs that execute within a computer of any size andarchitecture,– documents that encompass hard-copy and virtual forms,– data that combine numbers and text but also includesrepresentations of pictorial, video and audio information.Object Oriented Programming13

Introduction 1HistoryHistory 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?Object Oriented Programming14

Introduction 1HistoryHistory Software Engineering: 1967, NATO Study Group,Garmisch/GERMANY 1968, NATO Software Engineering Conference:Software Crisis– Low quality– Not met deadlines and cost limitsObject Oriented Programming15

AfterAfter 3535 yearsyearsIntroduction 1 Still softwares are– Late– Over budget– With residual faults Means– SW has own unique properties and problems– Crisis DepressionObject Oriented Programming16

IsIs SWSW AnAn Engineering?Engineering?Introduction 1 May be? Bridge – Operating System–––––After collapse, redesign & rebuildInspect similar bridgesPerfectly engineeredExperienceMaintainingObject Oriented Programming17

Introduction 1McCallMcCall QualityQuality ityP R O D U C T R E V IS I O NPortabilityReusabilityInteroperabilityPRODUCT TRANSITIONPRODUCT liabilityObject Oriented Programming18

Object Oriented on 1

Introduction 1McCallMcCall QualityQuality TriangleTriangle Correctness: The extent to which a program satisfies itsspecification and fulfills the customer’s mission objectives Reliability: The extent to which a program can be expected toperform its intended function with required precision Efficiency: The amount of computing resources and coderequired by a program to perform its function Integrity: Extent to which access to software or data byunauthorized persons can be controlled Usability: Effort required to learn, operate, prepare input andinterpret output of a program Maintainability: Effort required to locate and fix an error in aprogramObject Oriented Programming20

Introduction 1McCallMcCall QualityQuality TriangleTriangle 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 onehardware and/or software system environment to another Reusability: Extent to which a program can be reused in otherapplications Interoperability: Effort required to couple one system to anotherObject Oriented Programming21

Introduction ect Oriented Programming22

Introduction 1DevelopmentDevelopment TeamTeamObject Oriented Programming23

Introduction 1SoftwareSoftware LifeLife CycleCycle Requirements Phase Specification Phase Design Phase Implementation Phase Integration Phase Maintenance Phase Retirement PhaseObject Oriented Programming24

RequirementsRequirements PhasePhaseIntroduction 1 Defining constraints– Functions– Due dates– Costs– Reliability– Size Types– Functional– Non-FunctionalObject Oriented Programming25

SpecificationSpecification PhasePhaseIntroduction 1 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 ?Object Oriented Programming26

Introduction 1DesignDesign PhasePhase 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 maintainObject Oriented Programming27

Introduction 1ImplementationImplementation PhasePhase Simply coding Unit tests– For verificationObject Oriented Programming28

Introduction 1IntegrationIntegration PhasePhase Combining modules System tests– For validation Quality testsObject Oriented Programming29

Introduction 1MaintenanceMaintenance PhasePhase Corrective Enhancement– Perfective– Adaptive Usually maintainers are not the same people withdevelopers. The only input is (in general) the source code of thesoftware?!?Object Oriented Programming30

Introduction 1RetirementRetirement PhasePhase When the cost of maintenance is not effective.– Changes are so drastic, that the software should beredesigned.– So many changes may have been made.– The update frequency of docs is not enough.– The hardware (or OS) will be changed.Object Oriented Programming31

Introduction 1WhyWhy ObjectObject Technology?Technology? Expectations are, Reducing the effort, complexity, and cost of developmentand maintenance of software systems. Reducing the time to adapt an existing system (quickerreaction to changes in the business environment).Flexibility, reusability. Increasing the reliability of the system.Object Oriented Programming32

Introduction 1WhyWhy C C C supports writing high quality programs (supports OO) C is used by hundreds of thousands of programmers in everyapplication domain.– This use is supported by hundreds of libraries, hundreds oftextbooks, several technical journals, many conferences. Application domain:– Systems programming: Operating systems, device drivers. Here,direct manipulation of hardware under real-time constraints areimportant.– Banking, trading, insurance: Maintainability, ease of extension,ease of testing and reliability is important.– Graphics and user interface programs– Computer Communication ProgramsObject Oriented Programming33

Introduction 1WhatWhat isis Programming?Programming? Like any human language, a programming languageprovides a way to express concepts. Program development involves creating models of realworld situations and building computer programs based onthese models. Computer programs describe the method of implementingthe model. Computer programs may contain computer worldrepresentations of the things that constitute the solutionsof real world problems.Object Oriented Programming34

WhatWhat isis Programming?Programming? (Con’t)(Con’t)Introduction 1Programming Languageclass {}ObjectAbstraction/ModelingImplementationObject ObjectREAL WORLDPROGRAMMERCOMPUTER If successful, this medium of expression (the object-oriented way)will be significantly easier, more flexible, and efficient than thealternatives as problems grow larger and more complex.Object Oriented Programming35

Introduction 1LearningLearning C C Like human languages, programming languages also have many syntaxand grammar rules. Knowledge about grammar rules of a programming language is notenough to write “good” programs. The most important thing to do when learning C is to focus onconcepts and not get lost in language-technical details. Design techniques is far more important than an understanding ofdetails; that understanding comes with time and practice. Before the rules of the programming language, the programmingscheme must be understood. Your purpose in learning C must not be simply to learn a newsyntax for doing things the way you used to, but to learn new andbetter ways of building systemsObject Oriented Programming36

SoftwareSoftware QualityQuality MetricsMetrics 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).user 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).Software developerObject-oriented programming technique enables programmers to build highquality programs. While designing and coding a program, these quality metrics37must be kept always in mind.

SoftwareSoftware DevelopmentDevelopment ProcessProcessTask/ProblemIntroduction plementationC TestObject Oriented ProgrammingProduct38

Introduction 1 Analysis: Gaining a clear understanding of the problem. Understandingrequirements. They may change during (or after) development of thesystem! Building the programming team. Design: Identifying the key concepts involved in a solution. Models ofthe key concepts are created. This stage has a strong effect on the qualityof the software. Therefore, before the coding, verification of the createdmodel must be done. Design process is connected with the programming scheme. Here, ourdesign style is object-oriented. Coding: The solution (model) is expressed in a program. Coding is connected with the programming language. In this course wewill use C . Documentation: Each phase of a software project must be clearlyexplained. A users manual should be also written. Test: the behavior of the program for possible inputs must be examined.Object Oriented Programming39

Introduction 1UMLUML They are important design principles and designpatterns, which help us developing high-quality software.The Unified Modeling Language (UML) is useful toexpress the model.Object Oriented Programming40

Introduction 1UnifiedUnified ProcessProcess (UP)(UP) The UP promotes several best practices. Iterative Incremental Risk-drivenObject Oriented Programming41

UnifiedUnified ProcessProcess (UP)(UP)RequirementsIntroduction 1RequirementsDesignImplementation &Test & Integration& More DesignFinal Integration& System TestTimeDesignImplementation &Test & Integration& More DesignFeedback fromiteration N leads torefinement andadaptation of therequirements anddesign in iterationN 1.Final Integration& System Test4 weeks (for example)Iterations are fixed inlength, or timeboxed.Object Oriented ProgrammingThe system growsincrementally.42

Introduction 1ProceduralProcedural ProgrammingProgramming Pascal, C, BASIC, Fortran, and similar traditionalprogramming languages are procedural languages. That is,each statement in the language tells the computer to dosomething. In a procedural language, the emphasis is on doing things(functions). A program is divided into functions and—ideally, at least—each function has a clearly defined purpose and a clearlydefined interface to the other functions in the program.Object Oriented Programming43

ProceduralProcedural ProgrammingProgrammingfunctionsIntroduction 1Main ProgramGlobal DataObject Oriented Programming44

Introduction 1ProblemsProblems withwith ProceduralProcedural ProgrammingProgramming Data Is Undervalued Data is, after all, the reason for a program’s existence. The importantparts of a program about a school for example, are not functions thatdisplay the data or functions that checks for correct input; they arestudent, teacher data. Procedural programs (functions and data structures) don’t model thereal world very well. The real world does not consist of functions. Global data can be corrupted by functions that have no businesschanging it. To add new data items, all the functions that access the data must bemodified so that they can also access these new items. Creating new data types is difficult.Object Oriented Programming45

Introduction 1Besides.Besides. It is also possible to write good programs by usingprocedural programming (C programs). But object-oriented programming offers programmersmany advantages, to enable them to write high-qualityprograms.Object Oriented Programming46

ObjectObject OrientedOriented ProgrammingProgrammingIntroduction 1The fundamental idea behind object-oriented programming is: The real world consists of objects. Computer programs maycontain computer world representations of the things (objects) thatconstitute the solutions of real world problems. Real world objects have two parts: Properties (or state :characteristics that can change), Behavior (or abilities :things they can do). To solve a programming problem in an object-oriented language,the programmer no longer asks how the problem will be dividedinto functions, but how it will be divided into objects. The emphasis is on dataObject Oriented Programming47

Introduction 1ObjectObject OrientedOriented ProgrammingProgramming What kinds of things become objects in object-orientedprograms?– Human entities: Employees, customers, salespeople,worker, manager– Graphics program: Point, line, square, circle, .– Mathematics: Complex numbers, matrix– Computer user environment: Windows, menus, buttons– Data-storage constructs: Customized arrays, stacks,linked listsObject Oriented Programming48

Introduction 1OOPOOP :: EncapsulationEncapsulation andand DataData HidingHidingThinking in terms of objects rather than functions has a helpfuleffect on design process of programs. This results from the closematch between objects in the programming sense and objects in thereal world.To create software models of real world objects both data and thefunctions that operate on that data are combined into a singleprogram entity. Data represent the properties (state), and functionsrepresent the behavior of an object. Data and its functions are saidto be encapsulated into a single entity.An object’s functions, called member functions in C typicallyprovide the only way to access its data. The data is hidden, so it issafe from accidental alteration.Object Oriented Programming49

Introduction 1OOPOOP :: EncapsulationEncapsulation andand DataData HidingHidingCon’t Encapsulation and data hiding are key terms in thedescription of object-oriented languages. If you want to modify the data in an object, you knowexactly what functions interact with it: the memberfunctions in the object. No other functions can access thedata. This simplifies writing, debugging, and maintainingthe program.Object Oriented Programming50

Example:Example: AA PointPoint onon thethe planeplaneIntroduction 1A Point on a plane has two properties; x-y coordinates.Abilities (behavior) of a Point are, moving on the plane,appearing on the screen and disappearing.A model for 2 dimensional points with the following parts:Two integer variables (x , y) to represent x and ycoordinatesA function to move the point: move ,A function to print the point on the screen: print ,A function to hide the point: hide .Object Oriented Programming51

Example:Example: AA PointPoint onon thethe planeplaneCon’tIntroduction 1Once the model has been built and tested, it is possible tocreate many objects of this model , in main program.Point point1, point2, point3;:point1.move(50,30);point1.print();Object Oriented Programming52

Introduction 1TheThe ObjectObject ModelModelA C program typically consists of a number of objects thatcommunicate with each other by calling one another’s member functions.Object Oriented Programming53

Con’tIntroduction 1TheThe ObjectObject ModelModelObject Oriented Programming54

OOPOOP vs.vs. ProceduralProcedural ProgrammingProgrammingIntroduction 1Procedural Programming: Procedural languages still requires you to think in terms of thestructure of the computer rather than the structure of the problemyou are trying to solve. The programmer must establish the association between themachine model and the model of the problem that is actually beingsolved. The effort required to perform this mapping produces programsthat are difficult to write and expensive to maintain. Because thereal world thing and their models on the computer are quitedifferent.Object Oriented Programming55

Introduction 1Example:Example: ProceduralProcedural ProgrammingProgrammingCon’t Real world thing: student Computer model: char *, int, float . It is said that the C language is closer to the computer thanthe problem.Object Oriented Programming56

OOPOOP vs.vs. ProceduralProcedural ProgrammingProgrammingCon’tIntroduction 1Object Oriented Programming The object-oriented approach provides tools for theprogrammer to represent elements in the problem space. We refer to the elements in the problem space and theirrepresentations in the solution space as “objects.” The idea is that the program is allowed to adapt itself to theproblem by adding new types of objects, so when you read thecode describing the solution, you’re reading words that alsoexpress the problem. OOP allows you to describe the problem in terms of theproblem, rather than in terms of the computer where the solutionwill run.Object Oriented Programming57

Introduction 1OOPOOP vs.vs. ProceduralProcedural ProgrammingProgrammingCon’t Benefits of the object-oriented programming:– Readability– Understandability– Low probability of errors– Maintenance– Reusability– TeamworkObject Orie

Object Oriented Programming 7 Purpose of the CoursePurpose 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.

Related Documents:

method dispatch in different object-oriented programming languages. We also include an appendix on object-oriented programming languages, in which we consider the distinction between object-based and object-oriented programming languages and the evolution and notation and process of object-oriented analysis and design, start with Chapters 5 and 6;

object-oriented programming language is based on a kind of old object-oriented programming language. For example, though C language is an object-oriented programming language, it still retains the pointer which is complex but has strong function. But C# improved this problem. C# is a kind of pure object-oriented language.

It stands for Object Oriented Programming. Object‐Oriented Programming ﴾223﴿ uses a different set of programming languages than old procedural programming languages ﴾& 3DVFDO, etc.﴿. Everything in 223 is grouped as self sustainable "REMHFWV". Hence, you gain reusability by means of four main object‐oriented programming concepts.

The principle of object oriented programming is to combine both data and the associated functions into a single unit called a class. An object in programming means data. Data is therefore predominant in object oriented programming. The concept will become clear with examples. However, in the object oriented paradigm, accessibility of

Object Class: Independent Protection Layer Object: Safety Instrumented Function SIF-101 Compressor S/D Object: SIF-129 Tower feed S/D Event Data Diagnostics Bypasses Failures Incidences Activations Object Oriented - Functional Safety Object: PSV-134 Tower Object: LT-101 Object Class: Device Object: XS-145 Object: XV-137 Object: PSV-134 Object .

1. From structured programming to object-oriented programming 1 2. Towards Object-oriented Programming 7 3. Phenomena and Concepts 13 4. Towards Object-oriented Programs 19 5. The C# Language and System 23 6. C# in relation to C 25 7. C# in relation to Java 53 8. C# in relation to Visual Basic 57 9. C# Tools and IDEs 59 10.

Abstract—OOP (Object Oriented Programming) is an object-oriented programming method. The purpose of OOP is to facilitate the development of the program by following the models that have existed in everyday life. Object-oriented programming techniques are becoming very popular today in the process of creating multi-operating system applications.

classroom teaching to working as a reading specialist, curriculum developer, Title 1 teacher, staff developer, and Title 1 District Coordinator. She is the author of numerous books, articles, and videos and conducts presentations and workshops on literacy throughout the country. Program Advisor: Mary Hawley Mary Hawley is an educational consultant who has worked with teachers, educators, and .