
Software Engineering 3
Domains, Requirements, and Software Design
By: Dines Bjørner
Hardcover | 9 March 2006
At a Glance
800 Pages
24.13 x 16.51 x 3.18
Hardcover
$169.00
or 4 interest-free payments of $42.25 with
orShips in 5 to 7 business days
The art, craft, discipline, logic, practice, and science of developing large-scale software products needs a believable, professional base. The textbooks in this three-volume set combine informal, engineeringly sound practice with the rigour of formal, mathematics-based approaches.
Volume 3 is based on the maxim: "Before software can be designed its requirements must be well understood, and before the requirements can be expressed properly the domain of the application must be well understood." This book covers the process from the development of domain descriptions, via the derivation of requirements prescriptions from domain models, to the refinement of requirements into software designs, i.e., architectures and component design. Emphasis is placed on what goes into proper domain descriptions and requirements prescriptions, how one acquires and analyses the domain knowledge and requirements expectations, and how one validates and verifies domain and requirements models.
The reader can take an informal route through Vol. 3, and this would be suitable for undergraduate courses on software engineering. Advanced students, lecturers, and researchers may instead follow the formal route through Vol. 3, and in this case Vol. 1 is a prerequisite text. Lecturers will be supported with a comprehensive guide to designing modules based on the textbooks, with solutions to many of the exercises presented, and with a complete set of lecture slides.
Industry Reviews
From the reviews:
"The presentation is focused on the fundamental ideas of domain engineering, requirements engineering and computer system engineering. ... The rigorous treatment and the author's original style of viewing the software engineering approaches are important, outstanding features ... . is of special interest for both software engineering theorists and practitioners ... . The style is very concise, but at the same time very friendly. ... Undoubtedly, readers coming from a large variety of fields of interest will appreciate the novelty and usefulness ... ." (Tudor Balanescu, Zentralblatt MATH, Vol. 1095 (21), 2006)
| Preface | p. VII |
| General | p. VII |
| Brief Guide to Volume 3 | p. VII |
| Acknowledgements | p. X |
| Opening | |
| The Triptych Paradigm | p. 3 |
| Delineations of Software Engineering | p. 3 |
| The Triptych of Software Engineering | p. 7 |
| Phases, Stages and Steps of Development | p. 30 |
| The Triptych Process Model - A First View | p. 42 |
| Conclusion to Chapter 1 | p. 42 |
| Bibliographical Notes | p. 43 |
| Exercises | p. 44 |
| Documents | p. 53 |
| Documentation Is All! | p. 53 |
| Kinds of Document Parts | p. 54 |
| Deliverables | p. 56 |
| Informative Document Parts | p. 57 |
| Descriptive Document Parts | p. 70 |
| Analytic Document Parts | p. 84 |
| Discussion | p. 88 |
| Exercises | p. 90 |
| Conceptual Framework | |
| Methods and Methodology | p. 95 |
| Method | p. 95 |
| Methodology | p. 96 |
| Method Constituents | p. 97 |
| Development Principles, Techniques and Tools | p. 99 |
| Discussion | p. 103 |
| Exercises | p. 104 |
| Models and Modelling | p. 105 |
| Introductory, Context-Setting Remarks | p. 105 |
| Model Attributes | p. 107 |
| Roles of Models | p. 115 |
| The Modelling Principle | p. 116 |
| Discussion | p. 116 |
| Exercises | p. 117 |
| Descriptions: Theory and Practice | |
| Phenomena and Concepts | p. 121 |
| Introduction | p. 121 |
| Phenomena and Concepts | p. 121 |
| Entities | p. 125 |
| Functions | p. 138 |
| Events and Behaviours | p. 144 |
| Choice on Modelling Phenomena and Concepts | p. 149 |
| Discussion | p. 153 |
| Bibliographical Notes | p. 154 |
| Exercises | p. 154 |
| On Defining and on Definitions | p. 155 |
| A Pragmatics of Definitions | p. 157 |
| Varieties of Philosophy Definitions | p. 160 |
| Preliminary Discussion | p. 163 |
| A Syntax of Formal Definitions | p. 163 |
| A Semantics of Formal Definitions | p. 167 |
| Discussion | p. 168 |
| Exercises | p. 169 |
| Jackson's Description Principles | p. 173 |
| Phenomena, Facts and Individuals | p. 173 |
| Designations | p. 174 |
| Explicit Definitions | p. 184 |
| Refutable Assertions | p. 187 |
| Discussion: Description Principles | p. 190 |
| Bibliographical Notes | p. 190 |
| Exercises | p. 190 |
| Domain Engineering | |
| Overview of Domain Engineering | p. 193 |
| Introduction | p. 193 |
| A Review of Why Domain Engineering? | p. 194 |
| Overview of Part and Chapter | p. 194 |
| Domain Stakeholders and Their Perspectives | p. 195 |
| Domain Acquisition and Validation | p. 196 |
| Domain Analysis and Concept Formation | p. 196 |
| Domain Facets | p. 197 |
| Auxiliary Stages of Domain Development | p. 197 |
| The Domain Model Document | p. 198 |
| Further Structure of This Part | p. 199 |
| Bibliographical Notes | p. 199 |
| Exercises | p. 199 |
| Domain Stakeholders | p. 201 |
| Introduction | p. 201 |
| Stakeholders | p. 201 |
| Stakeholder Perspectives | p. 203 |
| Discussion: Stakeholders and Their Perspectives | p. 208 |
| Exercises | p. 209 |
| Domain Attributes | p. 211 |
| Introduction | p. 211 |
| Continuity, Discreteness and Chaos | p. 212 |
| Statics and Dynamics | p. 222 |
| Tangibility and Intangibility | p. 241 |
| One, Two, ..., Dimensionality | p. 246 |
| Discussion | p. 249 |
| Bibliographical Notes | p. 249 |
| Exercises | p. 250 |
| Domain Facets | p. 251 |
| Introduction | p. 251 |
| Domain Facilitators: Business Processes | p. 253 |
| Domain Intrinsics | p. 264 |
| Domain Support Technologies | p. 271 |
| Domain Management and Organisation | p. 276 |
| Domain Rules and Regulations | p. 282 |
| Domain Scripts | p. 287 |
| Domain Human Behaviour | p. 308 |
| Other Domain Facets? | p. 316 |
| Composition of Domain Models | p. 316 |
| Exercises | p. 318 |
| Domain Acquisition | p. 321 |
| Introduction | p. 321 |
| The Acquisition Process | p. 324 |
| Discussion | p. 330 |
| Exercises | p. 332 |
| Domain Analysis and Concept Formation | p. 333 |
| Introduction | p. 333 |
| Concept Formation | p. 333 |
| Consistencies, Conflicts and Completeness | p. 336 |
| From Analysis to Synthesis | p. 338 |
| Discussion | p. 339 |
| Bibliographical Notes | p. 340 |
| Exercises | p. 340 |
| Domain Verification and Validation | p. 343 |
| Introduction | p. 343 |
| Domain Verification | p. 344 |
| Domain Validation | p. 346 |
| Discussion | p. 348 |
| Exercises | p. 348 |
| Towards Domain Theories | p. 351 |
| Introduction | p. 351 |
| What Is a Domain Theory? | p. 352 |
| Example Statements of Domain Theories | p. 352 |
| Possible Domain Theories | p. 354 |
| How Do We Establish a Theory? | p. 355 |
| Purpose of a Domain Theory | p. 356 |
| Summary Principles, Techniques and Tools | p. 356 |
| Bibliographical Notes | p. 356 |
| Exercises | p. 357 |
| The Domain Engineering Process Model | p. 359 |
| Introduction | p. 359 |
| Review of Domain Development | p. 359 |
| Review of Domain Documents | p. 361 |
| Discussion | p. 362 |
| Requirements Engineering | |
| Overview of Requirements Engineering | p. 365 |
| Introduction | p. 368 |
| Why Requirements, and for What? | p. 370 |
| Getting Started on Requirements Development | p. 371 |
| On Domains, Requirements and the Machine | p. 375 |
| Overview: Requirements Engineering Stages | p. 377 |
| The Requirements Document | p. 378 |
| The Structure of the Rest of the Part | p. 379 |
| Bibliographical Notes | p. 380 |
| Exercises | p. 380 |
| Requirements Stakeholders | p. 383 |
| Introduction | p. 383 |
| General Application Stakeholders | p. 384 |
| COTS Software House Stakeholders | p. 384 |
| Discussion | p. 385 |
| Exercises | p. 386 |
| Requirements Facets | p. 389 |
| Introduction | p. 390 |
| Rough Sketching and Terminology | p. 390 |
| Business Process Reengineering Requirements | p. 404 |
| Domain Requirements | p. 411 |
| Interface Requirements | p. 429 |
| Machine Requirements | p. 445 |
| Composition of Requirements Models | p. 474 |
| Discussion: Requirements Facets | p. 474 |
| Bibliographical Notes | p. 475 |
| Exercises | p. 475 |
| Requirements Acquisition | p. 479 |
| Requirements Acquisition Versus Domain Models | p. 479 |
| Domain Model-Based Requirements Acquisition | p. 480 |
| Overview of Concepts | p. 482 |
| The Acquisition Process | p. 485 |
| Discussion | p. 491 |
| Exercises | p. 493 |
| Requirements Analysis and Concept Formation | p. 495 |
| Introduction | p. 495 |
| Concept Formation | p. 497 |
| Consistencies, Conflicts, and Completeness | p. 497 |
| From Analysis to Synthesis | p. 499 |
| Discussion | p. 499 |
| Bibliographical Notes | p. 500 |
| Exercises | p. 501 |
| Requirements Verification and Validation | p. 503 |
| Introduction | p. 503 |
| Requirements Verification | p. 504 |
| Requirements Validation | p. 506 |
| Discussion | p. 508 |
| Bibliographical Notes | p. 509 |
| Exercises | p. 509 |
| Requirements Satisfiability and Feasibility | p. 511 |
| Introduction | p. 511 |
| Satisfaction Study | p. 512 |
| Technical Feasibility Study | p. 514 |
| Economic Feasibility Study | p. 515 |
| Compliance with Implicit/Derivative Goals | p. 516 |
| Discussion | p. 516 |
| Exercises | p. 518 |
| The Requirements Engineering Process Model | p. 521 |
| Introduction | p. 521 |
| Review of Requirements Development | p. 521 |
| Review of Requirements Documents | p. 522 |
| The Repeat Table of Contents Listing | p. 522 |
| Discussion | p. 523 |
| Computing Systems Design | |
| Hardware/Software Codesign | p. 527 |
| Introduction - On Architecture | p. 527 |
| Hardware Components and Modules | p. 528 |
| Software Components and Modules | p. 528 |
| Hardware/Software Codesign | p. 528 |
| Stepwise Refinement of Architectures | p. 529 |
| Discussion | p. 529 |
| Principles, Techniques and Tools | p. 529 |
| Software Architecture Design | p. 531 |
| Introduction | p. 531 |
| Initial Domain Requirements Architecture | p. 532 |
| Initial Machine Requirements Architecture | p. 534 |
| Analysis of Some Machine Requirements | p. 536 |
| Prioritisation of Design Decisions | p. 537 |
| Corresponding Designs | p. 537 |
| Discussion | p. 543 |
| Bibliographical Notes | p. 545 |
| Exercises | p. 545 |
| A Case Study in Component Design | p. 547 |
| Overview Introduction | p. 547 |
| Overview of Example | p. 549 |
| Methodology Overview | p. 550 |
| Step 0: Files and Pages | p. 552 |
| Step 1: Catalogue, Disk and Storage | p. 555 |
| Step 2: Disks | p. 564 |
| Step 3: Caches | p. 566 |
| Step 4: Storage Crashes | p. 571 |
| Step 5: Flattening Storage and Disks | p. 576 |
| Step 6: Disk Space Management | p. 577 |
| Discussion | p. 579 |
| Bibliographical Notes | p. 580 |
| Exercises | p. 580 |
| Domain-Specific Architectures | p. 583 |
| Introduction | p. 583 |
| Translator Architectures | p. 586 |
| Information Repository Architectures | p. 596 |
| Client/Server Architectures | p. 610 |
| Workpiece Architectures | p. 628 |
| Reactive System Architectures | p. 632 |
| Connection Frame | p. 636 |
| Discussion | p. 640 |
| Exercises | p. 641 |
| Etcetera: Coding and All That! | p. 645 |
| From Formal Specification to Programming | p. 645 |
| The Beauty of Programming | p. 647 |
| Programming Practices | p. 648 |
| Confidence-Building Software Development | p. 650 |
| Verification, Model Checking and Testing | p. 655 |
| Discussion | p. 661 |
| Exercises | p. 662 |
| The Computing Systems Design Process Model | p. 663 |
| Introduction | p. 663 |
| Review of Software Design | p. 663 |
| Review of Software Design Documents | p. 666 |
| Discussion | p. 668 |
| Closing | |
| The Triptych Development Process Model | p. 671 |
| Phase Process Models | p. 671 |
| Phase Documentation Table of Contents | p. 675 |
| Conclusion | p. 678 |
| Finale | p. 679 |
| Informal and Formal Software Engineering | p. 679 |
| Myths and Commandments of Formal Methods | p. 680 |
| FAQs: Frequently Asked Questions | p. 685 |
| Research and Tool Development | p. 688 |
| Application Areas | p. 691 |
| Closing Remarks | p. 693 |
| Appendixes | |
| An RSL Primer | p. 699 |
| Types | p. 699 |
| The RSL Predicate Calculus | p. 702 |
| Concrete RSL Types | p. 703 |
| [lambda]-Calculus and Functions | p. 711 |
| Further Applicative Expressions | p. 714 |
| Imperative Constructs | p. 716 |
| Process Constructs | p. 717 |
| Simple RSL Specifications | p. 719 |
| Glossary | p. 721 |
| Indexes | p. 723 |
| Concepts Index | p. 724 |
| Characterisations and Definitions Index | p. 741 |
| Authors Index | p. 745 |
| References | p. 749 |
| Table of Contents provided by Ingram. All Rights Reserved. |
ISBN: 9783540211518
ISBN-10: 3540211519
Series: Texts in Theoretical Computer Science. An EATCS Series
Published: 9th March 2006
Format: Hardcover
Language: English
Number of Pages: 800
Audience: Professional and Scholarly
Publisher: Springer Nature B.V.
Country of Publication: DE
Dimensions (cm): 24.13 x 16.51 x 3.18
Weight (kg): 1.24
Shipping
| Standard Shipping | Express Shipping | |
|---|---|---|
| Metro postcodes: | $9.99 | $14.95 |
| Regional postcodes: | $9.99 | $14.95 |
| Rural postcodes: | $9.99 | $14.95 |
Orders over $79.00 qualify for free shipping.
How to return your order
At Booktopia, we offer hassle-free returns in accordance with our returns policy. If you wish to return an item, please get in touch with Booktopia Customer Care.
Additional postage charges may be applicable.
Defective items
If there is a problem with any of the items received for your order then the Booktopia Customer Care team is ready to assist you.
For more info please visit our Help Centre.
You Can Find This Book In

The Devops Handbook: 2nd Edition
How to Create World-Class Agility, Reliability, & Security in Technology
Paperback
RRP $76.99
$56.75
OFF

Architecture Patterns with Python
Enabling Test-Driven Development, Domain-Driven Design, and Event-Driven Microservices
Paperback
RRP $125.75
$60.99
OFF
This product is categorised by
- Non-FictionComputing & I.T.Computer ScienceSystems Analysis & Design
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentSoftware Engineering
- Non-FictionComputing & I.T.Computer Programming & Software DevelopmentProgramming & Scripting Languages
- Non-FictionComputing & I.T.Computer ScienceComputer Architecture & Logic Design






















