K-INFO
HU
EN
Login

Software Techniques

Szoftvertechnikák
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Szoftvertechnikák
Software Techniques
Subject code BMEVIAUAB00
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 2 0 2
type (linked/independent) derived course
Assessment type vizsga
Credits 5
Subject coordinator
DR. Kővári Bence András
position: egyetemi docens
Responsible department
Automatizálási és Alkalmazott Informatikai Tanszék
Faculty Villamosmérnöki és Informatikai Kar
Subject website
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
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.

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. 

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, seminar.

Tanulástámogató anyagok

Online források
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 

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)
C++ programming language, UML basics.
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)
C++ programming language, UML basics.
General rules
Requirements: 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. Additional possibilities: 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
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
Basics of Programming 1-2: credit AND Software Technology: signature
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.