Beruflich Dokumente
Kultur Dokumente
Objetivo da disciplina
Apresentar as principais correntes de anlise de sistema, com nfase em mtodos emergentes (Anlise Orientada a Objetos).
Decomposio Funcional
Foco: qual processamento requerido para o novo sistema.
Elementos: fluxo de dados, processos, arquivos, entidades externas, mini-especificao, dicionrio de dados.
Ferramenta: Diagrama de Fluxo de Dados (DFD).
Modelagem de Informaes
Foco: modelagem de dados como um ativo das empresas. Sistemas de informao gerencial. Anos 80. Elementos: entidade, relacionamento. Ferramenta: Diagrama Entidade-Relacionamento (DER)
Orientao a Objetos
Foco: objeto como entidade que engloba dados e processamento.
Sistemas grandes, flexveis a mudanas. Anos 90.
Identidade
Os dados so divididos em entidades discretas e distintas denominadas objetos. Cada objeto tem sua prpria identidade, mesmo que possuam o mesmo conjunto de atributos.
Classificao
Objetos com a mesma estrutura de dados (atributos) e o mesmo comportamento (operaes) so agrupados, ou classificados, em uma classe Qualquer escolha de classe arbitrria e depende da aplicao. Cada classe descreve um conjunto de objetos individuais. Cada objeto uma instncia de uma classe.
Cada instncia de classe tem o seu prprio valor para cada atributo, mas compartilha os nomes de atributos e operaes com outras instncias da mesma classe.
Polimorfismo
Definio: a mesma operao pode atuar de modos diversos em classes diferentes. Diferentes objetos respondem de maneira diferente mesma mensagem.
Mtodo: uma implementao especfica de uma operao por uma determinada classe.
Herana
Herana o compartilhamento de atributos e operaes entre classes com base em um relacionamento hierrquico. Uma subclasse herda todas as caractersticas de sua superclasse e acrescenta suas caractersticas exclusivas. Semelhana em outros contextos (fatorar, colocar em evidncia): 3x2 + 6x + 9 = 3(x2 + 2x + 3) Vantagem: reduz repeties.
Herana
Classe
Encapsulamento
Classificao
Classificao
Projeto de objetos Adicionar os detalhes de implementao. Especificar as operaes da classe Janela em termos do hardware ou sistema operacional existente.
Implementao - Traduzir as classes e os relacionamentos em uma linguagem de programao, em um banco de dados ou em hardware. Codificar a classe Janela com emprego de chamadas ao sistema de grficos.
Reduo da complexidade (a mente humana s consegue tratar uma quantidade limitada de informaes)
3 - A modelagem de objetos
Elementos do modelo de objetos: classes, instncias de classe, atributos, operaes e relacionamentos.
Diagrama de Classe
Descreve as classes, seus atributos e operaes. Corresponde a um conjunto infinito de diagramas de instncias. Descrevem o quadro geral de modelagem de um sistema.
Atributos:
Diagrama de Instncia
A representao grfica parecida com o Diagrama de Classe. A diferena: armazena os valores de atributos. Enquanto o Diagrama de Classe uma descrio geral, cada Diagrama de Instncia descreve uma particular ocorrncia.
Diagrama de Classe (com atributos) Diagrama de Instncia (com valor) Diagrama de Instncia (com valor)
(Pessoa)
(Pessoa)
Maria 25
Pedro 32
Ligaes e associaes
Ligaes e associaes: meios para estabelecer relacionamentos entre objetos.
Conceitos
Ligao: uma conexo entre instncias de objetos. Uma ligao uma instncia de associao. Exemplo: Maria trabalha para a empresa ABC. Notao: uma linha entre instncias.
Nomes de associao
O nome da associao pode ser omitido se o par de classes tiver uma nica e bvia associao. O nome costuma ser lido da esquerda para a direita (ordem direta). As associaes podem ser binrias (as mais comuns), ternrias ou de ordem mais elevada.
Exemplo
Associao entre as classes Pas e Cidade com ligaes entre instncias de ambas essas classes.
Exemplo
Em aplicaes CAD, um problema comum encontrar redes de conectividade. Dada uma linha, encontrar todas as linhas que a cortam; dado um ponto de interseco, encontrar todas as linhas que passam pelo ponto, etc
Diagrama de Classe
O diagrama de classes deve mostrar que cada ponto pode ser interseo de duas ou mais linhas e cada linha pode ter zero ou mais pontos de interseo.
Diagrama de Instncias
Associao Ternria
Associao ternria: associao que envolve trs objetos. Notao: o smbolo um losango. O nome da associao, quando necessrio, deve ser escrito junto ao losango. Exemplo: Programadores de sistemas utilizam linguagens de programao nos seus projetos.
Cardinalidade
Cardinalidade: nmero inteiro no negativo ou smbolo que especifica quantas instncias de uma classe relacionam-se a uma nica instncia de uma classe associada. Notao: escrever o valor numrico ou o smbolo nas extremidades das linhas de associao.
Exemplos
CARDINALIDADE
1
1+ 3-5 3,4,18 linha sem smbolos
SIGNIFICADO
exatamente 1
um ou mais 3, 4 e 5 (seqncia) 3, 4 ou 18 (alternativas) muitos (zero ou mais) opcional (zero ou 1) exatamente 1
Exemplo
Associao Tem-capital. Cardinalidade umpara-um: cada pas tem uma capital; cada cidade capital de um pas. Associao Cruza. Cardinalidade muitos (ou zero ou mais): uma linha pode ter zero ou muitos pontos de interseo. Cardinalidade dois ou mais: um ponto de interseo pode estar associado a duas ou mais linhas.
Importante
A cardinalidade depende da aplicao. Por exemplo, uma empresa contrata nenhum ou muitos empregados; um empregado contratado por nenhuma ou uma empresa. Uma pessoa pode trabalhar para vrias empresas, porm o segundo emprego pode ser considerado irrelevante.
Exemplo
Exemplo
Permisso de acesso um atributo da ligao Acessvel por, isto , atributo da ligao existente entre instncias da classe Arquivo e instncias da classe Usurio.
mais flexveis
Exemplo
Os usurios so autorizados a usar vrias estaes de trabalho. Cada autorizao acompanhada por uma prioridade e privilgios de acesso. Um usurio tem um diretrio bsico para cada estao autorizada, porm este diretrio pode ser compartilhado por diversas estaes e diversos usurios.
Nomes de papis
Um papel (role played) serve para identificar uma extremidade de uma associao.
um meio de percorrer as associaes a partir de uma classe, sem mencionar explicitamente a associao. So necessrios para dois objetos da mesma classe. Notao: o nome escrito prximo classe que exerce o papel.
Exemplo
Uma pessoa assume o papel de empregado em relao a uma empresa. Uma empresa assume o papel de empregador em relao pessoa.
Exemplo
Um diretrio pode conter vrios diretrios e opcionalmente estar contido em outro diretrio. Cada diretrio tem um usurio proprietrio, que o criou, e muitos usurios autorizados a utiliz-lo.
Ordenao
Na maioria das vezes, as instncias de classe do lado muitos de uma associao no tm uma ordem explcita (conjuntos). Porm existem situaes onde as instncias so ordenadas.
Notao: colocar {ordenado} junto ao smbolo de cardinalidade.
Exemplo
Em uma interface grfica, vrias janelas podem ficar sobrepostas de tal forma que somente a janela de cima seja visvel.
Notao
A agregao desenhada como uma associao, com um pequeno losango prximo classe que indica o todo. Exemplo: um documento composto por vrios pargrafos, e cada pargrafo composto por vrias sentenas.
Exemplo
Um microcomputador composto por um ou mais monitores, uma caixa com o sistema, um mouse opcional e um teclado. A caixa de sistema possui um chassis, uma CPU, muitos objetos RAM e uma ventoinha opcional.
Generalizao e herana
(relacionamento -um)
Forma de destacar caractersticas comuns das classes e ao mesmo tempo preservar as diferenas. Relacionamento entre uma classe e uma ou mais verses refinadas dela. Superclasse (ou classe geral): classe em processo de refinamento. Subclasse (ou classe especializada): cada verso refinada. Uma subclasse herda as caractersticas da superclasse e pode acrescentar as suas prprias caractersticas. Notao: um tringulo interligando uma superclasse s suas subclasses. Discriminador: termo que indica qual a base usada para a especializao de classes.
Tipo de bomba
Continuao
Diagramas de Instncia
Concluso
Diagramas de Instncia permitem checar a alocao de atributos em diagramas complexos!
Construes de agrupamento
Mdulo: uma construo lgica para agrupar classes, associaes e generalizaes. Os mdulos incorporam diferentes vises de uma situao e permitem o particionamento de um modelo de objetos. Exemplo. Os mdulos de eletricidade, encanamentos e ventilao representam diferentes vises de um edifcio. Folha (pgina ou pedao de papel) : um mecanismo para facilitar o desenho de um mdulo. Regra: colocar um mdulo por folha. Generalizao ou associao devem aparecer em somente uma folha.
Testes
Voc usaria a expresso -parte-de? Algumas operaes executadas sobre o todo aplicamse automaticamente sobre as partes?
Agregao x generalizao
Agregao e generalizao so conceitos diferentes.
Exemplo: Lmpada pode ser classificada em fluorescente e incandescente. Base, cobertura, interruptor e fiao so partes da lmpada. Uma lmpada fluorescente tem um contrapeso, um brao flexvel e um starter; uma lmpada incandescente tem um bocal.
Propagao de operaes
Propagao: aplicao automtica de uma operao em uma rede de objetos quando a operao aplicada em um objeto inicial. Por exemplo, a movimentao de uma agregao movimenta os seus agregados. Notao: uma seta indicando a direo da propagao, junto ao nome da operao. Exemplo: uma pessoa possui vrios documentos, cada documento composto por pargrafos e estes so compostos por caracteres. A operao cpia propaga-se do documento para os pargrafos e para os caracteres.
Classes abstratas so normalmente usadas para definir protocolo para uma operao, sem apresentar um mtodo correspondente. Isso chamado operao abstrata.
Herana mltipla
Herana mltipla o mecanismo que permite que uma classe possua mais de uma superclasse e herde caractersticas de todos o seus ancestrais.
Exemplo: Veculo Anfbio tanto Veculo Aqutico quanto Veculo Terrestre.
Veculo
Terrestre
Aqutico
Automvel
Anfbio
Barco
Prximos passos
Exerccios e reviso da matria Prova dia .../../... (com consulta) Dicas, sugestes: simulado, prova resolvida (esto disponveis no site do prof.)
Exerccios
1) Considere os mtodos de anlise apresentados em aula: decomposio funcional, fluxo de dados, modelagem de informao e orientao a objetos. Qual o ponto comum entre eles? Quais as diferenas?
Resposta So mtodos que enfatizam o uso de diagramas (mtodos grficos), oferecem conceitos e ferramentas resoluo de diversos tipos de aplicao. Diferenas Decomposio funcional: foco em funes. Fluxo de Dados: foco em fluxo de dados. Modelagem de Informao: foco em modelagem de dados. Orientao a Objetos: foco em dados e operaes como entidade nica.
Exerccios
2) Criar diagramas de classe com atributos e operadores. Adicionar uma instncia para cada classe: Monitor de Vdeo Impressora
Exerccios
3) Numa agncia bancria, a conta corrente de um indivduo deve armazenar o saldo atual, e permitir operaes de depsito e saque at um certo limite. Desenhe uma classe apropriada para este fim. Conta corrente Nmero: string Titular: string Saldo: float Depositar(x:float) Sacar(x:float) Verificar Operao(tipo:string;valor:float):boolean
Exerccios
4) Elabore um diagrama de classe
para: O alfabeto da lingua portuguesa formado por 26 letras . As letras podem ser classificadas em vogais e consoantes.
Alfabeto
26
Letra
Vogal Consoante
Exerccios
5) Qual a melhor soluo?
(A) Sala
Reformar
Parede Porta
Piso
Teto
Janela
Carteira
(B)
Sala
Carteira
Parede
Porta
Piso
Teto
Janela
Exerccios
6) Criar um diagrama envolvendo: escola, aluno,professor, diretor,
playground, balano, sala de aula, sala de leitura, biblioteca, laboratrio, estacionamento.
Estacionamento
Serve Aluno
Escola
Prof. Diretor
Pessoa
Playground
Biblioteca
Laboratrio
Sala
Tipo de sala
Balano
Aula
Leitura