K-INFO
HU
EN
Login

Software Technology for Embedded Systems

Szoftvertechnológia
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Szoftvertechnológia
Software Technology for Embedded Systems
Subject code BMEVIMIM150
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 2 1 0
type (linked/independent) derived course
Assessment type vizsga
Credits 4
Subject coordinator
DR. Kovácsházy Tamás
position: egyetemi docens
Responsible department
Mesterséges Intelligencia és Rendszertervezés Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website http://www.mit.bme.hu/oktatas/targyak/vimim150/
Primary curriculum type
Direct prerequisites – Strong prerequisite none
Direct prerequisites – Weak prerequisite none
Direct prerequisites – Parallel prerequisite none
Direct prerequisites – Milestone prerequisite none
Direct prerequisites – Exclusion none

Objectives

Programme

1. The complexity of software (1 hour theory/lecture):

Aims: The introduction of the complexity of software, its reasons and consequences.

The reasons of software systems’ complexity, and the related difficulties in the software development process. Tools proposed to handle the difficulties.

2. Programming paradigms (2 hours theory/lecture):

Aims: Presenting the differences between procedural and declarative programming.

The evolution of software technology and programming languages, the comparison of procedural and declarative programming.

3. Software architectures of embedded systems (3 hours theory/lecture):

Aims: Introduction and evaluation of the representative embedded software architectures, and the conditions and consequences of their application.

The introduction and evaluation of the representative embedded software architectures. Application of embedded operating systems, the advantages and limitations of them. Low level, procedural, and object-oriented software development for embedded systems.

4. Parallel, event-driven, and time-driven programming (8 hours theory/lectures + 4 hour practice):

Aims: Introduction to parallel, event-driven, and time-driven programming.

An introduction to the fundamentals and basic concepts of parallel, event-driven, and time-driven programming. Concurrent and real-time schedulers, time-driven architectures. The concepts of processes and threads. Resource management, shared resources. The solutions to mutual exclusion, synchronization, and communication in concurrent systems. Reentrant functions, blocking and non-blocking (asynchronous) function calls. Architectural patterns of parallel embedded software.

5. Model driven software development (8 hours theory/lecture + 4 hour practice):

Aims: Introduction to the fundamentals of model driven software development.

The role of modeling in the software development process, the model driven approach, and an introduction to the related terminology. Introduction to UML from the point of view of modeling embedded systems, with special attention to class diagram, state diagram, and sequence diagram. UML profiles, description of requirements, and modeling of resources. Domain-specific languages presented through examples. The model driven architecture (MDA). Generating code from models, implementation patterns for code synthesis from state diagrams. The SysML language and its role in the development of embedded systems.

6. Databases in embedded systems (2 hours theory/lecture):

Aims: Introduction to the application of relational and object oriented databases in embedded systems.

Application possibilities of relational and object oriented databases in embedded systems.

7. Declarative systems (1 hour theory/lecture):

Aims: Introduction to declarative systems.

The fundamentals and architecture of declarative systems. Production systems and search strategies.

8. 4GL development systems (2 hours theory/lecture + 1 hour practice):

Aims: Introduction to 4GL development systems.

The characteristics of 4GL development systems, the typical architecture of the applications developed in them, and the available components. The relation of model driven and 4GL approaches. NI Labview as an example of 4GL development systems.

This subject deals with the modern methods and technologies applied during the development of embedded software. The subject assumes the possession of basic software development background from the students, such as C language programming and object-oriented programming. The subject aims to extend this fundamental knowledge with the specific knowledge and skills required to develop embedded software, and prepares the students for a systematic software development. Therefore, it introduces the reasons and consequences of software complexity, which is the principal cause of problems observed in software development. Afterwards, it presents the methods and technologies that make possible to develop high-quality embedded software. The discussed modern methods and technologies include, among others, design patterns, parallel programming, event-driven and time-driven programming, specific software architectures, object-oriented software development, model-driven software development, embedded databases, declarative systems, and 4GL development environments. The students successfully fulfilling the requirements of the subject are expected to: (1) be aware of the reasons and consequences of software complexity, (2) comprehend the major programming paradigms, their evolution and typical application environments, (3) know the representative embedded software architectures, and the conditions and consequences of their application, (4) apprehend the terminology and tools of parallel, event-driven and time-driven programming, and be able to apply this knowledge in embedded systems, (5) understand the model-driven software development methodology, the UML and SysML languages, and know the possibilities of their application in the field of embedded systems, (6) use database technologies in embedded systems on the application level, (7) be aware of the basic features of declarative systems, and their architectures, (8) know the characteristics of 4GL development systems, the typical architecture of the applications developed in them, and the available components.

Learning outcomes

Ez a tantárgy a KKK rendeletben meghatározott, következő kompetenciák fejlesztését szolgálja:

Knowledge

No learning outcomes recorded.

Skills

No learning outcomes recorded.

Attitudes

No learning outcomes recorded.

Autonomy and responsibility

No learning outcomes recorded.

Oktatási módszertan

Lecture and practice

Tanulástámogató anyagok

Online források
[1] David E. Simon , An Embedded; Software Primer, Addison-Wesley, 1999.; [2] Bruce Powel Douglass, Real; Time UML: Advances in the UML for Real-Time Systems (3rd Edition),; Addison-Wesley, 2004.; [3] Bruce Powel Douglass,; Real-Time Design Patterns: Robust Scalable Architecture for Real-Time Systems,; Addison-Wesley, 2002.; [4] Miro Samek , Practical; Statecharts in C/C++: Quantum Programming for Embedded Systems, CMP Books, 2002.

Recommended preliminary knowledge for completing the subject

Knowledge type competencies
(azon előzetes ismeretek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
The subject is built upon the following BSc subjects: · Informatics 1, (VIIIA202), operating systems related topics · Basics of Programming 1, (VIHIA106), programming the C language · Basics of Programming 2, (VIAUA116), object-oriented programming The subject is built upon the following topics introduced in the Major: · -
Skill type competencies
(azon előzetes képességek és készségek összessége, amelyek megléte nem kötelező, de a tantárgy eredményes teljesítését nagyban elősegíti)
nincs
Recommended (non-compulsory) preliminary competencies
(azon ajánlott (nem kötelező) előzetesen megszerzendő kompetenciák összessége, amelyek jelentősen hozzájárulnak a tantárgy eredményes teljesítéséhez)
The subject is built upon the following BSc subjects: · Informatics 1, (VIIIA202), operating systems related topics · Basics of Programming 1, (VIHIA106), programming the C language · Basics of Programming 2, (VIAUA116), object-oriented programming The subject is built upon the following topics introduced in the Major: · -
General rules
Requirements: An assigned small software projects is required for allowing the student to sign up for examination. Oral examinations are organized in the examination period. The software project is the development of an object oriented, parallel, event driven, and embedded application in JAVA (e.g., on a mobile phone). Additional possibilities: According to the regulations. The assignment can be handed in during the supplemental week. Completion of the assignment is not possible by any other means, such as written test, etc.
Assessment methods
In-term assessments

No detailed assessments provided.

Weight of in-term assessments

No weights provided.

Exam-period assessments

No detailed assessments provided.

Weight of exam elements

No weights provided.

Grade calculation

No grade thresholds provided.

Attendance requirements

No attendance requirements provided.

Rules for retake and resubmission

Not provided.

Short description

Not provided.

Detailed description

Not provided.

Recommended courses

Not provided.

Workload to complete the subject

No workload breakdown provided.

Validity of subject requirements
Requirements valid from:
Requirements valid until:
Curriculum placement

No curriculum placements recorded for this subject version.