460-2009/05 – Introduction to Software Engineering (SWI)
Gurantor department | Department of Computer Science | Credits | 4 |
Subject guarantor | Ing. Svatopluk Štolfa, Ph.D. | Subject version guarantor | Ing. Svatopluk Štolfa, Ph.D. |
Study level | undergraduate or graduate | Requirement | Optional |
Year | 1 | Semester | summer |
| | Study language | English |
Year of introduction | 2019/2020 | Year of cancellation | |
Intended for the faculties | FEI | Intended for study types | Bachelor |
Subject aims expressed by acquired skills and competences
The goal of the course is to show students what the development of large systems is about.
Students will learn how to apply and use approaches, languages and tools, will learn how to use UML language, maintain the tractability between each development steps etc. Students then will be able to use presented approaches for the development of software product.
Teaching methods
Lectures
Tutorials
Project work
Summary
The subject represents the introduction to the software development. It starts with techniques used in the process of software analysis and design based on object-oriented approach and the language UML.
Compulsory literature:
Recommended literature:
Watts Humphrey’s Introduction to the Team Software Process
Armando Fox and David Patterson ,Engineering Software as a Service: An Agile Approach Using Cloud Computing, Strawberry Canyon Publisher, 2013
Gary McGraw, Real Time UML, Third Edition.
Bruce Powel Douglass, Advances in the UML for Real-Time Systems, Addison-Wesley, 2004.
Way of continuous check of knowledge in the course of semester
Rated examples in tutorials and written and oral examination.
E-learning
Other requirements
Student shall be aware of principles of programming and programming techniques.
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
Lectures:
1. Software Processes - Software lifecycle, Waterfall, V-Model, UP
2. Software Processes – Agile, Software quality
3. Tools and Environments - Configuration management
4. Tools and Environments - Version control systems, Tool selection and use
5. Requirements Engineering - Requirements Elicitation, Functional vs. Non-functional requirements
6. Requirements Engineering - Use cases and User Stories
7. Software Design - Design principles
8. Software Design - Software architectures
9. Software Design - Design patterns
10. Software Construction – Coding standards, Implementing reliability, efficiency, robustness,
11. Software Construction – Integration strategies: top-down, bottom-up, sandwich
12. Software Verification and Validation - Verification vs. Validation, Testing types and levels: unit, integration, system, etc.
13. Software Verification and Validation - Test plan, Test Methods, Verification and Validation of non-code artifacts, Regression testing
14. Summary and consolidation
The course meets twice a week for two hours (45 min hour) each day. The course is a mixture of lecture (about 1.5 hours a week) and group project work. The course is structured around the project development where the students are constantly producing artifacts related to software development life cycle, learning and using visual modeling notation UML (Unified Modeling Language) and implementing final system.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction