Buscar

Revisao UML Casos de Uso

Prévia do material em texto

UML
Análise Estruturada
Projeto e e e 
Programação Estruturados
Diagrama de Módulos / Fluxograma
1950 1960
1970
1980
1990
SW !?
1ºs DBs
Real Time
Interf. Rica
+
Massificação
Sofisticação
1ºs Móvel
Padronização
Sem planejamento: Simples !
Especificar
Projetar
Manter
Gerir
Espetar Manter e rir !!!!!
1º atividade
2º atividade
3º atividade
4º atividade
5º atividade
......
......
.......
Utilizar os Conceitos Já conhecidos: Atividades Antecessoras e Predecessoras
Análise de Requisitos: Elicitações
Projeto: definidos os componentes / interações; Banco de dados e SW Operacional
Codificação:
Testes: Validação do Software frente aos requisitos
Implantação / Manutenção: Início do uso pelo Cliente
Testes Unitários
Custo: pelo tempo e por falhas futuras. Às vezes encontramos nosso destino justamente pelo caminho de evita-lo: A grande desvantagem do cascata é que não se inicia uma etapa sem terminar a outra, então, gasta-se muito tempo pra garantir que uma vez terminada a fase, esta esteja Perfeita, mas aí !!, já gastou o tempo.... Ferrou e se mesmo assim encontrar problema !!!
$ $ $
Requisitos Total
Requisitos Total
Incremental
Ponto Positivo:
Redução de Retrabalho
Gerente de Projetos: coordenar e acompanhar as atividades e alocar Mão Obra.
Coordenar
Acompanhar
Alocar pessoa
Analista de Sistema: Captar as necessidades do negócio e traduzi-las em requisitos.
Necessidades
Necessidades
Necessidades
Necessidades
Necessidades
Necessidades
Necessidades
Necessidades
Entender do negócio
Falar bem
Escrever bem
Saber computador
EU
EU
EU
EU
EU
Projetista: Produzir soluções computacionais para os problemas identificados (requisitos).
Arquiteto: Elaborar a arquitetura do sistema. Como e quais serão os componentes internos do Software e como estes componentes irão se interagir para resolver os problemas.
?
Tem a visão abstrata sobre como os problemas serão resolvidos.
Desenvolvedores: Também chamados de programadores, tem a função de implementar o SW. Passar de arquitetura para solução computacional.
Solução Computacional
Tem a visão técnica de implementação de um requisito.
Avaliadores da Qualidade: Responsáveis pela garantia de que o SW faça aquilo para o qual foi projetado, requisitos.
Solução Computacional
Qual era o paradigma dos macacos ? Não subir a escada ! Essa era a regra !
Vantagens da POO
Modelagem próximo ao mundo real (entendível)
Maior possibilidade de “reuso”, pois os blocos são independentes
Manutenibilidade: Só mexe no bloco do problema
Classe
Objeto
Abstração
Herança
Polimorfismo
Encapsulamento
Ligação e Mensagem
Pilares
Classe Caneta
Conjunto de objetos: com Mesmos atributos(propriedades), operações (mét.), relacionamentos e semântica. Exemplo: Caneta azul faz parte da Classe Caneta
Classe é uma “especificação” de um objeto.
Caution, foi dito Especificação e não Especialização
Abstração
Herança Composta
Benefício: [Reuso]
Herança
Associação simples: Ocorre apenas em um determinado momento.
Lembrando que existem outros dois tipo:
Associação por Agregação e Associação por Composição
Aprendido com Classes e agora o mesmo conceito para objetos
Programação O. Objeto
Linguagem Modelagem Unificada (maior escopo) 
Req.
Proj.
Impl.
test
trans
Casos de Uso
Projeto
Implementação
Representa os Componentes e subsistemas
Representa a Arquitetura do Sistema
Implantação
Representa a distribuição física do sistema e como irão se comunicar
Representa o ponto de vista externo do Sistema
Representa a Paralelismo e Sincronismo dos componentes
Processo
Classificação de RNF by
ISO/IEC 25010
IEC 9126
Funciona, quando utilizado em condições normais conforme acordadas ?
O sistema mantem o desempenho ou a foto da Agnes fica variando ?
O sistema auxilia os usuários nas tarefas, de maneira produtiva, lembrando, etc... ?
O sistema consegue funcionar com desempenho OK e utilização de recursos?
É fácil modificar o sistema para uma correção, melhoria ou adaptação ?
É fácil transferir o sistema para outra plataforma ou ambiente ?
Era Confiável, homem Maduro, Tolerante com sua mulher, se Recuperava rápido de uma briga...
Sabia dar Usabilidade em mulher. Ainda que um Operador, mas Inteligente e Atrativo, deixava todos Apreensivos, afinal de contas, maridos ...
Seja Eficiente como aquele homem e Comporte-se moleke. Olha o Tempo..... Utilize Recursos, só o que vai precisar
Essa tal Manutenibilidade, é balela !! Analise comigo, você pode Testar... Se não está bom, você pode Modificar, .... até Estabilizar
O que é Portabilidade ? É a Capacidade de Ser Instalado Urra!!, ou de Substituir algo, Tem haver com Adaptabilidade e Coexistência
Esse método Funciona? É Adequado sim !! É Seguro também !!
Em Funcionalidade, me recuso a decorar a Acurácia e também não concordo com aqui Interoperabilidade
Era Confiável, homem Maduro, Tolerante com sua mulher, se Recuperava rápido de uma briga...
Sabia dar Usabilidade em mulher. Ainda que um Operador, mas Inteligente e Atrativo, deixava todos Apreensivos, afinal de contas, maridos ...
Seja Eficiente como aquele homem e Comporte-se moleke. Olha o Tempo..... Utilize Recursos, só o que vai precisar
Essa tal Manutenibilidade, é balela !! Analise comigo, você pode Testar... Se não está bom, você pode Modificar, .... até Estabilizar
O que é Portabilidade ? É a Capacidade de Ser Instalado Urra!!, ou de Substituir algo, Tem haver com Adaptabilidade e Coexistência
Esse método Funciona? É Adequado sim !! É Seguro também !!
Em Funcionalidade, me recuso a decorar a Acurácia e também não concordo com aqui Interoperabilidade
ISO/IEC 9126
“Conformidade” não entrou nas historinhas !!!
Requisitos Não Funcionais são altamente Complexos na Documentação e Rastreabilidade, e Validação
Requisitos Não Funcionais devem fornecer subsídios numéricos para que sejam validados. 
Caixa Eletrônico: Precisa especificar numericamente que o sistema deve estar disponível por 99,5% do tempo nos dias úteis, das 6h às 22h. Deste modo temos subsídios suficientes para mensurar o atingimento ou não dessa meta de qualidade.
Modelo de casos de uso é uma representação das funcionalidades
externamente observáveis do sistema e dos elementos externos ao sistema que interagem com ele !!!
Não entendi essa definição de casos de uso blá blá blá...
Um caso de uso é a descrição de uma determinada ação ou comportamento de um sistema que produz um resultado para um determinado agente externo a esse sistema, denominado ator.
Cuidado Pegadinhas... Podem confundir com esta outra definição
Dissociar Casos de Uso e UML
SISTEMA
UC 1
UC 2
UC 3
UC 4
Casos de Uso: Uma Visão “Comportamental Externa” 
Casos de Uso: Podem definir um denominador comum de “entendimento” do domínio. 
UML
Sintaxe
Semântica
Diagrama de caso de uso
Esse tipo de Obrigatoriedade lembra a porta lógica “E”
Efetuar Saque
Senha OK
<<include>>
Parece que a seta sempre vira para o caso que decide a parada de verdade, neste caso aqui, pode sacar normal, sem fazer um empréstimo.
Parece que a seta sempre vira para o caso que decide a parada de verdade, neste caso aqui, o pai.
Senha
Biomet.
Segurança OK
Esse tipo de Possibilidade lembra a porta lógica “OU”
Faz 2 Ações
Faz 3 Ações
Por herança,
1
2
3
<< tipo >>
<< relação >>
<< tipo >>
nota
[Aspecto estrutural estático], ou tb [Visão estrutural estática] representa a estrutura interna do sistema, quais são os objetos, suas responsabilidades e relacionamentos. 
É, estou tendo sim uma Visão de uma estrutura, e acho que não tem nadase mexendo !!!
Aspecto estrutural estático: [objetos e a relação entre eles]
 [classes e a relação entre elas]
