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

83 There are many definitions of an object, such as found in [Booch 91, p77]:

87 defined in [Coplien 92, p280], where "classes play a central role in the

92 reality" [Booch 91, p77]. Other definitions referenced by Booch include

98 in depth. [Martin 92, p 241] defines: "An "object" is anything to which a

102 the problem at hand." [Shlaer 88, p 14] defines: "An object is an abstraction

182 As pointed out in [Stroustrup 90, p197], the base

228 [Booch 91, p. 45] defines: "Encapsulation is the process of hiding all of the

280 [Booch 91, p93]

304 modification). [Booch 91, p 119] provides another example in Smalltalk with

433 91, p 113].

532 p56]. Overriding is the term used in Smalltalk and C++ for redefining a

546 both inheritance and polymorphism and are object-oriented. [Cardelli 85, p481]

559 Stroustrup's first edition of [Stroustrup 91, '86 p. 37] defines object based

593 A method implements behavior, which is defined by [Booch 91, p80]:

623 number of new mechanisms added to COMMON LISP" [Kim ch 4, p70 (D. Moon)].

1014 > Booch's Definition [Booch 91, p. 517]:

1035 > Stroustrup's Definition [Stroustrup 90, p. 209]:

1041 C++). [Stroustrup 91, p. 136] has an example of polymorphism with void *'s,

1044 Rumbaugh's Definition [Rumbaugh 91, p. 2]:

1080 [Garfinkel 93, p80] and [Cox 91, pp 64-67]. To extend Garfinkels example with

1431 Arnold, P., Bodoff, S., Coleman, D., Gilchrist, H., Hayes, F., An Evolution of

1439 Methodologies. Computer, Oct 1992, Vol 25, No. 10, p 22-40

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

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

2501 Fiedler, Steven P., "Object-Oriented Unit Testing", Hewlett-Packard

2525 Hoffman, D.M. and P.A. Strooper. Graph-Based Class Testing. In

2558 Murphy, G.C., Wong, P. 1992, Towards a Testing Methodology for

2559 Object Oriented Systems, M.P.R Teltech Ltd. A poster at the

2563 Murphy, G. and P. Wong. Object-Oriented Systems Testing Methodology: An

2639 Wong, P. Automated Class Exerciser (ACE) User's Guide. Technical

approach

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.

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.

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.

14 At ETH Z?rich, Niklaus Wirth and his colleagues had also been investigating such topics as data abstraction and modular programming (although this had been in common use in the 1960s or earlier). Modula-2 (1978) included both, and their succeeding design, Oberon, included a distinctive approach to object orientation, classes, and such. The approach is unlike Smalltalk, and very unlike C++.

54 ECMAScript language. JavaScript is perhaps the best known prototype- based programming language, which employs cloning from prototypes rather than inheriting from a class. Another scripting language that takes this approach is Lua. Earlier versions of ActionScript (a partial superset of the ECMA-262 R3, otherwise known as ECMAScript) also used a prototype-based object model. Later versions of ActionScript incorporate a combination of classification and prototype-based object models based largely on the currently incomplete ECMA-262 R4 specification, which has its roots in an early JavaScript 2 Proposal. Microsoft's JScript.NET also includes a mash-up of object models based on the same proposal, and is also a superset of the ECMA-262 R3 specification.

67 Steve Yegge and others noted that natural languages lack the OOP approach of strictly prioritizing things (objects

111 understanding of the problem domain and [Jacobson 92] provides a novel approach

138 approach with an added layer of indirection to Smalltalk's handles is found

292 He advocates starting with the former approach, turning to the second approach

495 otherwise. See [Raj 89] for an alternative approach as found in Jade.

755 and Constantine. Their complete approach ([Shlaer 88, 92]) consists of

792 with a risk-driven incremental prototyping approach. [Booch 91, 6.1]

986 (intensional) approach (where subtypes are supersets of (contain) supertypes).

1009 although it was abandoned in favor of a single class-based approach for

1206 See also [Cook 90], "Inheritance Is Not Subtyping", for a formal approach.

1266 Object Specialization [Sciore 89] is an example of a hybrid approach between

1318 opposed to a purely value-oriented approach) and because of support for methods

1454 S. Hong, G. van den Goor, S. Brinkkemper, A Formal Approach to the

1506 (*) promotion of the object-oriented approach to software engineering

1609 that the object-oriented approach to software construction best

1785 This is part of the companies' planned approach toward a standards-based,

1937 approach to filtering, and more code examples to guide programmers.

1953 In version 1.2 IONA has also extended the whole approach to filtering of

2521 approach to testing which the authors call Testgraphs. An

2575 Describes ways in which the usual approach to software testing

2600 testing. A state-based approach is described.

2612 state-based testing approach.

derived

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