Software Life Cycle (eBook)
426 Seiten
Elsevier Science (Verlag)
978-1-4831-6354-3 (ISBN)
The Software Life Cycle deals with the software lifecycle, that is, what exactly happens when software is developed. Topics covered include aspects of software engineering, structured techniques of software development, and software project management. The use of mathematics to design and develop computer systems is also discussed. This book is comprised of 20 chapters divided into four sections and begins with an overview of software engineering and software development, paying particular attention to the birth of software engineering and the introduction of formal methods of software development. The next section explores some aspects of software engineering that tend to get ignored in the literature, including functional programming, functional-programming languages, and relational databases. The reader is then introduced to structured methods of software development, along with software project management. The final chapter is devoted to software testing, which can be functional or nonfunctional. This monograph will be useful to software engineers and designers.
Front Cover 1
The Software Life Cycle 4
Copyright Page 5
Table of Contents 6
Contributors 8
Introduction: Software engineering and software development 10
Birth of software engineering 10
Drive towards automation 13
New development methods 16
Formal methods of software development 18
Software project management 20
New languages 21
Measuring the software project 23
Artificial intelligence and software engineering 24
References 25
Section I: Aspects of software engineering 28
Chapter 1. The role of functional languages in software development 30
Functional languages 30
The role of a programming language 33
JSD 35
Functions, processes and networks 37
Conclusions 46
References 47
Chapter 2. Functional programming and software engineering 48
Rationale for functional languages 49
Further example of use of functional languages 51
Functional programming and software engineering 52
Summary 54
References 54
Chapter 3. An evaluation of software product metrics 56
Code metrics 58
Design metrics 64
Specification metrics 73
Future directions 75
References 76
Chapter 4. Relational databases 80
Historical background 80
Basic database concepts 81
Relations and keys 82
Database design through normalization 83
Three normal forms 84
Further normal forms 90
Relational operations 91
Set-based relational operations 91
Selection and projection 91
Relational join 92
Relational division 93
Properties of relational operations 93
Conclusion 94
References 94
Chapter 5. Software engineering in MODULA-2 96
Abstraction and stepwise refinement 97
Programming in the small 98
Simple data abstractions 99
Modularity in ALGOL-like languages 101
Modularity in MODULA-2 102
Separate compilation 104
Classical data abstraction 107
Object-oriented design 108
Opaque types and intermodule coupling 110
Generic modules and types 112
MODULA-2 and ADA 114
Conclusion 114
References 115
Chapter 6. Functional programming on parallel architectures 116
Improving reliability 117
Improving efficiency 117
Introduction to Hope 119
ALICE 124
Graph reduction 124
Architecture 128
ALICE in hardware 132
Preliminary results 133
Conclusion 134
References 134
Section II: Structured techniques of software development 136
Chapter 7. Yourdon dataflow diagrams A tool for disciplined requirements analysis 138
Requirements analysis and dataflow diagrams 139
Yourdon Structured Method 149
From essential modelling to implementation modelling 168
Conclusions 175
References 176
Further reading 176
Chapter 8. Structured systems analysis and design method (SSADM) 177
Basic principles 178
Overview of SSADM 179
Structured techniques 185
Documents and forms 193
Automated support for SSADM 193
Trends in development 194
Comparison with other methods 195
Conclusion 197
References 197
Chapter 9. The modelling phase of JSD 198
Basic JSD modelling 198
Comparison with data modelling 202
Roles and entities 206
Classification of actions 208
Command and control model 210
References 212
Chapter 10. Congruent design 213
Graphics notation for building models 213
Modelling data structures 214
Deriving simple program models 216
Data mappings 218
Resolving structure clashes 220
Process modelling 222
Conclusions 225
References 226
Section III: Software development and mathematics 228
Chapter 11. The Vienna development method 230
Introduction to building specifications 230
Logic– the mortar 232
Set notation – the bricks 235
More bricks – mapping notation 247
Building with mappings – electronic address book 251
More bricks – sequence notation 254
Specifications using sequences 258
Some pattern matching problems 258
Specifications of some ADTs 260
Priority queue 260
Larger building blocks — composite objects 261
Summary 267
Bibliography 268
Chapter 12. Z and system specification 269
Mathematics and system specification 271
Facilities of Z 274
Example of the use of Z 277
Specification of query and update facilities for the car spares warehouse system 282
Operations 283
Summary 285
References 286
Chapter 13. What are formal methods? 287
Model-oriented formal methods 289
Specifying operations 291
Development method 293
Operation decomposition and program proving: Hoare logics 295
Executable specifications 297
Formal methods and prototyping 297
Conclusion 298
References 299
Further reading 299
Chapter 14. Formal description of realtime systems 300
Program performance and correctness 302
Framework for description 303
Requirements, specifications, and models 305
Realtime languages and their semantics 308
Scheduling realtime programs 311
Conclusions 314
Acknowledgements 314
References 315
Section IV: Software project management 318
Chapter 15. Software product assurance: measurement and control 320
Software quality 320
Software product assurance 321
Configuration management 325
Software quality control 331
Implementation process control 332
Product quality control 334
Conclusion 335
References 336
Chapter 16. Automating information engineering 338
Developing information systems by information engineering 338
Automatic information system development 341
Features for an automated system 344
Changing nature of the methodology 347
Future directions 350
Conclusion 351
Acknowledgements 352
References 352
Chapter 17. Designing software for provable correctness 353
Design process overview 354
Stepwise refinement practice 355
Elements of structured design 358
Structured data design 358
Design expression 359
Correctness verification 360
Functional verification procedure 360
Correctness proofs for design primitives 362
Impact on software quality 365
Formal methods for defect prevention/removal 366
Quality trends with formal methods 367
References 369
Chapter 18. Information base of the Aspect integrated project support environment 370
Information base superstructure and the process model 373
Support for configuration management 376
Information base engine 380
Conclusions 382
Acknowledgements 382
References 382
Chapter 19. Artificial intelligence and software engineering 384
Potential scope 385
Some representative examples 389
AI-based support environments 389
AI mechanisms and techniques in practical software 390
SE tools and techniques in AI systems 391
Summary 393
References 393
Chapter 20. Software testing techniques 395
Testing strategies 397
Taxonomy of testing techniques 400
Summary 408
References 409
Bibliography 412
Index 422
Erscheint lt. Verlag | 20.5.2014 |
---|---|
Sprache | englisch |
Themenwelt | Informatik ► Office Programme ► Outlook |
Mathematik / Informatik ► Informatik ► Software Entwicklung | |
Informatik ► Theorie / Studium ► Künstliche Intelligenz / Robotik | |
Sozialwissenschaften ► Ethnologie | |
Sozialwissenschaften ► Politik / Verwaltung | |
Sozialwissenschaften ► Soziologie | |
ISBN-10 | 1-4831-6354-7 / 1483163547 |
ISBN-13 | 978-1-4831-6354-3 / 9781483163543 |
Haben Sie eine Frage zum Produkt? |
Größe: 49,1 MB
Kopierschutz: Adobe-DRM
Adobe-DRM ist ein Kopierschutz, der das eBook vor Mißbrauch schützen soll. Dabei wird das eBook bereits beim Download auf Ihre persönliche Adobe-ID autorisiert. Lesen können Sie das eBook dann nur auf den Geräten, welche ebenfalls auf Ihre Adobe-ID registriert sind.
Details zum Adobe-DRM
Dateiformat: PDF (Portable Document Format)
Mit einem festen Seitenlayout eignet sich die PDF besonders für Fachbücher mit Spalten, Tabellen und Abbildungen. Eine PDF kann auf fast allen Geräten angezeigt werden, ist aber für kleine Displays (Smartphone, eReader) nur eingeschränkt geeignet.
Systemvoraussetzungen:
PC/Mac: Mit einem PC oder Mac können Sie dieses eBook lesen. Sie benötigen eine
eReader: Dieses eBook kann mit (fast) allen eBook-Readern gelesen werden. Mit dem amazon-Kindle ist es aber nicht kompatibel.
Smartphone/Tablet: Egal ob Apple oder Android, dieses eBook können Sie lesen. Sie benötigen eine
Geräteliste und zusätzliche Hinweise
Buying eBooks from abroad
For tax law reasons we can sell eBooks just within Germany and Switzerland. Regrettably we cannot fulfill eBook-orders from other countries.
aus dem Bereich