Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
oop-concordance.rtf
Скачиваний:
6
Добавлен:
10.02.2016
Размер:
2.04 Mб
Скачать

1866 Corba Implementation Descriptions: Object-Oriented Technologies dome

1867 Product: DOME - Distributed Object Management Environment

1873 DOME provides heterogenous distribution across many platforms

1881 As a fully peer-to-peer product DOME can be used to build systems

1884 DOME is an ORB toolkit for the production of user-configured

1888 DOME is non-intrusive, meaning that the application development

1894 DOME is constructed as a C++ class library, from which ORBs

1901 DOME has a CORBA-conformant interface, and is CORBA 1.0 compliant

1912 and network security; however, DOME does allow stream operators

1914 DOME was first released in August 1993; version 2 in May 1994.

2143 SUITESOFTWARE's Distributed Object Management Environment (DOME)

2147 DOME - Covering the Enterprise

2148 The DOME Software System is comprehensive middleware that provides

2150 applications and data into a single system. With DOME, companies can

2154 The DOME system can accomplish this complex task because it offers:

2163 DOME is an open system that provides an interface between all of a

2165 between new and legacy applications. DOME provides a solution today

2168 DOME is compliant with the following standards:

2177 DOME allows message transfer from one object to another object,

2180 DOME also provides object services beyond the Object Request Broker

2182 functionality than specified by the X.500 standard. Because DOME goes

2215 DOME runs on the major UNIX platforms as well as in other interactive

2218 DOME Software System Components

2219 The DOME software system is composed of the core DOME product, DOME

2221 DOME Data Manager (DDMTM) database access manager.

2223 The DOME Data Manager is a complete relational DBMS engine that

2244 DOME, DOMEshell, DOME Security, DOME Data Manager, and DDM are

2255 DOME Software System and obtain quick resolutions to problems.

2258 execute DOME plus PostScriptTM versions of DOME documentation.

2259 Hardcopy versions of all DOME documentation are available for a

program

4 Objects are used in software development to implement abstract data structures, by bringing together the data components with the procedures that manipulate them. Objects in object- oriented programming are key in the concept of inheritance; thereby improving program reliability[attribution needed], simplification of software maintenance[attribution needed], the management of libraries, and the division of work in programmer teams. Object-oriented programming languages are generally designed to exploit and enforce these potential advantages of the object model. Objects can also make it possible to handle very disparate objects by the same piece of code, as long as they all have the proper method. Simple, non-OOP programs may be one "long" list of statements (or commands). More complex programs will often group smaller sections of these statements into functions or subroutines each of which might perform a particular task. With designs of this sort, it is common for some of the program's data to be 'global', i.e. accessible from any part of the program. As programs grow in size, allowing any function to modify any piece of data means that bugs can have wide-reaching effects.

5 In contrast, the object-oriented approach encourages the programmer to place data where it is not directly accessible by the rest of the program. Instead, the data is accessed by calling specially written functions, commonly called methods, which are either bundled in with the data or inherited from "class objects." These act as the intermediaries for retrieving or modifying the data they control. The programming construct that combines data with a set of methods for accessing and managing those data is called an object. The practice of using subroutines to examine or modify certain kinds of data, however, was also quite commonly used in non-OOP modular programming, well before the widespread use of object-oriented programming.

6 An object-oriented program will usually contain different types of objects, each type corresponding to a particular kind of complex data to be managed or perhaps to a real-world object or concept such as a bank account, a hockey player, or a bulldozer. A program might well contain multiple copies of each type of object, one for each of the real-world objects the program is dealing with. For instance, there could be one bank account object for each real-world account at a particular bank. Each copy of the bank account object would be alike in the methods it offers for manipulating or reading its data, but the data inside each object would differ reflecting the different history of each account.

7 Objects can be thought of as wrapping their data within a set of functions designed to ensure that the data are used appropriately, and to assist in that use. The object's methods will typically include checks and safeguards that are specific to the types of data the object contains. An object can also offer simple-to-use, standardized methods for performing particular operations on its data, while concealing the specifics of how those tasks are accomplished. In this way alterations can be made to the internal structure or methods of an object without requiring that the rest of the program be modified. This approach can also be used to offer standardized methods across different types of objects. As an example, several different types of objects might offer print methods. Each type of object might implement that print method in a different way, reflecting the different kinds of data each contains, but all the different print methods might be called in the same standardized manner from elsewhere in the program. These features become especially useful when more than one programmer is contributing code to a project or when the goal is to reuse code between projects.

