Written by four experienced Nokia Telecommunications software developers, this practical book focuses on object-based and component-based software development. The authors concentrate on the most important issues in real-life software development, such as the development process itself, software architecture, the development of user interfaces, data management, and the development of large commercial software products. They illustrate the presented practices by means of the Unified Modeling Language (UML).
Author(s): Ari Jaaksi, Juha-Markus Aalto, Ari Aalto and Kimmo Vättö
Publisher: Cambridge University Press
Year: 1998
Language: English
Pages: 343
TABLE OF CONTENTS......Page 6
About the Authors
......Page 14
What This Book Is About......Page 16
The Structure of This Book......Page 17
Who Should Read This Book......Page 18
Acknowledgments......Page 20
Introduction......Page 22
The Context of This Book......Page 23
Art or Industry?......Page 24
Developing Interactive Software Systems......Page 30
Short History......Page 31
Notation......Page 33
Overview of the Process......Page 34
Two Paths: Static and Functional......Page 35
Analysis......Page 36
Domain Analysis......Page 37
Collecting and Analyzing Requirements......Page 38
Use Cases......Page 41
Feasibility Study......Page 49
Object Analysis......Page 51
Behavior Analysis......Page 54
User Interface Specification......Page 57
Documenting Analysis......Page 66
Design......Page 67
Architectural Design......Page 69
Architecture of Interactive Components......Page 80
Detailed Design......Page 90
Documenting Design......Page 111
Programming......Page 112
Integration and Testing......Page 113
Projects and Project Types......Page 115
Waterfalls......Page 116
Increments and Iterations......Page 120
Solving Waterfall Problems with Increments......Page 124
Utilizing Project Teams......Page 128
Essential Elements......Page 130
Need for a Controlled Process......Page 133
Object-Oriented Data Management I......Page 136
Persistent and Transitory Objects......Page 138
Collections......Page 140
Navigating with Persistent Objects......Page 143
Making Objects Persistent......Page 144
Identifying the Persistent Objects......Page 145
Database Partners......Page 146
Other Database Services......Page 148
Selecting the Persistence Mechanism......Page 149
Implementing Object Persistence with Files......Page 150
Basic Relational Concepts......Page 151
Interfacing with a Relational Database......Page 153
Mapping Class Diagrams onto Database Tables......Page 157
Implementing Persistent Objects with Object-Relational Databases......Page 168
Status of the SQL Standard......Page 169
SQL3 Features......Page 170
Interfacing with an Object-Relational Database......Page 173
Implementing Class Diagrams......Page 175
Issues to Take into Consideration......Page 184
Conclusions......Page 185
Object Databases for Storing Persistent Objects......Page 186
ODMG 2.0......Page 188
Architecture......Page 191
Interfacing with Object Databases......Page 193
Implementing Class Diagrams......Page 195
Issues to Take into Consideration......Page 199
Conclusions......Page 205
Making the Right Database Decision......Page 206
The Future of Object Data Management......Page 209
The Struggle Between ORDBMSs and Pure ODBMSs......Page 210
SQL vs. OQL......Page 211
Large-Scale Development......Page 214
Evolutionary Systems......Page 215
Cost of Evolution......Page 217
Cost of Maintenance......Page 219
Growth of Complexity......Page 220
Size and Cycle Time......Page 222
Subsystems......Page 224
Case Study: GSM Network Manager......Page 225
Systems as Product Families......Page 227
Application Platforms and Product Lines......Page 230
Design Levels......Page 233
Applications......Page 234
Service Blocks......Page 235
Components......Page 236
Managing the Dependencies......Page 237
Impacts of Levelized Design......Page 239
3 + 1 Views to Architecture......Page 241
Logical View......Page 243
Run-time View......Page 245
Development View......Page 249
Scenario View......Page 251
Evolutionary System Development Process......Page 253
Product Line Development......Page 254
The Right Things......Page 259
Caring for the Architecture......Page 265
Developing Features......Page 275
Putting It All Together......Page 288
Need for a Streamlined Approach......Page 292
Overview of the Approach......Page 293
Requirements Capture......Page 296
Analysis......Page 297
Design......Page 299
Programming......Page 305
Incremental Software Development......Page 306
Using the Simplified Process......Page 308
Phases......Page 312
Phase Products......Page 314
Object-Oriented Analysis......Page 315
Object-Oriented Design......Page 318
Integration and Testing......Page 320
Project Example......Page 321
EPILOGUE......Page 324
REFERENCES......Page 328
INDEX......Page 332