Escolar Documentos
Profissional Documentos
Cultura Documentos
Mário Sitoe
Sumário
Projecto de Software
➢ Modularização e Independência Funcional
➢ Refinamento, Projecto Conceptual
➢ Projecto de Interface
➢ Projecto de BD
➢ Projecto de Arquitectura
➢ Projecto Detalhado
➢ Padrões de Arquitectura
➢ Documento de Projecto
Mário Sitoe
Projecto de arquitectura
Comunicação de stakeholders
➢ A arquitectura pode ser usada como um foco de discussão pelos stakeholders
do sistema.
Análise de sistemas
➢ Possibilita maior compreensão do sistema e da implementação dos
requisitos do sistema.
Embora cada sistema seja único, é comum que sistemas do mesmo domínio
tenham arquitecturas similares.
➢ Um padrão de arquitetura é uma descrição estilizada das boas práticas de
projecto, que tem sido experimentadas e testadas em diferentes ambientes.
Exemplos de refinamentos
➢ Incluir outros componentes e novos relacionamentos
➢ Definir padrões de projecto e idiomas em fases subsequentes
Padrões de arquitectura
Arquitectura em camadas
➢ Usada para modelar a interface dos subsistemas.
➢ Organiza o sistema em um conjunto de camadas: Cada camada oferece um conjunto
de serviços.
Vantagens Desvantagens
➢ Favorece o modelo de desenvolvimento ➢ Estruturar o sistema em camadas não é trivial
incremental ➢ Muitas camadas podem comprometer o
➢ As camadas podem ser facilmente substituídas desempenho do sistema
por equivalentes. ➢ A requisição tem que trafegar pelas várias
➢ Mudanças em uma camada teoricamente só camadas até ser atendida
impacta a camada superior
➢ Camadas superiores podem ser independentes
de plataforma/hardware
Arquitectura em camadas
Exemplo: Sistema de compartilhamento de documentos com direitos autorais, em
bibliotecas diferentes.
Arquitectura de repositório (blackboard)
Subsistemas devem trocar dados. O que pode ser feito de duas maneiras:
➢ Dados compartilhados são guardados em um banco de dados
repositório e podem ser acessados por todos os subsistemas;
➢ Cada subsistema mantém seu próprio banco de dados e dados
explicitamente para outros subsistemas.
Vantagens Desvantagens
➢ Maneira eficiente de compartilhar dados ➢ Os subsistemas devem entender o formato dos
➢ Backup é centralizado (mais fácil) dados gravados
➢ Formas de proteção dos dados podem ser ➢ Manter e evoluir grandes volumes de dados pode
implementadas ser difícil / caro
➢ Os subsistemas que gravam dados não ➢ Subsistemas diferentes podem ter requisitos
necessitam saber quem os usa diferentes
➢ Fácil integrar novos subsistemas ➢ Mais segurança ou maior disponibilidade
➢ Dificuldade para distribuir os dados
➢ Dados redundantes ou inconsistentes
Arquitectura de repositório (blackboard)
Pode ser referido como um modelo de dutos e filtros (como no shell do UNIX).
Arquitectura de Dutos e Filtros
Vantagens Desvantagens
➢ O módulo de transformação (filtro) é bem ➢ O formato dos dados trafegados devem ser
modular acordados entre os módulos.
➢ Facilmente reusável e substituível ➢ Pode haver um overhead causado pela
➢ O estilo de workflow é aderente a muitos padronização dos dados
processos de negócios ➢ Incompatibilidade no formato dos dados pode
➢ É simples evoluir o sistema pela adição de filtros dificultar o reuso de filtros
➢ Se aplica tanto a sistemas sequênciais quanto a
sistemas concorrentes
Arquitectura Cliente – Servidor
Vantagens Desvantagens
➢ Distribuição fácil e directa de dados ➢ Não prevê modelo de dados compartilhado
➢ Uso efectivo dos recursos ➢ Subsistemas usam diferentes organizações de
➢ Fácil alocação de novos servidores ou dados
actulização dos existententes ➢ Pode haver redundância de serviços em
diferentes servidores
Padrão Modelo-Visão-Controlador (MVC)
Vantagens
Desvantagens
➢ Permite que os dados sejam alterados de forma
➢ Complexidade excessiva quando o modelo de
independente de sua representação (e vice
dados e de interações é muito simples
versa)
➢ A estrutura do padrão pode impor código
➢ Apoia a apresentação dos mesmos dados de
adicional desnecessário
maneiras diferentes
➢ Facilita a distribuição do componente de visão
➢ Os dados são mantidos centralizados e
protegidos.
Diagramas de classe
Diagramas de classe
Os atributos de uma classe são a identificação de cada objecto de uma classe. Além do
nome o atributo deve ser o tipo de dado que será armazenado.
Diagramas de classe
Tipos de Visibilidade
➢ Pública (+)
O atributo ou método pode ser usado por qualquer classe
➢ Protegida (#)
Somente a classe ou subclasses terão acesso
➢ Privada (-)
Somente a classe terá acesso
Relacionamento entre classes
0...* Muitos
1...* Um ou muitos