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 | | |
| | 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.
Additional study materials
Way of continuous check of knowledge in the course of semester
Rated assigments in tutorials and written exam.
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:
The course is taught as a block of lectures and exercises with a time allocation of 1.5 hours for the lecture and 1.5 hours for the exercise.
The course focuses on the practical application of acquired knowledge, practicing the software development cycle using visual modeling with UML.
Software Processes – Software lifecycle, Waterfall, V-Model, UP, agile methods, software quality
Specification and Requirements Analysis – Use cases and user stories, functional and non-functional requirements
Software Analysis and Design – Static and dynamic views, use of UML, software architecture, design patterns
Implementation – Implementation according to models, configuration management, version control systems, tool selection and use
Software Verification and Validation – Testing methods, verification and validation of non-coded artifacts, regression tests
Exercises Content:
The exercises focus on getting acquainted with the software development cycle and the specification of individual parts. The exercises progressively go through the phases of software development and gradually introduce various UML diagrams. The exercises also focus on consultations related to the independent processing of the software project and its final implementation. Completing the project and passing the tests in the exercises are required to obtain the course credit.
Content of individual exercises:
- Problem analysis, verbal specification of requirements, structured specification of requirements. Practice on examples.
- Creating use cases, scenarios, user stories, introduction to use case diagrams, include and extend relationships. Practice on examples.
- Use case diagram, inheritance relationships between actors, inheritance between use cases. Practice on examples.
- Identification of entities in the system – analysis of significant nouns in use cases. - Basics of class diagrams. Class, association links, multiplicity. Method of converting the diagram into a programming language. Practice on examples.
- Assembling a structural view of the system. Class diagram – inheritance links, interface implementation, roles, interfaces, aggregation and composition, association class. Method of converting the diagram into a programming language. Practice on examples.
- Realization of use cases – sequence diagrams. Introduction to the basics – object, object call, return message. Practice on examples.
- Sequence diagrams – alternatives, loops, synchronous and asynchronous calls, operation runtime. Method of converting the diagram into a programming language. Practice on examples.
- Communication diagrams. Refinement of class diagrams based on sequence and communication diagrams. Practice on examples.
- State diagrams – state changes, implementation in programming languages. Practice on examples.
- Activity diagrams and their use for problem definition – business model. Practice on examples.
- Use of activity diagrams for describing use cases and algorithms in the system. Practice on examples.
- Implementation of the software project based on the created analysis – package and deployment diagrams. Practice on examples.
- Recapitulation of exercises – progress through individual project phases, use of UML diagrams.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction