Belépés címtáras azonosítással
magyar nyelvű adatlap
angol nyelvű adatlap
Software Technology for Embedded Systems
A tantárgy neve magyarul / Name of the subject in Hungarian: Szoftvertechnológia
Last updated: 2009. november 2.
Electrical Engineering
Embedded Information Systems Major
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:
· -
A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.
A kötelező előtanulmányi rend az adott szak honlapján és képzési programjában található.
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.
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.
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).
[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.