Base Knowledge
Object oriented programming, java programming
Teaching Methodologies
Theoretical exposition of main concepts in theoretical classes, and also realization of theoretical-practical exercises.
In lab classes, students are required to conduct programming assignments, related to the application of design patterns, and will work on creating an integrator project.
Evaluation is based on exam and project.
Learning Results
understanding the concepts of software design and architecture
Understanding the role of software design and architecture in the context of a software development process, according to software requirements
Knowing object oriented analysis methodologies, and other design instruments (e.g. uml language)
Knowing and applying Design Patterns
Knowing and applying Enterprise patterns
Knowing and applying API design patterns
Program
1 – Introduction and Basic Concepts
2 – Object-Oriented Design (SOLID and GRASP Principles)
3 – Design Patterns – GoF
3.1 Creational Patterns
3.2 Structural Patterns
3.3 Behavioral Patterns
4 – API Design Patterns
4.1 Resource-Oriented APIs
4.2 Resource-Oriented API Patterns
5 – Architecture and Architectural Styles
5.1 Concepts and Examples
5.2 Monolithic Architectural Styles
5.3 Distributed Architectural Styles
Curricular Unit Teachers
Jorge Miguel Sousa BarreirosGrading Methods
Exam - 10 values
Mini Projects - 10 values
Internship(s)
NAO
Bibliography
Books:
Gamma, E., Helm, R., Johnson, R. & Vlissides, J. (1995). Design patterns : elements of reusable object-oriented software. Addison-Wesley. ISBN 978-0-201-63361-0,
Geewax,JJ. (2021). API design patterns, Manning, ISBN-9781617295850
Richards, M. & Ford, N. (2020) Fundamentals of Software Architecture. O’Reily, ISBN 978-1-492-04345-4
Larman, C. (2007). Applying UML and patterns : an introduction to object-oriented analysis and design and iterative development. (3rd ed). Prentice Hall PTR, 2007. ISBN 0-13-148906-2
Freeman, E. (2004). Head first design patterns. O’Reilly, ISBN 978-0-596-00712-6.
Fowler, M. & Rice, D. (2007). Patterns of enterprise application architecture. Addison-Wesley, ISBN 0-321-12742-0
Other resources:
Slides and annotations