Análise e Projeto de Sistemas Rafael Vargas Mesquita http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/mesquita/
Para uma Análise Orientada a Objetos Identificação de Classes Especificação de Hierarquias de Generalização/Especialização Identificação de Associações e Atributos Identificação de Subsistemas Modelagem do Comportamento Definição das Operações
Não há nada mais central e crucial para qualquer método orientado a objetos do que o processo de descoberta de quais classes devem ser incluídas no modelo.
Identificação de Classes Para facilitar a identificação das classes do sistema Estude o domínio de aplicação; Faça uma observação geral no ambiente real onde existe o problema; Procure ouvir atentamente os especialistas do domínio do problema; Verifique, se existirem, resultados de AOOs anteriores em domínios semelhantes; Observe outros sistemas no mesmo domínio ou em domínios similares; Consulte fontes bibliográficas;
Identificação de Classes Para identificação de classes Procurar por substantivos no documento de requisitos ou descrição de caso de uso Interação constante com os especialistas de domínio
Identificação de Classes Aspectos importantes coisas que são parte do domínio de informação do problema; ocorrências ou eventos que precisam ser registrados e lembrados pelo sistema; papéis desempenhados pelas diferentes pessoas que interagem direta ou indiretamente com o sistema; locais físicos ou geográficos e lugares que estabelecem o contexto do problema; unidades organizacionais (departamentos, divisões, etc...) que possam ser relevantes para o sistema.
Identificação de Pacotes Pacotes promovem a organização de classes view: classes de interface gráfica control: classes controladoras model: classes do domínio do sistema dao: classes de persistência (banco de dados)
Especificação de Hierarquias
Identificação de Relacionamentos Relacionamentos são representações estáticas que modelam associações entre objetos, um dos mecanismos de estruturação de objetos. Cada classe desempenha um papel na associação, ao qual pode ser dado um nome. Cada papel possui também uma cardinalidade, que indica quantos objetos podem participar de um dado relacionamento.
Identificação de Relacionamentos Nomeando associações
Identificação de Relacionamentos Relacionamentos muitos-para-muitos ou N:N Exemplo de Auto-Relacionamento
Identificação de Relacionamentos Agregação e Composição
Definição de Atributos Um atributo representa uma informação de estado de um objeto que precisa ser lembrada. Uma vez que, conceitualmente, atributos e associações são a mesma coisa, não devemos incluir na lista de atributos de uma classe, atributos representando associações. Estas já têm sua presença indicada pela linha que conecta as classes que se relacionam.
Definição de Atributos Visibilidade +, público, isto é, o atributo pode ser acessado por qualquer classe cliente; #, protegido, isto é, o atributo só é passível de acesso pela própria classe ou por uma de suas especializações; -, privado, isto é, o atributo só pode ser acessado pela própria classe.
Definição de Atributos O nome do atributo é uma seqüência de caracteres de identificação, começando tipicamente, com letra minúscula. Concatena-se as demais palavras que compõem o nome, preservando-se a primeira letra de cada palavra em maiúscula [Furlan98], por exemplo, limitedecredito. Pode-se também desprezar preposições. Assim, o exemplo anterior assumiria a seguinte forma: limitecredito.