Modeling automatic train regulation systems

Similar documents
Ingegneria del Software Corso di Laurea in Informatica per il Management. Introduction to UML

SOFTWARE DESIGN COSC 4353 / Dr. Raj Singh

LABORATORY 1 REVISION

Introduction to Software Engineering. 5. Modeling Objects and Classes

Software Service Engineering

UML EXTENSIONS FOR MODELING REAL-TIME AND EMBEDDED SYSTEMS

Open Work of Two-Hemisphere Model Transformation Definition into UML Class Diagram in the Context of MDA

UML part I. UML part I 1/41

Object-Oriented Analysis Techniques Coad s OOA Technique Short History Terminological Comparison Postscript and Remarks

CSE 308. UML Overview Use Case Diagrams. Reference. Class diagrams. Session 6 UML Intro/Use cases. Robert Kelly, B. Bruegge,

CISC 322 Software Architecture

Unified Modelling Language

Software Development. Modular Design and Algorithm Analysis

Course 3 7 March

CHAPTER 1. Topic: UML Overview. CHAPTER 1: Topic 1. Topic: UML Overview

A Capacity Planning Methodology for Distributed E-Commerce Applications

CSE 308. UML Overview Use Case Diagrams. Reference. en.wikipedia.org/wiki/class_diagram. Robert Kelly, B. Bruegge,

Object-Oriented Theories for Model Driven Architecture

Quality-Driven Architecture Design Method

INTERACTION ARCHITECTURAL MODELING. Lecture 9 Interaction Architectureal Modeling

COSC 3351 Software Design. An Introduction to UML (I)

UNIT 5 - UML STATE DIAGRAMS AND MODELING

ITU-T Y Next generation network evolution phase 1 Overview

Software Development Methodologies

A SYSTEMATIC APPROACH FOR COMPONENT-BASED SOFTWARE DEVELOPMENT

Designing Component-Based Architectures with Rational Rose RealTime

For 100% Result Oriented IGNOU Coaching and Project Training Call CPD TM : ,

Modeling Requirements

Combining UML and Z in a Software Process

Lecture 33 April 4, Unied Modelling Language. ECE155: Engineering Design with Embedded Systems Winter Patrick Lam version 1

Interactions A link message

The UML Extension Mechanisms

Lecture Notes UML UNIT-II. Subject: OOAD Semester: 8TH Course No: CSE-802

Tool Support for Design Inspection: Automatic Generation of Questions

A Role-based Use Case Model for Remote Data Acquisition Systems *

Object-Oriented Software Engineering Practical Software Development using UML and Java

Comparative Analysis of Architectural Views Based on UML

ISO INTERNATIONAL STANDARD

ENTITIES IN THE OBJECT-ORIENTED DESIGN PROCESS MODEL

A PROPOSAL FOR MODELING THE CONTROL SYSTEM FOR THE SPANISH LIGHT SOURCE IN UML

UNIT V *********************************************************************************************

2 nd UML 2 Semantics Symposium: Formal Semantics for UML

CONSTRAINT SPECIFICATIONS USING PATTERNS IN OCL

Chapter 12. UML and Patterns. Copyright 2008 Pearson Addison-Wesley. All rights reserved

UNIT-I Introduction of Object Oriented Modeling

Objectives. UML Extension Mechanisms. What is UML? Is the UML enough? UML Extension Mechanisms. Specifications. By Jasmine Farhad

USE CASE BASED REQUIREMENTS VERIFICATION

Formal Specification of Software Systems

Design and Evolution of an Agent-Based CASE System for OOAD

UML-Based Conceptual Modeling of Pattern-Bases

Introduction to Software Engineering. ECSE-321 Unit 9 Architectural Design Approaches

Enhancing validation with Prototypes out of Requirements Model

Course "Softwaretechnik" Book Chapter 2 Modeling with UML

UNIT-4 Behavioral Diagrams

Chapter 5 System modeling

Business-Driven Software Engineering Lecture 5 Business Process Model and Notation

BPMN Getting Started Guide

Unified Modeling Language (UML)

INTRODUCING A MULTIVIEW SOFTWARE ARCHITECTURE PROCESS BY EXAMPLE Ahmad K heir 1, Hala Naja 1 and Mourad Oussalah 2

UNIT I. 3. Write a short notes on process view of 4+1 architecture. 4. Why is object-oriented approach superior to procedural approach?

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author(s)> <Organization> <Date created>


UML diagrams. Software artifacts include: SRS, SDS, test cases, source code, technical/user manual, software architecture, etc.

UML data models from an ORM perspective: Part 4

NOTES ON OBJECT-ORIENTED MODELING AND DESIGN

Pattern for Structuring UML-Compatible Software Project Repositories

ArchiMate 2.0. Structural Concepts Behavioral Concepts Informational Concepts. Business. Application. Technology

Software Requirements Specification. <Project> for. Version 1.0 approved. Prepared by <author> <organization> <date created>

MODELLING COMPOSITIONS OF MODULAR EMBEDDED SOFTWARE PRODUCT LINES

Approaches of using UML for Embedded System Design

RIGOROUSLY AUTOMATING TRANSFORMATIONS OF UML BEHAVIOR MODELS

Sequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c

UML Fundamental. OutLine. NetFusion Tech. Co., Ltd. Jack Lee. Use-case diagram Class diagram Sequence diagram

Chapter 2 Overview of the Design Methodology

Introduction to Software Engineering. 5. Modeling Objects and Classes

UML Modeling. Sumantra Sarkar. 29 th June CIS 8090 Managing Enterprise Architecture

Administrative Guideline. SMPTE Metadata Registers Maintenance and Publication SMPTE AG 18:2017. Table of Contents

History of object-oriented approaches

Engineering Design w/embedded Systems

UML Modeling I. Instructor: Yongjie Zheng September 3, CS 490MT/5555 Software Methods and Tools

3.0 Object-Oriented Modeling Using UML

Available online at ScienceDirect. Procedia Computer Science 56 (2015 )

Metamodeling. Janos Sztipanovits ISIS, Vanderbilt University

Chapter 3 Research Method

SCOS-2000 Technical Note

Modeling Issues Modeling Enterprises. Modeling

Design of distributed Java application with JEstelle.

Introduction to Unified Modelling Language (UML)

Chapter 10. Object-Oriented Analysis and Modeling Using the UML. McGraw-Hill/Irwin

Oral Questions. Unit-1 Concepts. Oral Question/Assignment/Gate Question with Answer

UML big picture. Perdita Stevens. School of Informatics University of Edinburgh

Best Practices for Model-Based Systems Engineering

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Using the UML to Describe Design Patterns

Proposal of a Supporting Method for Diagrams Generation with the Transformation Rules in UML

1 Introduction. 1.1 Introduction

Unified Modeling Language (UML)

USING BPEL FOR BEHAVIOURAL CONCEPTS IN ODP ENTERPRISE LANGUAGE

Analysis and Design with UML

Object-Oriented Software Engineering Practical Software Development using UML and Java. Chapter 5: Modelling with Classes

Transcription:

Modeling automatic train regulation systems J.K. Tobin Alcatel Canada Inc., Transport Automation Systems, Canada Abstract The increasing complexity of automatic train supervision and regulation systems (ATSIATR) has placed more and more inlportance on the use of modeling to describe and understand system behaviour. Such a model should provide a description suitable for requirement review and approval by the rail operator as well as detailed views for use by designers, implementers and testers. The Unified Modeling Language (UML) is a visual modeling standard that has been adopted by Alcatel to capture ATSJATR models. The choice of a standard notation was motivated by our need to exchange models with various stakeholders; the selection of UML in particular was influenced by its wide adoption in the software industry. We have gained our experience with using the Unified Modeling Language during the development of our latest generation product for train regulation and supervision. During this development we have defined an approach for requirements modeling and selected a useful subset of UML notations for analysis and design capture. UML has proven to be very effective at mapping from the requirements model to the analysis model to the design model and finally to implementation. We have found that this natural correspondence between models has simplified the task of reusing our code base on new projects and we believe it will be beneficial in the areas of maintenance and new feature incorporation. 1 Introduction In 1996, Alcatel Canada started a complete re-engineering of its train regulation and supervision product, the SELNETB Management Centre (SMC). The major goals of this effort included:

S The creation of a framework from which all train regulation and supervision products delivered by Alcatel could be derived (fixed block and moving block automatic train control as well as centralized traffic control), A product that could be easily integrated with third-party solutions (E.G., System Control And Data Acquisition (SCADA) systems) A solution that could support data configuration, and A system that would scale to meet future control system needs. The results of this re-engineering effort have been used in a revenue movingblock system for two years. We are now reusing this technology on three additional moving-block systems as well as a fixed-block system. Besides the code base, important artifacts of this effort are the requirements, analysis and design models. These models are essential to describe the system to railway operators, to implementers and to testers. The maintenance of these models is also vital to the evolution of the new product: as new features are incorporated, these models must be kept consistent to be useful. The decision about how this information was to be captured was of strategic importance. Figure 1 shows the typical components in an automatic train supervision1 regulation system supplied by Alcatel Canada. A SELNETrM Management Centre (SMC) consists of several computers providing different functions connected by a Local Area Network (LAN). Workstations provide operators a user interface to examine system status and issue commands. Gateway computers act as protocol converters to enable communication with other systems (either connected directly to the network or by other interfaces). The main application which provides train routing, tracking and regulation logic is deployed on a computer called the schedule regulation system. Software that provides missioncritical functions is deployed redundantly.... :MC Gateway 1 Gateway 2 D~splay I I I Local Area Nebork (LW) I l I I I l I System 2 Database Database S~gnalliog System (ATP + ATO) Syslm Figure 1 : SELNEFM Management Centre (SMC) block diagram

2 Modeling Overview A model is a simplification of a system. We model systems so that we can better understand what they are supposed to do and how we are able to build them. Software-intensive systems provide a great deal of flexibility in terms of possible features, this adds complexity increasing the need to model. A number of languages, both diagrammatic and textual, have been defined for modeling software-intensive systems such as Specification Description Language (SDL), Booch Notation, Object Modeling Technique (OMT), Z Language, and Entity-Relationship (ER) Modeling. We chose to capture our requirements, analysis and design models using the Unified Modeling Language (UML). It was able to satisfy the following needs: Understandability. We wanted the models to be readable by individuals without mathematical training. Object-orientation. It was important that the design model be easily mapped into our implementation language (C*). Tool support. UML has been widely adopted by tool vendors. The UML is a graphical language for describing software-intensive systems. It is maintained by a consortium called the Object Management Group (OMG) and is currently at revision 1.3 (this can be found in [l]). The OMG is an approved Publicly Available Specification (PAS) submitter to the International Organization for Standardization (ISO) and is submitting UML for international standardization. This paper will only touch on a small subset of the UML. The intent is to provide examples to demonstrate how we were able to apply it to our domain of train control systems. Booch, one of the original specifiers of UML, provides a tutorial on using it in [2]. 3 Requirements Model The capture of requirements was performed using a technique called use case analysis as described in Jacobson [3]. Jacobson defines a use case as "a description of a set of sequences of actions, including variants, that a system performs to yield an observable result of value to an actor." In UML terms, an actor is a role played by a human, a device or another system when interacting with a use case. The functional requirements of the system are documented as a collection of use cases. UML provides a means to organize use cases by defining associations between them. These associations are documented in a use case diagram. Figure 2 shows an example use case diagram. The information contained in this diagram can be summarized by the following assertions: 1) The use case description for performing a "Launch train" involves depot controller interaction. 2) The "Launch train" use case depends upon the behaviour defined in "Regulate to run" and "Validate user command to accomplish its goals. 3) The "Validate user command" use case makes use of the description in "Log system data" to perform its actions.

