testimonials
contact us
about us
partners
site map
courses
clients
home
news
links

 

SOA & UML course in Stockport
(near Manchester)

22nd September 2008


Web Usability Patterns Site


Web Usability Products & Services

A comprehensive tutorial on UML





      
your requirementscustom solutionsexpert helpwhitepapers

  books

   
 


'Object Oriented Methods Principles, Products and Practices' by Ian Graham
 

link to Amazon

Addison Wesley

Third Edition.


ISBN: 020161913X

Preview chapters:

Contents 

Preface to the third edition

vii

 

 

1   Basic concepts

1

   1.1   Historical background

2

   1.2   What are object-oriented methods?

10

   1.3   Basic terminology and ideas

10

      1.3.1 Abstractions and encapsulation

17

      1.3.2 Inheritance

26

      1.3.3 Encapsulation, inheritance and object-orientation

33

   1.4   Summary

36

   1.5   Bibliographical notes

37

   1.6   Exercises

39

 

 

2    The benefits of object-oriented programming and methods

41

   2.1   The benefits

43

   2.2   Some problems and pitfalls

58

   2.3   Case studies

62

   2.4   Adoption strategies

64

   2.5   Summary

68

   2.6   Bibliographical notes

70

   2.7   Exercises

71

 

 

3   Object-oriented and object-based programming languages

73

   3.1   Object-oriented languages

74

      3.1.1 Simula

74

      3.1.2 Smalltalk and its dialects

76

      3.1.3 C extensions

78

      3.1.4 Eiffel

82

      3.1.5 Java

84

      3.1.6 Object-Oriented COBOL

86

   3.2   Other languages with object-oriented features

87

   3.3   Functional and applicative languages

89

   3.4   AI based systems

94

         3.4.1 Lisp extensions

94

         3.4.2 Other AI based development systems

98

   3.5   Object libraries, application frameworks and OO 4GLs

99

   3.6   Other developments

102

      3.6.1 Other languages

102

      3.6.2 Type theories and object-oriented programming

104

      3.6.3 Object-oriented programming in conventional languages

106

   3.7   Selecting an object-oriented language

107

   3.8   Directions and trends

109

   3.9   Summary

110

   3.10   Bibliographical notes

112

   3.11   Exercises

113

 

 

4   Distributed computing, middleware and migration

115

   4.1   Distributed and client-server computing

116

      4.1.1   Network and architectural issues

125

   4.2   Object request brokers and middleware

126

         4.2.1 The rôle of XML

135

   4.3   Enterprise Application Integration

137

   4.4   Migration strategies

141

         4.4.1   Interoperation of object-oriented systems with conventional IT

         4.4.2   Data management strategies for wrappers

         4.4.3   Practical problems with migration

         4.4.4   Reusing existing software components and packages

         4.4.5   Using object-oriented analysis as a springboard

         4.4.6 Object-oriented analysis and knowledge based prototyping   

         4.4.7 Object technology as a migration strategy in itself   

142

145

147

149

151

153

155

   4.5   Summary

157

   4.6   Bibliographical notes

160

   4.7   Exercises

161

 

 

5   Database technology

163

   5.1   A potted history of data models

164

         5.1.1 Weaknesses of early databases

166

         5.1.2 The relational model and how it helps

169

         5.1.3 Semantic data models and data analysis methods

181

   5.2   Weaknesses in the relational model

188

         5.2.1 Normalization

188

         5.2.2 Integrity and business rules

189

         5.2.3 Null Values

190

         5.2.4 Abstract data types and complex objects

191

         5.2.5 Recursive queries

191

   5.3   Entity-Relationship and deductive databases

192

         5.3.1 Entity-Relationship databases

192

         5.3.2 Deductive databases

193

   5.4   Object-relational databases

194

   5.5   Query languages

198

   5.6    What is an object-oriented database?

200

   5.7   Benefits of object-oriented databases

207

      5.7.1 Benefits arising from a need to use object-oriented programming

207

      5.7.2 Benefits arising from enriched semantic capabilities

208

      5.7.3 Benefits of object-oriented databases as such

209

         5.7.4   Problems with object-oriented databases

211

   5.8   Survey of OODB products

213

      5.8.1 Commercial object-oriented databases

213

         5.8.2 Other influential products and projects

220

   5.9   Referential integrity in object databases

223

   5.10   Applications of object-oriented databases

227

         5.10.1 Distributed databases and full-content retrieval

228

   5.11   Strategic considerations

230

   5.12   Summary

231

   5.13   Bibliographical notes

233

   5.14 Exercises   

235

 

 

6   Object-oriented analysis and design

237

   6.1   The history of object-oriented design and analysis methods

238

   6.2   Software engineering

242

         6.2.1 Responsibility-driven versus data-driven approaches

         6.2.2 Translational versus elaborational approaches

247

248

   6.3   Object-oriented analysis and design using UML and Catalysis

249

      6.3.1 Object structures

253

      6.3.2 Using use cases to discover types

262

      6.3.3 Invariants and rulesets

      6.3.4 Invariants and encapsulation

      6.3.5 State models

      6.3.6 Moving to component design

      6.3.8 The design process

269

282

290

293

300

         6.3.9 Documenting models

301

         6.3.10 Real-time extensions

302

   6.4   Identifying objects

304

      6.4.1 Philosophy of knowledge and classification theory

306

      6.4.2 Task analysis

311

      6.4.3 Kelly grids

316

   6.5   CASE tools

319

   6.6   Summary

321

   6.7   Bibliographical notes

321

   6.8   Exercises

322

   

 

7   Architecture, patterns and components

