Aula teórica 10/11/2003

Propaganda
Desenho e documentação de
arquitectura de software e de
aplicações empresariais
João Pascoal Faria
Laboratório de Engenharia de Software
10 de Novembro de 2003
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Definição de arquitectura de software



Arquitectura = desenho de alto nível
Sentido mais estrito: estrutura de alto nível do sistema de
software (nível mais elevado da decomposição do sistema em
partes)
Sentido mais lato: conjunto de decisões significativas acerca da
organização do sistema de software, compreendendo
• nível mais elevado da decomposição do sistema em partes (estrutura de alto
nível), normalmente apresentada segundo diferentes vistas
- vista lógica (arquitectura lógica)
- vista de classes (pelo menos coisas modeladas como classes)
- vistas físicas (arquitectura física)
- vista de componentes de software (empacotamento de software em unidades de produção e
distribuição/substituição independente)
- vista de deployment (infra-estrutura de máquinas e redes sobre a qual correm os
componentes de software)
- vista de processos (distribuição, concorrência)
• tipos de blocos básicos de construção de cada parte (classes Java, tabelas,
páginas HTML, etc.)
• especificação de comportamentos envolvendo colaborações entre as várias
partes do sistema (mecanismos importantes)
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Uma forma de reutilização de conhecimento (1)
fonte: http://www.fe.up.pt/~aaguiar/patterns/
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Uma forma de reutilização de conhecimento (2)
MS.NET
fonte: http://www.fe.up.pt/~aaguiar/patterns/
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Conceito de Padrão de Software
fonte: http://www.fe.up.pt/~aaguiar/patterns/
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Tipos de Padrões de Software

“Design Patterns”
• Os primeiros a merecer atenção alargada
• Incidem sobre soluções para problemas de projecto
• Popularizados pelo [Gamma95] e [Buschmann96]

“Architectural Patterns”
• Fornecem orientações em como estruturar sistemas e subsistemas de
software com o intuito de lhes conferir determinadas propriedades

“Idioms”
• Padrões de um nível de abstracção mais baixo por serem específicos
a uma determinada linguagem de programação
• Descrevem como implementar aspectos particulares recorrendo às
capacidades específicas de uma linguagem
fonte: http://www.fe.up.pt/~aaguiar/patterns/
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Forma dos Padrões de Software
fonte: http://www.fe.up.pt/~aaguiar/patterns/
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Exemplo de padrão de desenho – Padrão
Observer (1)
Intenção
Define a one-to-many dependency between objects so that when one
object changes state, all its dependents are notified and updated
automatically.
Exemplo
http://www.fe.up.pt/~jpf/teach/LES/Observer.htm
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Exemplo de padrão de desenho – Padrão
Observer (2)
Solução - Estrutura
http://www.fe.up.pt/~jpf/teach/LES/Observer.htm
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Exemplo de padrão de desenho – Padrão
Observer (3)
Solução - Colaborações
http://www.fe.up.pt/~jpf/teach/LES/Observer.htm
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Exemplo de padrão de arquitectura de aplicações
empresariais – Model View Controller
Controller Model View Controller (MVC) is one of the most quoted (and most misquoted) patterns
around. It started as a framework developed by Trygve Reenskaug for the Smalltalk platform in
the late 1970s. Since then it has played an influential role in most UI frameworks and in the
thinking about UI design. (...)
fonte: http://www.martinfowler.com/eaaCatalog/modelViewController.html
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Padrões de software
Bibliografia



[Gamma95] Erich Gamma, Richard Helm, Ralph Johnson,
and John Vlissides, Design Patterns – Elements of Reusable
Object-Oriented Software, Addison-Wesley, 1995.
[Buschmann96] F. Buschmann, R. Meunier, H. Rohnert, P.
Sommerlad, M. Stal, Pattern
[Fowler03] Martin Fowler, Patterns of Enterprise Application
Architecture , Addison-Wesley, 2003
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Arquitectura de aplicações Web com
Java no servidor (1)
fonte: http://www.fe.up.pt/~jlopes/teach/2002-03/AW/foils/01-intro-appl-web.pdf
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Arquitectura de aplicações Web em
plataforma Java no servidor (2)
fonte: http://www.fe.up.pt/~jlopes/teach/2002-03/AW/foils/01-intro-appl-web.pdf
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Arquitectura de aplicações Web em
plataforma Java no servidor (3)
fonte: http://www.fe.up.pt/~jlopes/teach/2002-03/AW/foils/01-intro-appl-web.pdf
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Arquitectura de aplicações Web em
Microsoft.NET (1)
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Arquitectura de aplicações Web em
Microsoft.NET (2)
Desenho e documentação de arquitectura de software e de aplicações empresariais,
LEIC, LES, João Pascoal Faria, 10 de Novembro de 2003
‹#›
Download