K-INFO
HU
EN
Login

Software Engineering

Szoftvertechnológia
A tantárgyleírás hatályossága
Hatályosság kezdete:
2026. March 21.
Hatályosság vége:
Subject name (Hungarian, English)
Szoftvertechnológia
Software Engineering
Subject code BMEVIMIAB04
Subject type
Training Level
Course types and hours (weekly/semester)
Course type lecture tutorial laboratory
hours (weekly) 3 0 1
type (linked/independent) derived course
Assessment type vizsga
Credits 5
Subject coordinator
DR. Micskei Zoltán Imre
position: egyetemi docens
Responsible department
Mesterséges Intelligencia és Rendszertervezés 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

1. Introduction: About software and software development. Does software engineering differ from other engineering fields? What is in software engineering other than programming? Case studies of complex software systems and software projects. What is needed for successful software development?

Software development practices

2. Fundamentals of version control. Centralized and decentralized version control. Typical workflows and patterns (GitHub Flow, Mainline...).
3. Requirement management: Importance of requirements. Eliciting, analyzing, prioritizing requirements. Types of requirements. Traceability. Handling changes in requirements.
4. Design and architecture: Fundamental concepts (abstraction, modularization). Elements of software architecture. Design patterns. Documenting designs.
5. Managing source code: properties of good source code. Coding guidelines and standards. Code review. Using static analysis tools.
6. Testing I.: concepts and goals of testing. Testing process. Testing levels. Risk-based testing.
7. Testing II.: test design techniques (specification and structure-based techniques). 

Software modeling and UML
8. Modeling software: Why model? What can we model? The Unified Modeling Language (UML) modeling language family. Modeling structure: class diagram, modeling instances, package diagram, component diagram.
9. UML behavioral modeling I.: use case, activity diagram, sequence diagram.
10. UML behavioral modeling II.: state machine diagram, connecting different viewpoints.

Software development processes
5. Steps and artefacts of the software lifecycle. Popular lifecycle models (waterfall, V-model, incremental)
6. Classic and agile software development. Agile and Lean practices. Examples: Scrum, XP.

Project and people management
13. Managing software projects. Estimation, project planning and tracking. Agile project management practices and tools.
14. Measurement and analysis in software development. Process definitions and metrics.

 

Laboratory exercises:

1. Software development workflows, handling complex software
2. Version control systems (git), basic workflows (GitHub Flow). Build systems. Continuous integration.

3. Checking code style. Code review. Using static analysis tools

4. Test design and implementation. Measuring code coverage.
5. Using a UML modelling tool with basic diagrams

6. Practicing UML-based object-oriented design

 

The objective of the course is to introduce the students to the design, development, and maintenance of large-scale software systems. The course presents the techniques and methods to produce the software as a product. In addition to the presentation of the technical aspects, people and project management techniques and methods are also introduced. Students satisfying the course requirements will be able to understand and manage the problems related to the development of large-scale software systems and they will be able to participate in such development processes. The knowledge acquired in this course will be the background for the Software Laboratory course. After successful completion, students will be able to: - (K2) explain the typical steps and methodologies of software development, - (K3) use version control and software development tools on a basic level, - (K3) design simpler tests based on requirements or code structure, - (K3) create simpler structural and behavioral UML models. 

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 and laboratory exercise

Tanulástámogató anyagok

Online források
Slides; and materials on the course websiteIan; Sommerville: Software Engineering, 10th edition, Pearson, 2015Martin; Fowler: UML Distilled, Addison-Wesley, 2003Robert; C. Martin: Clean Code: A Handbook of Agile Software Craftsmanship, Pearson, 2008Dorothy; Graham et al.: Foundations of Software Testing, Cengage, 2019; Titus Winters et al.: Software Engineering at; Google, O'Reilly, 2020

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)
Before taking the course, the students should be able to - (K2) explain the basic mechanism of imperative programming languages, - (K3) develop a non-trivial program based on a high-level specification, - (K3) solve modeling problems using simple modeling languages (e.g. final state machines). 
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)
Before taking the course, the students should be able to - (K2) explain the basic mechanism of imperative programming languages, - (K3) develop a non-trivial program based on a high-level specification, - (K3) solve modeling problems using simple modeling languages (e.g. final state machines). 
General rules
Requirements: Laboratory practices have to be attended in accordance with the Code of Studies. Laboratory practices use diagnostic assessments. To obtain signature, 2/3 of assessments have to be passed. It is mandatory to complete at least 2 of the diagnostic assessments for the first 3 labs and at least 2 of the diagnostic assessments for the second 3 labs.Moreover, two homework assignments must be completed. The condition for obtaining a signature is to accept the solution to both homework assignments. Written exam: The exam has two parts. Both parts have to be completed successfully (minimum 50%) to pass the exam. The overall assessment of homework assignments counts for 20% of the final grade. Additional possibilities: The laboratory practices cannot be repeated, retaken or completed delayed.Both homework assignments can be submitted late one week after the original deadline.
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

Not provided.

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.