چه کسانی این کتاب را می‌خوانند

دانشجوعلاقه‌مند یادگیری
کتابخوان حرفه‌ایلذت مطالعه
نویسندهالهام‌گیری

Object-Oriented Software Composition

Nierstrasz, Sichritzis, Oscar Marius Nierstrasz, Dionysios C. Tsichritzis

قیمت نهایی

۴۹٬۰۰۰ تومان

نسخه اصلی و اورجینال

بلافاصله پس از خرید، فایل کتاب روی دستگاه شما آمادهٔ دانلود است.

تحویل فوری
پرداخت امن
ضمانت فایل
پشتیبانی

مشخصات کتاب

سال انتشار
۱۹۹۵
فرمت
PDF
زبان
انگلیسی
حجم فایل
۳٫۱ مگابایت
شابک
9780132206747، 0132206749

دربارهٔ کتاب

Over the part ten years, object-oriented technology has started to have a significant impact in industry. Despite its many positive aspects, there have been some problems in successfully applying the technology to large projects, and in achieving adequate levels of flexibilitly and software reuse. Based on the research of the Object Systems Group in Geneva, this book looks at a range of issues, from programming languages and systems through to tools, frameworks and methods. KEY FEATURES: Chapters are self-contained, with the development of ideas moving from programming language design issues to environments and applications. Aware of recent trends, the book examines the development of multimedia systems as an application domain. Up-to-date information on the activities of the Object Systems Group. The authors can be found on the World Wide Web. Introduction 19 Component-Oriented Software Technology 21 1.1 Introduction 21 1.1.1 What Are Components? 22 1.1.2 Where Do Components Come From? 24 1.2 Objects vs. Components 25 1.3 Technical Support for Components 27 1.3.1 Paradigms for Assembling Components 28 1.3.2 Components as Static Abstractions 30 1.3.3 The Composition Process 32 1.3.4 Verification of Composition 34 1.3.5 Objects as Processes 36 1.3.6 Summary of Research Topics 38 1.4 Component Engineering 38 1.4.1 Benefits and Risks 40 1.4.2 How to Get There from Here 42 1.5 Conclusions 42 Concurrency and Distribution 47 Concurrency in Object-Oriented Programming Languages 49 2.1 Introduction 49 2.2 Design Space 51 2.2.1 A Design Space for Concurrent Object-Oriented Languages 51 2.2.2 Concurrent Object Models 52 2.2.3 Internal Concurrency 52 2.2.4 Constructs for Object Interaction 54 2.3 Criteria for Evaluating Language Design Choices 61 2.3.1 Object-Based Features — Support for Active Objects 61 2.3.2 Inheritance and Synchronization 64 2.4 Exploring the Language Design Space 67 2.4.1 Object Models 67 2.4.2 Object Interaction Mechanisms 67 2.4.3 Inheritance and Reuse of Synchronization Constraints 73 2.4.4 Summary 79 2.5 Conclusion 81 Interoperation of Object-Oriented Applications 87 3.1 Reusing Objects from Different Environments 87 3.2 Procedure-Oriented Interoperability 89 3.2.1 Interface bridging 89 3.2.2 Interface standardization 90 3.2.3 Advantages and Disadvantages 91 3.3 Object-Oriented Interoperability 91 3.3.1 Interface Bridging 92 3.3.2 Interface Standardization 92 3.3.3 Summary 92 3.4 Comparison of Interoperability Support Approaches 93 3.5 Interface Bridging — Object-Oriented Interoperability 94 3.5.1 Terminology 94 3.5.2 Interface Adaption 95 3.5.3 Object Mapping 98 3.6 Interface Adaption 99 3.6.1 Type Relations 100 3.6.2 Description of the Running Example 101 3.6.3 Binding of Operations 102 3.7 Object Mapping 105 3.8 Conclusions and Research Directions 108 3.8.1 Openness of Interoperability Platforms 109 3.8.2 Interoperability and Legacy System Migration 109 Specification and Composition 115 Regular Types for Active Objects 117 4.1 Introduction 117 4.2 Types, Substitutability and Active Objects 119 4.3 Intersecting Service Types 121 4.4 Request Substitutability 123 4.5 Viewing Objects as Regular Processes 126 4.6 Subtyping Regular Types 128 4.7 Request Satisfiability 131 4.7.1 Sequential Clients 132 4.7.2 Concurrent Clients 133 4.8 Open Problems 135 4.8.1 Regular Service Types 135 4.8.2 Applying Regular Types to Object-Oriented Languages 136 4.9 Concluding Remarks 137 A Temporal Perspective of Composite Objects 141 5.1 Introduction 141 5.1.1 Specifying Temporal Aspects of Object Behaviour 142 5.1.2 Design Choices for TSOM 143 5.1.3 Layout 144 5.2 Propositional Temporal Logic 144 5.2.1 Syntax of PTL 145 5.2.2 Semantics of PTL 147 5.3 The Specification of Temporal Properties 150 5.3.1 Public Messages 151 5.3.2 Public Constraints 152 5.3.3 Shifting from Local Time to Global Time 154 5.3.4 Attributes 155 5.3.5 Components 156 5.3.6 Component Messages 158 5.3.7 Component Constraints 159 5.4 Verification 162 5.4.1 Verification of Elementary Objects 162 5.4.2 Verification of Composite Objects 163 5.5 Concluding Remarks 168 Functions, Records and Compatibility in the lN Calculus 171 6.1 Introduction 171 6.2 A Lambda Calculus with Named Parameters 174 6.2.1 Abstract (Low-level) Syntax 175 6.2.2 Reduction Rules 176 6.2.3 Reduction Example 178 6.2.4 Higher-level Syntax 178 6.3 The Calculus at Work 180 6.3.1 Functions 180 6.3.2 Recursion 181 6.3.3 Extensible Enumerated Types and Case Selection 181 6.3.4 Extensible Concrete Data Types 182 6.3.5 Records 183 6.3.6 Updatable Records (Memories) 184 6.3.7 Field Overwriting 185 6.4 Compatibility Relationship 185 6.4.1 Errors and Lazy Operational Semantics 186 6.4.2 Approximation and Compatibility 187 6.4.3 Lattice Structure 188 6.4.4 Meets and Joins 189 6.5 Conclusion 190 Software Information Management 193 Component Classification in the Software Information Base 195 7.1 Introduction 195 7.2 The Software Information Base 197 7.2.1 General Concepts 197 7.2.2 Relationships Between Software Artefacts 198 7.3 Information Retrieval and User Interface 201 7.3.1 Querying and Browsing 201 7.3.2 Implementation 202 7.4 The Classification Scheme 204 7.4.1 Principles 204 7.4.2 Classification Hierarchies in the SIB 206 7.4.3 Example 208 7.5 Streamlining the Classification Process 209 7.5.1 Static Class Analysis 209 7.5.2 Derived Classification 209 7.6 Experiences 210 7.6.1 The Classification Process 210 7.6.2 An Example 211 7.7 Conclusion 215 Managing Class Evolution in Object-Oriented Systems 219 8.1 Object Design and Redesign 219 8.1.1 The Problem 219 8.1.2 The Solutions 220 8.2 Class Tailoring 221 8.2.1 Issues 221 8.2.2 Language Mechanisms 221 8.2.3 Evaluation 223 8.3 Class Surgery 224 8.3.1 Issues 224 8.3.2 Schema Invariants 224 8.3.3 Primitives for Class Evolution 225 8.3.4 Completeness, Correctness and Complexity 228 8.3.5 Evaluation 229 8.4 Class Versioning 230 8.4.1 Issues 230 8.4.2 The Organization of Version Management 231 8.4.3 Version Identification 233 8.4.4 Versioning and Class Evolution 234 8.4.5 Evaluation 235 8.5 Class Reorganization 236 8.5.1 Issues 236 8.5.2 Refactoring 237 8.5.3 Restructuring Interattribute Dependencies 239 8.5.4 Restructuring Inheritance Hierarchies 243 8.6 Change Avoidance 248 8.6.1 Confining the Effects of Evolution 248 8.6.2 Physical Structures 249 8.7 Conversion 251 8.7.1 Issues 251 8.7.2 Instance Transformation 252 8.7.3 Immediate and Delayed Conversion 253 8.7.4 Evaluation 254 8.8 Filtering 254 8.8.1 Issues 254 8.8.2 Version Compatibility 254 8.8.3 Filtering Mechanisms 255 8.8.4 Making Class Changes Transparent 257 8.8.5 Evaluation 257 8.9 Conclusion 258 The Affinity Browser 263 9.1 Introduction 263 9.1.1 Object Selection 264 9.1.2 Related Work 266 9.2 Browsing Requirements 269 9.3 The Affinity Browser 270 9.3.1 The Affinity Browser Exploration Paradigm 271 9.3.2 Architectural Elements of an Affinity Browser 275 9.3.3 User Interaction and Event Management 276 9.4 The Affinity Browser by Example 277 9.4.1 Class Relationships 277 9.4.2 Creation and Destruction Relationships 284 9.4.3 Object Relationships 286 9.5 Conclusion 288 Frameworks and Applications 291 Visual Composition of Software Applications 293 10.1 Introduction 293 10.2 Related Work 294 10.3 A Framework for Visual Composition 296 10.3.1 Component Definition 296 10.3.2 Component Composition 298 10.3.3 Interactive Environment 302 10.3.4 Component Management 305 10.4 Vista — A Prototype Visual Composition Tool 305 10.5 Sample Applications 308 10.6 Discussion 315 10.6.1 Component Definition 315 10.6.2 Composition 316 10.6.3 Visualization 317 10.7 Conclusion 318 Multimedia Component Frameworks 323 11.1 Digital Media and Multimedia 323 11.2 Multimedia Systems and Multimedia Programming 324 11.3 Multimedia Frameworks 326 11.4 A Multimedia Framework Example — Components 327 11.4.1 Producers, Consumers and Transformers 328 11.4.2 Component Interfaces 329 11.4.3 Plug Compatibility 330 11.4.4 Component Networks 330 11.4.5 Media Processing Platforms and Component Kits 331 11.5 Video Widgets — A Programming Example 331 11.6 Summary 335 Gluons and the Cooperation between Software Components 339 12.1 Introduction 339 12.2 An Overview of Cooperation Patterns 342 12.2.1 Object Management Group 342 12.2.2 Microsoft DDE and OLE 343 12.2.3 ODBC 2.0 347 12.2.4 Apple’s Interapplication Communication Architecture and OpenDoc 347 12.2.5 Discussion 350 12.3 Requirements for a Financial Framework 351 12.3.1 Towards a Protocol-Centered Framework 352 12.3.2 Standardizing a Service’s Vocabulary 352 12.3.3 Component Interaction Protocols 354 12.4 Gluons 356 12.4.1 Gluons and Software Design 357 12.4.2 Anatomy of a Gluon 357 12.5 Gluons and the Financial Framework 359 12.5.1 The Dragging Gluon 360 12.5.2 Real-time Data Notification Gluon 364 12.6 Conclusion 365 Introduction......Page 19 1.1 Introduction......Page 21 1.1.1 What Are Components?......Page 22 1.1.2 Where Do Components Come From?......Page 24 1.2 Objects vs. Components......Page 25 1.3 Technical Support for Components......Page 27 1.3.1 Paradigms for Assembling Components......Page 28 1.3.2 Components as Static Abstractions......Page 30 1.3.3 The Composition Process......Page 32 1.3.4 Verification of Composition......Page 34 1.3.5 Objects as Processes......Page 36 1.4 Component Engineering......Page 38 1.4.1 Benefits and Risks......Page 40 1.5 Conclusions......Page 42 Concurrency and Distribution......Page 47 2.1 Introduction......Page 49 2.2.1 A Design Space for Concurrent Object-Oriented Languages......Page 51 2.2.3 Internal Concurrency......Page 52 2.2.4 Constructs for Object Interaction......Page 54 2.3.1 Object-Based Features — Support for Active Objects......Page 61 2.3.2 Inheritance and Synchronization......Page 64 2.4.2 Object Interaction Mechanisms......Page 67 2.4.3 Inheritance and Reuse of Synchronization Constraints......Page 73 2.4.4 Summary......Page 79 2.5 Conclusion......Page 81 3.1 Reusing Objects from Different Environments......Page 87 3.2.1 Interface bridging......Page 89 3.2.2 Interface standardization......Page 90 3.3 Object-Oriented Interoperability......Page 91 3.3.3 Summary......Page 92 3.4 Comparison of Interoperability Support Approaches......Page 93 3.5.1 Terminology......Page 94 3.5.2 Interface Adaption......Page 95 3.5.3 Object Mapping......Page 98 3.6 Interface Adaption......Page 99 3.6.1 Type Relations......Page 100 3.6.2 Description of the Running Example......Page 101 3.6.3 Binding of Operations......Page 102 3.7 Object Mapping......Page 105 3.8 Conclusions and Research Directions......Page 108 3.8.2 Interoperability and Legacy System Migration......Page 109 Specification and Composition......Page 115 4.1 Introduction......Page 117 4.2 Types, Substitutability and Active Objects......Page 119 4.3 Intersecting Service Types......Page 121 4.4 Request Substitutability......Page 123 4.5 Viewing Objects as Regular Processes......Page 126 4.6 Subtyping Regular Types......Page 128 4.7 Request Satisfiability......Page 131 4.7.1 Sequential Clients......Page 132 4.7.2 Concurrent Clients......Page 133 4.8.1 Regular Service Types......Page 135 4.8.2 Applying Regular Types to Object-Oriented Languages......Page 136 4.9 Concluding Remarks......Page 137 5.1 Introduction......Page 141 5.1.1 Specifying Temporal Aspects of Object Behaviour......Page 142 5.1.2 Design Choices for TSOM......Page 143 5.2 Propositional Temporal Logic......Page 144 5.2.1 Syntax of PTL......Page 145 5.2.2 Semantics of PTL......Page 147 5.3 The Specification of Temporal Properties......Page 150 5.3.1 Public Messages......Page 151 5.3.2 Public Constraints......Page 152 5.3.3 Shifting from Local Time to Global Time......Page 154 5.3.4 Attributes......Page 155 5.3.5 Components......Page 156 5.3.6 Component Messages......Page 158 5.3.7 Component Constraints......Page 159 5.4.1 Verification of Elementary Objects......Page 162 5.4.2 Verification of Composite Objects......Page 163 5.5 Concluding Remarks......Page 168 6.1 Introduction......Page 171 6.2 A Lambda Calculus with Named Parameters......Page 174 6.2.1 Abstract (Low-level) Syntax......Page 175 6.2.2 Reduction Rules......Page 176 6.2.4 Higher-level Syntax......Page 178 6.3.1 Functions......Page 180 6.3.3 Extensible Enumerated Types and Case Selection......Page 181 6.3.4 Extensible Concrete Data Types......Page 182 6.3.5 Records......Page 183 6.3.6 Updatable Records (Memories)......Page 184 6.4 Compatibility Relationship......Page 185 6.4.1 Errors and Lazy Operational Semantics......Page 186 6.4.2 Approximation and Compatibility......Page 187 6.4.3 Lattice Structure......Page 188 6.4.4 Meets and Joins......Page 189 6.5 Conclusion......Page 190 Software Information Management......Page 193 7.1 Introduction......Page 195 7.2.1 General Concepts......Page 197 7.2.2 Relationships Between Software Artefacts......Page 198 7.3.1 Querying and Browsing......Page 201 7.3.2 Implementation......Page 202 7.4.1 Principles......Page 204 7.4.2 Classification Hierarchies in the SIB......Page 206 7.4.3 Example......Page 208 7.5.2 Derived Classification......Page 209 7.6.1 The Classification Process......Page 210 7.6.2 An Example......Page 211 7.7 Conclusion......Page 215 8.1.1 The Problem......Page 219 8.1.2 The Solutions......Page 220 8.2.2 Language Mechanisms......Page 221 8.2.3 Evaluation......Page 223 8.3.2 Schema Invariants......Page 224 8.3.3 Primitives for Class Evolution......Page 225 8.3.4 Completeness, Correctness and Complexity......Page 228 8.3.5 Evaluation......Page 229 8.4.1 Issues......Page 230 8.4.2 The Organization of Version Management......Page 231 8.4.3 Version Identification......Page 233 8.4.4 Versioning and Class Evolution......Page 234 8.4.5 Evaluation......Page 235 8.5.1 Issues......Page 236 8.5.2 Refactoring......Page 237 8.5.3 Restructuring Interattribute Dependencies......Page 239 8.5.4 Restructuring Inheritance Hierarchies......Page 243 8.6.1 Confining the Effects of Evolution......Page 248 8.6.2 Physical Structures......Page 249 8.7.1 Issues......Page 251 8.7.2 Instance Transformation......Page 252 8.7.3 Immediate and Delayed Conversion......Page 253 8.8.2 Version Compatibility......Page 254 8.8.3 Filtering Mechanisms......Page 255 8.8.5 Evaluation......Page 257 8.9 Conclusion......Page 258 9.1 Introduction......Page 263 9.1.1 Object Selection......Page 264 9.1.2 Related Work......Page 266 9.2 Browsing Requirements......Page 269 9.3 The Affinity Browser......Page 270 9.3.1 The Affinity Browser Exploration Paradigm......Page 271 9.3.2 Architectural Elements of an Affinity Browser......Page 275 9.3.3 User Interaction and Event Management......Page 276 9.4.1 Class Relationships......Page 277 9.4.2 Creation and Destruction Relationships......Page 284 9.4.3 Object Relationships......Page 286 9.5 Conclusion......Page 288 Frameworks and Applications......Page 291 10.1 Introduction......Page 293 10.2 Related Work......Page 294 10.3.1 Component Definition......Page 296 10.3.2 Component Composition......Page 298 10.3.3 Interactive Environment......Page 302 10.4 Vista — A Prototype Visual Composition Tool......Page 305 10.5 Sample Applications......Page 308 10.6.1 Component Definition......Page 315 10.6.2 Composition......Page 316 10.6.3 Visualization......Page 317 10.7 Conclusion......Page 318 11.1 Digital Media and Multimedia......Page 323 11.2 Multimedia Systems and Multimedia Programming......Page 324 11.3 Multimedia Frameworks......Page 326 11.4 A Multimedia Framework Example — Components......Page 327 11.4.1 Producers, Consumers and Transformers......Page 328 11.4.2 Component Interfaces......Page 329 11.4.4 Component Networks......Page 330 11.5 Video Widgets — A Programming Example......Page 331 11.6 Summary......Page 335 12.1 Introduction......Page 339 12.2.1 Object Management Group......Page 342 12.2.2 Microsoft DDE and OLE......Page 343 12.2.4 Apple’s Interapplication Communication Architecture and OpenDoc......Page 347 12.2.5 Discussion......Page 350 12.3 Requirements for a Financial Framework......Page 351 12.3.2 Standardizing a Service’s Vocabulary......Page 352 12.3.3 Component Interaction Protocols......Page 354 12.4 Gluons......Page 356 12.4.2 Anatomy of a Gluon......Page 357 12.5 Gluons and the Financial Framework......Page 359 12.5.1 The Dragging Gluon......Page 360 12.5.2 Real-time Data Notification Gluon......Page 364 12.6 Conclusion......Page 365 "Over the past ten years, object-oriented technology has started to have a significant impact in industry. Despite its many positive aspects, there have been some problems in successfully applying the technology to large projects, and in achieving adequate levels of flexibility and software reuse. Based on the research of the Object Systems Group in Geneva, this pragmatic book looks at a range of issues, from programming languages and systems through to tools, frameworks and methods." "At a time when the 'components vs. objects' debate is becoming very heated, Object-Oriented Software Composition takes the view that components and objects can be complementary and helps to explain the relationships between the two."--BOOK JACKET

قیمت نهایی

۴۹٬۰۰۰ تومان