ITI8520 Real-time software engineering
NB! New content starting from Spring 2017.
The course gives an introduction to the specifics and requirements on the development process of safety critical systems. Provides an overview of the relevant standards and practices based on examples from avionic, space and automotive domains. Demonstrates a model based development process, means for software verification in the different phases of development and automation of routine manual tasks.
The learning environment for the course will be available in ained.ttu.ee
Course description in ÕIS will be updated to be in sync with the current page in Spring 2017.
Learning outcomes
After the successful completion of the course the student:
- has an overview of the requirements on the development of safety critical software
- knows the main principles of the avionic (DO-178C), space (ECSS-E-40, ECSS-Q-80) and automotive (ISO 26262) software development standards
- knows the advantages and limitations of model based development
- can write requirements and tests conforming to the DO-178C guidelines, perform coverage analysis of requirements, code and tests
- has performed a coursework involving writing requirements for a real-time system, creating the software design as a model, automatic code generation from the models, verification of the requirements and the implementation of the system
Brief description
The course focuses on the development of safety critical systems with an emphasis on using models and verification. The following topics will be covered:
- Specifics of real-time systems and software engineering for real-time systems
- An overview of system development life cycle models and their applicability in development of real-time systems
- Model-based software development process based on the MDA (Model Driven Architecture) approach
- Real-time extensions of UML and the MARTE profile
- Means for preventing coding errors with examples from Ada and C programming languages
- An overview of the DO-178C guideline, traceability
- High and low-level requirements, architectural requirements, cross-referencing
- Expressing requirements and design as models (UML, Simulink, AADL, MARTE)
- Relating requirements and program code, formal contracts (SPARK)
- Testing, measuring test coverage
Grading criteria
During the course the students will specify requirements of a real-time system, design models conforming to these requirements, generate software code from the models, deploy and test the system on the Raspberry-Pi platform. The final grade of the course is the calculated average of the final exam and a written test performed in the middle of the semster. Completion of the practical coursework is a prerequisite for the final exam. A good coursework can give bonus points.