Software Architectures and Design Patterns
Cod: 22304
Department: DCET
ECTS: 6
Scientific area: Computer Engineering
Total working hours: 156
Total contact time: 30

This CU aims to identify the need and the opportunity to reuse standard solutions for typical problems in software development and to study the most well-known software architectures and standards. It is also intended, in the face of a specific problem, to identify the architectures and standards that suit their resolution and implement them, using quality practices in software engineering.

Web Programming
Web Page
Scripting

At the end of the training process in this curricular unit, students should be able to:

  1. Understand the quality problems that are resolvable or minimized through standardized solutions;
  2. Know the most known software architectures and standards;
  3. Know and apply techniques for implementing quality practices in software engineering.

  1. Introduction to architectural styles and design patterns.
  2. Architectural styles: MVC, stratified, repository, client-server, routing and filtering.
  3. Creation patterns: Abstract Factory; Builder; Factory Method; Prototype; Singleton.
  4. Structure standards: Adapter; Bridge; Composite; Decorator; Façade; Flyweight; Proxy.
  5. Patterns of behavior; Chain of responsibility; Command; Interpreter; Iterator; Mediator; Memento; Observer; State; Strategy; Template Method; Visitor.
  6. Software qualities and implementation techniques: simplicity, traceability, homogeneity, conformity with the design, independence to encourage reuse, weak coupling with strong cohesion, intelligibility, adaptability and maintenance.

Main:

  • Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides. (1994) Design Patterns: Elements of Reusable Object-Oriented Software, Addison-Wesley, ISBN13:9780201633610(Brazilian Portuguese Version: Gamma, E. (2009). Padrões de projetos: soluções reutilizáveis. Bookman editora.)

Complementary:

  • Alan Shalloway, James R. Trott. (2004) Design Patterns Explained: A New Perspective on Object-Oriented Design, 2nd Edition, AddisonWesley; ISBN13: 9780321247148



 

Evaluation is made on individual basis and it involves the coexistence of two modes: continuous assessment (60%) and final evaluation (40%). Further information is detailed in the Learning Agreement of the course unit.