460-4155/02 – Selected Mechanisms of Software Development (VMSWV)
Gurantor department | Department of Computer Science | Credits | 5 |
Subject guarantor | Ing. David Ježek, Ph.D. | Subject version guarantor | Ing. David Ježek, Ph.D. |
Study level | undergraduate or graduate | Requirement | Choice-compulsory type A |
Year | 1 | Semester | summer |
| | Study language | English |
Year of introduction | 2024/2025 | Year of cancellation | |
Intended for the faculties | FEI | Intended for study types | Follow-up Master |
Subject aims expressed by acquired skills and competences
The aim of the course is to provide students with knowledge and practical experience of design and implementation procedures in software development. Students will learn the basic concepts, principles and techniques used in design and be able to apply patterns, techniques and approaches commonly used for software development. Students will also learn the basic types of tools used for software development and the recommendations and principles that ensure source code quality, software maintenance, configuration management techniques, software testing, and quality assurance of software implementation.
Teaching methods
Lectures
Tutorials
Summary
This course deals with software maintenance and configuration management. Students will gain an understanding of the major problems in software maintenance, and techniques to help counter these problems. In addition, students will gain knowledge in the area of configuration management, without which the discipline of software maintenance cannot do without. In this area, the course deals primarily with the identification and management of configurations.
In the area of software testing, the course deals with the issues of software testing and quality assurance throughout the software development life cycle. Students will gain knowledge of the different levels of testing and the techniques used in these levels, how to evaluate software quality and the tests themselves. Integrating these activities into the testing process, which is part of the entire software development life cycle, is also an integral part of the course. In addition, students will gain knowledge of software quality assurance practices. This discipline is very closely related to and makes heavy use of software testing. The course will focus on the quality assurance process itself and its integration into the software development life cycle, verification and validation.
In the area of design, the course focuses on defining the characteristics of large-scale enterprise applications and then explores multi-tier architecture as one of the most widely used architectures for large-scale enterprise systems. The importance of each layer and the use of design patterns in these layers are discussed in turn. In addition, the course explores other approaches and techniques used such as web services, REST architectural style, microservices architecture, and others.
Compulsory literature:
Recommended literature:
Way of continuous check of knowledge in the course of semester
Each student must prepare a project, the condition for the award of credit is obtaining a minimum of 20 points out of a total of 40.
In order to pass the written exam, a minimum of 30 points must be obtained in the end-of-semester exam and the sum of the points for the exam and credit must exceed 51 points.
E-learning
Other requirements
Basic knowledge of software engineering, software development and software lifecycle. Knowledge of an object-oriented programming language and frameworks for information systems development.
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
Topics for lectures and follow-up exercises:
- Requirements specification techniques, Use Cases and agile specification methods and their practical applications.
- Unified Modeling Language (UML), all types of UML diagrams.
- Software Architecture Design, Architectural Styles.
- Basic types of software architecture and their advantages and disadvantages.
- Detailed software design. Qualitative requirements and their achievement in design.
- Design patterns, principles and conventions.
- Use of patterns in current technologies and their impact on features and usage.
- Overview of programming languages and explanation of their advantages and limitations for specific types of projects.
- Testing techniques, Measurement and evaluation in software testing.
- Static testing methods. Levels of testing.
- Fundamentals of software maintenance, Key issues in software maintenance.
- Source code management, Software release and delivery management.
- Patterns for configuration management.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction
Předmět neobsahuje žádné hodnocení.