Software Engineering I

The course is not on the list Without time-table
Code Completion Credits Range Language
BIE-SI1.2 Z,ZK 5 2P+1C English
Garant předmětu:
Zdeněk Rybola
Zdeněk Rybola
Zdeněk Rybola
Department of Software Engineering

Students learn the methods of analysis and design of large software systems, which are typically designed and implemented in teams.

Students will get acquainted with CASE tools using a visual modeling language UML for modeling and solving software-related problems.

Students will get an overview of object-oriented analysis, design, architecture, validation, verification, and testing processes.

The knowledge obtained in the lectures is practiced on a team project. If enrolled for the BIE-SP1 course running in parallel (only summer semester), the students can work on a single more complex project and they are classified to both courses for a single project.

This course does not teach the students programming, nor any particular technology, framework or programming language. The students are required to have some knowledge of these to apply them on their team project.


Students are expected to be able to design a data model, with the ability level corresponding to the conceptual data model design in BIE-DBS or object model design in BIE-OMO.

Students are expected to have at least basic knowledge of object-oriented approach to programming.

Students are expected to have at least basic knowledge of SQL.

Students are expected to have knowledge of an object-oriented programming language (C++, Java, C#, PHP, etc.)

Syllabus of lectures:

Introduction to software engineering and team work

Analysis: Business process modelling

Analysis: Requirements modelling, use cases

Analysis: Domain analysis and modelling

Object paradigm

Design: Architecture of software systems, Components

Design: class model, Communication model

Design: GRASP patterns, GoF patterns, Database model

Design: Deployment, Integration


Software development methodologies

Syllabus of tutorials:

1. Introduction to team projects, team cooperation

2. Introduction to EA, business process modeling

3. Requirements and use cases, versioning in EA

4. Domain modeling, documentation generation

5. Subversion, versioning

6. Presentation of 1st iteration

7. Architecture modeling

8. Design and communication modeling

9. Deployment modeling

10. Presentation of 2nd iteration

11. Testing

12. Presentation of 3rd iteration

Study Objective:

The purpose of the course is to teach students to understand basic principles of object-oriented design of large software systems, based on mathematical, visual, formal, and semi-formal models, and to introduce them to techniques and methods of modern software design. The course contains knowledge that allows them to understand the teamwork on a SW project and to efficiently take part in it.

Study materials:

1. J. Arlow and I. Neustadt, UML 2 and the Unified Process: Practical Object-Oriented Analysis and Design, 2 edition. Upper Saddle River, NJ: Addison-Wesley Professional, 2005.

2. Pressman, R. S., Ince, D. ''Software Engineering: A Practitioner's Approach''. McGraw-Hill, 1994. ISBN 0077079361.

3. Sommerville, I. ''Software Engineering (6th Edition)''. Addison Wesley, 2000. ISBN 020139815X.

Further information:
No time-table has been prepared for this course
The course is a part of the following study plans:
Data valid to 2024-06-16
Aktualizace výše uvedených informací naleznete na adrese https://bilakniha.cvut.cz/en/predmet2779206.html