Upload
nicholas-fowler
View
220
Download
4
Tags:
Embed Size (px)
Citation preview
Ada, Model Ada, Model Railroading, and Railroading, and
Software Engineering Software Engineering EducationEducation
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 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
0
20
40
60
80
100
1 2 3 4 5 6
Year
Percent
Groups Completing Project Code Supplied
Ada, Model Railroading, and Software Engineering Education
9
Projects in Ada
0
20
40
60
80
100
1 2 3 4 5 6 7
Year
Percent
Groups Completing Project Code Supplied
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 SponsorsCorporate Sponsors
Maytag