aulas de análise

83
Prof: Rilmar Gomes Copyleft2010 – Prof: Rilmar Gomes<[email protected]>

Upload: frank-lira

Post on 25-Jun-2015

1.140 views

Category:

Technology


3 download

TRANSCRIPT

Page 1: Aulas de análise

Prof: Rilmar Gomes

Copyleft2010 – Prof: Rilmar Gomes<[email protected]>

Page 2: Aulas de análise

� Pressupõe que o mundo é composto por objetos

� Objeto é uma entidade que combina estrutura de dados e comportamento funcional

� Os sistemas são modelados como um número de objetos que interagem entre si

� Em POO, temos que:◦ Estrutura de dados + funções = objeto◦ objeto + objeto + ... + objeto = programa

Copyleft2010 – Prof: Rilmar Gomes<[email protected]>

Page 3: Aulas de análise

� Objetos são todas as coisas, reais ou abstratas, às quais nossos conceitos se aplicam.

� Na OO estaremos interessados no COMPORTAMENTO do Objeto.

� Os objetos (computacionais) são compostos ou representados por:◦ ATRIBUTOSATRIBUTOSATRIBUTOSATRIBUTOS - Uma coleção de tipos de dados que definem o ESTADO do Objeto.◦ MÉTODOSMÉTODOSMÉTODOSMÉTODOS - Ações ou procedimentos que alteram o estado do objeto (Comportamento).

Copyleft2010 – Prof: Rilmar Gomes<[email protected]>

Page 4: Aulas de análise

� Os atributos de um objeto definem as qualidades e características da entidade que ele representa

� O estado de um objeto é o particular conjunto de valores de seus atributos em um dado momento

� O comportamento de um objeto é definido pelas alterações do seu estado em resposta a mensagens que ele recebe (interação com outros objetos)

Copyleft2010 – Prof: Rilmar Gomes<[email protected]>

Page 5: Aulas de análise

� Objetos servem a dois propósitos:◦ Facilitar a compreensão do mundo real,◦ Fornecer uma base real para a implementação em computador.

� Os objetos possuem identidade e são distinguíveis dentro de um Sistema

Copyleft2010 – Prof: Rilmar Gomes<[email protected]>

Page 6: Aulas de análise

� Alguns exemplos de Objetos:◦ Um avião

◦ Uma Nota Fiscal

◦ Uma tela que o usuário interage

◦ Um ícone numa tela para qual o usuário aponte e “abre”

◦ Uma árvore

Page 7: Aulas de análise

� Objetos podem ser compostos por outros objetos. � Isto permite que Objetos Complexos sejam definidos a partir de objetos mais simples.

Page 8: Aulas de análise

� Para construir o objeto “carro”, teremos de abstrair seus atributos e funções:◦ um carro pode ter os seguintes recursos ou atributos:� cor, velocidade máxima, tipo de combustível, tamanho, modelo

◦ um carro pode:� andar, parar, virar à esquerda, virar à direita,

Copyleft2010 – Prof: Rilmar Gomes<[email protected]>

Page 9: Aulas de análise

� Como descrever os objetos no mundo computacional?◦ temos de mapear os objetos reais em objetos computacionais e escrever programas que dão vida a estes objetos em um sistema computacional.◦ Para mapear os objetos (análise de um domínio) iremos utilizar o processo de ABSTRAÇÃO.

EntidadeObservada

ABSTRAÇÃO REPRESENTAÇÃO

Carro

Operação mentalpara observar umdomínio e capturarsua estrutura

Notação gráfica,linguagem de programação

EntidadeRepresentada

Convenções

Page 10: Aulas de análise

� Diferentes abstrações a partir de um mesmo Diferentes abstrações a partir de um mesmo Diferentes abstrações a partir de um mesmo Diferentes abstrações a partir de um mesmo objeto do mundo realobjeto do mundo realobjeto do mundo realobjeto do mundo real

MaçaPeso

cor da casca

format

CATEGORIA

RECEITA

AÇÃO

3

I, II,Cardinalidadedo conjunto

ATRIBUTO

Page 11: Aulas de análise

� Focalizar o essencial, ignorar as propriedades acidentais

AERONAVE

Page 12: Aulas de análise

� Surge a UML em 1996como a melhorcandidata para ser alinguagem unificadorade notações.

� Em 1997 a UML éaprovada como padrãopela OMG;

� Desde então tem tidograndegrandegrandegrande aceitação

Page 13: Aulas de análise

� É independente de linguagem de programação

� É independente de processo de desenvolvimento

� Não é uma linguagem de programação� Não é uma metodologia� É uma linguagem visual

Page 14: Aulas de análise

� UML não guia um desenvolvedor em como fazer análise e projeto

� Não especifica o processo a ser seguido

� Oferece uma notação para ser utilizada como o desenvolvedor julgar necessário

Page 15: Aulas de análise

� Disponibiliza:◦ Diagrama de Casos de Uso◦ Diagrama de Classes◦ Diagrama de Estados◦ Diagrama de Atividades◦ Diagrama de Seqüência◦ Diagrama de Colaboração◦ Diagrama de Componentes◦ Diagrama de Implantação

Page 16: Aulas de análise

� Um modelo pode ser visto como uma representação idealizada de um sistema a ser construído

� Maquetes de edifícios e de aviões e plantas de circuitos eletrônicos são apenas alguns exemplos de modelos

� Uma simplificação da realidade que nos ajuda a entender um problema complexo

Page 17: Aulas de análise

� Ajuda no gerenciamento da complexidade inerente ao desenvolvimento de software

� Ajuda na comunicação entre as pessoas envolvidas

� Ajuda na predição do comportamento futuro do sistema

Page 18: Aulas de análise

� Representa o comportamento de um sistema em termos de suas funcionalidades

� Descrevem o que o sistema deve fazer, mas não como isso será feito

� Elementos◦ Atores◦ Casos de Uso◦ Relacionamentos

Page 19: Aulas de análise

� Atores◦ Representam qualquer entidade externa que interage com o sistema◦ Entidade externa: usuário, hardware, outro sistema, etc.◦ Formas de interação:� Enviar dados para o sistema� Receber dados do sistema� Enviar/Receber dados do sistema

Page 20: Aulas de análise

� Atores◦ Implícitos� Atores que podem ser omitidos do diagrama� Inclusão não traz contribuição para a modelagem do sistema

� Ex.: Monitor, PC, Sistema Operacional, teclado, etc.

Page 21: Aulas de análise

� Relacionamentos◦ Representam a interação entre:� Casos de uso e atores� Casos de uso� Atores

Page 22: Aulas de análise

� Casos de uso e atores◦ Associação� Um ator pode interagir com mais de um caso de uso� Um caso de uso pode interagir com mais de um ator

Page 23: Aulas de análise

� Casos de uso e atores◦ Associação� Notação – Ativação do Caso de Uso

Page 24: Aulas de análise

� Relacionamento� Entre casos de uso◦ Inclusão (include)

◦ Extensão (extend)

◦ Generalização

Page 25: Aulas de análise

◦ Inclusão (include)� Um caso de uso inclui um outro caso de uso (subcaso de uso)

� Caso de uso incluído não faz sentido sozinho, não é completo

� Obrigatoriedade (sempre será executado)� Quando usar:

� Detalhamento de casos de uso por meio de decomposição� Colocar em evidência partes comuns entre dois ou mais casos de uso

Page 26: Aulas de análise

◦ Extensão (extend)� Caso de uso maior é estendido por um caso de uso menor

� Quando usar:� Usada para modelar casos de uso especiais que ocorrem somente em determinadas circunstâncias (opcional)

Page 27: Aulas de análise

◦ Generalização� Representa o relacionamento entre um caso de uso mais geral e um ou mais casos de uso específicos

� Quando usar:� Representar a aplicação de um caso de uso geral em uma situação particular

� Situação particular: funcionalidades do caso de uso geral devem ser complementada

Page 28: Aulas de análise

� Generalização

Page 29: Aulas de análise

� Entre atores◦ Generalização� Representa que um ator é um caso especial de outro ator

Page 30: Aulas de análise

� Tem como finalidade apresentar, de formadetalhada, como deve ser executada umafuncionalidade, ou seja, representa aexecução da funcionalidade passo-a-passo.

� Os diversos autores, que tratam, atualmente,deste assunto, apresentam diferentespadrões e notação para descrição de caso deuso. Adotaremos um modelo originado apartir da fusão do que de bom foi encontradonesses autores, e acrescentamos, é claro,nossa contribuição.

Page 31: Aulas de análise

� Nome do Caso de Uso – descrição do Nome do caso de uso correspondente ao nome do diagrama.

� Sigla – é uma forma de denominar o caso de uso, tornando mais fácil sua referência. Por exemplo: UC001

� Objetivo – é seção na qual deverá ser descrita qual o objetivo do caso de uso;

� Ator(es) – identifica qual ator(es) irão interagir com o caso de uso que está sendo descrito.

Page 32: Aulas de análise

� Pré condição – descreve as restrições que devem ser obedecidas para a execução do caso de uso.

� Pós Condição – descreve o que deverá ocorrer no sistema após a execução do caso de uso. É importante tomar o cuidado para descrever somente aquilo que de fato irá impactar no sistema e, de preferência, aquilo que tem influência direta nas regras de negócio.

Page 33: Aulas de análise

� Fluxo – é o principal componente de uma descrição de caso de caso de uso. Representa a seqüência de passos a serem seguidos e está classificado em: Fluxo Principal (ou Básico), Sub Fluxo, Fluxo Alternativo e Fluxo de Exceção (ou de erro);

Page 34: Aulas de análise

� Descreve o “caminho ótimo” do caso de uso,ou seja, descreve a principal ação do caso deuso sem se preocupar com exceções ouquaisquer outros detalhes que possaminterferir no resultado do mesmo.

Page 35: Aulas de análise

� Descreve uma parte do fluxo principal.Representa uma seqüência de passos queserão SEMPRE executados, porém sãotratados de forma separada para tornar adescrição do fluxo principal mais simples.

Page 36: Aulas de análise

� O Fluxo alternativo representa um caminhoopcional para o usuário que está interagindo,ou seja, caso ele não queira seguir o caminhoprincipal (básico) ele tem a alternativa deseguir outro caminho.

Page 37: Aulas de análise

� O Fluxo de Exceção ou Erro tem comofinalidade descrever como o sistema deverátratar erros que poderão ocorrer no fluxoprincipal ou em nos fluxos alternativos esub-fluxos, ou seja, o fluxo de exceçãodescreve algo que interferiu no caminhoótimo mas que foi tratado pelo sistema.

Page 38: Aulas de análise

� Um sub-fluxo pode ser comparado a umprocedimento/função (procedure/function),representando um desvio para se executar algo aparte e depois voltar para o programa principal(fluxo principal no nosso caso);

� Uma diferença entre um sub-fluxo e um fluxoalternativo é que o fluxo alternativo representa, nanananamaioriamaioriamaioriamaioria dasdasdasdas vezesvezesvezesvezes, uma opção de escolha dousuário, isto é, uma escolha manual, e um sub-fluxo representa uma escolha do sistema, ou seja,uma escolha automática.

Page 39: Aulas de análise

DIAGRAMA DE CLASSES

Page 40: Aulas de análise

� É um dos diagramas estáticos da UML e tem por objetivoapresentar as classes do domínio do problema e osrelacionamentos entre as mesmas.

� Mas o que são classes?� As classes agrupam um conjunto de entidades real ou abstratas que

possuem as mesmas características. Essas entidades são conhecidascomo objetos. Além disso, as classes servem como um molde para acriação de novos objetos do mesmo tipo

Page 41: Aulas de análise

� Assim como no banco de dados, os dados só têmsentido em uma base de dados quando estãointerligados, no um diagrama de classes deverepresentar além das classes do sistema, osrelacionamentos entre as mesmas.

� É importante ressaltar que este diagrama podeser elaborado em duas fases do desenvolvimentode um software: na fase de análise e na fase deprojeto.

Page 42: Aulas de análise

� Na fase de análise, este diagrama é usado pararepresentar as classes do domínio do problema,cujos dados devem ser armazenados na base dedados do sistema.

� Em relação à fase de projeto, pode-se dizer que omesmo é usado representar não apenas asclasses que contêm os dados a seremarmazenados, mas também outros tipos de classenecessários à implementação software.

Page 43: Aulas de análise

� Componentes.◦ Classes◦ Relacionamentos.

Page 44: Aulas de análise

� Classes.◦ De um modo geral, as classes são compostas por seus

atributos e seus métodos, sendo representadas por uma“caixa” com três compartimentos

Page 45: Aulas de análise

� Visibilidade de atributos e métodos◦ Private: indica que um atributo ou método só pode ser

visualizado e acessado dentro da própria classe. NaUML, a visibilidade private é representada pelo símbolo“-”.◦ Público (public): um atributo ou método definido como

público é visível por qualquer por qualquer classe. Anotação para representar essa visibilidade é o símbolo“+”.◦ • Protegido (protected): um atributo ou método com

visibilidade protegido pode ser acessado pela própriaclasse ao qual o mesmo pertence e por suas subclasses.A visibilidade protected é representada na UML pelosímbolo “#”.

Page 46: Aulas de análise

� Classes de entidade (Entity) – são entidades domundo real relevantes para o domínio doproblema, sendo seu principal papel representaros dados a serem armazenados pelo sistema. Porexemplo: Livro, Exemplar, Autor, etc.

� b) Classes de controle (Control) – sua principalfunção é controlar a execução de processos.Normalmente, os métodos de uma classe dessanatureza controlam transações que envolvemvárias classes de entidade.

Page 47: Aulas de análise

� Classes de fronteira (Boundary) – responsáveispela comunicação entre o mundo externo (atores)e as classes de controle. Normalmente, sãoimplementadas na forma de interfaces gráficas(telas). Exemplo: Tela de Cadastro de Livros, Telade Empréstimo de Exemplares.

Page 48: Aulas de análise

� Os relacionamentos representam a forma comoas classes de um sistema interagem entre si.Duas ou mais classes podem se associar pormeio de quatro tipos de relacionamentos, os quaissão: associações, todo-parte, herança edependência.

Page 49: Aulas de análise

� Associações descrevem um vínculo existente entre duas classes,sendo conhecidas como associações binárias. Para exemplificareste tipo de relacionamento, considere as classes Aluno e Curso.De acordo com o domínio de problema, um aluno deve estarmatriculado em um curso, ou seja, existe um vínculo entre essasclasses.

Page 50: Aulas de análise

� Todo-parte: indica que os objetos da classe A (todo) são compostospor objetos da classe B (parte). Para exemplificar este conceito,suponha um carro, o qual é formado por diversas peças. O carrorepresenta o todo e suas peças representam as partes que ocompõe.

� Existem dois tipos de relacionamento todo-parte: agregação ecomposição.

� Agregação

� Composição

Page 51: Aulas de análise

� Herança: Antes de iniciar a explicação do conceito deherança empregada no diagrama de classes, vamosentender o conceito de herança proposto pela genética.

� Multiplicidade e Participação:

Page 52: Aulas de análise

DIAGRAMA DE ESTADOS

Page 53: Aulas de análise

� Descreve os possíveis estados dos objetos de uma classe

� Elementos◦ Estado inicial◦ Estado final◦ Estados◦ Transição de estados

Page 54: Aulas de análise

� Notação◦ Estado inicial

◦ Estado final

◦ Estado

◦ Transição

Page 55: Aulas de análise

� Classe Caixa

Page 56: Aulas de análise

� Eventos: é uma ação que exige a mudança de estado do objeto como reação.

� Ex: Ferver a água faz com que ela mude do estado liquido para o gasoso.

� A mudança de um estado é chamado de transição de estado

� Os estados e as transições de um objeto formam um cliclo de vida do objeto.

Page 57: Aulas de análise
Page 58: Aulas de análise

� Mostrar o fluxo de atividade de um processo.� Pode ser usado para detalhar um caso de uso� Fortemente empregado para representar fluxo de negócio

� Elementos◦ Início do fluxo◦ Final do fluxo◦ Atividade◦ Transição◦ Junção/Bifurcação◦ Seleção◦ Condição de guarda◦ Raias de navegação

Page 59: Aulas de análise

� Notação◦ Início◦ Final◦ Atividade

◦ Transição◦ Junção/Bifurcação◦ Seleção◦ Condição de guarda [condição]◦ Raias de navegação

Page 60: Aulas de análise

◦ Atividade: é um passo simples num processo ou na descrição do caso de uso. ◦ Estados de atividades: são as atividades realizadas pelo sistema ou pelo ator.◦ Transição: é a mudança que permite a passagem de controle de uma atividade para outra.◦ Desvios: são decisões que precisam ser tomadas para permitir a continuação do fluxo de atividades.

Page 61: Aulas de análise

◦ Bifurcação e junção de fluxo de controle: o primeiro indica o início de atividades paralelas e o segundo representar a união de fluxos independentes.◦ Intercalação: é utilizado após um desvio para indicar que o fluxo seguirá o mesmo caminho independente da condição de guarda satisfeita.◦ Raias: são compartimentos que permitem a separação das responsabilidades dos participantes do diagrama de atividades.◦ Estados inicial e final: indicam o início e o fim de um fluxo, respectivamente.

Page 62: Aulas de análise

� Descrever os passos de um caso de uso.

� Mostrar o fluxo completo do sistema, representando a ordem de execução dos casos de uso.

� Modelar um algoritmo complexo.

Page 63: Aulas de análise
Page 64: Aulas de análise

� É um diagrama usado para demonstrar interações entre objetos por meio de troca de mensagens. (A bíblia)

� Mostra a troca de mensagens entre os objetos.

Page 65: Aulas de análise

� Modelo de caso de uso descreve as tarefas que o sistema deve realizar.

� Descreve quais são os requisitos funcionais do sistema e quais são as entidades do ambiente (atores) que interagem com o sistema.

� Não descreve o comportamento interno do sistema.

� Não responde às questões: Quais são as operações que devem ser executadas internamente ao sistema? Quais objetos participam da realização do caso de uso?

Page 66: Aulas de análise

� Modelo de classes do domínio descreve as classes que realizarão as tarefas do sistema e o relacionamento entre as mesmas.

� Fornece uma visão estrutural estática inicial do sistema.

� Não responde às questões: De que forma os objetos colaboram para que um determinado caso de uso seja realizado? Em que ordem as mensagens são enviadas durante a realização de um caso de uso?

Page 67: Aulas de análise

� O modelo de casos de uso e o modelo de classes do domínio têm o objetivo de fornecer um entendimento do problema correspondente ao sistema de software a ser desenvolvido.

� O modelo de interações representa as mensagens trocadas entre os objetos para a execução de cenários dos casos de uso do sistema.

� O modelo de interações responde às questões anteriores.

Page 68: Aulas de análise

� Permite armazenar em detalhes COMO os objetos interagem para realizar uma tarefa.

� Mostra como o sistema realiza casos de uso, ou cenários particulares dos casos de uso.

� Permite validar classes, responsabilidades e colaboradores identificados anteriormente.

� Permite refinar o modelo de classes do domínio.

� Durante a construção do modelo de interações operações das classes são identificadas.

Page 69: Aulas de análise

Componentes

� Ator

� Objetos

� Mensagens

� Foco de controle

Page 70: Aulas de análise

� Ator

� Realiza a interação com o caso de uso

� Tem a mesma notação do diagrama de caso de uso.

� Só interagem com a classe de fronteira.

Page 71: Aulas de análise

Objetos

� Representam as instâncias das classes.

� São responsáveis por enviar ou receber mensagens.

� São representados por uma caixa de retangular ou por um círculo, acompanhados por uma linha tracejada, conhecida como linha de vida do objeto.

Page 72: Aulas de análise

� Mensagens

� Nas mensagens existe o objeto que envia a mensagem e outro querecebe a mensagem.

� As mensagens tem ser clara, ou seja, deve haver umacomunicacão entendível entre ambos.

� A seta das mensagens deve partir do objeto emissor para o receptor.

� As mensagens podem ser:◦ Sícrona◦ Assícrona◦ Criacão de Objetos◦ Retorno◦ Reflexiva◦ Destruicão

Page 73: Aulas de análise

� FOCO DE CONTROLE� O Foco de controle indica o momento ou período de

tempo em que um determinada mensagem de um objeto está no comando da execução do sistema.

� A notação do foco de controle é uma barra vertical fina sobre a linha de vida do objeto.

� Para as mensagens reflexivas, o foco de controle é representado por uma barra vertical sobreposta à barra da linha.

Page 74: Aulas de análise

Sícrona

� Indica que o objeto remetente espera que o objeto receptor processe a mensagem enviada antes de recomeçar o seu processamento.

Page 75: Aulas de análise

� Assícrona

� Objeto remetente não espera a resposta da mensagem enviada para prosseguir com o seu processamento.

Page 76: Aulas de análise

Retorno

� Indica o término de uma operação.

� Mostra a resposta do objeto receptor referente à uma mensagem síncrona recebida.

Page 77: Aulas de análise

� Criação de objetos� É uma mensagem que cria um objeto, ou seja, a partir

daquele momento o objeto passa a existir no sistema.

Page 78: Aulas de análise

� Reflexiva� O mesmo objeto é emissor e receptor ao mesmo tempo. � Um objeto envia uma mensagem para ativar um método

na sua própria classe.

Page 79: Aulas de análise
Page 80: Aulas de análise
Page 81: Aulas de análise
Page 82: Aulas de análise
Page 83: Aulas de análise