140 likes | 256 Vues
This project focuses on creating a comprehensive Train Management System (TMS) that comprises two key subsystems: the Train Monitoring and Control Subsystem (TMCS) and the Train Schedule Inquiry Subsystem (TSIS). The TMCS will track train movements and manage traffic signals, while the TSIS allows passengers to access information regarding train schedules and prices. Overcoming challenges related to collaboration, time zones, and project ambiguities, our team gained valuable insights into UML, OCL, and model checking methodologies.
E N D
CS517 Final Project Train Monitoring and Control System Devon Raehal, Brock Wilcox, Yuen Lee
Our Group • Devon Raehal – Colorado • Brock Wilcox – Washington D.C. • Yuen Lee - Florida
Problem Description • A Train Management System (TMS) is to be developed. • The system consists of two major subsystems: • A Train Monitoring and Control Subsystem (TMCS) • A Train Schedule Inquiry Subsystem (TSIS). • The TMCS is responsible for • tracking trains • controlling the traffic signals • The TMCS does not directly control the trains • The TSIS is used by passengers to query the system about • train schedules • prices • the current locations of trains
OCL Highlights abstract class Segment operations -- This will call out the the subclass prevSegments prevSegments(): Set(Segment) = if oclIsTypeOf(RouteSegment) then self.oclAsType(RouteSegment).prevSegments() else self.oclAsType(Platform).prevSegments() endif -- Next segments can be calculated from previous segments nextSegments(): Set(Segment) = Segment.allInstances ->select( s | s.prevSegments()->includes(self) )->asSet
OCL Highlights $ ./runtests.pl ok 1 - tests/00_basic_invariants_pass.cmd ok 2 - tests/01_train_pass.cmd ok 3 - tests/02_train_notred_fail.cmd ok 4 - tests/03_train_move_pass.cmd ok 5 - tests/04_train_move_skip_fail.cmd ok 6 - tests/05_multiroute_basic_pass.cmd ok 7 - tests/06_multiroute_1train_pass.cmd ok 8 - tests/07_multiroute_2train_fail.cmd ok 9 - tests/08_multiroute_2train_pass.cmd ok 10 - tests/09_train_location_query_pass.cmd ok 11 - tests/10_fares_pass.cmd 1..11
Experiences • Work out ambiguities early • This did not prove as easy as we thought. • We did the requirements breakdown • We had a big 12th hour “argument” about what it meant to be a Route vs. a Section. • Team Work over time zones was a challenge • At Midnight for Devon it was 2AM for Yuen and Brock. • The team had to devise ways to collaborate. • used git via bitbucket.org. (Private repos for free) • Google Chat • Google hangout for voice and video • Better understanding of the class subjects of UML, OCL and model checking.