The use case description for "Log system data" involves an external "Log Database" device. The "Launch train" use case description is extended by "Automatic launch allocation" to provide additional behaviour for systems that have an automated yard..a Regulate to run depot controller Loo Database Figure 2: Train Launch use case diagram Since actors represent entities that are external to the system being modeled, the collection of all use case diagrams establishes the context of the system. Figure 3 shows another use case diagram that serves as the context diagram for an SMC. The UML package notation, drawn as a folder with a tab, is shown in the diagram. The package "SMC" contains all of the use cases of the system. Examples of three types of users are shown: staff supervisor, depot controller and central operator. Even though these roles could be filled by the same person, they are distinguished since the goals of interaction is different. SMC 0 o C > ( 3 0 0 ooooc1 Database A /? system / \ central operator SCADA system Signaling system Figure 3: SMC context diagram UML does not define how use case descriptions are formatted or specified. They may take the form of informal structured text, formal text or even pseu-

docode. Our goal was to make our use case descriptions readable by the user, not just the developers specifying and implementing the system. For this reason, we chose informal text to describe use cases. Table 1 shows an example of our use case format. In the interest of space, the use case has been simplified; however, the example provides a good indication of how our descriptions are structured. Each use case identifies the preconditions required before it can be performed as well as the starting condition. Use case flow descriptions are separated into normal flow and exceptional flows. These descriptions are labeled and may contain nested sub-flow descriptions. Flow nesting is documented by our numbering convention. Enclosing a use case name in square brackets, as shown in the "Allocation" flow, demonstrates our convention for refemng to other use cases. - 1 Title.. 1...l Description - 1.2 Preconditions 1.3 Normal flow 1.3.1 Allocation 1.3.2 Launch 1.3.3 Launch completion 1.4 Exceptional flows 1.4.1 Train failure 1.4.2 Incorrect train type Table 1. Launch train use case Launch train This use case describes how the SMC launches trains into service. A schedule has been selected. This use case starts when the next build up time for a schedule occurs. The SMC displays the launch list for the build up. The launch list specifies train type and run start time. The depot controller assigns a train to each run requiring launch. Each command is validated by [Validate user] before execution. When a train arrives at a disposition point and it has been associated with a run, and the train has been automated, the train is assigned the run which is then handled by [Regulate to run]. When all of the trains in the launch list have been launched, an indication of launch completion is provided. The use case ends. If a train which has been associated with a run for launch fails before it arrives at the disposition point, the depot controller can remove the association and associate another train. If no other train is available, the depot controller may cancel the launch ending the use case. Each command is validated by [Validate user] before execution. The depot controller associates a train of incorrect type with a run. The SMC asks for confirmation. If the depot controller grants permission, the train is associated and will be launched, otherwise the command is ignored.

92 Urbarz Tratzsport arzd the Etnirorzment irz the 21st C mtw~ Table 2 shows an example of a use case that extends another. We have found this is a powerful technique for organizing use cases. Using an extending use case allows the specification of additional or optional behaviour without having to change the original use case. The extension points or flows that are replaced by the extending use case are identified in the use case text. Note that the use case is not complete outside of the context of the use case it extends. Table 2. Automatic launch allocation 2 Title I Automatic launch allocation 2.1 Description I This use case extends [Launch train] to provide for automatic launch allocation. This capability applies 2.1 Preconditions 2.2 Automatic Allocation 2.3 Exceptional flows to svstems that contain automated vards. None. This flow replaces "Allocation". The SMC examines each storage lane for available SMC use cases necessarily include a significant amount of interaction with users. When documenting user interaction we describe the essential purposes of the interaction. Constantine [4] describes such use cases as essential use cases. This approach allows us to keep our use cases from becoming complicated by user interface details. Remaining technology-neutral has the additional benefit of permitting multiple user interface solutions. 4 Analysis Model trains and allocates them to runs in the launch list. The SMC displays the launch list for the build up. None The purpose of analysis is to define how a system behaves without specifying implementation details to avoid constraining the design. In a sense this activity is used to determine the "true" or detailed requirements of the system. The use cases provide a complete description of the system in operational terms. The analysis model provides additional behavioral details as well as documentation of system organization by specifying how model elements relate to each other. The analysis model provides both a structural and behavioral view of the system in terms of problem domain objects. An object is an entity that can accept requests to do something (messages) and maintains the state needed to perform these requests. The model structure describes how objects are associated with each other; the behavioral description shows how they interact. Most of our documentation of these interactions is done with UML sequence diagrams. Sequence diagrams that form a part of the analysis model show interactions of objects representing a particular scenario taken from a use case. Figure 4 shows an example sequence diagram. Objects that participate in the interaction are placed at the top of the diagram on the X axis. Messages that are sent and received are placed along the Y axis with time increasing from top to bottom. Textual anno-

Urbarl T~msport and the En\~ir.oilnzent in the 21st Century 93 tations are provided on the left-hand side of the diagram to provide additional documentation. tiaa opektor I I the scheduled depot I t~~d-dp tlme arnves 1 I entry tune arnves m L '-?jet starf tlrne 1 the schedule determines whlch runs are Involved m the launch 1 a launch 1st 1s ueated l (w~th one run) l I the entry requirements are 1 presented to the depot controller, C L. the depot controller assoclater I assmate t r a 1 n ( 4 2 ~ a traln mth each entry 1 the traln arnves at the entry pomt I the launch lndcates cornpletfon when the tram is g! ven Its run 1 l l I J l entry requlrernents I launch complete1 asslgn run -destroy= Figure 4: Sequence diagram Modeling the organization or structure of a system is done using class diagrams. Class diagrams show model abstractions called classes. A class is a description of a collection of objects that all share the same structure and behaviour. In the sequence diagram we saw an object named "42" that belonged to the class "Train". As such, we would expect this object to behave like all other trains and to associate with other objects like all other trains. Figure 5 shows an example class diagram. It can be summarized by the following statements: 1) A schedule is composed of one or more runs. 2) A run includes an attribute called "start time". 3) A schedule creates a launch list which may be associated with zero or more trains. A launch list will accept an "amval" message. 4) A train may be associated with a run called its assignment. No other train may be associated with the same run. 5) A train is may be associated with a launch list and will accept an "assign run" message. The note box expresses the constraint found in statement 4) using the object constraint language (OCL) which is a part of the UML standard (see [S] for a description of OCL). This is an example of the concision that is possible when using UML. Note that the class diagram falls completely within the domain of analysis and may be read by individuals unfamiliar with software design or implementation. It is constructed solely from the use case; however, important details that are required for design, such as the constraints on associations, have been added.

. 1 ' Run, starttirne creates 0..1 assignment l Figure 5: Class diagram 5 Design Model The design model provides solutions to realize the system behaviour documented in the analysis model. The most strategic aspect of the design model is the software architecture. Software architecture defines how the software is structured into independent elements and how these elements interact. We have taken a component-based approach to our software development: software is partitioned into components, physical units of software, which are accessed solely through published interfaces. UML provides a variety of choices for modeling components as pointed out by Kobryn in [6]. As shown in Figure 6, we decided to use UML subsystems to model our components. Subsystems provide a grouping mechanism (they are packages) and represent a behavioral unit (they can participate in sequence diagrams). In the example, the following is asserted: 1) The component Signaling System Handler has an interface called ITrain. 2) The component Schedule Server has interfaces ISchedule and ILaunchList. 3) The component Train Regulation uses the interfaces ITrain and ISchedule Signalling.. System Handler. F1, <<subsystem>> Train Regulation,- <<subsystem>> Schedule Sewer I Figure 6: System components

We created the design model from the analysis model through a process of adding details to classes and adding additional design classes to support our solution. This process works very naturally since classes are used to represent both analysis abstractions as well as design abstractions. The challenge is to avoid "losing" the analysis model. We did not want to separate the two models since maintaining consistency would become very difficult. We used the UML concept that a diagram is only a view of the underlying model by maintaining separate UML diagrams representing the analysis view as well as the design view. We believe that this practice was the best option available; however, we were unable to avoid some corruption of the analysis model by certain design forces (E.G., the need to split a class across two components). The most detailed level of software design is arguably the code. UML classes correspond to native features in object-oriented languages such as C++, our implementation language. Through tool use we are able to maintain consistency between our code and design model. 6 Conclusion The decision to use a modeling language that naturally supports the transitions between requirements, analysis and design models and ultimately to code has proven effective for the development and reuse of a modem train supervision and regulation system. We have been able to involve rail operators in the review of UML requirements and analysis models. Our software architecture and design is well documented using UML. The close correspondence between UML model elements and implementation constructs has ensured design and code consistency. Using UML will not ensure good requirements are written or flexible software designs are created; however, it does provide a common syntax for their description. We would like to see its continued adoption in the area of rail transport for the exchange of such information. 7 References [l] UML Revision Task Force. OMG Unified Modeling Language Specification, v. 1.3. document ad199-06-08, Object Management Group, June 1999. [2] Booch, G., Rumbaugh, J. & Jacobson, I. The Unified Modeling Language User Guide, Addison-Wesley: Reading Massachusetts, 1999. [3] Jacobson, I. Object-Oriented Software Engineering : A Use Case Driven Approach, Addison-Wesley: Reading Massachusetts, 1994. [4] Constantine, L. Usage-Centered Design and the Unified Process. Proceedings of UML World 1999, pp. 495-505, 1999. [5] Warmer, J. & Kleppe, A. The Object Constraint Language: Precise Modeling with UML, Addison-Wesley: Reading Massachusetts, 1999. [6] Kobryn, C. Modeling components using UML. Communications of the ACM, 43(10), pp. 31-38,2000.