9 An object-oriented program may thus be viewed as a collection of interacting objects, as opposed to the conventional model, in which a program is seen as a list of tasks (subroutines) to perform. In OOP, each object is capable of receiving messages, processing data, and sending messages to other objects. Each object can be viewed as an independent "machine" with a distinct role or responsibility. The actions (or "methods") on these objects. The terms "objects" and "oriented" in something like the modern sense of object- oriented programming seem to make their first appearance at MIT in the late 1950s and early 1960s. In the environment of the artificial intelligence group, as early as 1960, "object" could refer to identified items (LISP atoms) with properties (attributes); Alan Kay was later to cite a detailed understanding of LISP internals as a strong influence on his thinking in 1966.[3] Another early MIT example was Sketchpad created by Ivan Sutherland in 1960-61; in the glossary of the 1963 technical report based on his dissertation about Sketchpad, Sutherland defined notions of "object" and "instance" (with the class concept covered by "master" or "definition"), albeit specialized to graphical interaction. Also, an MIT ALGOL version, AED-0, linked data structures ("plexes", in that dialect) directly with procedures, prefiguring what were later termed "messages", "methods" and "member functions".

41 Attempts to find a consensus definition or theory behind objects have not proven very successful (however, see Abadi & Cardelli, A Theory of Objects[18] for formal definitions of many OOP concepts and constructs), and often diverge widely. For example, some definitions focus on mental activities, and some on program structuring. One of the simpler definitions is that OOP is the act of using "map" data structures or arrays that can contain functions and pointers to other maps, all with some syntactic and scoping sugar on top. Inheritance can be performed by cloning the maps (sometimes called "prototyping"). OBJECT:=>> Objects are the run time entities in an object-oriented system. They may represent a person, a place, a bank account, a table of data or any item that the program has to handle.

56 It is intuitive to assume that inheritance creates a semantic "is a" relationship, and thus to infer that objects instantiated from subclasses can always be safely used instead of those instantiated from the superclass. This intuition is unfortunately false in most OOP languages, in particular in all those that allow mutable objects. Subtype polymorphism as enforced by the type checker in OOP languages (with mutable objects) cannot guarantee behavioral subtyping in any context. Behavioral subtyping is undecidable in general, so it cannot be implemented by a program (compiler). Class or object hierarchies need to be carefully designed considering possible incorrect uses that cannot be detected syntactically. This issue is known as the Liskov substitution principle.

65 OOP can be used to associate real-world objects and processes with digital counterparts. However, not everyone agrees that OOP facilitates direct real-world mapping (see Negative Criticism section) or that real-world mapping is even a worthy goal; Bertrand Meyer argues in Object-Oriented Software Construction that a program is not a model of the world but a model of some part of the world; "Reality is a cousin twice removed". At the same time, some principal limitations of OOP had been noted. For example, the Circle-ellipse problem is difficult to handle using OOP's concept of inheritance.

73 Luca Cardelli wrote a paper titled "Bad Engineering Properties of Object-Oriented Languages" Richard Stallman wrote in 1995, "Adding OOP to Emacs is not clearly an improvement; I used OOP when working on the Lisp Machine window systems, and I disagree with the usual view that it is a superior way to program."

79 Richard Mansfield, author and former editor of COMPUTE! magazine, states that "like countless other intellectual fads over the years ("relevance", communism, "modernism", and so on—history is littered with them), OOP will be with us until eventually reality asserts itself. But considering how OOP currently pervades both universities and workplaces, OOP may well prove to be a durable delusion. Entire generations of indoctrinated programmers continue to march out of the academy, committed to OOP and nothing but OOP for the rest of their lives."[38] He also is quoted as saying "OOP is to writing a program, what going through airport security is to flying".

172 and program complexity (fewer nested programming constructs) and allowing

231 used when developing an overall program structure, that each component of a

232 program should encapsulate or hide a single design decision... The interface

365 quality compilers), providing a direct program interface to the system.

489 increases in productivity and reductions in defect rates (program errors),

638 and cohesion, multiple-polymorphism reduces program complexity by avoiding

858 Dion, R., "Elements of a Process Improvement Program," IEEE Software, July

