Nesneye yönelik programlama tekniği ve bir uygulama
Nesneye yönelik programlama tekniği ve bir uygulama
dc.contributor.advisor | Şefik, Bedri | |
dc.contributor.author | Hacıgümüş, V. Hakan | |
dc.contributor.authorID | 46135 | |
dc.contributor.department | Mühendislik Bilimleri | tr_TR |
dc.date.accessioned | 2023-03-02T13:22:19Z | |
dc.date.available | 2023-03-02T13:22:19Z | |
dc.date.issued | 1995 | |
dc.description | Tez (Yüksek Lisans) -- İstanbul Teknik Üniversitesi, Fen Bilimleri Enstitüsü, 1995 | tr_TR |
dc.description.abstract | Bu tez çalışmasında "Nesneye Yönelik Programlama" konusu ele alınmıştır. Çalışmanın genel yapısı üç ana bölümü içermektedir, Birinci kısımda, nesneye yönelik programlamaya girmeden önce nesneye yönelim kavramı ve bu kavramı oluşturan öğeler herhangi bir programlama diline bağımlı kalmaksızın kuramsal bazda ortaya konulmaktadır, iyi bir yazılımın yalnızca programın kodlanmasından ibaret olmayıp, yazılım mühendisliği disiplini içerisinde tanımlanan aşamaların sonucunda ortaya çıktığı düşüncesinden hareketle, bu kısımda yazılım mühendisliği ve sistem analizi ile nesneye yönelim arasındaki ilişkiler de irdelenmektedir. İkinci kısımda, kuramsal olarak ortaya konulmuş olan nesneye yönelimi oluşturan kavramların, C++ dili içersinde nasıl gerçeklendiği anlatılmıştır. Bu kısımda C++ dilinin genel yapısı nesneye yönelik programlama için kullanılan yapıları, tanımlar ve komutlar bazında ele alınmaktadır. Tanımlamaların daha somut olarak ortaya konulabilmesi amacıyla, her bölümde örnek program parçalarına yer verilmektedir. Bu program parçaları zaman zaman tanımlamaları örneklemek için kullanıldığı gibi gerekli durumlarda bunun dışında programlama tekniklerini de içerecek şekilde seçilmiştir. Üçüncü kısımda, ilk iki kısımda anlatılanlar bir araya getirilerek somut bir uygulama gerçekleştirilmektedir. Bu uygulama için seçilen konu öğrenci notlarının takibi işlemidir. Ancak gerçek olarak hedeflenen nesneye yönelik programlama tekniklerinin uygulamasını gerçekleştirmek ve daha sonraki uygulamalarda da kullanılabilecek tarzda hazırlanmış nesneye yönelik kütüphaneler oluşturmaktır. Nitekim bu amaçla başka uygulamalarda kullanılabilecek tarzda modüller geliştirilmiştir. | tr_TR |
dc.description.abstract | Object-Oriented Programming Technique and an Application The term "object-oriented" means that organize software as a collection of discrete "objects" that incorparate both data structure and behavior. This is contrast to conventional programming in which data structure and behavior are only loosely connected. Object-oriented programming is a new way of approaching the job of programming. Approaches to programming have changed dramatically since the invention of the computer. The primary reason for change is to accommodate the increasing complexity of programs. When computers were first invented, programming was done by toggling in the binary machine instructions using the front panel. As long as programs were just a few hundred instructions long, this approach worked. As programs grew, assembly language was invented so that a programmer could deal with larger, increasingly complex programs by using symbolic representations of the machine instructions. As programs continued to grow, high-level languages were introduced to give the programmer more tools with which to handle complexity. The 1960s gave birth to structural programming. This is the method encouraged by languages such as C and Pascal. Using structured languages, it was for the first time possible to write moderately complex programs fairly easily. However, even with strucrured programming methods, once aproject reaches a certain size it gets uncontrollable. The reason it becomes uncontrollable is that its complexity exceeds that which a programmer can manage using structured programming techniques. At each milestone in the development of programming methods were created to allow the programmer to deal with increasingly greater complexity. Each step of the way, the new approach took the best elements of the previous methods and moved forward. Today, many projects are near or at the point where the structured approach no longer works. To solve this problem, object-oriented programming was invented. vii Object-oriented programming is programming by sending messages to objects. Objects would be found in a collection called class. All objects in the collection share certain characteristics. From the programmer's perspective, selection of an object within the collection does not provide information about the object's exact type. Since the type of an object is not known when a message is sent to it, the exact response of the object coannot be predicted. Again sending messages to objects is a powerful programming technique, and what is truly meant by the term object-oriented programming. It is widely accepted that object-oriented programming is today, what structured programming was in the 1 970s. The most fundemental underlying purpose of object-oriented programming is to allow a programmer to manage and understand larger, more complex programs. The key to achieving this goal is "object". Essentialy, object-oriented programming involves the creation of objects, which combine and encapsulate both data and the code that operates on that data. Objects may contain both public and private elements. When an element of the object is private, then only other elements of that object may have access to it. Public elements may be accessed by any other piece of the program. Using private elements, it is possible to strictly control how an object is accessed. The advantage to using objects is that, when correctly applied, an object is a single, logical entity that is easier to comprehend and manage than separate elements that comprise to object. Another feature of object-oriented programming is that it allows you to create a hierarchy of objects, moving from most general to most specific. In this hierarchy, each object inherits the traits of those that come before it. The abilty to create hierarchical structeres allows the programmer to organize parts of the program into neat, self-contained units. Object-oriented programming has taken the best ideas of structured programming and combined them with several powerful, new concepts. Object- oriented programming allows you to more easly decompose a problem into subgroups of related parts of the problem. Then, using the language, you can translate these groups into units called objects. This approach is ver familiar to human beings because it is the problem solving method of human brains. People see the world which surrounds them as a collection of objects and they handle these objects so that they are also collections of smaller objects. They always look for relations among objects and solve their problems in this way. With this point of view, object-oriented programming is very familiar and can be easly applied on computer programming by people. Although object-oriented programming is familiar in sense, it represents a very new of thinking and methodolgy for computer programming and it requires programmers to leave the traditional approaches in computer programming which have benn used for years. Object-oriented programming have special concepts which are supported viii object-oriented languages. The single most important one is "object". An object is a logical entity that contains data and code that manipulates that data. Within an object some of the code and data may be private to the object and inaccessible directly by anything outside the object. In this way, an object provides a significant level of protection against some other, unrelated part of the program accidentally modifying or incorrectly using the private parts of the object. The linkage of code and data in this way is often referred to as "encapsulation". For all intents and purposes, an object is a variable of a "user-defined type" called "abstract data type". When programmer defines an object, he is implictly creating a new data type. Another concept of object-oriented programming is "polymorphism" which essentially means that one name can be used for several related but slightly different purposes. The purpose of polymorphism is to allow one name to be used to specify a general class of actions. However, depending upon what type of data it is dealing with, a specific instance of the general case is executed. The first object-oriented programming languages supported polymorphism at run-time. However, most of recent languages such as C++ supports compile- time polymorphism as well. "Inheritance" is the process by which one object can acquire the properties of another object. This is important because it supports the concept of classifications. Without the use of classfications, each objects would have to explicitly define all of its characteristics. However, using classifications, an object need only define those qualities that make it unique within the class. It can inherit those qualities it shares with with the more general classes. It is the inheritance mechanism that makes it possible for one object to be a specific instance of a more general case. There are several object-oriented languages with their own different capabilities and imlementation of the object-oriented programming concepts. However, any object-oriented language has to support the concepts, mentioned above, to call an object-oriented language. Most well known object-oriented languages are Smalltalk, C++, CLOS, Eifel, Objective C, Actor. In the thesis, C++ language was chosen to be the subject to work on. The roots of the C++ dated back to the 1970s, the invention of C, the language C++ is derived from. C was invented and first implemented by Dennis Ritche on an DEC PDP-1 1 using the UNIX operating system, C is the result of a development process that started with an older language called BCPL, developed by Martin Richards. BCPL influenced a language invented by Ken Thompson, called B, which led to the development of C. C became one of the most widely used programming languages. It is flexible yet powerful, and C has been used to create lots of important software products of the last several years. However, even C reaches its limits when the size of a project exceeds a certain point. When the program code reaches that ix point, it becomes hard to manage because it is difficult to grasp as a totality. To address this problem, in 1980, at Bell Labroratories, Bjarne Stroustrup added several extensions to the C language and initially called the new language "C with Classes". However, in 1983 the name was changed to C++. Most additions made by Stroustrup to C support object-oriented programming. Stroustrup states that some of C++'s object-oriented features were inspired by another object-oriented language called Simula. Therefore C++ represents the blending of two powerful programming methods. C++ is a hybrid language, in which some entities are object and some are not because as stated above C++ is an extension of C language. C++ was implemented not only to add object-oriented capabilities but also to redress some of the weaknesses of the C language. The key concept of C++ is class. A class is a user-defined type and it provides data hidding. The object is just an instance of a class and has the features which are defined in the its class defination. The class concept provides encapsulation. Classes can be derived from another classes and so, a class hierarchy can be established in order to construct inheritance mechanism. Version of 2.0 and later ones support,also, multiple inheritance. C++ contains facilities of run-time method resolution, but a C++ data structure is not automatically object-oriented. Method resolution and the ability to override an operation in a subclass are only available if the operation is declared virtual in the superclass. Thus, the need to override a method must be declared into the origin class defination. The implementation of run-time method resolution is efficient. For each class a predefined struct is initialized with pointers to each method available to the class. At run-time a virtual operation resolved by retrieving the method structure from the object and selecting a member to find the method address. C++ contains facilities for specifying access level to attributes and operations of a class. Access may be permitted by methods of any class (public), restricted to methods of subclasses of the class (protected), or restricted to direct methods of the class (private). In addition, special access can be given to a particular class of function by declaring that as friend. Another new addition to C++ is templates. Making generic or paremetirized class declarations are posibble by using templates. Thanks to templates developing more flexsible general class libraries is easier and efficient than non-object-oriented programming methods. In the thesis, a number of examples gives in order to make the concepts and definations clearer. In addition, a specific application program was developed in the C++ to show how object-oriented programming techniques in action. This application is aimed to give an example of object-oriented programming. However, some classes which were developed while implementation process of the application, have generic characteristics, so they can be used any other application without any modification. This is particularly an instance of reusing of program codes. Although the main subject is based upon the programming, especially in the first part of the thesis and some other sections, when it is necessary, software enginnering concepts are discussed at in perspective of object-orientation. | en_US |
dc.description.degree | Yüksek Lisans | tr_TR |
dc.identifier.uri | http://hdl.handle.net/11527/22100 | |
dc.language.iso | tr | |
dc.publisher | Fen Bilimleri Enstitüsü | tr_TR |
dc.rights | Kurumsal arşive yüklenen tüm eserler telif hakkı ile korunmaktadır. Bunlar, bu kaynak üzerinden herhangi bir amaçla görüntülenebilir, ancak yazılı izin alınmadan herhangi bir biçimde yeniden oluşturulması veya dağıtılması yasaklanmıştır. | tr_TR |
dc.rights | All works uploaded to the institutional repository are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. | en_US |
dc.subject | Mühendislik Bilimleri | tr_TR |
dc.subject | Nesneye dayalı programlama | tr_TR |
dc.subject | Engineering Sciences | en_US |
dc.subject | Object oriented programming | en_US |
dc.title | Nesneye yönelik programlama tekniği ve bir uygulama | |
dc.title.alternative | Object-oriented programming technique and an application | |
dc.type | Master Thesis | en_US |