20
Ada, Model Ada, Model Railroading, and Railroading, and Software Software Engineering Engineering Education Education John W. McCormick University of Northern Iowa

Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

Embed Size (px)

Citation preview

Page 1: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

Ada, Model Ada, Model Railroading, and Railroading, and

Software Engineering Software Engineering EducationEducation

John W. McCormick

University of Northern Iowa

Page 2: 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

Page 3: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 4: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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.

Page 5: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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.

Page 6: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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.

Page 7: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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!

Page 8: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 9: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 10: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 11: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 12: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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!

Page 13: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

Ada, Model Railroading, and Software Engineering Education

13

Laboratory Assignments

Code for learning Ada features

• Basic language features

• Packages

• Tasking

• Generics

• Exceptions

Page 14: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 15: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 16: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 17: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

Ada, Model Railroading, and Software Engineering Education

17

Popular Project Themes

• Races

• Train wars

• Scheduling (usually combined with project in the AI class)

Page 18: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

Ada, Model Railroading, and Software Engineering Education

18

Where do we gofrom here?

Page 19: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

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

Page 20: Ada, Model Railroading, and Software Engineering Education John W. McCormick University of Northern Iowa

Ada, Model Railroading, and Software Engineering Education

20

Corporate SponsorsCorporate Sponsors

Maytag