WEST VIRGINIA UNIVERSITY

COLLEGE OF ENGINEERING

DEPARTMENT OF COMPUTER SCIENCE & ELECTRICAL ENGINEERING

CLASS GUIDELINES
CPE484
Real-Time Systems/Adv. Real-Time Systems
Spring 2004
Instructor: Dr. Hany Ammar
email: hammar@wvu.edu, Office: 739 ESB, Phone: 293-0405 (ext. 2514)

Prerequisites: CS 110 and CS 111 and familiarity with C and C++ programming languages (Object-Oriented Programming is required for CPE 685).

  Recommended Text:Real-Time Software Systems:An Introduction to Structured and Object-Oriented Design, by J. E. Cooling,

  PWS Publishing (1997),

  ISBN-10: 1850322740,ISBN-13: 978-1850322740

References:

  • Software Specification and Design, A Disciplined Approach for Real-Time Systems by Shumate and Kelly, Wiley, 1992.
  • Designing Large Real-Time Systems With Ada, by Nielson and Shumate, McGraw-Hill, 1988.
  • Real-Time Systems and Their Programming Languages, by Burns & Wellings, Addison-Wesley, 1989.
  • Structured Development for Real-Time Systems, by Ward and Mellor, Yourdon Press, 1986, 3 volumes.

Course Description: This is a project-based course focused on software development with an emphasis on analysis and design of software for real-time systems. The course starts by defining real-time systems and describing their characteristics and unique attributes. The software life-cycle phases are then described in the context of the Mil-STD-498 software development standard. The analysis and high-level design phases of development are then covered by describing both the structured analysis and design techniques in detail and the object-oriented technique briefly. Detailed design and implementation using C or C++ are then addressed followed by a coverage of testing, verification and validation techniques and tools.
A computer-aided software engineering (CASE) tool is used throughout the project. A term project, in-class exercises, and a mid-term examination are used to assess the students learning process. The term project is to be done in teams of 3 or 4 students and it starts very early in the semester during the second or third week. In-class Project Presentations and reviews will be conducted according to the schedule given below.

 

Goals: The learning outcomes of this course are listed as follows:
The student should be able to:

1.     Specify the characteristics of real-time software and identify unique attributes and problems related to the software development for real-time systems using specific examples.

2.     Use a CASE tool to:

o        Correctly analyze the software requirements of a complex real-time system and develop a specification based on Structured Analysis for Real-Time systems (SART) 

o        Develop and verify a high level design according to the specification obtained in the previous step.

o        Develop a detailed design and implementation using C or C++ .

3.     Develop a detailed design and implement and test using scenario-based testing a component of a complex real-time system design

If time permits, the students will be able to

4.     Identify techniques used in the analysis and prediction of the timing behavior of a system based on detailed design. Specify examples of using such techniques for assessing design tradeoffs and troubleshooting the system timing behavior.

5.     Identify tasks and techniques used for software verification and validation at the early stages of the software life-cycle.

 

Topics:.(Notes and Lecture Slides)                        # of Weeks

  • Introduction to Real-Time Systems

 Notes: Chapter 1  (pdf file).....

(Lecture Slides 1)..                                     1

  • Introduction to Software Engineering and the Software Life Cycle

Notes: Chapter 2 (pdf file).                                                                                                     1

 Lecture Slides 2 on system and software engineering development process

Lecture Slides 3 on Software development standards, and ICASE environments

·      Project Requirements

Lecture Slides.4., The SRS document, and SART Notation                  2

·                    Project Requirements Analysis Review

·                    High-level Design                                                                                                                                       2

Structured Design 1,  Structured design 2

  • Project: High-level Design Review.............................................................................................2
  • Detailed Design, Implementation, and Testing...........................................................................................................................           1
  • Project: Detailed Design and Testing Review............................................................................         1

Computer Usage: Students will be required to use Computer-Aided Software Engineering packages running on the workstations in the Computer Labs in ESB 813 or 756.

Grading:

  • Homework and Exercises ...................................5%
  • Mid-Term Exam..................................................30%, tentative date: Thursday April 15, 7:00 to 9:00 pm, in G39.

Project:.............................................................................................................................................Deadline

  • Analysis...........................................................................25%.............................Feb 24  (See Schedule)
  • Design..............................................................................20%.............................April 6 (see Schedule)
  • Detailed Design & Coding.............................................................................................…………………
  • Testing & Verification...................................................….15%                        April 26 (see schedule)
  • Project Final Report........................................................5%.................................April 30

The project will be conducted by groups of 3 or 4 students. Reports on projects will be required from each group after each phase. The final report should summarize the whole project and show the testing results, and give a section on problems encountered and lessons learned during the software development process. It is expected that students will participate equally in the work of the group. Group meetings minutes specifying the attendees should be included, and the contribution of each student must be documented in each report.