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

Slides:



Advertisements
Similar presentations
TWO STEP EQUATIONS 1. SOLVE FOR X 2. DO THE ADDITION STEP FIRST
Advertisements

Chapter 7 System Models.
Requirements Engineering Process
Software Re-engineering
By D. Fisher Geometric Transformations. Reflection, Rotation, or Translation 1.
ASYCUDA Overview … a summary of the objectives of ASYCUDA implementation projects and features of the software for the Customs computer system.
By Rick Clements Software Testing 101 By Rick Clements
Business Transaction Management Software for Application Coordination 1 Business Processes and Coordination.
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
Jeopardy Q 1 Q 6 Q 11 Q 16 Q 21 Q 2 Q 7 Q 12 Q 17 Q 22 Q 3 Q 8 Q 13
0 - 0.
ALGEBRAIC EXPRESSIONS
DIVIDING INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
MULTIPLYING MONOMIALS TIMES POLYNOMIALS (DISTRIBUTIVE PROPERTY)
ADDING INTEGERS 1. POS. + POS. = POS. 2. NEG. + NEG. = NEG. 3. POS. + NEG. OR NEG. + POS. SUBTRACT TAKE SIGN OF BIGGER ABSOLUTE VALUE.
SUBTRACTING INTEGERS 1. CHANGE THE SUBTRACTION SIGN TO ADDITION
MULT. INTEGERS 1. IF THE SIGNS ARE THE SAME THE ANSWER IS POSITIVE 2. IF THE SIGNS ARE DIFFERENT THE ANSWER IS NEGATIVE.
Addition Facts
Limitations of the relational model 1. 2 Overview application areas for which the relational model is inadequate - reasons drawbacks of relational DBMSs.
Modern Systems Analyst and as a Project Manager
Technical System Options
1 9 Moving to Design Lecture Analysis Objectives to Design Objectives Figure 9-2.
Making the System Operational
Skills for Life Support Programme T: F: E: W: The Skills for Life.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 14 Slide 1 Object-oriented Design 1.
Computer Literacy BASICS
Just Add Wheels: Leveraging Commodity Laptop Hardware for Robotics Education Jonathan Kelly, Jonathan Binney, Arvind Pereira, Omair Khan and Gaurav S.
Real Time Versions of Linux Operating System Present by Tr n Duy Th nh Quách Phát Tài 1.
Electric Bus Management System
Configuration management
Software change management
Software Engineering - Specifications 1 Specifications Specification document must be clear, complete and correct.
A presentation by Werardt Systemss P Ltd An Online Machine Monitoring System.
Effectively applying ISO9001:2000 clauses 6 and 7.
CESG, Fall 2011, 5 th November 2011 Stuart Fowell, SciSys Device Virtualisation and Electronic Data Sheets.
(c) 2007 Mauro Pezzè & Michal Young Ch 17, slide 1 Test Execution.
Eiffel: Analysis, Design and Programming Bertrand Meyer (Nadia Polikarpova) Chair of Software Engineering.
INTRODUCTION TO SIMULATION WITH OMNET++ José Daniel García Sánchez ARCOS Group – University Carlos III of Madrid.
Describing Complex Products as Configurations using APL Arrays.
By Waqas Over the many years the people have studied software-development approaches to figure out which approaches are quickest, cheapest, most.
© S Haughton more than 3?
Generalizable Element Namespace Model Element name visibility isSpecification Classifier isRoot Constraint Body Use Cases CS/SWE 421 Introduction to Software.
Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
Twenty Questions Subject: Twenty Questions
Lecture 1: Software Engineering: Introduction
Problem Solving and Algorithm Design
SEPICS PROGRAM PART 2 Implementation of an emotional detection module. 1.
Lets play bingo!!. Calculate: MEAN Calculate: MEDIAN
Lecture 8: Testing, Verification and Validation
Lecture 5: Requirements Engineering
Chapter 11 Software Evolution
This, that, these, those Number your paper from 1-10.
Why Take EXPLORE? EXPLORE shows your strengths and weaknesses in English, mathematics, reading, and science. EXPLORE helps you search for careers and.
Addition 1’s to 20.
25 seconds left…...
Test B, 100 Subtraction Facts
©Ian Sommerville 1995/2000 (Modified by Spiros Mancoridis 1999) Software Engineering, 6th edition. Chapters 1,3 Slide 1 Software Engineering Software Engineering.
Week 1.
Silberschatz, Galvin and Gagne ©2009 Operating System Concepts – 8 th Edition, Chapter 14: Protection.
Improving the way we learn
Remote - DSP Lab for Distance Education
NSF/TCPP Early Adopter Experience at Jackson State University Computer Science Department.
15 th Conference on Software Engineering Education and Training Foundation Software Engineering Practices for Capstone Projects and Beyond Annegret Goold.
System Implementation. System Implementation and Seven major activities Coding Testing Installation Documentation Training Support Purpose To convert.
Systems Analysis And Design © Systems Analysis And Design © V. Rajaraman MODULE 14 CASE TOOLS Learning Units 14.1 CASE tools and their importance 14.2.
CMSC 345 Fall 2000 Unit Testing. The testing process.
Level 2 Unit 3 Engineering Applications of Computers Engineering Diploma Level 2 Unit 3 Engineering Applications of Computers An Approach to Unit Delivery.
Guiding Principles. Goals First we must agree on the goals. Several (non-exclusive) choices – Want every CS major to be educated in performance including.
Level 2 Unit 3 Engineering Applications of Computers Engineering Diploma Level 2 Unit 3 Engineering Applications of Computers An Approach to Unit Delivery.
Presentation transcript:

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