Utilizando UML e Padrões Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Março de 2010 Análise e Projeto Orientado a Objetos • Análise e Projeto OO são essenciais para a criação de um software bem projetado, robusto e capaz de ser corrigido ou evoluído, usando tecnologias e linguagens orientadas a objetos, tais como Java, C#, C++ Análise e Projeto Orientado a Objetos • Em relação à tecnologia de objetos, é válido o provérbio: “Possuir um martelo não torna alguém um arquiteto” – Para criar sistemas orientado a objetos é preciso pensar em termos de objetos, antes de conhecer uma linguagem orientada a objetos Análise e Projeto Orientado a Objetos • Análise X Projeto – Análise enfatiza uma investigação do problema e dos requisitos, em vez de uma solução • Responde-se às perguntas: – Como o sistema deverá ser usado – Quais as suas funções – Melhor seria chamar: Análise de Requisitos ou Análise orientada a objetos Análise e Projeto Orientado a Objetos • Análise X Projeto – O Projeto enfatiza uma solução conceitual em software ou em hardware que satisfaça os requisitos • A descrição do esquema de banco de dados e a descrição dos objetos do sistema são exemplos – Melhor seria definir como o projeto de objetos ou o projeto de bancos de dados Análise e Projeto Orientado a Objetos • Análise X Projeto Orientados a Objetos – Na análise orientada a objetos, há uma ênfase em encontrar e descrever os objetos ou conceitos do domínio do problema • E.g., Sistema de informações de vôo inclui conceitos de avião, vôo e piloto Análise e Projeto Orientado a Objetos • Análise X Projeto Orientados a Objetos – Projeto Orientado a Objetos enfatiza a definição dos objetos e como eles colaboram para a satisfação dos requisitos • E.g., Objeto avião possui atributo numDaCauda e método obterHistoricoDoVoo Análise e Projeto Orientado a Objetos • Análise X Projeto Orientados a Objetos – Na implementação ou programação OO os objetos de projeto são implementados • E.g., Classe Aviao em Java Análise e Projeto Orientado a Objetos • Análise X Projeto Orientados a Objetos – Na implementação ou programação OO os objetos de projeto são implementados • E.g., Classe Aviao em Java Análise e Projeto Orientado a Objetos Conceito do domínio Visualização do Conceito do domínio Representação em uma Linguagem OO Aviao numDaCauda public class Aviao { private String numDaCauda; public List obterHistoricoDoVoo() { ... } } Análise e Projeto Orientado a Objetos • Análise e Projeto de um Jogo de Dados – Um jogador lança dois dados e ganha caso o resultado seja sete – Passos: Definir Casos de Uso Definir Modelo de Domínio Definir Diagramas de Interação Definir Diagramas de Classes de Projeto Análise e Projeto Orientado a Objetos • Análise e Projeto de um Jogo de Dados Definir Casos de Uso – A Análise de Requisitos pode incluir narrativas ou cenários sobre como as pessoas usam a aplicação • Tais narrações podem ser escritas como casos de uso – Casos de Uso não são artefatos OO, são apenas narrações escritas Análise e Projeto Orientado a Objetos • Análise e Projeto de um Jogo de Dados Definir Casos de Uso – Caso de Uso Jogar um Jogo de Dados • Um jogador pede que os dados sejam lançados. O sistema apresenta o resultado. Se a soma do valor das faces dos dois dados totalizar sete, o jogador vence, caso contrário, perde. Análise e Projeto Orientado a Objetos • Análise e Projeto de um Jogo de Dados Definir Modelo de Domínio – Mostra os conceitos ou objetos do domínio que são relevantes