1 / 20

Real-Time Systems Education with Ada, Model Railroading & Software Engineering

Explore the intersection of Ada programming, model railroading, and software engineering in a hands-on course that blends theory with practical skills. Learn to design and implement real-time embedded software while working on engaging projects with physical systems. Discover why Ada excels where C falls short, and gain valuable experience through laboratory assignments and capstone projects.

gallen
Download Presentation

Real-Time Systems Education with Ada, Model Railroading & Software Engineering

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. Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

  2. Computer Controlled Systems Study Option • For students interested in the specification, design, and implementation of real-time embedded software. • Core courses from the ACM curriculum. • Additional courses in • Continuous mathematics • Physics • Electronics Ada, Model Railroading, and Software Engineering Education

  3. CSC 416Real-Time Systems • A capstone course. • To perform well students must integrate knowledge from: • Computer Science • Physics / Electronics • English • Mathematics Ada, Model Railroading, and Software Engineering Education

  4. CSC 416Real-Time Systems • Students are exposed to fundamental scientific issues in real-time computing and practical skills of software development. • Goal is to train software engineers capable of working as part of a development team. • Many topics covered at a survey level. Ada, Model Railroading, and Software Engineering Education

  5. The Laboratory A major problem with teaching real-time embedded software engineering is finding suitable equipment for assignments and projects. Ada, Model Railroading, and Software Engineering Education

  6. The Laboratory • Simulators • Do not provide many of the frustrating problems associated with actual physical systems • Lack of experience with real systems is one reason cited by those who would exclude computer science graduates from development teams. Ada, Model Railroading, and Software Engineering Education

  7. The Laboratory • The problem now becomes finding a physical system for students to control • In 1984 I began using a large model railroad in my course. • Why a model railroad? • Let’s look at some pictures! Ada, Model Railroading, and Software Engineering Education

  8. Projects in C Ada, Model Railroading, and Software Engineering Education

  9. Projects in Ada Ada, Model Railroading, and Software Engineering Education

  10. Why does Ada succeed where C fails? • Modeling of scalar quantities • Strong typing • Range checking • Enumeration types • Parameter modes • Named parameter association Ada, Model Railroading, and Software Engineering Education

  11. Why does Ada succeed where C fails? • Arrays whose indices do not begin at zero • Representation clauses for modeling device registers • Record types • Enumeration types Ada, Model Railroading, and Software Engineering Education

  12. Why does Ada succeed where C fails? • High level of abstraction for tasking. • Ada students use rendezvous • C students used semaphores • Exception handling • Encapsulation • Package specifications and bodies • Compilation model • Obsolete units are detected! • No make files! Ada, Model Railroading, and Software Engineering Education

  13. Laboratory Assignments Code for learning Ada features • Basic language features • Packages • Tasking • Generics • Exceptions Ada, Model Railroading, and Software Engineering Education

  14. LaboratoryAssignments Code for the course project • Polling and interrupt based device drivers • Implementation of whistle class • Implementation of turnout class • Electro-mechanical devices which sometimes fail to move correctly • Code must detect and attempt to correct the problem • Code derived from a state machine model Ada, Model Railroading, and Software Engineering Education

  15. Project Specification & Design Deliverables • System concept document • Detailed user manual • Rumbaugh OMT documents • Object model diagrams • Dynamic model diagrams • Functional model diagrams • Data dictionary • Package specifications • Package test plans Ada, Model Railroading, and Software Engineering Education

  16. Minimum Project Requirements • Multiple trains • At least one train controlled by a human engineer • No collisions • Detect and recover from hardware failures • Turnouts • Sensors • Lost cars • Devious professors Ada, Model Railroading, and Software Engineering Education

  17. Popular Project Themes • Races • Train wars • Scheduling (usually combined with project in the AI class) Ada, Model Railroading, and Software Engineering Education

  18. Where do we gofrom here? Ada, Model Railroading, and Software Engineering Education

  19. Over 50 Schools have inquired about duplicating the laboratory Only about 3 schools have actually built a model railroad Commercial interface boards too expensive Too much time or expertise required to build electronics in house My Solution Design and manufacture inexpensive plug-n-play model railroad interfaces Ada, Model Railroading, and Software Engineering Education

  20. Corporate Sponsors Maytag Ada, Model Railroading, and Software Engineering Education

More Related