Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 Análise e Projeto de Sistemas Aula 4 Modelagem de Classes de Domínio Prof. Rafael Targino rtargino@unicarioca.edu.br 2 O conteúdo desta aula foi parcialmente baseado nos slides disponíveis do livro: Engenharia de Requisitos Ricardo de Almeida Falbo, Notas de Aula, UFES, 2012 Princípios de Análise e Projeto de Sistemas com UML Eduardo Bezerra, Campus, 1a edição, 2006 2 3 Resumo Até Aqui • Paradigma Orientado a Objetos • Processo de Desenvolvimento de Software • Modelagem de Negócios com Diagrama de Atividades • Modelagem de Casos de Uso 4 Conteúdo da Aula • Modelagem de Classes de Domínio – Identificando as Classes – Identificando relacionamentos entre Classes 3 5 Análise de Domínio • Descoberta das informações que são gerenciadas no sistema – Representação e transformação da informação. • Ocorre em pelo menos duas fases do Processo Unificado. – Na fase de concepção (RUP) pode-se fazer um modelo conceitual preliminar. – Na fase de elaboração (RUP) este modelo é refinado e complementado. 6 Caracterização do Modelo Conceitual • Deve ser independente da solução tecnológica que virá a ser adotada. • Deve conter apenas elementos referentes ao domínio do problema em questão. • O diagrama da UML utilizado para representar o modelo conceitual é o diagrama de classes. • O modelo de classes é composto desse diagrama e da descrição textual associada. 4 7 Modelo de Classes • O modelo de classes evolui durante o desenvolvimento do sistema. –À medida que o sistema é desenvolvido, o modelo de classes é incrementado com novos detalhes. • Três níveis sucessivos de abstração: –Domínio –Especificação – Implementação. 8 Modelo de classes • O modelo de classes de domínio representa as classes no domínio do negócio em questão. Não leva em consideração restrições inerentes à tecnologia a ser utilizada na solução de um problema. • O modelo de classes de especificação é obtido através da adição de detalhes ao modelo anterior conforme a solução de software escolhida. • O modelo de classes de implementação corresponde à implementação das classes em alguma linguagem de programação. Processo de Desenvolvi- mento de Software 5 9 Classes • Uma classe representa um grupo de objetos semelhantes. • Uma classe descreve esses objetos através de atributos e operações. • Os atributos correspondem às informações que um objeto armazena. • As operações correspondem às ações que um objeto sabe realizar. 10 Atributos • São os tipos escalares e representam uma característica ou qualidade associada a uma classe • NÃO são estruturas de dados como listas, tabelas e arrays • São sempre representados no contexto de uma classe 6 11 Identificando Classes • De uma forma geral, a identificação de classes se divide em duas atividades. – Primeiramente, classes candidatas são identificadas. – Depois disso, são aplicados alguns princípios para eliminar classes candidatas desnecessárias. • Identificar possíveis classes para um sistema não é complicado; o difícil é eliminar deste conjunto o que não é necessário. 12 Identificando Classes • A identificação de classes pode ser feita a partir dos documentos produzidos na Elicitação e Análise de Requisitos – Identificação Inicial • Documento de Descrição do Problema / Descrição do Negócio – Identificação Posterior • Modelo de Casos de Uso • Diagrama de Atividades 7 13 Identificando Classes • Cada Documento de Descrição do Negócio ou Caso de Uso é analisado para identificar classes candidatas. • Premissa: a partir da descrição textual dos documentos, podem-se derivar as classes do sistema. – a existência de uma classe em um sistema só pode se justificar se ela participa de alguma forma para o comportamento externamente visível do sistema. 14 Identificando Classes • Os substantivos que aparecem no texto são destacados. – São também consideradas locuções equivalentes a substantivos. • Sinônimos são removidos. • Vantagem: abordagem é bastante simples. • Desvantagem: depende de como o texto e os casos de uso foram escritos. – em linguagem natural, as formas de expressar uma mesma idéia são bastante numerosas. 8 15 Identificando Atributos de uma Classe • Os textos que indicam posse e responsabilidade estão relacionado a atributos de uma determinada classe – Um pedido possui o valor total e a data prevista de entrega – Um cliente tem nome, idade e sexo – Uma venda acontece em uma determinada data 9 17 Resultado 18 Notação para uma Classe • Representada através de uma “caixa” com no máximo três compartimentos exibidos. • Notação utilizada depende do nível de abstração desejado. 10 19 Exemplo (Classe ContaBancária) 20 Exercício • Elaborar um diagrama de classes a partir do processo de vistoria de um carro no Detran – O motorista agenda a vistoria do seu veículo para uma determinada data. O veículo pode ser um carro, moto ou caminhão. O agendamento da vistoria pode acontecer por 2 meios: telefone ou internet. – O veículo possui um proprietário, mas outra pessoa pode fazer a vistoria, desde que ela seja devidamente registrada e autorizada – A vistoria pode ser feita em vários postos. Os postos estão localizados em bairros e possuem uma quantidade de cabines determinadas. Os maiores postos possuem 12 cabines, os menores, apenas 4. – A vistoria possui 2 tipos de avaliação. A avaliação de segurança e a avaliação de emissão de CO2. Ambas as avaliações podem ter resultados positivos ou negativos durante a vistoria. • Elaborar um diagrama de classes a partir do processo de vistoria de um carro no Detran – O motorista agenda a vistoria do seu veículo para uma determinada data. O veículo pode ser um carro, moto ou caminhão. O agendamento da vistoria pode acontecer por 2 meios: telefone ou internet. – O veículo possui um proprietário, mas outra pessoa pode fazer a vistoria, desde que ela seja devidamente registrada e autorizada – A vistoria pode ser feita em vários postos. Os postos estão localizados em bairros e possuem uma quantidade de cabines determinadas. Os maiores postos possuem 12 cabines, os menores, apenas 4. – A vistoria possui 2 tipos de avaliação. A avaliação de segurança e a avaliação de emissão de CO2. Apenas veículos com idade maior que 5 anos fazem a avaliação de CO2. Ambas as avaliações podem ter resultados positivos ou negativos durante a vistoria. 11 21 Conteúdo da Aula • Modelagem de Classes de Domínio – Identificando as Classes – Identificando relacionamentos entre Classes 22 Associações • Para representar o fato de que objetos podem se relacionar uns com os outros, utiliza-se a associação. • Uma associação representa relacionamentos (ligações)que são formados entre objetos durante a execução do sistema. – embora as associações sejam representadas entre classes do diagrama, tais associações representam ligações possíveis entre objetos das classes envolvidas. 12 23 Identificação de Associações entre Classes • Os verbos que são usado para conectar um substantivo a outro (que já foram identificados na etapa anterior) podem indicar possíveis associações entre classes – O Comprador compra Livros – O Comprador seleciona um Endereço para Entregra 24 Identificação de Associações entre Classes • O fato de uma classe possuir colaboradores indica que devem existir relacionamentos entre estes últimos e a classe. – Isto porque um objeto precisa conhecer o outro para poder lhe fazer requisições. – Portanto, para criar associações, verifique os colaboradores de uma classe.• O raciocínio para definir associações reflexivas, ternárias e agregações é o mesmo. 13 25 Notação para uma Associação • Representada através de um segmento de reta ligando as classes cujos objetos se relacionam. • Exemplos: Cliente Produto ContaCorrente HistóricoTransações Hóspede Quarto 26 Multiplicidades • Representam a informação dos limites inferior e superior da quantidade de objetos aos quais um outro objeto pode estar associado. • Cada associação em um diagrama de classes possui duas multiplicidades, uma em cada extremo da linha de associação. 14 27 Multiplicidades Nome Simbologia Apenas Um 1..1 (ou 1) Zero ou Muitos 0..* (ou *) Um ou Muitos 1..* Zero ou Um 0..1 Intervalo Específico l i ..l s 28 Exemplo (Multiplicidade) • Pode haver um cliente que esteja associado a vários pedidos. • Pode haver um cliente que não esteja associado a pedido algum. • Um pedido está associado a um, e somente um, cliente. Cliente Pedido 1 0..* 15 29 Participação • Uma característica de uma associação que indica a necessidade (ou não) da existência desta associação entre objetos. • A participação pode ser obrigatória ou opcional. – Se o valor mínimo da multiplicidade de uma associação é igual a 1 (um), significa que a participação é obrigatória – Caso contrário, a participação é opcional. 30 Armadilha da Obrigatoriedade • A toda venda corresponde um pagamento. • Mas isso não torna a associação obrigatória, pois a venda pode existir sem um pagamento. • Um dia ela possivelmente será paga, mas ela pode existir sem o pagamento por algum tempo. • Então esse papel não é obrigatório para a venda 16 31 Nome de associação, direção de leitura e papéis • Para melhor esclarecer o significado de uma associação no diagrama de classes, a UML define três recursos de notação: – Nome da associação: fornece algum significado semântico a mesma. – Direção de leitura: indica como a associação deve ser lida – Papel: para representar um papel específico em uma associação. 32 Exemplo (Nome de Associação, Direção de Leitura e Papéis) contratante * contratado * Contrata Organização Indivíduo Papel Nome da associação Papel Direção de leitura 17 33 Direção das Associações • Uma associação, no modelo conceitual, deve ser não-direcional. 34 Agregação • É um caso especial da associação – consequentemente, multiplicidades, participações, papéis, etc. podem ser usados igualmente • Utilizada para representar conexões que guardam uma relação todo-parte entre si. • Em uma agregação, um objeto está contido no outro, ao contrário de uma associação. • Onde se puder utilizar uma agregação, uma associação também poderá ser utilizada. Notação para Agregação: JogadorEquipe * membro * AssociaçãoEsportiva * * Afiliada 18 35 Agregação • Características particulares: – Agregações são assimétricas: se um objeto A é parte de um objeto B, B não pode ser parte de A. – Agregações propagam comportamento, no sentido de que um comportamento que se aplica a um todo automaticamente se aplica as suas partes. • Sejam duas classes associadas, X e Y. Se uma das perguntas a seguir for respondida com um sim, provavelmente há uma agregação onde X é todo e Y é parte. – X tem um ou mais Y? – Y é parte de X? 36 Composição • A Composição é uma agregação mais forte; nela, a existência do Objeto-Parte NÃO faz sentido se o Objeto-Todo não existir. • Exemplo: itemPedido não existe se não existir Pedido 19 37 Associações Reflexivas • Associa objetos da mesma classe. – Cada objeto tem um papel distinto na associação. • A utilização de papéis é bastante importante para evitar ambigüidades na leitura da associação. • Uma associação reflexiva não indica que um objeto se associa com ele próprio. – Ao contrário, indica que objetos de uma mesma classe se associam 38 Exemplo (Associação Reflexiva) Empregado supervisor 1 supervisionado * Supervisão 20 39 Herança (Generalização e Especialização) • Usada para fatorar propriedades. • Só existe entre classes (não entre instâncias) • Se A é generalização de B então instâncias de B também são instâncias de A e possuem os mesmos atributos e associações. 40 Classe Associativa • É uma classe que está ligada a uma associação, ao invés de estar ligada a outras classes. • É normalmente necessária quando duas ou mais classes estão associadas, e é necessário manter informações sobre esta associação. • Uma classe associativa pode estar ligada a associações de qualquer tipo de conectividade. 21 41 Notação para uma Classe Associativa • Representada pela notação utilizada para uma classe. A diferença é que esta classe é ligada a uma associação. • Exemplo: nome telefone endereço Pessoa razãoSocial endereço Empresa salário dataContratação Emprego * empregado * empregador 42 Associações n-árias • São utilizadas para representar a associação existente entre objetos de n classes. • Uma associação ternária são uma caso mais comum (menos raro) de associação n- ária (n = 3). • Na notação da UML, as linhas de associação se interceptam em um losango. 22 43 Exemplo (Associação Ternária) Uso nome Técnico modelo Computador nome verba Projeto 1 1 * Exercício – Verdadeiro ou Falso • A partir deste modelo foram elaboradas as seguintes assertivas: I. O modelo permite identificar inequivocamente as cidades de origem e destino de um voo. II. Um piloto só pode comandar os voos da empresa para a qual trabalha. III. Toda cidade é atendida por pelo menos um voo. 23 45 Exercício – Verdadeiro ou Falso • I. FALSO - O relacionamento liga não permite distinguir origem e destino, talvez um atributo seja suficiente para isso mas este não é especificado no diagrama. • II. FALSO - Esta condição poderia ser satisfeita fazendo-se um relacionamento ternário entre as três entidades. Da forma como as relações estão definidas não há qualquer relação entre os o "trabalha", o "comanda" e o "pertence", logo um piloto pode trabalhar para uma empresa e comandar um outro avião que não pertença a esta. • III. FALSO - Toda cidade é atendida por pelo menos um aeroporto, entretanto, um aeroporto pode não ser ligado por qualquer voo 46 Exercício • Elaborar um diagrama de classes a partir do processo de vistoria de um carro no Detran – O motorista agenda a vistoria do seu veículo para uma determinada data. O veículo pode ser um carro, moto ou caminhão. O agendamento da vistoria pode acontecer por 2 meios: telefone ou internet. – O veículo possui um proprietário, mas outra pessoa pode fazer a vistoria, desde que ela seja devidamente registrada e autorizada – A vistoria pode ser feita em vários postos. Os postos estão localizados em bairros e possuem uma quantidade de cabines determinadas. Os maiores postos possuem 12 cabines, os menores, apenas 4. – A vistoria possui 2 tipos de avaliação. A avaliação de segurança e a avaliação de emissão de CO2. Ambas as avaliações podem ter resultados positivos ou negativos durante a vistoria. • Elaborar um diagrama de classes a partir do processo de vistoria de um carro no Detran – O motorista agenda a vistoria do seu veículo para uma determinada data. O veículo pode ser um carro, moto ou caminhão. O agendamento da vistoria pode acontecer por 2 meios: telefone ou internet. – O veículo possui um proprietário, mas outra pessoa pode fazer a vistoria, desde que ela seja devidamente registrada e autorizada – A vistoria pode ser feitaem vários postos. Os postos estão localizados em bairros e possuem uma quantidade de cabines determinadas. Os maiores postos possuem 12 cabines, os menores, apenas 4. – A vistoria possui 2 tipos de avaliação. A avaliação de segurança e a avaliação de emissão de CO2. Apenas veículos com idade maior que 5 anos fazem a avaliação de CO2. Ambas as avaliações podem ter resultados positivos ou negativos durante a vistoria. 24 47 Exercício – parte 2 • Ao chegar em um posto de vistoria o motorista deve informar o código do agendamento ao responsável pela triagem. O responsável pela triagem irá confirmar o agendamento no sistema, conferir a documentação e indicar o número da cabine que o motorista deverá se dirigir. • Se as avaliações foram positivas, o motorista é encaminhado para o protocolo de entrega de documento. Neste protocolo, ele espera ser chamado, enquanto o setor administrativo imprime o novo documento do veículo. • Se a avaliação for negativa, o motorista é liberado para resolver o problema e retornar para uma nova vistoria. Se ele resolver o problema no mesmo dia, ele pode retornar o posto, passar novamente pela triagem e fazer uma nova vistoria apenas no item que foi reprovado. Neste caso o avaliador realizará uma reavaliação de um ou mais itens de vistoria e informará o resultado, assim como fez na avaliação inicial. • Se o motorista não resolver o problema no mesmo dia, ele deverá agendar uma nova vistoria.
Compartilhar