Projeto Orientado a Objetos Projeto Orientado a Objetos A análise e o projeto orientados a objetos tratam do problema do desenvolvimento de sistemas grandes e complexos, sujeitos à mudanças. Na construção destes sistemas, a programação de componentes individuais frequentemente não é o problema. O problema maior consiste em organizar tais componentes de modo a alcançarmos a funcionalidade desejada. Objetivos da Fase de Projeto identificar as classes (Que tipos de objetos temos?) identificar a funcionalidade de cada classe (O que cada objeto faz?) identificar os relacionamentos entre as classes Projeto Orientado a Objetos As informações coletadas na fase de projeto constituem-se na base necessária para aimplementação. Um bom projeto torna a implementação mais fácil e mais rápida o que resultará num produto mais confiável. É necessário fazer de alguma técnica para identificar classes e seus relacionamentos. Obtendo Classes e Métodos Método para encontrar objetos e suas classes: identifique os substantivos na especificação dos requisitos. Procedimento para encontrar métodos: identifique os verbos na especificação dos requerimentos. Exemplo de Projeto: Lista Telefônica Computadorizada Especificação dos requisitos: “Deseja-se criar uma lista telefônica computadorizada. A lista deve conter informações de cada pessoa da universidade professores, técnicos e alunos. O usuário da lista pode então consultar estas informações. O administrador da lista, usando uma senha, pode inserir novas informações, remover informações existentes, modificar informações existentes, imprimir a lista, imprimirinformações sobre os alunos ou imprimir informações sobre os professores.” Exemplo de Projeto: Lista Telefônica Computadorizada (cont.) Identificando as classes candidatas. Para isto devese listar todos os substantivos que apareçam na especificação. São eles: Lista Telefônica Computadorizada, lista, universidade, informações, pessoa, estudante, professor, aluno, técnico, usuário, administrador, senha. Exemplo de Projeto: Lista Telefônica Computadorizada (cont.) identificar as operações candidatas. Listar todos os verbos da especificação. São eles: Deseja-se criar, deve conter, consultar informações, usar senha, remover informação existente, modificar informação existente, imprimir lista, imprimir informações de alunos, imprimir informações de professores Exemplo de Projeto: Lista Telefônica Computadorizada (cont.) eliminar classes e operações desnecessárias e sinônimas. Para exemplificar: Podemos tornar as classes candidatas lista telefônica computadorizada e lista telefônica numa simples classe ListaTelefônica. Da mesma forma, as classes candidatas informações e pessoa podem compor uma única classe Pessoa. Além disso, todas as operações para impressão podem ser combinadas numaúnica com as diferentes funcionalidades expressas por meio de parâmetros. Exemplo de Projeto: Lista Telefônica Computadorizada (cont.) Associe as operações com as classes apropriadas. Por exemplo, se pode associar as operações buscar, inserir, remover e modificar com a classe ListaTelefônica. Algumas vezes pode haver uma escolha sobre onde associar a operação. Por exemplo, inserir a pessoa numa lista telefônica poderia ser uma operação de Pessoa ou uma operação de ListaTelefônica. Exemplo de Projeto: Lista Telefônica Computadorizada (cont.) Encontrando Relacionamentos entre Classes. Duas classes num projeto podem estar relacionadas de vários modos. Os três relacionamentos mais comuns são: Herança Agregação Composição