1069 possibilities of usage is undecidable. When the complete program is compiled,

1095 program complexity by replacing a nested construct (switch statement) with a

1099 methods reduces program complexity considerably, even further that removing

1114 Static typing refers to types declared in a program at compile-time, so no type

2132 application program and the operating system and that, in a

2356 Program components frequently need knowledge of an entire program to

2360 about the rest of the program to determine ownership of the objects in the

2375 However, to manage memory explicitly, a program has to know if it has a copy

2587 Taylor, David. "A quality-first program for object technology", Object

2590 important for OOP and describes one quality program.

2694 that is called tcat++. It is an extension of SRI's tcat program.

e

4 Objects are used in software development to implement abstract data structures, by bringing together the data components with the procedures that manipulate them. Objects in object- oriented programming are key in the concept of inheritance; thereby improving program reliability[attribution needed], simplification of software maintenance[attribution needed], the management of libraries, and the division of work in programmer teams. Object-oriented programming languages are generally designed to exploit and enforce these potential advantages of the object model. Objects can also make it possible to handle very disparate objects by the same piece of code, as long as they all have the proper method. Simple, non-OOP programs may be one "long" list of statements (or commands). More complex programs will often group smaller sections of these statements into functions or subroutines each of which might perform a particular task. With designs of this sort, it is common for some of the program's data to be 'global', i.e. accessible from any part of the program. As programs grow in size, allowing any function to modify any piece of data means that bugs can have wide-reaching effects.

121 Interface - E.g. GUI

135 based approaches (e.g. Smalltalk handles) allow powerful dynamic typing, as

262 is most common (e.g. Ada, C++, Eiffel), where class methods can access any