Obs: Classes
Responsabilidades bem definidas !!!
ESTA É A BEASE PARA O PARADIGMA DE ORIENTAÇÃO À OBJETO: Objetos e Relações = *Solução*
Eba Patrick ... Amarelinha !!!
Próximo sou eu !!!
A roda é um objeto autônomo, o carro não quer saber do que ela é feita, apenas requer que sustente o seu peso enquanto se movimenta. Pra que re-inventar a roda ? Na programação é melhor não enfeitar o pavão: A roda só faz exclusivamente aquilo que se espera dela e sua única dependência é estar parafusada ao carro.
Na rua inteira, é como se você enxergasse apenas a tampa do escoamento d’água para antever um problema: dá um ZOOM na tampa, isola, seleciona.
Ter apenas as dependências que deva ter significa colocar o mínimo de código, só pra cumprir o seu papel, Pra fazer isso depende de três linhas java ...
Ele tem o Dom Específico de Implorar
Ele tem o Dom Específico de Implorar
Domínio:
Só o escopo do Problema
Especificação
Implementação
Visão Estática
Fase Análise
Implementar = construir !!
Fase Desenvolvimento
Extends
Fiquei intrigado com a explicação. Se entendi bem, “Domínio” também pode significar tipo “Contexto” em que se passa a ação entre os objetos. Ficar atento às colocações e conceitos.
Entendendo melhor o conceito de domínio: Além de poder ser um contexto, podemos entender como o escopo de uma classe, por exemplo... Classe CartaoCredito
Em uma Visão estrutural estática, a Classe CartaoCredito terá suas responsabilidades e relações com as demais classes (ou objts) do conjunto, a fim de solucionarem os problemas envolvidos com o sistema.
Lembrando, é uma classe, logo representa todos os Cartões de Crédito que serão instanciados.
Obs. Plural não existe para nome de classe. Seguir as boas Práticas para nomenclaturas...
metodoX ()
Binária:
2 elementos apenas
Fiquei intrigado com a explicação. Se entendi bem, “Domínio” também pode significar tipo “Contexto” em que se passa a ação entre os objetos. Ficar atento às colocações e conceitos.
Vendas
Hotelaria
Não entendi direito, mas vou deixar na Manga !!!
Obj funcionario
Obj gerente
Gerencia
Gerenciado
*
1
Por conta própria, modelo Dimas
todo
parte
objeto carro
objeto roda
Um objeto contido dentro do outro
Em cima citou apenas “Classe”, e já na linha de baixo refere-se a objetos da Classe !!!
1
0..4
Podemos interpretar que:
A classe Roda é parte da classe Carro;
Um objeto do tipo roda existe independentemente do carro [entender aqui um domínio de problema];
Um objeto roda pode fazer parte de no máximo um objeto carro;
Em sua estrutura, um carro pode ter nenhuma roda ou, no máximo, quatro rodas
O ciclo de vida do objeto da classe parte depende do ciclo de vida do objeto da classe todo.
Classe Arvore
Classe Fruto
A Classe Fruto é parte da Classe Arvore e o inverso nunca é verdadeiro;
A existência de “um objeto” da Classe Fruto depende da existência de “um objeto” da Classe Arvore. 
1
*
Objetos interagem para Realizarem os User Cases
[Objetivo]
[Estático]
[ *Estático ( diagrama de classes e objetos ) ]
Estático
Dinâmico
Visão Estrutural Dinâmica ou Comportamental
Inertes
U Cases
Objeto inerte
Objeto já pode interagir
Não queremos saber o que tem ai dentro, mas você precisa realizar UC 3
Realizar UC 3
Objeto ganha uma responsabilidade dentro do sistema
privado
Objetos estão [ Encapsulados ] e ganham responsabilidades dentro do sistema
 A abordagem para definição de responsabilidades de objetos é chamada de “método dirigido a responsabilidades”.
