Date post: | 27-Mar-2015 |
Category: |
Documents |
Upload: | nicholas-fowler |
View: | 217 times |
Download: | 4 times |
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