351 terminology, an introspective protocol provides a read only capability (e.g.

354 modification (e.g. add the following method or instance to this class,

611 (e.g. C++ and Eiffel) is really in between (checked function pointers).

658 this should only be used as necessary, e.g. if the implementation language

691 point often mistaken in comp.object. E.g. simple statically

716 operational characteristics (e.g. reliability, availability, performance)".

740 localized around objects, e.g., classes, instances, systems of interacting

752 model (e.g. FUSION, Jacobson), scenarios (Rumbaugh), or use-cases (Jacobson).

1079 programming and user interaction (e.g. GUIs). Examples can be found in

1136 polymorphic type system [Wikstrom 87]. Russell (see Appendix E) is a more

1200 Owl, an experimental C++ extension (See Appendix E,

1235 forthcoming, however see APPENDIX E).

1313 See also Appendices B and E and the comp.database.object newsgroup.

1334 relational databases and see APPENDIX E, Papers, Persistent Operating Systems.

1355 Refs to be included in future FAQs. See also Appendix E.

1364 Apertos (Meta-Object-based Mikro-Kernel. See Appendix E, Papers:28)

1365 Chorus Micro-kernel (written in C++, COOL, See Appendix E, Papers:63)

1366 Choices (research OS, UofI, C++, supports SVR4, See Appendix E, Papers)

1372 Peace (OO family-based parallel OS, See Appendix E, General)

1382 See also APPENDIX E, PAPERS, Persistent Operating Systems entry.

1468 Wirfs-Brock, R.J. and Johnson, R.E., "Surveying Current Research in Object-

1472 Coad, P., and Yourdon, E. - Object-oriented analysis (2nd edition), 1991a.

1473 Coad, P., and Yourdon, E. - Object-oriented design, 1991b.

1668 > ILU (free, see APPENDIX E entry 59)

1684 consider making other platforms available if enough interest. See Appendix E.

1925 See Appendix E:65 for a complete description and anon FTP info.

2337 gcsurvey.ps. [See APPENDIX E]

2366 objects, lack of polymorphism, and problems with interior pointers (e.g.

2566 Perry, D.E. and G.E. Kaiser, "Adequate Testing and Object-Oriented

function

1 Object-oriented programming (OOP) is a programming paradigm using "objects" – data structures consisting of data fields and methods together with their interactions – to design applications and computer programs. Programming techniques may include features such as data abstraction, encapsulation, messaging, modularity, polymorphism, and inheritance. Many modern programming languages now support OOP, at least as an option. In computer science, an object is any entity that can be manipulated by the commands of a programming language, such as a value, variable, function, or data structure. (With the later introduction of object-oriented programming the same word, "object", refers to a particular instance of a class)

2 In the domain of object-oriented programming an object is usually taken to mean an ephemeral compilation of attributes (object elements) and behaviors (methods or subroutines) encapsulating an entity. In this way, while primitive or simple data types are still just single pieces of information, object-oriented objects are complex types that have multiple pieces of information and specific properties (or attributes). Instead of merely being assigned a value, (like int =10), objects have to be "constructed". In the real world, if a Ford Focus is an "object" - an instance of the car class, its physical properties and its function to drive would have been individually specified. Once the properties of the Ford Focus "object" had been specified into the form of the car class, it can be endlessly copied to create identical objects that look and function in just the same way. As an alternative example, animal is a superclass of primate and primate is a superclass of human. Individuals such as Joe Bloggs or John Doe would be particular examples or 'objects' of the human class, and consequently possess all the characteristics of the human class (and of the primate and animal superclasses as well).

4 Objects are used in software development to implement abstract data structures, by bringing together the data components with the procedures that manipulate them. Objects in object- oriented programming are key in the concept of inheritance; thereby improving program reliability[attribution needed], simplification of software maintenance[attribution needed], the management of libraries, and the division of work in programmer teams. Object-oriented programming languages are generally designed to exploit and enforce these potential advantages of the object model. Objects can also make it possible to handle very disparate objects by the same piece of code, as long as they all have the proper method. Simple, non-OOP programs may be one "long" list of statements (or commands). More complex programs will often group smaller sections of these statements into functions or subroutines each of which might perform a particular task. With designs of this sort, it is common for some of the program's data to be 'global', i.e. accessible from any part of the program. As programs grow in size, allowing any function to modify any piece of data means that bugs can have wide-reaching effects.

8 Object-oriented programming has roots that can be traced to the 1960s. As hardware and software became increasingly complex, manageability often became a concern. Researchers studied ways to maintain software quality and developed object-oriented programming in part to address common problems by strongly emphasizing discrete, reusable units of programming logic[citation needed]. The technology focuses on data rather than processes, with programs composed of self-sufficient modules ("classes"), each instance of which ("objects") contains all the information needed to manipulate its own data structure ("members"). This is in contrast to the existing modular programming that had been dominant for many years that focused on the function of a module, rather than specifically the data, but equally provided for code reuse, and self-sufficient reusable units of programming logic, enabling collaboration through the use of linked modules (subroutines). This more conventional approach, which still persists, tends to consider data and behavior separately.

40 records are basis for understanding objects if function literals can be stored in fields (like in functional programming languages), but the actual calculi need be considerably more complex to incorporate essential features of OOP. Several extensions of System F<: that deal with mutable objects have been studied;[18] these allow both subtype polymorphism and parametric polymorphism (generics)

159 function taking an object of the record type, called the receiver, as the

167 pointer or function pointer in the base class being set by the derived class.

178 member function, instance variable

195 although vtables of function pointers for dynamic binding are an exception).

596 A method is a function or procedure which is defined in a class and typically

611 (e.g. C++ and Eiffel) is really in between (checked function pointers).

651 The addition expression above will invoke the correct "+" function based on the

655 switching to the "fn" function based on the type of "one" also. This could

675 are dropped, multiple-polymorphism results. Thus a single overridable function

930 "Parametric polymorphism is obtained when a function works uniformly on a range

932 polymorphism is obtained when a function works, or appears to work, on several

952 have more than one type. [...] If we consider a generic function to be

956 Parametric Polymorphism: a polymorphic function has an implicit or explicit

958 application of that function.

1042 but a newer template function is incomparably preferable, as implied in

1056 function is invoked. This is the stored method from the derived class that

1066 (redefinition). It is not known which function will be called for a virtual

1067 function at run-time because a derived class may override the function, in

1068 which case the overriding function must be called. Statically determining all

1072 vtables of function pointers in the actual objects (C++) or equivalent,

1074 function pointers with static typechecking in the base class, and filling them

1118 implemented with tables of function pointers and offsets), and is how

1220 a polymorphic sort function taking a base type with a comparison operator.

1221 The function can be called with any type (containing a comparison operator).

1913 to perform the same function.

1935 The latest release of Orbix, Version 1.2, includes an Object Loader function

1944 at runtime through its Object Loader function. This enables developers to more

typing

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]