Budapest University of Technology and Economics, Faculty of Electrical Engineering and Informatics

    Belépés
    címtáras azonosítással

    vissza a tantárgylistához   nyomtatható verzió    

    Software Technology for Embedded Systems

    A tantárgy neve magyarul / Name of the subject in Hungarian: Szoftvertechnológia

    Last updated: 2009. november 2.

    Budapest University of Technology and Economics
    Faculty of Electrical Engineering and Informatics

    Electrical Engineering

    Embedded Information Systems Major

    Course ID Semester Assessment Credit Tantárgyfélév
    VIMIM150 1 2/1/0/v 4  
    3. Course coordinator and department Dr. Kovácsházy Tamás,
    Web page of the course http://www.mit.bme.hu/oktatas/targyak/vimim150/
    4. Instructors dr. Tamás Kovácsházy, associate professor
    5. Required knowledge

    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:

    · -

    6. Pre-requisites
    Kötelező:
    NEM ( TárgyEredmény( "BMEVIMIMA09" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIMIMA09", "FELVETEL", AktualisFelev()) > 0)

    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ó.

    7. Objectives, learning outcomes and obtained knowledge

    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.

    8. Synopsis

    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.

    9. Method of instruction Lecture and practice
    10. Assessment

    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).

    11. Recaps 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.
    12. Consultations On demand, appointment must be agreed in advance.
    13. References, textbooks and resources

    [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.

    14. Required learning hours and assignment
    Kontakt óra42
    Félévközi készülés órákra10
    Felkészülés zárthelyire0
    Házi feladat elkészítése20
    Kijelölt írásos tananyag elsajátítása 
    Vizsgafelkészülés48
    Összesen120
    15. Syllabus prepared by dr. Tamás Dabóczi, associate professor, dr. István Majzik, associate professor, and dr. Tamás Kovácsházy, associate professor