|
Figures xv
Part I Concepts 1
Chapter 1 Introduction 3
1.1 Purpose and Scope 3
1.2 The System Development Process 4
1.3 Underlying Principles 4
1.4 What's in a Name? 5
1.5 Audience for and Structure of the Book
6
1.6 A Participative Case Study on the Web 7
1.7 A Caveat 8
Chapter 2 What Is a System? 9
2.1 System Characteristics 9
2.1.1 Introduction to Systems 9
2.1.2 System Hierarchies 11
2.1.3 Multiple Hierarchies 14
2.1.4 System Networks 14
2.1.5 System Life Cycle and Errors 15
2.1.6 Order and Chaos 16
2.1.7 System Predictability 17
2.1.8 Dealing with Complexity 17
2.2 Views of a System 18
2.2.1 The Processing View 19
2.2.2 The Processor View 20
2.2.3 The What/How View 21
2.2.4 The Level of Intelligence View 22
2.2.5 The Static/Dynamic View 23
2.3 System Requirements 24
2.3.1 The Sources of Requirements 24
2.3.1.1 Customers 24
2.3.1.2 Users 25
2.3.1.3 Managers 25
2.3.1.4 Industry Standards 25
2.3.1.5 The Development Process 26
2.3.1.6 Others 26
2.3.2 What Exactly Are Requirements, Anyway?
26
2.3.3 A Model of Requirements 28
2.3.4 Quality 36
2.3.5 Requirement Management and Analysis
37
2.3.5.1 Requirement Gathering 37
2.3.5.2 Requirement Integrity Analysis
38
2.3.5.3 Requirement Feasibility Analysis
38
2.3.5.4 Requirement Detailing 38
2.3.5.5 Requirement Deriving 39
2.3.5.6 Requirement Categorizing 39
2.4 System Summary 40
Chapter 3 A Framework for Modeling Systems
41
3.1 A Model Framework 41
3.2 Models in General 41
3.2.1 Models Are Useful Abstractions 42
3.2.2 Model Representations and Reuse 43
3.3 Exploiting System Hierarchies 45
3.3.1 Why Exploit Hierarchies? 46
3.3.2 What Are the Benefits and Pitfalls
of Layered Systems? 46
3.3.3 How Many Models? 47
3.3.4 Where Do We Stop? 48
3.4 Exploiting the What/How Classification
49
3.4.1 Separation of What and How 50
3.4.2 The Architecture Template 51
3.4.3 Using the Architecture Template 53
3.5 Exploiting the Information/Material/Energy
Classification 55
3.5.1 A Generic Subsystem Structure 55
3.5.2 Categories of a Deliverable System
57
3.5.3 Categories of a People System 60
3.6 Layered Models: The Truth at Last! 60
3.6.1 Aggregation/Decomposition Relationship
in Models 64
3.6.2 Abstraction/Detailing Relationship
in Models 65
3.6.3 Supertype/Subtype Relationship in Models
66
3.6.4 Controlling/Controlled Relationship
in Models 67
3.6.5 Layered Models Summary 68
3.7 Model Framework Summary 70
Chapter 4 System Development Models 72
4.1 Overview 72
4.2 Architecture Model 74
4.2.1 Introduction 74
4.2.2 Basic Modeling Elements 76
4.2.2.1 Architecture Module 77
4.2.2.2 Terminator 78
4.2.2.3 Architecture Flow 79
4.2.2.4 Message 81
4.2.2.5 Flows and Messages 83
4.2.2.6 Inheritance Relationship 85
4.2.2.7 Architecture Interconnect
86
4.2.3 Context Diagram 87
4.2.4 Networks and Hierarchies 90
4.2.5 Architecture Communication Model 92
4.2.5.1 Architecture Flow Diagram 94
4.2.5.2 Architecture Message Diagram-Network
Style 97
4.2.5.3 Architecture Message Diagram-Hierarchy
Style 99
4.2.5.4 Architecture Module Specification
101
4.2.5.5 Message Specification 102
4.2.6 Architecture Interconnect Model 103
4.2.6.1 Architecture Interconnect Diagram
104
4.2.6.2 Architecture Interconnect Specification
106
4.2.7 Architecture Inheritance Model 106
4.2.7.1 Module Inheritance Diagram 107
4.2.8 Architecture Dictionary 108
4.2.9 Architecture Model Balancing 110
4.2.9.1 Architecture Message Diagram
Balancing 111
4.3 Requirements Model 112
4.3.1 Introduction 112
4.3.2 Entity Model 115
4.3.2.1 Basic Modeling Elements 116
4.3.2.2 Attribute 116
4.3.2.3 Entity Class 116
4.3.2.4 Relationship 118
4.3.2.5 Special Relationships 121
4.3.2.6 Class Diagram 125
4.3.2.7 Entity Class Specification 126
4.3.2.8 Relationship Specification 127
4.3.2.9 Attribute Specification 129
4.3.3 Process Model 130
4.3.3.1 Basic Modeling Elements 131
4.3.3.2 Data Flow 131
4.3.3.3 Process 133
4.3.3.4 Store 134
4.3.3.5 Terminator 135
4.3.3.6 Data Context Diagram 135
4.3.3.7 Data Flow Diagram 137
4.3.3.8 Detailing Diagrams 139
4.3.3.9 Process Specification 141
4.3.4 Control Model 143
4.3.4.1 Control Flow 144
4.3.4.2 Control Specification 146
4.3.4.3 Sequential Machines-State Transition
Diagrams and
State Charts 147
4.3.4.4 Other Representations of Sequential
Machines 151
4.3.4.5 Combinational Machines-Decision
Tables and
Process Activation Tables 153
4.3.5 The Control Flow Model: Basic Elements
155
4.3.5.1 Control Flow 155
4.3.5.2 cspec Bar 156
4.3.6 Control Context Diagram 156
4.3.7 Control Flow Diagram 157
4.3.7.1 Rules and Guidelines for cfds
and cspecs 159
4.3.8 Separation of Data and Control 160
4.4 Requirements Dictionary 162
4.4.1 Timing Requirements 164
4.4.2 Requirements Model Balancing 166
4.4.3 Architecture Template and Enhanced
Requirements Model 166
4.4.4 Requirements Model Summary 169
4.5 Requirements/Architecture Relationships
170
4.5.1 Scope Differences 171
4.5.2 Superbubbles 172
4.5.3 Traceability 176
4.5.4 Architecture Model/Requirements Model
Balancing 177
4.6 A Note on Object Orientation 178
4.7 System Models Summary and Further Reading
180
Chapter 5 The System Development Process 181
5.1 Process, Methods, and Tools 181
5.2 The Nature of the Development Process 183
5.2.1 The Evolution of the Development Process
183
5.2.2 The Concurrent Development Process
184
5.2.3 The Meaning of Concurrent Development
187
5.3 The Process and the Methods 190
5.3.1 System Specification Models 191
5.3.2 Requirement Enhancement and Allocation
194
5.3.3 Requirement Deriving and Detailing
194
5.3.4 Traceability 197
5.4 Roles of the System Architect and System
Engineer 200
5.4.1 Requirement Management 202
5.4.2 Feasibility Analyses, Trade-Off Studies,
and Prototypes 202
5.4.3 Project Coordination 203
5.4.4 Manual Procedures and Other Operator
Functions 203
5.4.5 Companion ir&d Projects 204
5.5 System Development Process Summary 204
Chapter 6 Applying the Models to Development
205
6.1 Overview 205
6.2 Understanding the Generic Development Structure
206
6.3 Example: A Patient-Monitoring System 209
6.3.1 Problem Statement: Nurses' Tasks 210
6.3.2 Modeling the Environment 210
6.3.3 Building the Context-Level Model 213
6.3.4 Technology Constraints for the Patient-Monitoring
System 219
6.3.5 Creating the Enhanced Requirements
Model 220
6.3.6 Building the Architecture Level 1 Model
224
6.3.6.1 Architecture Model Allocation
224
6.3.7 Interconnects and Further Enhancements
228
6.3.8 Completing the Architecture 229
6.3.9 Developing the Lower-Level Models 233
6.4 Configuring Software and Computer Hardware
236
6.4.1 Single-Hardware/Multiple-Software Configuration
239
6.4.2 Multiple-Hardware/Single-Software Configuration
241
6.5 Modeling the Numerous Hardware Technologies
244
6.5.1 Electrical 245
6.5.2 Electronic 247
6.5.3 Electromechanical 247
6.5.4 Mechanical 248
6.5.5 Hydraulic and Pneumatic 248
6.5.6 Optical 249
6.5.7 Chemical 249
6.5.8 Manufacturing 250
6.5.9 Detailed Hardware Design 250
6.5.10 Mixed Technologies 250
6.6 Computer Hardware Layers 251
6.7 Software Layers 253
6.7.1 Structured Design 254
6.7.2 codarts 255
6.7.3 Object Orientation 256
6.7.4 Lessons from the History of Software
258
6.7.5 Software Categories 259
6.7.6 Software Architectures 268
6.8 Summaries 273
6.8.1 System Summary 273
6.8.2 Software Summary 274
Chapter 7 System Development Overview Using
a Meta-Model 275
7.1 Introduction 275
7.2 A Meta-Model for Development Projects 276
7.3 An Essential Model of the Development Process
277
7.4 The Enhanced Development Model 281
7.5 The Development Architecture Context 284
7.6 Development Process Architecture 288
7.7 Development Process Task Allocation 291
7.8 Variations on the Architecture Template
291
Part II Case Study: Groundwater Analysis System
297
Chapter 8 Initial Problem Statement 299
8.1 Overview 299
8.2 Required Capabilities 300
8.3 Required Performance 301
8.4 Required Constraints 301
8.4.1 Input/Output Constraints 301
8.4.2 Design Constraints 301
8.4.2.1 Other Design Constraints 303
Chapter 9 Modeling the Known Pieces 304
9.1 Overview 304
9.2 The Requirements Context 304
9.3 The System Timing Specification 305
9.4 The Entity Model 307
9.5 The Existing Sampling Module 311
Chapter 10 Building Upon the Known Pieces
316
10.1 Top-Level Essential Model 316
10.2 Enhancing the Essential Model 331
10.2.1 User-Interface Processing 331
10.2.2 Input and Output Processing 331
10.2.3 Maintenance and Support Functions
334
10.2.4 The Enhanced Requirements Models 334
10.3 Architecture Context 341
10.4 Building Up from the Existing Sampling
Module 343
10.4.1 An Intermediate Module 344
10.4.2 Central versus Distributed Processing
344
10.4.3 Sample Analyzer Requirements 345
10.5 What Do We Have, and What Is Missing?
346
Chapter 11 Filling In the Blanks 348
11.1 Introduction 348
11.2 Architecture Modules 348
11.3 Allocating the Enhanced Requirements Model
349
11.4 Enhancing the Allocated Models 357
11.5 Adding the Architecture Flows and Interconnects
362
11.6 Flow-to-Interconnect Allocations 362
11.7 Merging the Top-Down and Bottom-Up Pieces
364
Chapter 12 Completing the Models 375
12.1 Introduction 375
12.2 Accuracy Allocation 375
12.3 Timing Allocation-Concurrent Architecture
Modules 376
12.4 Architecture Module Specifications 378
12.4.1 Architecture Module Specification:
Groundwater Analysis System 378
12.4.2 Architecture Module Specification:
Sample Analyzer 380
12.5 Architecture Interconnect Specifications
382
12.5.1 Architecture Interconnect Specification:
Local Bus 382
12.6 Requirements and Architecture Dictionaries
383
Chapter 13 Groundwater Analysis System Summary
387
13.1 Overview 387
Appendix Changes, Improvements, and Misconceptions
Since the Methods' Introduction 389
A.1 A Learning Experience 389
A.2 Changes and Improvements 390
A.2.1 Superbubbles 390
A.2.2 Addition of Object-Oriented Constructs
391
A.2.3 The Total, Multileveled Methods Structure
391
A.2.4 Architecture Interconnect Context Diagram
391
A.2.5 Entity Model 392
A.2.6 Hardware/Software Interface 392
A.2.7 Functions of Time in Data and Control
Processes 392
A.2.8 Extended Traceability 393
A.2.9 Derived Requirements 393
A.2.10 Special Cases of Architecture Flows
and Interconnects 393
A.2.11 The Architecture Template as a Meta-Model
394
A.2.12 pspec Guidelines 394
A.2.13 Extended Guidelines on Separation
of Data and Control 394
A.2.14 Extended Guidelines for Architecture
Module and Interconnect Specifications 395
A.2.15 Data Flows from cspecs 395
A.2.16 Use of State Charts in cspecs 396
A.2.17 Elimination of Sequential and One-Shot
Decision Tables and Process Activation Tables
396
A.2.18 Manual (Human) Subsystems 396
A.2.19 Primitive Process Notation 396
A.2.20 Stores Shown on Multiple Levels 397
A.2.21 Descriptions of Data Flow Diagrams
397
A.3 Misconceptions About the Methods 397
A.3.1 The Methods Are Mostly for Real-Time
and
Embedded Applications 397
A.3.2 The Requirements Method Is More Important
Than the Architecture Method 398
A.3.3 The Most Significant Feature of the
Requirements Model Is the Control Model 398
A.3.4 Everything Involving Control Must Use
the Control Model 398
A.3.5 Everything Involved in Control Must
Involve Control Flows 399
A.3.6 All Discrete-Valued Flows Must Be Control
Flows 399
A.3.7 The Methods Employ a Strictly Top-Down
Decomposition Approach 399
A.3.8 The Methods Are Little Different from
Basic Structured Analysis 399
A.3.9 The Methods Mostly Apply to Software
399
A.3.10 The Methods Are Incompatible with
Object-Orientation 400
A.3.11 pspecs Must Contain Sufficient Detail
for Detailed Design 400
A.3.12 The Models Should Be Executable 400
Glossary 401
Bibliography 419
Index 425
Return to Book Page
|