325

   7.1   Software and system architecture

 

   7.2   Patterns, architecture and decoupling

 

      7.2.1 Design patterns for decoupling

 

   7.3   Designing components

 

      7.2.1 Components for flexibility

 

      7.2.2 Large-scale connectors

 

      7.2.3 Mapping the business model to the implementation

 

      7.2.4 Business components and libraries

 

   7.4   Summary

 

   7.5   Bibliographical notes

 

   7.6   Exercises

 

 

 

8   Requirements engineering

378

   8.1   Approaches to requirements engineering

 

   8.2   Requirements engineering versus system specification

 

      8.2.1 Collaborative work, work-flow automation and groupware

 

   8.3   De-scoping large problems the mission grid

 

   8.4   Discovering business objectives and priorities

 

   8.5   Agents, conversations and business processes

 

      8.5.1 business process models

 

      8.5.2 Activity diagrams and business process modelling

 

   8.6   From conversations to tasks and use cases

 

   8.7   From the Task Object Model to the Business Object Model

 

   8.8   Seamlessness

 

   8.9   The syllogism pattern for use case generation

 

   8.10   Ensuring the completeness of scenarios

 

   8.11   Task association sets and sequence diagrams

 

      8.11.1 Conjunctive, disjunctive and nested association sets

 

   8.12   Executable specifications and simulation

 

      8.12.1 Discrete event and time-based simulation

 

   8.13   Organizing and running requirements workshops

 

      8.13.1 Rôles adopted during a workshop

 

      8.13.2 Who should attend workshops

 

      8.13.3 Selecting a location

 

      8.13.4 Workshop logistics

 

      8.13.5 Workshop organizer's and facilitator's checklists

 

      8.13.6 Facilitation skills

 

      8.13.7 Who should record the session

 

      8.13.8 Running a workshop

 

      8.13.9 Using interviewing techniques in a workshop context

 

   8.14   Summary

 

   8.15   Bibliographical Notes

 

   8.16   Exercises   

 

 

 

9   Process and project management

464

   9.1   Why follow a process?

 

   9.2   What must an object-oriented method do?

 

   9.3   Classic life cycle models

 

      9.3.1 Waterfall, V and X models

 

      9.3.2 Spiral models

 

      9.3.3 The fountain model and MOSES

 

      9.3.4 Fractals, conches and pinballs

 

   9.4   Workshops, time-boxes and evolutionary development

 

      9.4.1 Principles of dynamic system development

 

   9.5   Process and product life-cycle models

 

      9.5.1 OO life cycle models

 

      9.5.2 Objectory and the Rational Unified Process

 

      9.5.3 The OPEN Process Framework

 

   9.6   The TriReme contract-driven process model

 

      9.6.1 Project Initiation stage and activity

 

      9.6.2 Requirements activity

 

      9.6.3 Analysis elaboration activity

 

      9.6.4 Time-box planning activity

 

      9.6.5 Development within a time-box: The Build activity

 

      9.6.6 Design activity

 

      9.6.7 Programming activity

 

      9.6.8 Testing activity

 

      9.6.9 User review and UAT activity

 

      9.6.10 Consolidation, coordination, reuse and documentation

 

      9.6.11 Evaluation and reuse evaluation activity

 

      9.6.12 Implementation planning activity

 

      9.6.13 Development planning and resource planning activities

 

      9.6.14 Domain modelling and repository administration activity

 

      9.6.15 Bug fixing activity

 

      9.6.16 General project management tasks and issues

 

      9.6.17 Project rôles and responsibilities

 

   9.7   Reuse management

 

   9.8   Metrics and process improvement

 

   9.9   Principles of user interface design

 

      9.9.1 Designing the HCI

 

      9.9.1 Fundamentals of Cognitive Psychology

 

      9.9.1 Principles for HCI design

 

      9.9.1 Guidelines for user interface design

 

   9.10   Testing

 

   9.11   Changing the IT organization

 

   9.12   Summary

 

   9.13   Bibliographical notes

 

   9.14   Exercises

 

 

 

10   Applications

582

   10.1   Web applications

 

   10.2   Other commercial applications

 

      10.2.1 Graphical user interfaces

 

      10.2.2 Simulation

 

      10.2.3 Geographic information system

 

      10.2.4 Concurrent systems and parallel hardware

 

      10.2.5 Other applications

 

   10.3   Expert systems, AI and intelligent agents

 

      10.3.1 Blackboards and actor systems

 

      10.3.2 Neural networks and parallel computing

 

      10.3.3 Intelligent agents

 

   10.4   Back to the future

 

   10.5   Summary

 

   10.6   Bibliographical notes

 

 

 

Appendices

 

 

 

A   Fuzzy objects: inheritance under uncertainty

625

   

   A.1   Representing knowledge about objects in AI

 

   A.2   Basic concepts of fuzzy set theory

 

   A.3   Fuzzy objects

 

   A.4   An application

 

   A.5   Fuzzy objects, fuzzy quantifiers and nonmonotonic logics

 

   A.6   Business policy and fuzzy models

 

   A.7   Control rules for fuzzy multiple inheritance systems

 

   A.8   Design theory for fuzzy objects

 

   A.9   The relationship of fuzzy objects to other concepts

 

   A.10   Summary

 

   A.11   Bibliographical notes

 

 

 

B   Seminal OOA/D methods

663

   B.1   Early design methods and notations

 

   B.2   Analysis methods and notations

 

   B.3   Transformational versus elaborational methods

 

   B.4   Methods and process (MOSES, SOMA, Fusion, Texel)

 

   B.5   Summary

 

   B.6   Bibliographical notes

 

 

 

C UML notation summary

739

 

 

D   Answers to selected exercises

 

 

 

Glossary of terms

 

 

 

References and bibliography

 

 

 

Name index

 

 

 

Subject index

 


 
contents | preface | ch 4 | ch 7
email us  or  tel  UK:  01625 850 839  international:  +44 1625 850 839