From csus.edu!wupost!spool.mu.edu!agate!doc.ic.ac.uk!uknet!bnr.co.uk!bnrgate!nmerh207!corpgate!crchh327.bnr.ca!jakubik Tue Sep 7 16:32:05 1993 Path: csus.edu!wupost!spool.mu.edu!agate!doc.ic.ac.uk!uknet!bnr.co.uk!bnrgate!nmerh207!corpgate!crchh327.bnr.ca!jakubik From: jakubik@bnr.ca (Paul Jakubik) Newsgroups: comp.software-eng Subject: SUMMARY: bobooks on Object Oriented Software Engineering Date: 30 Aug 1993 14:41:22 GMT Organization: Bell-Northern Research, Richardson, Tx. Lines: 326 Message-ID: <25t3ii$l5@crchh327.bnr.ca> NNTP-Posting-Host: crchh819.bnr.ca Summary of messages from: Annie I. Anton Chad S Bremmon Khuzaima Daudjee Ernesto Guerrieri Satish Popat Allan Willey James C. Youlio Object-Oriented Software Engineering - A Use Case Driven Approach Ivar Jacobson, Magnus Christerson, Patrik Jonsson, Gunnar Overgaard Addison-Wesley/ACM Press 1992 ISBN 0-201-54435-0 Essays on Object-Oriented Software Engineering, VOLUME I Ed Berard Prentice Hall 1993 ISBN: 0132888955 (table of contents appears at end of this message) Object-Oriented Software Engineerin (The professional developers guide), George Wilkie Addison-Wesley 1993 ISBN-0-201-62767-1 ----------------------------------------- Information on accessing the Library of Congress Card Catalog via the Internet. In the July, 1993 issue of _IEEE Computer_, on page 67, you will see a news item about the new service LOCIS, which opens the Library of Congress Card Catalog to the internet. Telnet to locis.loc.gov or 140.147.254.3 for your answer--and pass the work in your company. ----------------------------------------- Essays on Object-Oriented Software Engineering, VOLUME I Ed Berard Prentice Hall 1993 ISBN: 0132888955 TABLE OF CONTENTS -------------------- Preface xi Prologue xi My Background xii About This Book xiii Acknowledgments xv -------------------- 1 Understanding Object-Oriented Technology 1 Prologue 1 Brief History of Object-Oriented Technology 3 Two Different Cultures 5 What Does the Word "Object" Mean? 7 What Is Object-Oriented Programming? 8 Localization 10 Summary 10 Bibliography 10 -------------------- 2 Motivation for an Object-Oriented Approach to Software Engineering 13 Prologue 13 Two Views of Motivation 14 Encouragement of Modern Software Engineering 15 The Promotion and Facilitation of Software Reusability 19 The Promotion and Facilitation of Interoperability 20 Object-Oriented Solutions Closely Resemble the Original Problem 21 Object-Oriented Approaches Result in Software That Is Easily Modified, Extended, and Maintained 22 The General Electric Study 23 The Impact of Object-Orientation on the Software Life-Cycle 24 Traceability 25 Reduction of Integration Problems 26 Improvement in Conceptual Integrity 26 Lessening the Need for Objectification and Deobjectification 27 Summary 27 Bibliography 28 -------------------- 3 What Are Methodologies? 32 General Observations 32 The Beginnings of Software Engineering Methodologies 33 The 1970s -- Methodologies Everywhere 34 The 1980s -- Taking a Closer Look 35 Object-Oriented Methodologies 35 Approaching Object-Oriented Methodologies 36 Object-Oriented Methodologies -- What's Available? 37 Bibliography 37 -------------------- 4 Life-Cycle Approaches 40 Prologue 40 Methodologies and Life-Cycle Approaches Are Not Always Necessary 40 General Life-Cycle Approaches 42 Some Examples of Life-Cycle Approaches 42 A Suggestion for the Object-Oriented Life-Cycle:The Recursive/Parallel Model 46 Bibliography 47 -------------------- 5 Understanding the Recursive/Parallel life-cycle 49 Prologue 49 Historical Background 49 How We Really Design Software 50 Decomposition 52 Composition 53 Reusability and Compositional Techniques 54 And Now, the Recursive/Parallel Process 54 The Size and Critical Nature of a Software Product 55 Accomplishing the Recursive/Parallel Approach 55 "Analysis Objects," "Design Objects," "Interface Objects,S and "Commuting Objects" 56 A Simple Example 57 When to Use OORA, When Not to Use OORA, and When to Stop Using OORA 59 Consistency in the Object-Oriented Life-Cycle 60 Differences between OORA and OOD 60 Summary 60 Bibliography 61 -------------------- 6 Abstraction, Encapsulation, and Information Hiding 63 Prologue 63 Abstraction 63 Information Hiding 65 Encapsulation 67 Conclusions 69 Bibliography 70 -------------------- 7 Object Coupling and Object Cohesion 72 Prologue 72 History of Coupling and Cohesion 74 General Concepts Behind Coupling and Cohesion 75 Module Coupling and Module Cohesion in an Object-Oriented Context 80 Module Coupling 80 Module Cohesion 86 Object Coupling 92 Interface Coupling 95 Internal Object Coupling 101 Inside Internal Object Coupling 102 Outside Internal Object Coupling 103 Coupling from the Side 104 Coupling from Underneath 106 Types and Inheritance 110 Object Cohesion 111 Objects in Isolation 115 Individual Objects 115 Composite Objects 117 Specialization Hierarchies 119 Conclusion 122 Bibliography 122 -------------------- 8 Object and Class Specifications 131 Prologue 131 Individual Objects Versus Systems of Objects 132 When Do We Create OCSs? 132 What View of an Object Does an OCS Provide? 133 The Basic Structure of an OCS 133 The Precise and Concise Description 134 Graphical Representations 135 Operations 139 State Information 144 Constants and Exceptions 145 Verification of an OCS 148 Verification of the Precise and Concise Description Section 148 Verification of the Graphical Representations Section 149 Verification of the Operations Section 150 Verification of the State Information Section 150 Verification of the Constants and Exceptions Section 151 Additional OCS Issues 151 Observations on the OCS Creation Process 155 Summary 158 Bibliography 158 -------------------- 9 Large Object-Oriented Entities (Systems of Objects) 163 Prologue 163 The Impact of Size 164 Large Software Components 165 Kits 167 Systems of Interacting Objects 174 Conclusion 178 Bibliography 178 -------------------- 10 Object-Oriented Domain Analysis 182 Prologue 182 Software Reusability 182 Domain Analysis: Definitions 184 Historical Background 185 Domain Analysis Is Not a Life-Cycle Activity 186 What Is a Domain Analyst? 187 Steps in OODA 187 Defining the Domain 188 Collecting a Representative Sample of Applications in the Domain 190 Analysis of the Sample 190 Defining Reusability Guidelines 191 Demonstrations of Reuse Using the Reusable Objects 191 Making Recommendations 191 Domain Analysis and Life-Cycle Activities 191 Other Uses for Domain Analysis 191 Conclusions 192 Bibliography 192 -------------------- 11 Creation of and Conversion to Object-Oriented Requirements 196 Prologue 196 Establishing a Mindset 197 What Do We Mean by "Requirements Analysis"? 197 The Context for Object-Oriented Requirements Analysis 199 Beginning the Analysis Effort 201 Problems with Requirements 202 Creation of and Conversion to Object-Oriented Requirements 203 A Model 204 Object-Oriented Models 204 Supporting the Models: The "Object Dictionary" 205 Attacking an Analysis Problem 206 Short Maps 206 OCS Precursors 206 Conclusion 207 Bibliography 208 -------------------- 12 Object-Oriented Requirements Analysis 211 Prologue 211 History 212 OODA Will Impact OORA 215 A Suggested OORA Methodology 216 V&V and SQA 219 Conclusion 220 Bibliography 220 -------------------- 13 Object-Oriented Design 225 Prologue 225 OOD and the Software Life-Cycle 226 History 226 Mixed Paradigms 228 Modifying Other Approaches to Encompass the Object-Oriented Paradigm 228 Different Paradigms in the Same Life-Cycle 228 Transitioning from OORA 228 OODA Will Impact OOD 229 A Mechanism for Accomplishing OOD 230 Summary 237 Bibliography 237 -------------------- 14 Evaluating An Object-Oriented Programming Language 243 Prologue 243 Historical Background 244 Problems with Evaluations 245 Evaluation Criteria 245 Minimum Criteria for Objects 249 Other Problems In Evaluating the Object-Orientedness of a Programming Language 249 Evaluation Methodology 250 Other Considerations 252 Summary 253 Bibliography 253 -------------------- 15 Issues in the Testing of Object-Oriented Software 257 Prologue 257 Confusion with Other Technologies 257 Some Basic Concepts and Definitions 258 Encapsulation and Information Hiding 261 The Impact of Encapsulation on Testing 262 Integration Testing 264 The Impact of Information Hiding on Testing 264 Other Issues 265 Summary 265 Bibliography 265 -------------------- 16 Specifying Test Cases for Object-Oriented Software 271 Prologue 271 Why Study Specifications for Test Cases for Object-Oriented Software? 271 The Characteristics of a Well-Specified Test Case 272 Specifying Test Cases for Object-Oriented Software 272 Unique Object Identification 274 Unique Test Case Identification 274 The Purpose of the Test Case 275 A List of Test Case Steps 275 A List of Specified States 276 A List of Messages/Operations 277 A List of Exceptions Raised 280 A List of Interrupts Generated 281 A List of External Conditions 281 A List of Additional Comments 283 Conclusions 284 Bibliography 284 -------------------- 17 Readings In Object-Oriented Technology 285 Object-Oriented Programming 285 Object-Oriented Requirements Analysis 286 Object-Oriented Design/Development 286 Object-Oriented Databases 287 Object-Oriented Computer Hardware 288 Metrics for Object-Oriented Software Engineering 289 General Object-Oriented Technology References 289 -------------------- Appendix: Object and Class Specifications 291 Class: Bounded List 291 Class: Bid 297 Class: Button 303 Class: Destination_Panel 305 Class: Floor_Arrival_Panel 310 Class: Lamp 313 Class: Read_Only_Port 315 Class: Shared_Motor 318 Class: Write_Only_Port 323 Glossary 326 Index 343 -- Paul Jakubik |Bell-Northern Research |Richardson, Tx jakubik@bnr.ca |214-684-1501 |My opinions are my own...