正在加载图片...
vi PREFACE Structure,reliability,epistemology and classification Object technology is at its core the combination of four ideas:a structuring method,a reliability discipline,an epistemological principle and a classification technique. The structuring method applies to software decomposition and reuse.Software systems perform certain actions on objects of certain types;to obtain flexible and reusable systems,it is better to base their structure on the object types than on the actions.The resulting concept is a remarkably powerful and versatile mechanism called the class, which in object-oriented software construction serves as the basis for both the modular structure and the type system. The reliability discipline is a radical approach to the problem of building software that does what it is supposed to do.The idea is to treat any system as a collection of components which collaborate the way successful businesses do:by adhering to contracts defining explicitly the obligations and benefits incumbent on each party. The epistemological principle addresses the question of how we should describe the Abstract data rypes classes.In object technology,the objects described by a class are only defined by what we are discussed in chapter 6.which can do with them:operations (also known as features)and formal properties of these also addresses some operations(the contracts).This idea is formally expressed by the theory of abstract data of the related episte- types,covered in detail in a chapter of this book.It has far-reaching implications,some mological issues. going beyond software,and explains why we must not stop at the naive concept of "object"borrowed from the ordinary meaning of that word.The tradition of information systems modeling usually assumes an"external reality"that predates any program using it;for the object-oriented developer,such a notion is meaningless,as the reality does not exist independently of what you want to do with it.(More precisely whether it exists or not is an irrelevant question,as we only know what we can use,and what we know of something is defined entirely by how we can use it. The classification technigue follows from the observation that systematic intellectual work in general and scientific reasoning in particular require devising taxonomies for the domains being studied.Software is no exception,and the object- oriented method relies heavily on a classification discipline known as inheritance. Simple but powerful The four concepts of class,contract,abstract data type and inheritance immediately raise a number of questions.How do we find and describe classes?How should our programs manipulate classes and the corresponding objects(the instances of these classes)?What are the possible relations between classes?How can we capitalize on the commonalities that may exist between various classes?How do these ideas relate to such key software engineering concerns as extendibility,ease of use and efficiency? Answers to these questions rely on a small but powerful array of techniques for producing reusable,extendible and reliable software:polymorphism and dynamic binding;a new view of types and type checking;genericity,constrained andvi PREFACE Structure, reliability, epistemology and classification Object technology is at its core the combination of four ideas: a structuring method, a reliability discipline, an epistemological principle and a classification technique. The structuring method applies to software decomposition and reuse. Software systems perform certain actions on objects of certain types; to obtain flexible and reusable systems, it is better to base their structure on the object types than on the actions. The resulting concept is a remarkably powerful and versatile mechanism called the class, which in object-oriented software construction serves as the basis for both the modular structure and the type system. The reliability discipline is a radical approach to the problem of building software that does what it is supposed to do. The idea is to treat any system as a collection of components which collaborate the way successful businesses do: by adhering to contracts defining explicitly the obligations and benefits incumbent on each party. The epistemological principle addresses the question of how we should describe the classes. In object technology, the objects described by a class are only defined by what we can do with them: operations (also known as features) and formal properties of these operations (the contracts). This idea is formally expressed by the theory of abstract data types, covered in detail in a chapter of this book. It has far-reaching implications, some going beyond software, and explains why we must not stop at the naïve concept of “object” borrowed from the ordinary meaning of that word. The tradition of information systems modeling usually assumes an “external reality” that predates any program using it; for the object-oriented developer, such a notion is meaningless, as the reality does not exist independently of what you want to do with it. (More precisely whether it exists or not is an irrelevant question, as we only know what we can use, and what we know of something is defined entirely by how we can use it.) The classification technique follows from the observation that systematic intellectual work in general and scientific reasoning in particular require devising taxonomies for the domains being studied. Software is no exception, and the object￾oriented method relies heavily on a classification discipline known as inheritance. Simple but powerful The four concepts of class, contract, abstract data type and inheritance immediately raise a number of questions. How do we find and describe classes? How should our programs manipulate classes and the corresponding objects (the instances of these classes)? What are the possible relations between classes? How can we capitalize on the commonalities that may exist between various classes? How do these ideas relate to such key software engineering concerns as extendibility, ease of use and efficiency? Answers to these questions rely on a small but powerful array of techniques for producing reusable, extendible and reliable software: polymorphism and dynamic binding; a new view of types and type checking; genericity, constrained and Abstract data types are discussed in chapter 6, which also addresses some of the related episte￾mological issues
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有