Menu Expand
Software Development

Software Development

Davide Brugali | Marco Torchiano

(2005)

Additional Information

Book Details

Abstract

In order to be able to write good software, students will need to be familiar with a range of techniques; good programming practice, experience of problem solving, familiarity with development methodologies, and knowledge of software processes. This book takes a new approach to the teaching of software development. Using a collection of case studies, it takes the student through the whole life cycle of building an application, starting at problem formulation, requirements analysis, system design, and the detail of the Java coding and testing. Each case study; -exploits object oriented concepts and techniques incrementally, with each case application getting more complex than the one before it-traces the path from problem statement through to implementation of the solution, giving guidance that is useful in subsequent case studies-gives a 'conceptual roadmap' where the student can follow the development of an application, and use those general principles in future software development-uses a different methodology, from a stand-alone application (computer simulator) to a distributed system (messaging server) through to a more complex system (workflow management system)

Table of Contents

Section Title Page Action Price
Cover Cover
Software Development Case Studies in Java iii
Contents vii
Preface xix
Acknowledgements xxi
Reading guide 1
Key concepts 1
The process 2
References 6
PART I Objects and Classes 7
Objects and classes 9
Synthesis 9
Development approach 9
Basic building blocks 10
Modelling notations 11
Part overview 11
References 12
Scheduler 13
Synthesis 13
Specifications 13
Problem analysis 15
Architecture and planning 20
Prototype 1: Decentralized scheduling 20
Prototype 2: User interaction 35
Extensions 47
Assessment 47
References 50
Classifier 51
Synthesis 51
Specifications 51
Problem analysis 52
Architecture and planning 56
Prototype 1: Classification 56
Prototype 2: Criteria representation 69
Prototype 3: Training 73
Extensions 81
Assessment 81
References 85
Hardware description language 86
Synthesis 86
Specifications 86
Problem analysis 88
Architecture and planning 91
Prototype 1: Hard-wired program 91
Prototype 2: Volatile programs 103
Prototype 3: Persistent programs 111
Extension 117
Assessment 118
Reference 120
Multi-format calculator 121
Synthesis 121
Specifications 121
Problem analysis 122
Architecture and planning 126
Prototype 1: Representation formats 126
Prototype 2: Number bases 145
Extension 151
Assessment 151
Reference 154
PART II Object architectures 155
Object architectures 157
Synthesis 157
Architectural styles 157
Communication mechanisms 158
Control flow models 159
Part overview 159
References 160
Code documentation 161
Synthesis 161
Specifications 161
Problem analysis 162
Architecture and planning 166
Prototype 1: Intermediate representation 167
Prototype 2: Language front end 178
Prototype 3: Graphical driver 187
Extension 193
Assessment 193
References 195
Manufacturing work cell 196
Synthesis 196
Specifications 196
Problem analysis 198
Architecture and planning 205
Prototype 1: Event-based simulation 206
Prototype 2: Work cell simulator 215
Extension 229
Assessment 230
Reference 232
Mobile robot exploration 233
Synthesis 233
Specifications 233
Problem analysis 239
Architecture and planning 241
Prototype 1: Simulated environment 242
Prototype 2: Dynamic behaviour 252
Prototype 3: Map building 267
Extension 273
Assessment 273
References 276
Car parking 277
Synthesis 277
Specifications 277
Problem analysis 280
Architecture and planning 282
Prototype 1: Event-based communication 283
Prototype 2: Graphical animation 289
Extension 301
Assessment 302
Reference 304
PART III Distributed Architectures 305
Distributed architectures 307
Synthesis 307
Reuse-based development 307
Distributed architecture models 308
Distributed computing paradigms 309
Part overview 311
References 312
Supervisory control and data acquisition system 313
Synthesis 313
Specifications 313
Problem analysis 315
Architecture and planning 318
Prototype 1: Work cell simulation 319
Prototype 2: Tank controllers 329
Prototype 3: The supervisory station 340
Extension 345
Assessment 346
References 347
Supermarket operation support system 348
Synthesis 348
Specifications 348
Problem analysis 349
Architecture and planning 352
Prototype 1: Counter terminal 353
Prototype 2: Centralized system 361
Prototype 3: Distributed system 372
Prototype 4: Data persistence 382
Extension 388
Assessment 388
References 390
Geographic information system 391
Synthesis 391
Specifications 391
Problem analysis 394
Architecture and planning 396
Prototype 1: The graphical editor 397
Prototype 2: The data linker 407
Prototype 3: The web browser 416
Extension 425
Assessment 425
Reference 427
Ubiquitous email 428
Synthesis 428
Specifications 428
Architecture and planning 431
Prototype 1: Mail access 433
Prototype 2: User profiles 442
Prototype 3: WAP access 453
Prototype 4: Mail notification 458
Extension 466
Assessment 467
References 468
PART IV Object Frameworks 469
Object frameworks 471
Synthesis 471
Reuse-oriented development 471
Framework scope 473
Framework customization 473
Part overview 474
References 475
Recoverable applications 477
Synthesis 477
Specifications 477
Problem analysis 478
Architecture and planning 480
Prototype 1: Physical recording 481
Prototype 2: Logical recording 493
Extension 499
Assessment 500
References 501
Multi-modal interaction framework 502
Synthesis 502
Specifications 502
Problem analysis 503
Architecture and planning 508
Prototype 1: Synchronous communication 509
Prototype 2: Asynchronous communication 520
Prototype 3: Web communication 526
Extension 535
Assessment 536
References 537
Negotiation-based service configuration 538
Synthesis 538
Specifications 538
Problem analysis 539
Architecture and planning 543
Prototype 1: Negotiation framework 544
Prototype 2: Resource negotiation 557
Prototype 3: Distributed negotiation 568
Extension 574
Assessment 574
References 575
Workflow management system 576
Synthesis 576
Specifications 576
Problem analysis 578
Architecture and planning 581
Prototype 1: Process definition 583
Prototype 2: Process enactment 592
Prototype 3: User interface 604
Prototype 4: Process data 612
Extension 619
Assessment 620
References 621
Index 622