1 / 14

CS517 Final Project

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.

Download Presentation

CS517 Final Project

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. CS517 Final Project  Train Monitoring and Control System Devon Raehal, Brock Wilcox, Yuen Lee

  2. Our Group • Devon Raehal – Colorado • Brock Wilcox – Washington D.C. • Yuen Lee - Florida

  3. PROBLEM DESCRIPTION

  4. 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

  5. MAJOR MODELS

  6. UML Domain Diagram

  7. UML Impl Diagram

  8. USE Case Highlights

  9. 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

  10. 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

  11. MAJOR EXPERIENCES

  12. 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.

  13. CONCLUSION

  14. Conclusions

More Related