Cartões CRC – Classe Responsabilidade Colaboração Análise Orientado a Objetos Prof. Wolley W. Silva
Objetivo: Aplicar a técnica dos cartões CRC para atribuição de responsabilidades e relacionamentos de cada classe.
Sistemas Orientados a Objetos Alan Kay formulou a chamada “Analogia biológica” http://pt.wikipedia.org/wiki/Alan_Kay
Sistemas Orientados a Objetos Objetos encapsulam tanto dados quanto comportamento. O comportamento de um objeto é definido de tal forma que ele possa cumprir com suas responsabilidades. Titulo Autor ISBN Cadastrar Consultar Atualizar Livro titulo autor isbn cadastrar consultar atualizar
Responsabilidade Uma responsabilidade é uma obrigação que um objeto tem para com o sistema no qual ele está inserido. Através delas, um objeto colabora (ajuda) com outros para que os objetivos do sistema sejam alcançados.
Responsabilidade Há basicamente dois tipos de Responsabilidades: Conhecer O objeto conhece e gerencia os seus dados privados encapsulados. O objeto conhece objetos relacionados. O objeto conhece coisas que ele pode derivar ou calcular. Fazer O objeto executa um método próprio. O objeto inicia ações em outros objetos. O objeto controla e coordena atividades em outros objetos.
Colaboração Se um objeto tem uma responsabilidade a qual não pode cumprir sozinho, ele deve requisitar colaborações de outros objetos.
Colaboração
Cartões CRC Ward Cunningham Kent Back Técnica desenvolvida para ensinar a “pensar orientado a objetos”. Enfatiza as responsabilidades e colaborações de cada objeto. http://www.ime.usp.br/~kon/MAC5714/aulas/Aula7.html
Modelo CRC Composto de um conjunto de cartões com o seguinte formato: Classe: Responsabilidade Colaboração
Ex: CRC Classes associadas Classe: Conta Corrente Responsabilidade Colaboração Saber o seu saldo Cliente Saber seu cliente Histórico de Transações Saber seu número Manter histórico de transações Realizar saques e depósitos atributos métodos
Diagrama de Caso de Uso Oficina Mecânica
Descrição UC05 – Compor Orçamento Através de terminal o mecânico seleciona um relato de problemas do veículo, O sistema disponibiliza a opção de compor um orçamento O mecânico adiciona os serviços que serão necessários como itens do orçamento Ao termino da elaboração, o sistema disponibiliza uma opção de salvar o orçamento Classes Métodos
Classes do Domínio
Exemplo: CRC
Cartão CRC: Classe-Responsabilidade Colaboração Classe: Cliente Colaboração Nome CPF Endereço Veículos Veiculo Cadastrar Consultar por CPF Atualizar Excluir
Cartão CRC: Classe-Responsabilidade Colaboração Classe: Problema Relatado Colaboração Data Cliente Veiculo Descrição do problema Cadastrar Consultar Atualizar Excluir
Cartão CRC: Classe-Responsabilidade Colaboração Classe: Veiculo Colaboração Marca Modelo Ano de Fabricação Placa Proprietário Cliente Cadastrar Consultar Atualizar Excluir
Cartão CRC: Classe-Responsabilidade Colaboração Classe: Orçamento Colaboração Data Dados do Cliente Cliente Problema relatado Problema Relatado Veiculo orçado Veiculo Itens do Orçamento Item de Orçamento Valor total Adicionar item Aprovar itens Remover item Calcular total Salvar
Cartão CRC: Classe-Responsabilidade Colaboração Classe: Item de Orçamento Colaboração Descrição do Serviço Serviço Quantidade Subtotal Calcular subtotal
Cartão CRC: Classe-Responsabilidade Colaboração Classe: Serviço Colaboração Código Descrição Preço Cadastrar Consultar Atualizar excluir
Diagrama de Classe
Considerações Uma classe não deve ter muitas responsabilidades, deve-se distribuir a inteligência do sistema Agrupar as responsabilidades conceitualmente relacionadas Considerar coesão
Referências Cópia do artigo disponível no FTP
Referências Bezerra, E. Princípios de Análise e Projeto Orientados a Objetos com UML. Ed. Campus, Cap 5. Fowler, Martin. UML Essencial: Um guia para liguagem de padrão, 3° edição, pp. 76 http://www.ime.usp.br/~kon/MAC5714/aulas/Aula7.html
Exercício: CRC – Classe Responsabilidade Colaboração Selecionar um casos de uso. Para um cenários: Identificar as classes candidatas Para cada classe candidata, criar um cartão CRC (um cartão por integrante do grupo); A partir dos cartões modelar um diagrama de classe