Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa
Ada, Model Railroading, and Software Engineering Education 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 416 Real-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 416 Real-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? –Lets 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 Laboratory Assignments 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 go from 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