Reliable and Concurrent Software
Keywords |
Classification |
Keyword |
OFICIAL |
Automation, Control & Manufacturing Syst. |
Instance: 2010/2011 - 2S
Cycles of Study/Courses
Acronym |
No. of Students |
Study Plan |
Curricular Years |
Credits UCN |
Credits ECTS |
Contact hours |
Total Time |
PDEEC |
5 |
Syllabus since 2007/08 |
1 |
- |
7,5 |
70 |
200 |
Teaching language
English
Objectives
Software in increasingly the most complex component of any real-time embedded system. Therefore, its correct behavior is of paramount importance, both in terms of functional and non-funtional behavior and correctness related to specification. Embedded real-time software is also inherently concurrent. Real-time embedded applications interact and interface with the external world (people, cars, robots, conveyor belts, planes, etc.) in situations that are inherently parallel. Simultaneously, embedded platforms are following the general mulitcore and multiprocessor trend. Dealing with the nature of the system and the architecture of the platform in the semantics of the program makes for a more readable, maintainable and reliable application.
Nevertheless, concurrency and parallelism bring a number of new problems, and challenges. Guaranteeing the correct specification and behavior of concurrent/parallel software needs the integration of several aspects in its development, from the software development process, to the tools (languanges, operating systems, compilers, …) used for its development.
This course will therefore present selected topics for the correct development of concurrent and parallel software. Upon completion of this course, students should be able to understand and apply processes, methods, and tools to implement software solutions to parallel, real-time embedded systems’ problems.
Program
Software Reliability
Basic Concepts and Taxonomy (Dependability, reliability, fault tolerance, ...)
Development of Safety-Critical Software (Hazard and risk analysis, relevant standards)
Methods of obtaining dependable software (Prevention and Fault Tolerance)
Methods of verifying and validating software dependability
Concurrency
Concurrent programming: limitations of common models
Specific/appropriate languages for real-time and embedded systems (Java, Ada, Erlang, ...)
Restricting concurrency
Multiprocessor concurrency issues
Teaching methods and learning activities
The course will be essentially based on lecturing plus potentially invited seminar(s) in particular topic(s). The lectures will follow an interactive style.
Evaluation Type
Distributed evaluation without final exam
Assessment Components
Description |
Type |
Time (hours) |
Weight (%) |
End date |
Attendance (estimated) |
Participação presencial |
39,00 |
|
|
|
Total: |
- |
0,00 |
|
Examinations or Special Assignments
The students will be required to complete three seminars, where they will each discuss a selected paper.