You are on page 1of 77

Fatec - Americana Curso de Processamento de Dados

Metodologia em Anlise e Projeto de Sistemas - MAPS Prof. Sigrist


Email, Messenger: srsigris@hotmail.com http://sites.google.com/site/profsigrist/

Objetivo da disciplina
Apresentar as principais correntes de anlise de sistema, com nfase em mtodos emergentes (Anlise Orientada a Objetos).

Evoluo da metodologia de Anlise de Sistemas


Anlise o processo de extrair as necessidades de um sistema. Em outras palavras, o que um sistema deve fazer para satisfazer os requisitos do cliente.
Mtodos de anlise: transformao das necessidades do sistema em uma representao tcnica.

4 grandes correntes metodolgicas


Decomposio funcional Orientao a fluxo de dados (anlise estruturada) Modelagem de informao Orientao a objeto

Decomposio Funcional
Foco: qual processamento requerido para o novo sistema.

Processamento cientfico. Anos 60.


Elementos: funo, sub-funo, interfaces funcionais.

Ferramenta: Diagrama de Estrutura.

Fluxo de dados (Anlise Estruturada)


Foco: movimento de dados em uma rede de processos.
Processamento comercial. Anos 70.

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.

Elementos: objeto, classificao, herana, comunicao por mensagens.


Ferramenta: Diagrama de Classe.

Anlise Orientada a Objetos 1. Introduo


O que orientado a objeto ?
Software organizado como uma coleo de objetos separados que incorporam a estrutura e o comportamento de dados. Enfoque diferente do convencional. Caractersticas: identidade, classificao, polimorfismo, herana, encapsulamento.

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.

Exemplos: um pargrafo de um documento, uma janela no monitor de vdeo, uma bicicleta.

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.

Exemplo - Classe Bicicleta


Atributos: tamanho do quadro, tamanho da roda, engrenagem, material.

Operaes: mudar a marcha, mover, consertar.

Exemplo - classe Polgono


Atributos: nmero de vrtices, cor da borda, cor de preenchimento. Operaes: desenhar, apagar, mover.

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.

Exemplo: Operaes Mover e Desenhar.


Mover pode ter um cdigo diferente para cada classe Janela e PeadeXadrez.
Desenhar pode ter um cdigo diferente para cada classe Quadrado e Elipse.

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

Identidade, estado interno e comportamento

Encapsulamento

Classificao

Classificao

nfase nas abstraes do mundo real

O que desenvolvimento orientado a objeto?


Desenvolvimento refere-se a parte inicial do ciclo de vida: anlise, projeto e implementao. Essncia do desenvolvimento orientado a objeto: identificao e organizao dos conceitos do domnio da aplicao, em vez de sua representao definitiva em uma linguagem de programao.

Exemplo: Sistema de Janelas


Anlise - Construir um modelo da situao do mundo real. O que o sistema deve fazer (e no como deve ser feito). Descrever a classe Janela em termos dos atributos e operaes visveis ao usurio. Projeto do sistema - Tomar decises de alto nvel em relao a arquitetura geral. Decidir que as modificaes de tela devem ser rpidas e suaves quando as janelas forem movimentadas ou apagadas.

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.

Modelos mais importantes


Modelo de Classes: descreve as classes e os diversos tipos de relacionamentos entre elas. Tambm denominado Modelo Esttico. Modelo Dinmico: descreve os aspectos que se modificam com o tempo atravs do Diagrama de Transio de Estados.

2 - A modelagem como tcnica de projeto


Modelos so abstraes construdas para que um problema seja compreendido antes da implementao da soluo. Exemplos de modelos: desenho de peas de mquinas, rascunho de anncios, peas de vesturio.

Objetivos da construo de modelos


Testar uma entidade fsica antes de dar uma forma (mais baratos). Comunicao com clientes (imitam uma parte do produto final).

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.

Representao grfica do Diagrama de Classe


Nome Atributos Operaes

Atributos:

adicionar (ou no) os tipos de dados.

Operaes: adicionar (ou no) argumentos e tipo de dados.

Exemplos: Diagrama de Classe

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.

Associao: uma associao descreve um conjunto de potenciais ligaes.


Notao: uma linha entre as classes. 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.

Importncia dos Diagramas


Diagrama de Classe: desenha-se somente um para cada classe. Contm a definio geral. Diagrama de Instncia: quando o Diagrama de Classe tornase complexo (devido principalmente a herana), serve para testar o Diagrama de Classe.

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

Amostra: 5 linhas e 2 pontos

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

Conceitos avanados de ligaes e associaes


Atributo de ligao: propriedade das ligaes de uma associao (semelhante a atributos de objeto). Notao: um quadro ligado associao por um lao.

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.

Atributos de ligao geram modelos


Forma desaconselhvel

mais flexveis

Forma mais perene

A modelagem de uma associao como classe


O quadro de atributos de uma associao pode ter um nome e operaes, logo pode ser modelado como uma classe.

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.

Agregao (relacionamento todo-partes)


Uma forma especial de associao, na qual os objetos que representam as partes de alguma coisa so associadas a um objeto que representa a estrutura inteira. A existncia de um objeto componente pode depender (no existe separadamente) da existncia de um objeto do qual ele faz parte. A agregao pode ter um nmero arbitrrio de nveis.

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.

Exemplo: Peas de Equipamentos


Diagrama de Classe
Tipo de equipamento

Tipo de bomba

Continuao
Diagramas de Instncia

Correspondncia entre atributos e valores!

H um atributo (rea de superfcie) sem o valor correspondente.

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.

Sugestes para a construo de diagramas


Antes de iniciar a construo de um modelo, tente compreender o problema a ser resolvido. Escolha nomes com cuidado. D preferncia terminologia do usurio. Evite associaes ternrias e n-rias. A maioria pode ser decomposta em associaes binrias com atributos de ligao. No tente construir cardinalidade perfeita muito cedo. Evite generalizaes com excessivo nmero de nveis. Faa sucessivas revises em seu modelo, melhorando nomes, corrigindo erros, acrescentando detalhes. Pea a outras pessoas para revisarem o seu modelo. Nas classes gerais (superclasses), coloque poucos atributos e operaes, para facilitar o refinamento.

4. Modelagem avanada de objetos


Agregao x associao
Se dois objetos estiverem estreitamente ligados atravs de um relacionamento todo-partes, eles formam uma agregao. Se forem independentes, eles formam uma associao.

Testes
Voc usaria a expresso -parte-de? Algumas operaes executadas sobre o todo aplicamse automaticamente sobre as partes?

Agregaes incluem exploses em suas partes constituintes.


Exemplo: empresa agregao de divises, que
agregao de departamentos, porm no uma agregao de empregados, pois Empresa e Pessoa so independentes.

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 x concretas


Classe abstrata: classe que no possui instncias diretas, mas as suas subclasses sim. Classe concreta: uma classe instancivel, isto , pode ter instncias diretas.

Classes abstratas so normalmente usadas para definir protocolo para uma operao, sem apresentar um mtodo correspondente. Isso chamado operao abstrata.

Uma operao abstrata representada por uma observao entre chaves.

Exemplo: classes e operaes abstratas

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

Fim da 1 parte da disciplina


Modelagem Esttica representado pelo Diagrama de Classes

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

Operao de Propagao ajuda a decidir que (B) a melhor soluo !

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