Back to book presentation

CONTENTS

FOREWORD

CHAPTER 1     INTRODUCTION

1.1    UML 2 for complex systems development
      1.1.1    Overview of UML
      1.1.2    Benefits provided by UML
1.2    Contents of the book
1.3    A first UML model
1.4    Tool and platform used

CHAPTER 2     STANDARD UML 2

2.1    Introduction
      2.1.1    History of UML
      2.1.2    What is new in UML 2
2.2    The 13 UML 2 diagrams
2.3    Use case diagram in the UML 2 standard
      2.3.1    Simple use case diagram
      2.3.2    Use case diagram with subject
      2.3.3    Use case diagram with generalization
      2.3.4    Use case diagram with include
      2.3.5    Use case diagram with comment
2.4    Sequence diagram in the UML 2 standard
      2.4.1    Simple sequence diagram
      2.4.2    Synchronous and asynchronous messages
      2.4.3    Strict and weak events sequencing
      2.4.4    Messages found or lost
      2.4.5    Object creation and termination
      2.4.6    Coregion
      2.4.7    Interaction occurrence
      2.4.8    Operators to combine sequence diagrams fragments
      2.4.9    The operator alt
      2.4.10   The operator opt
      2.4.11   The operator loop
      2.4.12   The operator break
      2.4.13   Nested operators
      2.4.14   The operator par
      2.4.15   The operator consider
      2.4.16   The operator ignore
      2.4.17   Continuation symbol
      2.4.18   Local attributes
      2.4.19   Part decomposition
      2.4.20   State invariants
      2.4.21   Time constraints
2.5    Class diagram in the UML 2 standard
      2.5.1    Class symbols
      2.5.2    Class features visibility
      2.5.3    Passive and active classes
      2.5.4    Generalization
      2.5.5    Association, aggregation and composition
      2.5.6    Stereotypes
      2.5.7    Ports, interfaces and signals
      2.5.8    Other class attributes features
2.6    Package diagram in the UML 2 standard
      2.6.1    Package import relationship
      2.6.2    Package merge relationship
2.7    Composite structure diagram in the UML 2 standard
      2.7.1    Parts, ports and connectors
      2.7.2    Basic composite structure diagram
      2.7.3    Part multiplicity
      2.7.4    Behavior ports
      2.7.5    Multiplicity on connectors
      2.7.6    Class diagram relationships and composite structure diagram
      2.7.7    Collaborations
2.8    State machine diagram in the UML 2 standard
      2.8.1    Basic state machine diagram
      2.8.2    Composite states and choice
      2.8.3    Guards and actions
      2.8.4    Events queuing, discarding and deferring
      2.8.5    Textual notation for transitions
      2.8.6    Submachine states, entry and exit points
      2.8.7    History
      2.8.8    Regions
      2.8.9    Fork and join
      2.8.10   Terminate
      2.8.11   Internal activities: do, entry, exit
      2.8.12   Internal transitions
      2.8.13   Signal parameters
      2.8.14   Grouping transitions
      2.8.15   Graphical notation for transitions
      2.8.16   State machine extension
      2.8.17   State machine with comment
2.9    Other diagrams in the UML 2 standard
      2.9.1    Activity diagram
      2.9.2    Communication diagram
      2.9.3    Component diagram
      2.9.4    Deployment diagram
      2.9.5    Interaction overview diagram
      2.9.6    Object diagram
      2.9.7    Timing diagram
2.10    The Object Constraint Language (OCL)

CHAPTER 3     UML 2 FOR REAL-TIME IN TAU G2

3.1    UML used in Tau Generation 2
3.2    The UML 2 diagrams in Tau G2
3.3    Use case diagram in Tau G2
3.4    Sequence diagram in Tau G2
      3.4.1    Simple sequence diagram
      3.4.2    Nested operators
      3.4.3    Timers
3.5    Class diagram in Tau G2
      3.5.1    Simple class diagram
      3.5.2    Passive class with operations
      3.5.3    Associations between classes
      3.5.4    Active classes with ports and interfaces
3.6    Package diagram in Tau G2
3.7    Composite structure diagram in Tau G2
3.8    State machine diagram: standard UML 2 in Tau G2
      3.8.1    Basic state machine diagram
      3.8.2    Composite states, choice and exit points
      3.8.3    Guards and actions
      3.8.4    State entry points
      3.8.5    History
      3.8.6    Terminate
      3.8.7    Graphical notation for transitions
      3.8.8    State machine extension
      3.8.9    Other features
3.9    State machine diagram: extended UML 2 in Tau G2
      3.9.1    Lexical rules
      3.9.2    Comments
      3.9.3    Pages numbering
      3.9.4    Structure of a transition
      3.9.5    States
      3.9.6    Events queuing, discarding and deferring
      3.9.7    Spontaneous transition
      3.9.8    Guard
      3.9.9    Any expression
      3.9.10   Junction
      3.9.11   Task
      3.9.12   Dynamic active class instance creation
      3.9.13   Addressing in output
      3.9.14   Time and timers
      3.9.15   Informal choice (decision)
      3.9.16   Inline target code
