140 likes | 252 Views
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. Problem Description. A Train Management System (TMS) is to be developed.
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.