Método dirigido a responsabilidades
Princípio POO:
Encapsulamento
Ou isso abaixo ou criar projetos emendados e gambiarras improvisadas, sem reuso.
Criar um Projeto Padrão, através de organizar e dividir por responsabilidades os Objetos.
Projeto este que venha a ser um conjunto de soluções com um objetivo específico.
Projeto este que venha a ser uma organização sistêmica com um objetivo específico.
Os objetos são divididos e categorizados em três grupos de acordo com seu tipo de responsabilidade: 
classe entidade, classe de controle e classe de fronteira.
 
Classes de análise é o nome que se da à forma de organizar essas classes, e vai ao encontro de um dos princípios fundamentais da orientação a objetos:
divisão de responsabilidades.
Princípio POO:
Divisão de Responsabilidades
Sem o Padrão, Divisão de Responsabilidades
Classes entidades
Classe Carro
Classe Roda
Classes mais superficiais, digamos de alto nível para compreensão do problema. Senão, daqui a pouco, em um modo mais profundo do sistema nem nos lembraremos mais o que era para resolver !!!
Outras Classes envolvidas
Classe Virabrequim
Classe DiscoFreio
Se estou entendendo, podemos dizer que um domínio de problema, em nosso nível, chama outros domínios ao nível do sistema e as soluções se dão de modo Recursivo, chegando novamente ao nível do usuário que fez a interação nos casos de uso, pela interface.
informação do domínio
Comunicação: um objeto só usa o outro se houver comunicação !!!
Nosso sistema
Dividir os ambientes
Validação de Senha
informações de sistemas governamentais
informações de crédito, CERASA
Podemos interpretar que essa classe representa uma interface do usuário (ator)
Sequenciar Execução
UC 3
UC 7
UC 5
UC 2
UC 9
Necessário colocar estereótipos:
<< entity >>
<< control >>
<< boundary >>
Polimorfismo para Animais: 
Comando:
Correr
Comportamento diferente para a mesma voz de comando:
Pra ter uma disputa justa !!! Fácil !!! 
**Facilidade de novas Implementações, extensão e manutenção:
 .... só troca o bicho
