This course focuses on the principles and concepts on the development of Internet applications. The syllabus follows an approach based on the fundamentals of software development based on web and service oriented architectural patterns, advanced modularity mechanisms, data persistency abstractions, good development practices, performance concerns, and validation techniques. Course lectures are accompanied by a series of practical assignments and a final project development using frameworks, languages, and programming tools for Internet Applications that ensure the safety and compliance of the solution with relation to a specification.
- August 28: Initial version of the course page.
-
Martin Fowler. Patterns of Enterprise Application Architecture. USA: Addison-Wesley Longman Publishing Co., Inc., 2002. isbn: 0321127420.
Comment: This is a classic and seminal reference that explores the architectural patterns that inspires many of the developments of the course. This reference is complemented by the references below that update and instantiate in the world of distributed and cloud applications.
-
Len Bass, Paul Clements, and Rick Kazman. Software architecture in practice, 3rd Edition. Addison-Wesley Professional, 2015. isbn: 0321815734.
-
Chris Richardson. Microservices Patterns. Manning Publications, 2018. isbn: 9781617294549.
-
Marco Brambilla and Piero Fraternali. Interaction flow modeling language: Model-driven UI engineering of web and mobile apps with IFML. Morgan Kaufmann, 2014. isbn: 0128001089.
-
Robert C. Martin. 2017. Clean Architecture: A Craftsman's Guide to Software Structure and Design (1st. ed.). Prentice Hall Press, USA.
Please make an appointment by email.
Instructor | Schedule | |
---|---|---|
João Costa Seco | Monday 14h30 (Gab. P2/1-II) - (send email the day before) | [email protected] |
Week | Date | Topics | Slides/Handouts | Resources |
---|---|---|---|---|
1 | 16 Sep | No Lecture (ECOOP 2024) | ||
1 | 18, 19 Sep | No Lab Class | ||
2 | 23 Sep | Course Overview. Introduction to the design and implementation of Internet Applications. | slides | |
2 | 25, 26 Sep | Kick-the-Tyres. First SpringBoot Application. | Repo - lab1 | |
3 | 30 Sep | Software Architecture. Services and Micro Services | slides | |
3 | 2, 3 Out | Design of a Layered Architecture | Repo - lab2 | |
4 | 7 Out | Design of a Layered Architecture, Data Abstraction, JPA & Hibernate, Continuous Integration, Unit Testing, Mock Services | slides | Repo - lab3 |
4 | 9 Out (Extra) | More Data Abstraction, Associations and Custom Queries | slides | Project Assignment |
4 | 9, 10 Out | Design of a Data Layer | ||
5 | 14 Out | Security Mechanisms in Internet Applications | slides | Repo - lab4 |
5 | 16, 17 Out | An architecture of micro-services | ||
6 | 21 Out | No Lecture (SPLASH 2024) | ||
6 | 23, 24 Out | No Lab Class | ||
7 | 28 Out | Token-Based Security and Micro-services | slides | |
7 | 30 Out, 31 Out | Security in microservices, capabilities. | Repo - lab5 | |
8 | 4 Nov | Q&A | slides | |
8 | 6 Nov, 7 Nov | Project - Part 1 | Repo - lab6 | |
8 | TBD | Test 1 | ||
9 | 11 Nov | User-centric development - Client Side Reactive Programming (React) | slides | |
9 | 13 Nov, 14 Nov | Building a React Application | Repo - lab8 | |
10 | 18 Nov | IFML and UI Design. IFML to React | slides | |
10 | 20 Nov, 21 Nov | Connecting to the Server, Redux, Async Actions | Repo - lab9 | |
11 | 25 Nov | Client Side State Management | slides | |
11 | 27 Nov, 28 Nov | Project Support | ||
12 | 2 Dez | Q&A - Recap and Trends | slides | |
12 | 4 Dez, 5 Dez | Project support | ||
13 | 9 Dez | Evaluation week - project support | ||
13 | 11 Dez, 12 Dez | Evaluation week - project support | ||
14 | 16 Dez | Evaluation week - project support | ||
14 | 18 Dez | Test 2 | ||
14 | 19 Dez | Project - Part 2 |