Academia.eduAcademia.edu

A Practical Guide to SysML: The Systems Modeling Language

2008

Neurologie pédiatrique (3° Éd.) La pathologie neurologique infantile occupe une place majeure dans la pathologie pédiatrique, en raison de sa fréquence et de la gravité de ses conséquences sur le développement psychomoteur des enfants. La 3e édition de Neurologie ...

A Practical Guide to The SysML Systems Modeling Language Sanford Friedenthal Alan Moore Rick Steiner AMSTERDAM . NEW YORK BOSTON • SAN FRANCISCO ELSEVIER . OXFORD . HEIDELBERG • PARIS SINGAPORE Morgan Kaufmann Publishers is . an > . LONDON m SAN DIEGO SYDNEY « TOKYO imprint of Elsevier M< Contents Preface xvii Acknowledgments xxi About the Authors xxiii PART I INTRODUCTION CHAPTER 1 1.1 Systems Engineering Overview 3 3 Motivation for Systems Engineering 1.2 The Systems Engineering 4 Process Systems Engineering Process Multidisciplinary Systems Engineering Team 1.5 Codifying Systems Engineering Practice through Standards 1.6 Summary 1.7 Questions 1.3 Typical Application of the 1.4 CHAPTER 2 2.1 the Document-Based and Model-Based Approach Systems Engineering Approach 2.1.2 Model-Based Systems Engineering Approach 2.2 Modeling Principles 2.1.1 Document-Based 2.2.1 Model and MBSE Method Definition Purpose for Modeling a System Establishing Criteria to Meet the Model Purpose 2.2.2 The 2.2.3 9 10 13 14 15 Model-Based Systems Engineering Contrasting 5 15 15 16 21 21 21 22 2.2.4 Model-Based Metrics 25 2.2.5 Other Model-Based Metrics 26 2.3 Summary 27 2.4 Questions 27 CHAPTER 3 Getting Started with SysML SysML Purpose and Key Features 3.2 SysML Diagram Overview 3.3 Introducing SysML-Lite 3.3.1 SysML-Lite Diagrams and Language Features 3.3.2 SysML-Lite Air Compressor Example 3.3.3 SysML Modeling Tool Tips 3.1 3.4 A Simplified MBSE Method 3.5 The Learning Curve for SysML and MBSE 3.6 Summary 3.7 Questions 29 29 29 31 31 34 38 44 47 48 48 CHAPTER 4 4.1 An Automobile SysML Example Using the SysML Basic Feature Set 51 Basic Feature Set 51 4.2 Automobile Example Overview 52 4.2.1 Problem Summary 52 4.3 Automobile Model 4.3.1 Package Diagram for Organizing the Model Capturing the Automobile Specification in a Requirement Diagram 4.3.3 Denning the Vehicle and Its External Environment Using a Block Definition Diagram 4.3.4 Use Case Diagram for Operate Vehicle 4.3.5 Representing Drive Vehicle Behavior with a Sequence Diagram 4.3.6 Referenced Sequence Diagram to Turn On Vehicle 4.3.7 Control Power Activity Diagram 4.3.8 State Machine Diagram for Drive Vehicle States 4.3.9 Vehicle Context Using an Internal Block Diagram 4.3.10 Vehicle Hierarchy Represented on a Block Definition Diagram 4.3.11 Activity Diagram for Provide Power 4.3.12 Internal Block Diagram for the Power Subsystem 4.3.2 4.3.15 Denning the Equations to Analyze Vehicle Performance Analyzing Vehicle Acceleration Using the Parametric Diagram Analysis Results from Analyzing Vehicle Acceleration 4.3.16 Defining 4.3.13 4.3.14 the Vehicle Controller Actions to the Vehicle and Its Specifying 4.3.18 Requirements Traceability 55 57 58 60 60 62 64 64 67 69 69 73 75 75 77 Components Viewpoint 4.4 Model Interchange 4.5 Summary 4.6 Questions PART II 53 Optimize Engine Performance 4.3.17 4.3.19 View and 51 78 79 81 82 82 83 LANGUAGE DESCRIPTION CHAPTER 5 5.1 SysML Language Architecture 87 The OMG 87 SysML Language Specification SysML Language 5.2.1 The General-Purpose Systems Modeling Domain 5.2.2 The Modeling Language (or Metamodel) 5.2.3 The System Model (or User Model) 5.2.4 Model Interchange 5.3 SysML Diagrams 5.3.1 Diagram Frames 5.3.2 Diagram Header 5.2 The Architecture of the 88 89 90 91 92 93 94 95 Diagram Description 96 5.3.4 Diagram Content 5.3.5 Additional Notations 96 5.3.3 99 100 5.4 The Surveillance System Case Study 5.4.1 Case Study 100 Overview 100 5.4.2 Modeling Conventions 5.5 Organization of Part II 5.5.1 OCSMP Certification Coverage and SysML 1.3 101 5.6 102 CHAPTER 6 101 Questions Organizing the Model with 103 Packages 6.1 Overview 103 6.2 The Package Diagram 6.3 Defining Packages Using a Package Diagram 6.4 Organizing a Package Hierarchy 6.5 Showing Packageable Elements on a Package Diagram 104 6.6 109 Packages as Namespaces 6.7 Importing Model Elements into Packages 6.8 Showing Dependencies between Packageable 6.9 Specifying Views and Viewpoints 6.10 Summary 6.11 Questions CHAPTER 7 7.1 104 106 107 109 112 Elements 114 115 116 119 Modeling Structure with Blocks 119 Overview 7.1.1 Block Definition 7.1.2 Internal Block 7.2 Modeling Blocks 120 Diagram 121 Diagram on a 121 Block Definition Diagram Using Properties Using Part Properties 7.3 Modeling the Structure and Characteristics of Blocks 7.3.1 Modeling Block Composition Hierarchies 7.3.2 Modeling Relationships between Blocks Using Reference Properties 7.3.3 Using Associations to Type Connectors between Parts 7.3.4 Modeling Quantifiable Characteristics of Blocks Using 143 143 on an 7.5 Modeling Block Behavior 7.5.1 Modeling the Main Behavior of 7.5.4 Internal Block Diagram 144 147 a Block Specifying the Behavioral Features 7.5.3 Modeling Block-Defined Methods 7.5.2 132 142 Properties 7.4.3 Modeling Flows between Parts 130 137 Modeling Flows 7.4.1 Modeling Items That Flow 7.4.2 Flow 123 Value Properties 7.4 123 of Blocks Routing Requests Across Connectors 148 148 150 151 7.6 Modeling Interfaces Using 152 Ports 153 7.6.1 Full Ports 7.6.2 7.6.3 7.6.4 Proxy 154 Ports 157 Ports Connecting Modeling Flows 165 between Ports 165 Using Interfaces with Ports 7.7 Modeling Classification Hierarchies Using Generalization 7.6.5 7.7.1 Classification and the Structural Features of 167 169 Block a 170 7.7.2 Classification and Behavioral Features 7.7.3 7.7.4 7.7.5 Classifications Using Generalization Sets Modeling Overlapping Modeling Variants Using Classification Using Property-Specific Types to Model Context-Specific 172 Block 173 Characteristics Configurations Modeling Modeling Block Configurations Using Deprecated Features 7.7.6 7.8 7.9 7.10 7.11 CHAPTER 8 8.1 Block as Specialized Blocks 176 Instances 178 179 Summary Questions 180 Modeling 182 Constraints with Parametrics 185 185 Overview Defining Constraints the Block Definition Using Diagram Expressions to Represent System Diagram Constraint Using Encapsulating Constraints Constraints in Constraint Blocks to Enable Reuse 8.3.1 Additional Parameter Characteristics 8.4 to Build Constraint Blocks Using Composition Complex Using a Parametric Diagram to Bind Parameters of Constraint Blocks 8.6 Constraining Value Properties of a Block 8.7 Capturing Values in Block Configurations 8.8 Constraining Time-Dependent Properties to Facilitate Time-Based Analysis 8.9 Using Constraint Blocks to Constrain Item Flows 8.10 Describing an Analysis Context 8.11 Modeling Evaluation of Alternatives and Trade Studies 8.12 Summary 8.13 Questions 8.5 CHAPTER 9 Modeling Flow-Based Behavior 185 186 8.1.2 The Parametric 8.3 173 7.9.1 Flow Ports 8.1.1 8.2 171 with Activities 187 188 188 190 191 193 195 195 197 198 200 202 203 205 9.1 Overview 205 9.2 The 206 Activity Diagram 9.3 Actions—The Foundation of Activities 208 9.4 The Basics of Modeling Activities 209 9.5 9.4.1 Specifying Input 9.4.2 Composing Activities Using and Parameters for Output an Activity Call Behavior Actions Using Object Flows to Describe the Flow of Items between 9.5.1 Routing Object Flows 9.5.2 Routing Object Flows from Parameter Sets 211 Actions to Specify the Order of Action Execution Depicting Control Logic with Control Nodes 9.6.2 Using Control Operators to Enable and Disable Actions 9.7 Handling Signals and Other Events 9.8 Structuring Activities 9.8.1 Interruptible Regions 9.8.2 Using Structured Activity Nodes 9.9 Advanced Flow Modeling 9.9.1 Modeling Flow Rates 9.9.2 Modeling Flow Order 9.9.3 Modeling Probabilistic Flow 9.10 Modeling Constraints on Activity Execution 9.10.1 Modeling Pre- and Post-conditions and Input and Output States 9.6.1 9.10.2 9.11 Adding Timing in Activity Block Context Specifying Relationship between Activities and Other Behaviors 9.12 Modeling Activity Hierarchies Using Block Definition Diagrams 9.12.1 Modeling Activity Invocation Using Composite Associations 9.12.2 Modeling Parameter and Other Object Nodes Using Associations 9.12.3 Adding Parametric Constraints to Activities 9.13 Enhanced Functional Flow Block Diagram an a 9.11.3 9.14 216 220 220 222 224 225 225 226 228 228 229 230 231 231 234 234 236 239 240 240 240 242 243 243 Executing Activities 9.14.1 The Foundational UML Subset 9.14.2 The Action 213 233 Constraints to Actions Relating Activities to Blocks and Other Behaviors 9.11.1 Linking Behavior to Structure Using Partitions 9.11.2 213 219 9.5.3 Buffers and Data Stores 9.6 Using Control Flows 209 Language 244 (fUML) for Foundational UML (All) 245 9.14.3 Primitive Actions 246 9.14.4 Executing Continuous Activities 247 Summary 248 9.16 Questions 249 9.15 CHAPTER 10 10.1 Modeling Message-Based Behavior with Interactions 251 Overview 251 10.2 The 252 Sequence Diagram 252 10.3 The Context for Interactions 10.4 Using Lifelines to 10.4.1 Occurrence Represent Participants Specifications in an Interaction 254 255 10.5 256 Exchanging Messages between Lifelines 10.5.1 Synchronous and Asynchronous Messages 256 258 10.5.2 Lost and Found Messages 10.5.3 Weak 259 Sequencing 259 10.5.4 Executions 10.5.5 Lifeline Creation and Destruction 261 10.6 Representing Time on a Sequence Diagram 10.7 Describing Complex Scenarios Using Combined Fragments 266 268 10.7.3 State Invariants 10.9 10.10 10.11 CHAPTER 11 11.1 Using Interaction References Decomposing Summary Questions 264 265 Basic Interaction Operators 10.7.2 Additional Interaction Operators 10.7.1 10.8 261 Lifelines to to Structure Complex Interactions Represent Internal Behavior 270 270 273 274 Modeling Event-Based Behavior with State Machines 277 277 Overview 11.2 State Machine Diagram 278 11.3 Specifying States in 278 11.3.1 a State Machine 278 Region 280 11.3.2 State 281 11.4 Transitioning between States 11.5 11.4.1 Transition Fundamentals 281 11.4.2 Routing Transitions Using Pseudostates 284 11.4.3 287 Showing Transitions Graphically 287 State Machines and Operation Calls 288 11.6 State Hierarchies 11.6.1 Composite State with a Single Region 11.6.2 Composite State with Multiple (Orthogonal) Regions 11.6.3 Transition Firing Order in Nested State Hierarchies 11.6.4 Using the History Pseudostate to Return to a Previously Interrupted State 11.6.5 Reusing State Machines 11.7 Contrasting Discrete and Continuous States 11.8 Summary 11.9 Questions CHAPTER 12 12.1 Modeling Functionality with Use Cases Overview Using Actors to 12.3.1 Further 290 292 293 295 297 299 300 303 303 12.2 Use Case Diagram 12.3 289 303 Represent the Descriptions Users of a of Actors System 304 305 12.4 Using Use Cases 12.4.1 Use Case 12.4.2 Use Case 305 Describe System Functionality Relationships Descriptions to 307 309 310 12.5 Elaborating Use Cases with Behaviors 310 12.5.1 Context 12.6 12.7 CHAPTER 13 Diagrams 12.5.2 Sequence Diagrams 12.5.3 Activity Diagrams 12.5.4 State Machine Diagrams Summary Questions Modeling Text-Based Requirements to 13.1 310 311 313 314 315 and Their Relationship 317 Design 317 Overview 13.2 318 13.3 320 Requirement Diagram Representing a Text Requirement in the Model 13.4 Types of Requirements Relationships 13.5 Representing Cross-Cutting Relationships in SysML Diagrams 13.5.1 Depicting Requirements Relationships Directly 13.5.2 Depicting Requirements Relationships Using Compartment 13.7 13.8 13.9 322 323 324 Notation Depicting Requirements Relationships Using Callout Depicting Rationale for Requirements Relationships Depicting Requirements and Their Relationships in Tables 13.7.1 Depicting Requirement Relationships in Tables 13.7.2 Depicting Requirement Relationships as Matrices Modeling Requirement Hierarchies in Packages Modeling a Requirements Containment Hierarchy 13.9.1 The Browser View of a Containment Hierarchy 13.5.3 13.6 322 Notation 324 325 326 326 327 328 328 329 13.10 Modeling Requirement Derivation 13.11 Asserting That a Requirement is Satisfied 329 13.12 Verifying That a Requirement is Satisfied 13.13 Reducing Requirements Ambiguity Using the Refine Relationship 332 Relationship Using General-Purpose 13.15 Reusing Requirements with the Copy Relationship 13.16 Summary 13.17 Questions 338 13.14 CHAPTER 14 14.1 the Trace Modeling Cross-Cutting Relationships with 335 338 339 340 Allocations 343 343 Overview 14.2 Allocation 331 Relationship 343 14.3 Allocation Notation 345 14.4 347 Types of Allocation 14.4.1 Allocation of Requirements 347 14.4.2 Allocation of Behavior 347 Function 14.4.3 Allocation of Flow 348 14.4.4 Allocation of Structure 348 14.4.5 Allocation of 348 of 14.4.6 14.5 or Summary Planning for Reuse: Properties Relationships Associated with the Term "Allocation" Specifying Definition and Usage in Allocation 350 14.5.2 Allocating Definition 351 Allocating Asymmetrically 14.5.4 Guidelines for Allocating Definition and Usage Allocating Behavior to Structure Using Functional Allocation 14.6.1 Modeling Functional Allocation of Usage 351 14.6.2 14.6.3 Modeling Modeling 351 352 354 354 Functional Allocation of Definition Functional Allocation Using Allocate Activity Partitions 357 (Allocate Swimlanes) 14.7 Connecting Functional Flow with Structural Flow Using Functional 358 Flow Allocation Options Functionally Allocating Allocating an Object Flow to a Connector 14.7.3 Allocating Object Flow to Item Flow Modeling Allocation between Independent Structural Hierarchies 14.8.1 Modeling Structural Allocation of Usage 14.8.2 Allocating a Logical Connector to a Physical Structure 14.8.3 Modeling Structural Allocation of Definition Modeling Structural Flow Allocation Evaluating Allocation across a User Model 14.10.1 Establishing Balance and Consistency Taking Allocation to the Next Step Summary Questions 358 Customizing SysML for Specific Domains 369 Overview 369 14.7.1 for Flow 14.7.2 14.8 14.9 14.10 14.11 14.12 14.13 CHAPTER 15 15.1 to Provide Reusable Constructs 15.2 Defining Model Libraries 15.3 Defining Stereotypes to Extend Existing SysML Concepts 15.3.1 Adding Properties and Constraints to Stereotypes Referencing Applying a Metamodel or Metaclass from Profiles to User Models in Order to Use 15.6 Applying Stereotypes when 15.6.1 Specializing Building a a Profile Stereotypes Model Model Elements with 359 361 362 362 363 364 366 366 366 367 367 373 374 376 379 15.4 Extending the SysML Language Using Profiles 15.4.1 358 370 15.1.1 A Brief Review of Metamodeling Concepts 15.5 349 14.5.1 Allocating Usage 14.5.3 14.6 349 Applied Stereotypes 380 381 382 384 388 15.7 Summary 15.8 Questions PART III 389 MODELING EXAMPLES CHAPTER 16 Water Distiller Example Using Functional Analysis 393 Stating 16.2 Defining the Model-Based Systems Engineering Approach 16.3 Organizing the Model 16.4 Establishing Requirements 16.4.1 Characterizing Stakeholder Needs 16.4.2 Characterizing System Requirements 16.4.3 Characterizing Required Behaviors 16.4.4 Refining Behavior 393 16.5 Modeling Structure 16.5.1 Defining Distiller's Blocks in the Block Definition 409 the Problem 16.1 16.5.2 16.5.3 16.5.4 - The Need for Clean Drinking Water 394 394 396 396 399 400 406 Diagram 412 Allocating Behavior Defining Creating the Ports on 414 the Blocks the Internal Block Diagram with Parts, Ports, Connectors, 414 and Item Flows 16.6 16.5.5 Allocation of Flow 417 Analyze Performance 417 16.6.1 Item Flow Heat Balance 417 Analysis 420 Resolving Heat Balance Modify the Original Design 16.6.2 16.7 16.7.1 16.7.2 16.7.3 16.7.4 16.7.5 17.1 420 420 Updating Behavior 421 Allocation and Structure Updating Controlling the Distiller and Developing a User Interface Startup 16.8 Summary 16.9 Questions CHAPTER 17 409 the User Interaction 425 and 426 a Controller and Shutdown Considerations 427 429 429 Residential Security System Example Using the ObjectOriented Systems Engineering Method 431 Method Overview 431 Background 431 17.1.2 System Development Process Overview 17.1.3 OOSEM System Specification and Design Process 432 17.1.1 Motivation and 17.2 Residential Security Example Overview 435 437 17.2.1 Problem Background 437 17.2.2 Project Startup 437 17.3 Applying Specify and Design OOSEM to the Residential Security System 17.3.1 Setup Model 439 17.3.2 Analyze Stakeholder Needs 444 17.3.3 Analyze System Requirements 453 17.3.4 Define Logical Architecture 465 17.3.6 17.3.7 17.3.8 17.3.9 472 Physical Architectures 17.3.5 Synthesize Candidate 501 Optimize and Evaluate Alternatives Manage Requirements Traceability OOSEM Support to Integrate and Verify System Develop Enabling Systems 507 513 515 518 17.4 Summary 17.5 Questions PART IV 438 519 TRANSITIONING TO MODEL-BASED SYSTEMS ENGINEERING CHAPTER 18 Integrating SysML into the 18.1 Understanding 18.1.1 The 18.1.2 System System Model Types 18.1.3 Using 18.2 Tool Roles in a Systems Development Environment Model's Role in the Broader as an Modeling Context 523 of Models and Simulations the a Model with Other Models 526 Environment 530 System Systems Development 18.2.1 Use of Tools to Model and 18.2.2 Use of Tools to 18.2.3 Use of Tools Manage Specify the 530 the System Design Configuration to View and Document the and Related Data.... 531 Data Project Management Tools to 534 535 18.2.4 Verification and Validation Tools 18.2.5 Use of 523 523 Framework Integrating 523 Manage the Development 535 Process 535 18.3 An Overview of Information Flow between Tools Interconnecting System Modeling Tool with Other Tools Interface with 18.3.2 Requirements Management Tool 18.3.1 the 18.3.3 Interface with SoS/Business Tools Modeling Analysis Tools 535 536 538 18.3.4 Interface with Simulation and 538 18.3.5 Interface with Verification Tools 539 18.3.6 Interface with 539 Development Tools 18.3.7 Interface with Documentation & View Generation Tool 540 18.3.8 Interface with 540 18.3.9 Interface with 18.4 Data Exchange Configuration Management Project Management Tool Mechanisms 18.4.1 Considerations for Data Exchange 18.4.3 API-based Exchange Performing 542 542 18.4.2 File-Based Exchange 18.4.4 Tool Transformations 542 544 546 547 18.5 Data Exchange 548 Applications 18.5.1 SysML to Modelica (bidirectional transformation) 18.5.2 Interchanging SysML Models and Ontologies 18.5.3 Document Generation from Models (unidirectional transformation) 18.6 Selecting a System Modeling Tool 19.1 A 552 553 553 18.6.2 554 Deploying SysML Improvement into 554 555 an Organization Process 557 557 19.1.1 Monitor and Assess 558 19.1.2 Plan the 559 Improvement 19.1.3 Define Changes to Process, Methods, Tools, and Training 19.1.4 Pilot the Approach 19.1.5 Deploy Changes Incrementally 19.2 Summary 19.3 Questions Appendix 552 18.6.1 Tool Selection Criteria SysML Compliance 18.7 Summary 18.8 Questions CHAPTER 19 548 559 560 561 563 563 565 References 595 Index -^9