Mantem todo o restante do comando.
Ah! outra vantagem: Encapsulamento das mudanças 
Onde representar ?
Documentar no Modelo de Classes
Only Metods
Classe A
Classe B
Classe C
Classe D
<< interface >>
l Contrato
Caos UNIP !!!
Tem i aqui ? E aqui ?
**O Que** ... mas Não Como
Já que tem importância, tem que errar ?? !!!
objeto
Instanciar
criar
Utilizar
Destruir
1
2
3
Classe A
parâmetros
+
Obs:
Destruidor
3 Tipos
Chamada
(de função)
Queue Message
Evento ( EXTERNO )
específico e especializado de envio e recebimento
Diagrama de Sequência
UML
(Comportamental)
Troca de mensagens entre Objetos ou ator na linha sequencial do tempo
Pode ser por Casos de Uso ou Regras de Negócio...
Os objetos devam estar no Modelo de Classes
Será que daria para bater uma foto do momento, e saber quem estava fazendo “o que” naquele flash ??
Aqui não entra Classes !!
Only Objetos Instanciados
metodo informarSuaRA() : int
metodo receberNota( double ) : void
Informe sua RA para eu procurar... Então já te envio a nota
Note as assinaturas padrões dos parâmetros... “Receber”, Retorno de valores ou não !!
Envia Mensagem
Espera Retorno
Segue o Fluxo
Método Privado
Método Público
AutoDelegação de Mensagem
Cliente no Terminal: Quer efetuar o saque
Cliente no Terminal: insere Cartão
Terminal: Chama Leitora para validação do Cartão, que retorna... “Prosseguir”.
Cliente no Terminal: digita a senha
Terminal: verifica se a senha está correta
Terminal: Chama Dispensador de dinheiro
Cliente no Terminal: Retira as cédulas
Diagrama de Sequência
Fluxo Alternativo
Bola da vez aqui
Laço de repetição
Bola da vez aqui
Errou a senha 3 vezes, 
Xau Pardal
associação
associação
composição
composição
composição
agregaçãoagregação
Quem está comprometido, em que se tentar desmembrar fica Inutilizável ?
Quem está apenas agregado, Leandro no Japão, Zezé com Plano ??
Palmilha é palmilha, serve pra outro !!!
Quem apenas está associado ??
Seriam: Dinâmicos ??
Seriam: Estáticos ??
Quando é 1, é relacionamento obrigatório
Quando é 0, é relacionamento NÃO é obrigatório
Se for 1 para 1, é padrão e nem precisa representar a Multiplicidade
Navegabilidade significa o sentido que os dados fluem, ou seja, Pessoa pode executar métodos na Classe Revista e não ao contrário
Obs, apenas um Traço significa Bidirecional
Bizu, podemos dizer que uma Agregação ou uma Composição, ambos relacionamentos são também uma Associação
Entre Classes
Interface /
Realização
Herança
?
Unip - WEB

Continue navegando

Outros materiais