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) |
|
||||||||||||
| Assessment type | vizsga | ||||||||||||
| Credits | 5 | ||||||||||||
| Subject coordinator |
DR. Kővári Bence András
position: egyetemi docens
contact:
kovari.bence@vik.bme.hu
|
||||||||||||
| 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.