Design e Arquitecturas de Software

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 Barreiros

Grading 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