Skip to main content
Skip header

Faculty of Electrical Engineering and Computer Science

ECTS Course Overview



Introduction to Software Engineering

* Exchange students do not have to consider this information when selecting suitable courses for an exchange stay.

Course Unit Code460-2009/05
Number of ECTS Credits Allocated4 ECTS credits
Type of Course Unit *Optional
Level of Course Unit *First Cycle
Year of Study *
Semester when the Course Unit is deliveredWinter Semester
Mode of DeliveryFace-to-face
Language of InstructionEnglish
Prerequisites and Co-Requisites Course succeeds to compulsory courses of previous semester
Name of Lecturer(s)Personal IDName
VON05prof. Ing. Ivo Vondrák, CSc.
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.
Learning Outcomes of the Course Unit
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.
Course Contents
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.

Recommended or Required Reading
Required Reading:
Pfleeger, Shari Lawrence, and Joanne M. Atlee. 2009. Software Engineering: Theory and Practice: Prentice Hall, ISBN 0136061699.
Pressman, Roger S. 2010. Software Engineering : A Practitioner's Approach. 7th ed. New York: McGraw-Hill Higher Education, ISBN 9780073375977.
Sommerville, Ian. 2010. Software Engineering. 9th ed, International Computer Science Series. Harlow: Addison-Wesley, ISBN 978-0137035151.
Pfleeger, Shari Lawrence, and Joanne M. Atlee. 2009. Software Engineering: Theory and Practice: Prentice Hall, ISBN 0136061699.
Pressman, Roger S. 2010. Software Engineering : A Practitioner's Approach. 7th ed. New York: McGraw-Hill Higher Education, ISBN 9780073375977.
Sommerville, Ian. 2010. Software Engineering. 9th ed, International Computer Science Series. Harlow: Addison-Wesley, ISBN 978-0137035151.

Recommended Reading:
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.
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.
Planned learning activities and teaching methods
Lectures, Tutorials, Project work
Assesment methods and criteria
Tasks are not Defined