|
The goal of the current programme in Software Engineering at the MCI is to provide up-to-date knowledge about relevant software engineering concepts in the following areas:
- Embedded systems software architecture: principles of operation and software modeling techniques
- Embedded systems software technology: hardware technology fundamentals and software implementation issues
These areas are currently covered by the basic Software Engineering courses SIS-1, SIS-2 and SIS-3. There is also an advanced course in distributed embedded systems (SIS-4), which can be attended by students in some of the MCI teaching programmes. These courses aim at achieving an appropriate balance between theoretical knowledge and practical experience through course projects and project-based examination.
The Software Engineering courses are strongly influenced by MCI research activities with the ultimate goal of integrating teaching and research. We have been motivated by the following observations:
- With billions of embedded micro-controllers introduced every year, it is becoming obvious that conventional programming styles and techniques are no longer appropriate and a new (truly) engineering approach has to be developed, featuring formal frameworks and component-based design.
- This development must be gradually introduced into the Curriculum, which implies close integration of teaching and research activities.
The outlined approach has been used throughout the Software Engineering courses delivered at the Mads Clausen Institute, whose contents is presented briefly below.
Software Engineering – 1 (SIS-1) [PDF]
SIS-1 presents the theoretical background of modern Embedded Software Engineering. This is a project-based course whose purpose is to develop a systematic approach to software development for embedded real-time applications, using formal (mathematical) models and reusable software components. The course starts with an introduction into micro-controller systems architecture and controller-plant interaction. That is followed by basic modeling and implementation techniques for sequential and continuous control systems - state machines, function blocks and function block diagrams, and finally advanced modeling techniques for complex systems, i.e. hierarchical and concurrent state machines and hybrid models.
Software Engineering – 2 (SIS-2) [PDF]
SIS-2 is an intensive summer course aimed at giving additional (hands-on) experience with embedded systems and software development environments. This course builds on theory delivered during the preceding semester and emphasizes advanced software development methodology, such as model-based software design, model verification and automatic code generation using the IAR VisualSTATE tool.
Software engineering – 3 (SIS-3) [PDF]
SIS-3 addresses theoretical and implementation issues in the context of complex embedded systems composed of multiple concurrently executing software agents. The course starts with an introduction into real-time systems architecture, real-time kernel organization and principles of operation. That is followed by a detailed discussion of key issues, such as task management and scheduling in a hard real-time environment, time management (i.e. timing event generation and processing), external event management, task synchronization and communication. The insight and experience gained during that part of the course is ultimately used to present formal models (frameworks) specifying relevant aspects of complex real-time systems, such as system structure, subsystem/component behaviour and interaction. These models and associated design methods can be used to systematically develop advanced embedded applications, e.g. hierarchical and distributed computer control systems, complex man-machine systems, etc. Several course projects are executed in order to provide hands-on experience and insight into the operation of real-time systems.
Software engineering – 4 (SIS-4) [PDF]
SIS-4 presents the architecture of distributed embedded systems and the related software technology, including some of the latest trends in that area of research and development. It starts with an overview of computer control systems and real-time networks. This is followed by a general discussion of the software architecture and principles of operation of distributed embedded systems. In this context, various types of software framework are introduced, i.e. process-based vs. object-based and object oriented frameworks with static and/or dynamic resource scheduling. Each type of system is further illustrated with a state-of-the-art example, e.g. OSEK/VDX, OSEKtime, SDL, IEC 61499, etc. A course project is executed in order to give the students an insight into the operation of distributed real-time systems, as well as hands-on and teamwork experience.
Course format
SIS1, 3 and 4: Semester courses with lectures, project assignments and laboratory experiments
SIS2: Intensive (3-week) summer course
Evaluation
SIS1: Oral examination based on course projects
SIS2 and 4: Pass/fail examination based on course project
SIS3: Oral examination
Teachers
Professor Christo Angelov
Associate Professor Nicolae Marian
|