217 Diagramas de Sequência Exemplo Seja um sistema de gestão de contéudos. A especificação do use case Criar Conta de Blog vai ser detalhada, no que concerne à descrição da colaboração, num diagrama de sequência. Diagrama de Use Case:
218 Diagramas de Sequência Exemplo CMS A narrativa do use case apresentado é:
219 Diagramas de Sequência Exemplo CMS A primeira versão do diagrama de sequência mostra os participantes e as mensagens que são trocadas durante o use case. Mostram-se as interacções entre os actores externos e o sistema - é um diagrama de alto nível
220 Diagramas de Sequência Exemplo CMS O sistema não vai ser implementado como uma peça monolítica (uma única classe), o que significa que se deve acrescentar mais detalhe.
221 Diagramas de Sequência Exemplo CMS O diagrama anterior não mostra a criação do blog! Esse aspecto deve ser acrescentado ao detalhe do diagrama.
222 Diagramas de Sequência Exemplo CMS O objecto com a informação dos detalhes de um autor (authordetails) já não é necessário após a criação de newaccount, logo pode ser destruído.
223 Diagramas de Sequência Exemplo CMS A descrição do diagrama pode ser enriquecida com informação sobre a lógica condicional do controlo de fluxo.
224 Diagramas de Sequência Exemplo CMS Por forma a lidar com a complexidade do diagrama é possível estruturar uma interacção em vários diagramas.
225 Diagramas de Sequência Exemplo CMS Em que o sub-diagrama de sequência é:
226 Diagramas de Estado O diagrama de sequência mostra todas as mensagens trocadas durante a execução de um use case Especifica quais os objectos envolvidos Determina as mensagens Especifica a ordem pela qual as mensagens são trocadas O diagrama de classe para cada classe descreve: O estado (variáveis de instância) O comportamento (métodos) Onde é que se especifica o ciclo de vida de uma entidade (no nosso caso, uma classe)? Resposta: no diagrama de estados! logo, existe um diagrama de estado, por cada classe (relevante)
227... e agora sobre o trabalho...
228 Concepção Arquitectural - um exemplo Diagrama de packages
229 Concepção Arquitectural - um exemplo Interfaces definidas pela camada de apresentação
230 Concepção Arquitectural - um exemplo
231 Diagrama de classes de especificação
232 Concepção Arquitectural - um exemplo Diagrama de classes de implementação
233 Persistência Onde é que vai ser guardado o estado do sistema* Hipótese 1: fica sempre em memória e gravo no fim Hipótese 2: os dados estão sempre salvaguardados na base de dados Hipótese 3: uma combinação das duas? Hipótese 1: O que acontece se por alguma razão a máquina virtual tem um problema? (ou falha a alimentação eléctrica...) Para que é precisa uma base de dados? Performance? Consistência dos dados?
234 Persistência Hipótese 2: O que fazem os objectos em memória? São apenas representações temporárias dos dados na base de dados? Porque é que existem poucos elementos em memória? Hipótese 3: Que informação é que tenho em memória? Aquela que não muda Aquela informação em que tenho capacidade de sinalizar que mudou na BD e actualizar (refresh) a memória Problemas com aplicações multi-sessão (ou multi-posto) Não existe memória partilhada entre as diversas máquinas virtuais Mecanismos de caching permitem gerir de forma inteligente a carga da base de dados
Outras questões Que classes é que existem na Camada de Dados? Que métodos é que existem na camada de dados? Métodos de fabrico (factory methods) Uma entidade Um iterador sobre entidades