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
|