- Garant předmětu:
- Ondřej Guth
- Ondřej Guth
- Ondřej Guth
- Department of Software Engineering
The aim of the course is to provide knowledge and skills needed for the development of smaller and larger information systems. Students will get acquainted with general theoretical concepts and will be able to apply these concepts using libraries and tools from the ecosystem of the Java programming language. After completing the course students will be able to participate in the development of software systems on the Java platform. Students are assumed to be acquainted with the following topics (they are used and not taught in this course): Java language syntax, SQL, git version control system, Docker, continuous integration.
Entry knowledge: object-oriented programming, relational databases and SQL, git version control system, virtualization containers and Docker, and continuous integration. Knowledge of Java programming language is recommended.
- Syllabus of lectures:
1. Software applications, typical layers used in design and implementation of SW applications.
2. Application frameworks. Principles of Inversion of control and of Dependency Injection used in creation of object-based applications.
3. Build of SW applications.
4. Automatic testing of SW applications.
5. Data layer. Use of relational databases, object-oriented mapping.
6. Web layer of SW applications, web container/server.
7. Handling of RESTful web services, protocol HTTP.
8. SOAP web services.
9. Logging of SW applications.
10. Security of SW applications, authentication and authorization in SW applications.
11. Application servers and their utilization, the JavaEE/JakartaEE specification, Enterprise Java Beans (EJB).
12. Architectures of SW applications.
13. Microservices and the concept of SE applications based on microservices.
- Syllabus of tutorials:
1. Programming in Java IDE.
2. Spring inversion of control and dependency injection, annotations.
3. Spring Boot.
4. Build tools (Gradle, Maven).
6. Spring ORM, transactions.
7. Web layer.
8. RESTful web service.
9. RESTful API client.
11. Spring security.
12. Submitting of semestral project.
13. Submitting of semestral project.
- Study Objective:
- Study materials:
1. de Oliveira C. E., Rajput D., Rajesh R. V. : BI-PJP. Packt Publishing, 2018. ISBN 978-1789959666.
2. Enriquez R., Salazar A. : Software Architecture with Spring 5.0: Design and architect highly scalable, robust, and high-performance Java applications. Packt Publishing, 2018. ISBN 978-1788992992.
3. Urma R. G., Fusco M., Mycroft A. : Modern Java in Action: Lambdas, streams, functional and reactive programming (2nd Edition). Manning Publications, 2018. ISBN 978 1617293566.
4. Mahajan A., Gupta M. K., Sundar S. : Cloud-Native Applications in Java: Build microservice-based cloud-native applications that dynamically scale. Packt Publishing, 2017. ISBN 978-1787124349.
- Further information:
- Time-table for winter semester 2023/2024:
Mon Tue Wed Thu FriroomTH:A-s134
Thákurova 7 (budova FSv)
NBFIT PC ucebnaroomT9:351
NBFIT PC ucebna
- Time-table for summer semester 2023/2024:
- Time-table is not available yet
- The course is a part of the following study plans:
- Bachelor specialization, Computer Engineering, 2021 (elective course)
- Bachelor specialization, Information Security, 2021 (elective course)
- Bachelor specialization, Software Engineering, 2021 (PS)
- Bachelor specialization, Computer Science, 2021 (elective course)
- Bachelor specialization, Computer Networks and Internet, 2021 (elective course)
- Bachelor specialization Computer Systems and Virtualization, 2021 (elective course)