WEST VIRGINIA UNIVERSITY
COLLEGE OF ENGINEERING
DEPARTMENT OF ELECTRICAL & COMPUTER ENGINEERING
CLASS GUIDELINES
CpE 291A
Real-Time Software Engineering
Spring 97
Instructor: Dr. Hany Ammar
email: ammar@cemr.wvu.edu
Office: 833 ESB
Phone: 293-6371 ex. 514
Prerequisites: CS 15 and CS 16 or familiarity with C or Ada programming languages.
Text: Software Engineering: A Practitioner's Approach, by Roger Pressman, Fourth Edition, McGraw-Hill, 1996.
References:
- Class Notes
- 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.
- Software Engineering, by I. Sommerville, Addison-Wesley, 1989, 3rd Ed.
- Structured Development for Real-Time Systems, by Ward and Mellor, Yourdon Press, 1986, 3 volumes.
- Object-Oriented Design With Applications, by G. Booch, Benjamin Cummings, 1991.
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 and the object-oriented techniques. Detailed design and implementation details using the ADA programming language are then addressed followed by a detailed coverage of verification and validation techniques and tools.
A computer-aided software engineering (CASE) tool is used throughout the course. A term project and a set of simple homework assignments are used to assess the students learning process. The term project is to be done in teams of 2 to 3 students and it starts very early in the semester during the second or third week and lasts till the finals week. The homework assignments are the responsibility of each student.
Goals: The desired outcomes of this course are listed as follows:
The student should be able to:
- 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.
- Use a CASE tool to:
- Correctly analyze the software requirements of a specific system and develop a specification based on structured analysis or object-oriented analysis.
- Develop and verify a high level design according to the specification obtained in the previous step.
- Develop a detailed design using Ada Structured Graphs (ASGs) and provide an implementation based on reusable Ada packages.
- Specify the key differences between the structured and object-oriented approaches for software analysis and design.
- 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.
- Identify tasks and techniques used for software verification and validation at the early stages of the software life-cycle.
Topics:...........................................................................................................................................# of Weeks
- Introduction to Real-Time Systems............................................................................................1/2
- Introduction to Software Engineering and the Software Life Cycle...........................................1
- System and Software Requirements Analysis:
- Structured Analysis..............................................................................................................2
- Object-Oriented Analysis..................................................................................................... 1
- Project: Requirements Analysis Review......................................................................................1
- High Level Design:
- Structured Design.................................................................................................................2
- Object-Oriented Design.......................................................................................................2
- Project: High-level Design Review.............................................................................................1
- Detailed Design...........................................................................................................................3
- Real-Time Software Design
- Concurrent Programming
- Task Priorities
- Resource Scheduling
- Verification and Validation of Real-Time Software...................................................................2
- Project: Detailed Design and Testing Review............................................................................1
Computer Usage: Students will be required to use a Computer-Aided Software Engineering package running on the SUN UNIX workstations.
Grading:
- Homework and in class Exercises ..................................15%
- Final Examination..........................................................25%
- Project.........................................................................60%
The project will be conducted by groups of 2 or 3 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. The contribution of each student must be documented in each report. The grading of the project will be distributed as follows:
Project:...................................................................................................................Report deadline
- Analysis...........................................................................15%..................................Feb. 10
- Design..............................................................................15%..................................Mar. 17
- Detailed Design & Coding...............................................15%.................................April 14
- Testing, Verification, and
Project Final Report..............................................................................15%.................................April 25