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 Techniques

    A tantárgy neve magyarul / Name of the subject in Hungarian: Szoftvertechnikák

    Last updated: 2015. november 16.

    Budapest University of Technology and Economics
    Faculty of Electrical Engineering and Informatics
    Mérnök informatikus szak, BSc képzés

    Course ID Semester Assessment Credit Tantárgyfélév
    VIAUAB00 4 2/0/2/v 5  
    3. Course coordinator and department Dr. Kővári Bence András,
    4. Instructors

    Name:

    Position:

    Department:

    Dr. Hassan Charaf 

    associate professor

    Dept. of Automation and Applied Informatics

    Zoltán Benedek 

    assistant lecturer

    Dept. of Automation and Applied Informatics

    Dr. Bence Kővári 

    senior lecturer

    Dept. of Automation and Applied Informatics

     

     

     

    5. Required knowledge

    C++ programming language, UML basics.

    6. Pre-requisites
    Kötelező:
    (TárgyEredmény( "BMEVIIIAB01" , "aláírás" , _ ) = -1
    VAGY TárgyEredmény( "BMEVIIIA217" , "aláírás" , _ ) = -1 )

    ÉS NEM ( TárgyEredmény( "BMEVIAUA218" , "jegy" , _ ) >= 2
    VAGY
    TárgyEredmény("BMEVIAUA218", "FELVETEL", AktualisFelev()) > 0)

    ÉS (Training.Code=("5N-A8") VAGY Training.Code=("5NAA8"))

    A fenti forma a Neptun sajátja, ezen technikai okokból nem változtattunk.

    A kötelező előtanulmányi rendek grafikus formában itt láthatók.

    Ajánlott:

    Basics of Programming 1-2: credit

    AND

    Software Technology: signature

    7. Objectives, learning outcomes and obtained knowledge

    The objective of the course is to present up-to-date techniques used in object oriented and event-based software development. The concepts, the structures and the programming of GUI (graphical user interface) and RAD (Rapid Application Development) are presented together with the most important features of modern supervised execution environments and class libraries (reflection techniques, data binding, displaying figures and text, parallel computing basics with related synchronization techniques, etc.). The widely used architectural and design patterns for software development are also covered.

    Students satisfying the course requirements will be able to develop software on the most widely used platforms with up-to-date tools and technology, having design patterns incorporated. 

    8. Synopsis
    Lectures
     
    1. Supervised execution systems, .NET basics.
    2. Modern language concepts (property, delegate, event, attribute, generics).
    3. Event driven programming in native environments, message based UI platforms
    4. Basics of developing desktop applications in supervised execution environments (RAD concepts, Windows Forms basics, controls, menus, events, dialog windows). Management of unmanaged resources (destructor, dispose).
    5. Developing desktop applications: displaying graphics and text. Generics.
    6. Developing multithreaded applications: the basics.
    7. Developing multithreaded applications: concurrency issues and solutions, locking, events. Threadpool. Avoiding deadlocks.
    8. Binary components. Assemblies, reflection.
    9. Database programming in managed environments.
    10. Software architectures. Views of architecture. Architectural patterns: Document-View, MVC, Pipes and filters.
    11. Software architectures continued. Layers, two and three layer/tier architectures, dependency issues. Introduction of design patterns.
    12. Design patterns. Creational patterns: Singleton, Factory Method, Abstract factory.
    13. Design patterns. Observer, Memento, Bridge, Adapter, Iterator, Template Method.
    14. Design patterns. Proxy, Command, State, Strategy, Decorator. Thread-safe Interface, Double-checked Locking Optimization, Strategized Locking.

     
    Seminars
     
    1. C# basics. Generating code based on UML diagrams. Advanced OO concepts: when to use interfaces/abstract classes.
    2. Self-study examples: C# basics, Base Class Library, advanced OO concepts
    3. Property, delegate, C# events
    4. Self-study examples: Property, delegate, C# events
    5. Basics of developing desktop (Windows Forms) applications
    6. Self-study: basics of developing desktop (Windows Forms) applications
    7. Developing multithreaded applications: concurrency issues and solutions, locking.
    8. Self-study: developing multithreaded applications, concurrency issues and solutions, locking.
    9. Database programming in managed environments.
    10. Self-study: database programming in managed environments.
    11. Architectural patterns.
    12. Self-study: Architectural patterns, Document-View architecture.
    13. Design patterns.
    14. Self-study: Design patterns.

    9. Method of instruction

    Lecture, seminar.

    10. Assessment

    a. During the semester:

    (1) Midterm exam

    (2) Attendance of specified seminars

    (3) Upload result of specified self-study seminars

     

    In order to receive signature for the course, students:

    ·         Must pass the midterm exam

    ·         There are 7 seminars during the semester held in Unversity labs. The students must attend 6 out of the 7 seminars. One can be fulfilled during the repeat period in case it’s missed during mid term.

    ·         There are 7 self-study tasks. These are announced continuously during the semester on the home page of the subject. The source code and the result must be uploaded within the provided deadline. Delay is permitted for 2 tasks out of the 7 with at most one week extent. There is an option for on-demand consultancy with the lecturer.

     

    b. In the exam period:

     Written exam.

    11. Recaps

    The midterm exam can be repeated once during the semester period, and then once in the repeat period in accordance with the Code of Studies and Exams.

    The exam period exam can be repeated in accordance with the Code of Studies and Exams

    12. Consultations

    Arranged on demand by the lecturer or instructor. 

    13. References, textbooks and resources
    • Buschmann et al.: A System of Patterns, Willey, 1996 Tom Pender, Tom Pender, UML Bible, Wiley, 2003, ISBN: 0764526049.

      Gamma, Helm, Johnson, Vlissides: Design Patterns, Addison-Wesley, 1994 

    14. Required learning hours and assignment

    Contact class

    28

    Seminars

    28

    Preparing for classes

    30

    Preparation for the midterm exam

    32

    Preparing for the final exam

    32

    Sum

    150

    15. Syllabus prepared by

    Dr. Hassan Charaf

    Associate professor

    Dept. of Automation and Applied Informatics

    Zoltán Benedek

    Assistant lecturer

    Dept. of Automation and Applied Informatics

    Dr Bence Kővári

    Senior lecturer

    Dept. of Automation and Applied Informatics