460-4104/03 – Enterprise Application Development (VEA)
Gurantor department | Department of Computer Science | Credits | 5 |
Subject guarantor | Ing. David Ježek, Ph.D. | Subject version guarantor | Ing. David Ježek, Ph.D. |
Study level | undergraduate or graduate | Requirement | Choice-compulsory type A |
Year | 2 | Semester | summer |
| | Study language | Czech |
Year of introduction | 2022/2023 | Year of cancellation | 2023/2024 |
Intended for the faculties | FEI | Intended for study types | Follow-up Master |
Subject aims expressed by acquired skills and competences
Attendees will understand how enterprise applications are developed. They will understand and be able to apply patterns, techniques and approaches commonly used for the development of these applications. This area of knowledge includes:
- Definitions of Enterprise applications
- Architectures suitable for Enterprise applications
- Technologies used in creating Enterprise applications
- Use of patterns during enterprise application development
- Presentation layer patterns: MVC, Page Controller, Front Controller, Template View, Transform View, Intercepting Filter
- Domain layer patterns: Table Module, Transaction Script, Domain Model, Inversion of Control and Dependence Injection, Proxy Pattern
- Aspect-oriented programming
- Data layer patterns for data access: Table Data Gateway, Row Data Gateway, Active Record, Data Mapper, Data Access Object
- Behavior patterns for object-relation mapping: Unit of Work, Identity Map, Lazy Load
- Selected structural patterns for object-relation mapping: Serialized LOB, methods of inheritance mapping
- Web services
- Architectural style REST
- Service-oriented architecture
- Architecture of micro-services
- Communication via message passing
Teaching methods
Lectures
Tutorials
Project work
Summary
The course defines the characteristics of enterprise applications and then deals with multi-layer architecture, as one of the most common architectures of enterprise applications. Description and purpose of 3 common layers is discussed with students and the use of design patterns in these layers are described. Furthermore, the subject deals with other used approaches and techniques such as web services, architectural style REST, architecture of micro services and others. Students are also introduced to the technologies of the JAVA platform, and how to integrate and use the mentioned patterns and techniques in these technologies.
Compulsory literature:
Recommended literature:
1. Alur, Deepak, Malks, Dan, Crupi, John. Core J2EE Patterns: Best Practices and Design Strategies Prentice Hall Press, 2013. ISBN 9780133807462.
2. Core J2EE Patterns: Patterns index page [online]. 2001-2002 [cit. 2014-09-05]. Dostupný z WWW: http://www.corej2eepatterns.com
Way of continuous check of knowledge in the course of semester
Each student has to work out project. Project have to be evaluate at least by 20 points from 40, written final exam have to be evaluate at least by 30 points from 60.
E-learning
Other requirements
Basic knowledge of JAVA technology. Basic knowledge in the field of software engineering.
Prerequisities
Subject has no prerequisities.
Co-requisities
Subject has no co-requisities.
Subject syllabus:
Lectures:
1. Definitions of Enterprise applications. Architectures suitable for Enterprise applications.
2. Technologies used in creating Enterprise applications
3. Use of patterns during enterprise application development
4. Presentation layer patterns: MVC, Page Controller, Front Controller, Template View, Transform View, Intercepting Filter
5. Domain layer patterns: Table Module, Transaction Script, Domain Model, Inversion of Control and Dependence Injection, Proxy Pattern
6. Aspect-oriented programming
7. Data layer patterns for data access: Table Data Gateway, Row Data Gateway, Active Record, Data Mapper, Data Access Object
8. Behavior patterns for object-relation mapping: Unit of Work, Identity Map, Lazy Load
9. Selected structural patterns for object-relation mapping: Serialized LOB, methods of inheritance mapping
10. Web services
11. Architectural style REST
12. Service-oriented architecture
13. Architecture of micro-services
14. Communication via message passing
Exercises (PC classroom):
1. Introduction to technologies for the development of enterprise applications on the JAVA platform
2. First implementation of application skeleton.
3. Implementation of the client part of the presentation layer.
4. Implementation of the server part of the presentation layer using patterns.
5. Implementation of the domain layer of the application using patterns.
6. Implementation of extension functionality using AOP.
7. Implementation of the application data layer using patterns.
8. Implementation of data access using JPA.
9. Implementation of web service and client application.
10. Implementation of REST interface.
11. Implementation of communication using JMS between two modules.
12. Consultations on the implementation of semester projects.
Conditions for subject completion
Occurrence in study plans
Occurrence in special blocks
Assessment of instruction