174 Modelo de Domínio vs Modelo da Aplicação O que é o modelo de domínio? Resposta: é antes de mais um glossário de projecto, porque Identifica os termos utilizados Representa as relações existentes entre esses termos Concretiza-se como: Um diagrama de classe com as entidades pertencentes ao domínio do problema e com os relacionamentos entre as entidades O diagrama deve conter informação sobre o negócio, nomeadamente no que respeita à identificação das relações e ao papel que as entidades desempenham nessa relação.
175 Modelo de Domínio (cont.) Aspectos fundamentais no processo de construção do modelo de domínio: O foco é colocado nos objectos do mundo real (do domínio do problema) Devem-se escolher as classes que sejam abstracções de entidades do modelo de domínio O modelo de domínio é a primeira versão do diagrama de classes Não confundir o modelo de dados com o modelo de domínio Embora os diagramas possam parecer semelhantes representam conceitos diferentes Uma tabela relaciona um conjunto de dados enquanto uma classe é um agregado de dados e comportamento
176 Modelo de Domínio (cont.) Não confundir um objecto com uma tabela Um objecto representa uma instância de uma entidade. Exemplo: a classe Aluno descreve os objectos que são alunos, mas não se supõem que guarda a informação de todos os alunos existentes. O diagrama de classes final pode não corresponder ao modelo de domínio Tipicamente não corresponde visto que o diagrama de classes é fruto de refinamento, tendo em conta aspectos de arquitectura (dependentes da tecnologia e do modelo de programação) Conceitos do modelo do domínio podem não existir no diagrama de classes como classes, mas corresponderem a atributos de uma (ou mais) classe(s), ou então serem concretizados por várias classes O modelo de domínio não contém referências a classes da camada de apresentação O diagrama de classes final é muito próximo da solução tecnológica a ser construída. O modelo de domínio é eficaz sobretudo ao nível dos conceitos e do entendimento do problema.
177 Exemplo: uma loja de livros online Lógica de negócio semelhante a uma Amazon (ou Barnes&Noble) O site tem micro-sites com as listas de livros dos vários editores Existe controlo de stock Os livros tem associada informação sobre quem o escreveu e a sua categoria bibliográfica Os livros no site tem associados comentários dos leitores e de crítica especializada O utilizador compõem um carrinho de compras com os livros que quer comprar Guarda-se sempre o histórico das ordens de compra efectuadas A compra pode ser feita recorrendo a diversos modos de pagamento É possível efectuar opções de pesquisa dos livros Etc...
178 Exemplo (uma loja online de livros) - 1ª versão
179 Exemplo (uma loja online de livros) - 2ª versão
180 Exemplo (uma loja online de livros) - versão final
181 Exemplo: uma biblioteca Modelo de Domínio Autor nome nacionalidade * * Publicaç ão isbn nº de património título ano editora data de aquisição custo contador de consultas / estado : (disponível,emprestada) * 1 Biblioteca nome morada telefone 1 * 1 * Requisição * número data de requisição prazo de devolução data de devolução Sócio número nome morada telefone data de inscrição validade da inscrição estado : (activo,inactivo) 1 Só se considera a existência dma instância
182 Exemplo: uma biblioteca Modelo de implementação Este é o modelo (de implementação) correcto?
183 Exemplo: Fábrica automática distribuída
184 Identificação dos Use Cases Use cases do operador da fábrica
185 Identificação dos Use Cases Aglutinação de use cases (poderiam ser expandidos) utilização de <<extend>> não é a solução ideal!
186 Identificação dos Use Cases Alguns actores são sistemas externos
187 Diagrama de classes conceptual
188 Diagrama de classes (especificação)
189 Diagrama de classes de contexto