Software Engineering I
- Zdeněk Rybola (guarantor)
- Zdeněk Rybola (guarantor)
- 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
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
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:
- Time-table for winter semester 2020/2021:
Mon Tue FriroomT9:302
- Time-table for summer semester 2020/2021:
- Time-table is not available yet
- The course is a part of the following study plans:
- Bc. Branch Security and Information Technology, Presented in English, Version 2015 to 2020 (compulsory course in the program)
- Bc. Branch WSI, Specialization Software Engineering, Presented in English, Version 2015-2020 (compulsory course in the program)
- Bc. Branch Computer Science, Presented in English, Version 2015 to 2020 (compulsory course in the program)