3.10    Data types provided by Tau G2 for real-time
      3.10.1    Predefined data types
      3.10.2    Constants
      3.10.3    Syntype

CHAPTER 4     PRESENTATION OF THE V.76 CASE STUDY

4.1    Workflow used in the case study
4.2    Overview of the case study
4.3    Textual specification of the V.76 protocol
      4.3.1    Abbreviations used
      4.3.2    Establishment of a data link connection
      4.3.3    Information transfer modes
      4.3.4    Release of a data link connection

CHAPTER 5     CASE STUDY: MODELING V.76 IN UML

5.1    Step 1 - analysis: create a use case diagram for V.76
      5.1.1    Prepare Tau
      5.1.2    Organize the packages
      5.1.3    Create a use case diagram
5.2    Step 2 - analysis: create class diagrams for V.76
      5.2.1    Create a package
      5.2.2    Create the class diagrams
      5.2.3    Create the interfaces and signals
5.3    Step 3 - analysis: create sequence diagrams for V.76
      5.3.1    Import signal definitions
      5.3.2    Create the sequence diagrams
      5.3.3    Add a class representing the Service Users
5.4    Step 4 - design: create an architecture diagram for V.76
      5.4.1    Create a package
      5.4.2    Create an active class and an architecture diagram
5.5    Step 5 - detailed design: create state machines for V.76
      5.5.1    Create the first state machine diagram
      5.5.2    Create the second state machine diagram
5.6    Step 6 - iteration 1: add parameters to signals
      5.6.1    Add parameters to signal declarations
      5.6.2    Get signal parameter values in variables
5.7    Step 7 - iteration 2: add operations and an array of octets
      5.7.1    Declare the array of octets
      5.7.2    Add two operations
5.8    Step 8 - iteration 3: use choice in signals
      5.8.1    Update signal and variable declarations
      5.8.2    Update the state machines
5.9    Step 9 - iteration 4: add dynamic class instances
      5.9.1    Update constants, signal and class declarations
      5.9.2    Create two new active classes
      5.9.3    Create an architecture diagram in class V76_DLC
      5.9.4    Declare variables in the two new classes
      5.9.5    Build the transitions in the two new state machines
5.10    Step 10 - iteration 5: add save (defer), timer and substate
      5.10.1    Add a defer (save)
      5.10.2    Add a retransmission timer
      5.10.3    Add a composite state
5.11    Step 11 - iteration 6: add transitions inheritance
      5.11.1    Create a subclass of Dispatch
      5.11.2    Add virtual in two super-class transitions
      5.11.3    Redefine the virtual transitions in the subclass
5.12    The resulting UML model of V.76
      5.12.1    The package v76analysis
      5.12.2    The package v76design

CHAPTER 6     CASE STUDY: SIMULATION OF V.76

6.1    Principles
6.2    Step 12: validate against the use cases
      6.2.1    Start the Model Verifier
      6.2.2    Prepare the Model Verifier for Sequence Diagram recording
      6.2.3    Send a signal to the model
      6.2.4    Play and record the use case DLC establishment
      6.2.5    Play the other use cases
      6.2.6    Generate a black box Sequence Diagram
6.3    Step 13: detect a bug in the UML model
      6.3.1    Check the number of retransmissions
      6.3.2    Analyze the bug
      6.3.3    Correct the bug
      6.3.4    Simulate to check the bug correction
6.4    Step 14: detect nonsimulated elements
6.5    Step 15: generate more sequence diagrams
      6.5.1    Simulate two simultaneous connections
      6.5.2    Simulate an attempt to establish too many connections
      6.5.3    Simulate a late Establish Response
6.6    Step 16: regression testing
6.7    Other Model Verifier features
      6.7.1    Setting breakpoints
      6.7.2    Saving the Model Verifier configuration
      6.7.3    Commands history
      6.7.4    Calling external C code
6.8    Errors detectable by simulation
      6.8.1    UML model errors
      6.8.2    UML dynamic errors

CHAPTER 7     CASE STUDY: V.76 CODE GENERATION

7.1    Principles
7.2    Step 17: generate C code for Win32
      7.2.1    Add two service user stubs to the UML model
      7.2.2    Prepare Tau for V.76 code generation
      7.2.3    Generate the code
      7.2.4    Run the code
7.3    Step 18: generate C code for VxWorks
      7.3.1    Presentation of the target
      7.3.2    Install Tornado
      7.3.3    Prepare the UML model for VxWorks code generation
      7.3.4    Prepare Tau for V.76 code generation for VxWorks
      7.3.5    Generate the code
      7.3.6    Run the code

CHAPTER 8     ADDING A CODING AND SEGMENTATION LAYER TO V.76

8.1    Adding encoding and segmentation to the UML model
8.2    Sequence diagrams showing simulation traces of V.76

BIBLIOGRAPHY

INDEX