Baixe o app para aproveitar ainda mais
Prévia do material em texto
Análise e Projeto de Sistemas OOAnálise e Projeto de Sistemas OO Modelagem de Modelagem de DomínioDomínioDomínioDomínio Diagrama de ClasseDiagrama de Classe Apresentação § Modelagem de domínio § Derivação do modelo de domínio de um sistema vDiagrama de classes Modelagem de domínio § O termo domínio é utilizado para denotar ou agrupar um conjunto de sistemas ou de áreas funcionais que exibam funcionalidades similares. § Exemplos de domínio incluem:§ Exemplos de domínio incluem: v Domínio de Telecomunicações v Domínio Logístico Atacadista v Domínio Bancário v Domínio de Seguros de Saúde v Domínio Acadêmico Escolar Modelo de domínio – características gerais § Um modelo de domínio é um artefato comum em várias metodologias vRUP ou métodos ágeis § Usado para expressar um determinado domínio, normalmente em linguagem UML. Modelo de domínio – características específicas 1. Um modelo de domínio é um produto da modelagem de negócios v Representa, em certa escala, o negócio sendo modelado e compreendido. 2. Deve ser realizado inicialmente pelos 2. Deve ser realizado inicialmente pelos analistas de negócios e usuários do projeto, e revisado e complementado pelo máximo de participantes de um projeto. n O modelo de domínio deve ser um artefato colaborativo, compartilhado por todo o time do projeto. Modelo de domínio – características específicas 3. Um modelo de domínio captura o vocabulário do sistema ou negócio sob modelagem. n Exemplo: um modelo de domínio de um sistema acadêmico de uma faculdade irá possuir os elementos Aluno, Professor, Curso, Disciplina ou Matrícula, entre diversos outros. diversos outros. 4. Um modelo de domínio é uma representação lógica e estrutural de elementos do domínio e seus relacionamentos. n Um diagrama de classes UML possui os elementos necessários para esta estruturação. n Os conceitos de classes, associações e generalizações são suficientes para estruturar um modelo de domínio. Modelo de domínio – características específicas 5. Um modelo de domínio expressa uma visão conceitual preliminar acerca de um sistema 6. Um modelo de domínio deve ser feito no começo do projeto.começo do projeto. 7. O objetivo do modelo de domínio é capturar o negócio e servir de insumo para a geração de modelos mais formais como o diagrama de classes ou o DER e depois o código executável. Modelo de classes de um domínio § Representar classes de domínio do negócio significa: v Descrever cada problema representado pelos casos de uso, do sistema a ser desenvolvido, sem sistema a ser desenvolvido, sem considerar características da solução, tais como: l Tecnologia a ser utilizada; l Linguagem de programação; l Ferramentas de desenho de telas e relatórios. Identificação de classes § Classes v Uma classe é uma descrição de um conjunto de objetos que compartilham os mesmos atributos, operações, os mesmos atributos, operações, relacionamentos e semântica v Classes bem-estruturadas formam uma parte de uma distribuição equilibrada de responsabilidades em um sistema Identificação de classes § Representação de classes v Uma classe é representada graficamente como um retângulo v Características das classes: atributos, operações e responsabilidadesoperações e responsabilidades v Notação Nome da ClasseNome da Classe Atributos da Classe Operações da Classe Identificação de classes § Representação de Classes v Podem ser exibidos somente os compartimentos desejados segundo o nível de abstração requerido no momento v Os nomes das classes são substantivos ou expressões breves, definidos a partir do vocabulário expressões breves, definidos a partir do vocabulário do sistema cuja modelagem está sendo feita. Identificação de classes § Passos para facilitar a identificação de classes do sistema: v Estude o domínio da aplicação Faça uma observação geral no ambiente real v Faça uma observação geral no ambiente real onde existe o problema v Procure ouvir atentamente os especialistas do domínio do problema v Observe outros sistemas no mesmo domínio ou em domínios semelhantes Identificação de classes § Heurísticas para descobrir potenciais candidatos a classes v Entidades que são parte do domínio de informação do problema v Ocorrências ou eventos que precisam ser registrados e v Ocorrências ou eventos que precisam ser registrados e lembrados pelo sistema v Papéis desempenhados pelas diferentes pessoas que interagem direta ou indiretamente com o sistema v Unidades organizacionais que possam ser relevantes para o sistema v Locais físicos e geográficos importantes no sistema Exemplo: locadora de vídeo § Controle de Acervo v Título v Fita v Classe Coisas que são parte do domínio de informação do problemav Classe v Categoria v Distribuidor v Funcionário problema Papéis desempenhados pelas pessoas Exemplo: locadora de vídeo § Atendimento a Clientes v Cliente v Locação v Reserva Eventos ou ocorrências de ações que precisam ser registradas pelo sistema Papéis desempenhados pelas pessoas v Reserva v Pagamento v Cheque Coisas que são parte do domínio de informação do problema precisam ser registradas pelo sistema Identificação de classes § Uma boa classe capta uma, e apenas uma, abstração. Ela deve ter um tema principal. v Ex: Uma classe que mantem as informações do aluno e mais as disciplinas que ele cursou não é aluno e mais as disciplinas que ele cursou não é uma boa classe. => crie duas classes : Aluno + DisciplinaCursada Exercício § Identifique Classes nos Problemas: v Sistema acadêmico v Pet shop Especificação de atributos § Atributos v A estrutura de uma classe é representada por seus atributos v Atributos podem ser encontrados pelo exame das definições de classes, requisitos de problemas e definições de classes, requisitos de problemas e pela aplicação do conhecimento do domínio Cada aluno possui um nome e um número de matrícula Aluno nroMatricula nomeAluno Especificação de atributos § Uma classe pode ter qualquer numero de atributos ou mesmo nenhum atributo. § Os atributos podem ser representados exibindo apenas o seu nome. § O nome de um atributo pode ser um texto, como § O nome de um atributo pode ser um texto, como os nomes das classes, o nome de um atributo é um substantivo ou expressão que, breve, representa alguma propriedade da classe correspondente. Operações § Operações v Uma operação é uma abstração de algo que pode ser feito com um objeto e que é compartilhado por todos os objetos dessa classe l É a implementação de um serviço que pode ser solicitado por algum objeto. v Uma classe pode ter qualquer número de operações ou até nenhuma operação Exemplo § Classe ContaBancária Identificação de relacionamentos § Relacionamentos entre classes v Classes colaboram umas com as outras através de relacionamentos v Um relacionamento é uma conexão entre itens v Relacionamentos apresentam caminhos para a v Relacionamentos apresentam caminhos para a comunicação entre os objetos v Há três tipos de relacionamentos: l Associação (incluindo Agregação) l Generalização l Dependência Identificação de relacionamentos § Associações: v Uma associação é um relacionamento estrutural que especifica objetos de um item conectados a objetos de outro item v São válidas associações entre objetos de uma mesma v São válidas associações entre objetos de uma mesma classe v Uma associação é representada graficamente como uma linha sólida conectando a mesma classe ou classes diferentes Identificação de relacionamentos § Associações e multiplicidades: v Associações são conexões normalmentebidirecionais entre as classes (binárias) v É possível ter associações conectando mais que duas v É possível ter associações conectando mais que duas classes (n-árias) v Multiplicidade indica quantos objetos podem participar de um dado relacionamento, ou seja, ela indica as fronteiras inferior e superior para os objetos participantes Construindo um diagrama de classes § Na fase de análise constrói-se primeiramente um diagrama de classes sem se preocupar em definir os métodos, ao qual chamaremos de Modelo Conceitual § Na fase de projeto os métodos são adicionados e o Modelo Conceitual é refinado gerando o Diagrama de Classes Modelo Conceitual § Representação de conceitos no domínio do problema § Deve mostrar: conceitos, associações entre§ Deve mostrar: conceitos, associações entre conceitos e atributos de conceitos (na fase de análise, não se preocupa ainda em representar métodos os serviços) Criando um diagrama de classes – Perspectiva Conceitual 1. 1. Liste os conceitos candidatos para os casos de usos em questão usando a lista de categorias comuns e identificação textual de nomes. 2. Desenhe-os em um modelo conceitual. 3. Adicione as associações necessárias para registrar os relacionamentos para os quais é preciso preservar alguma memória 4. Adicione os atributos necessários para cumprir os requisitos de informação. Identificando Conceitos § É uma entidade (idéia, coisa ou objeto) do mundo real. § Um bom modelo conceitual deve superestimar o número de conceitos.o número de conceitos. § Os conceitos são associados ao estereótipo de classe << entidade >> v um estereótipo para uma classe UML é um classificador que mostra o tipo ao qual a classe pertence. Identificando Conceitos (Entidades) – Regras Úteis § É melhor especificar demais do que de menos § Não exclua entidades simplesmente porque os requisitos não indicam a necessidade de guardar informações sobre eles (comum em projeto de BD)BD) § Comece fazendo uma lista de entidades candidatos a partir de um checklist. § Considere os substantivos e frases nominais nas descrições textuais do domínio do problema como possíveis candidatos a entidades ou atributos Checklist: Classes Entidades Típicas Classes Entidades Típicas Identificando Entidades a partir dos Casos de Uso Entidades de Relatório § Não incluir no modelo conceitual quando: vToda informação contida no relatório é derivada de outras fontes § Incluir no modelo conceitual quando:§ Incluir no modelo conceitual quando: vRelatório tem um papel especial em termos das regras de negócio l Ex.: Recibo de venda dá direito à devolução dos itens comprados
Compartilhar