Upload
rebeca-andrada
View
220
Download
0
Embed Size (px)
Citation preview
O que é um Modelo?
27/04/23
2
Construímos modelos para compreender melhor o sistema que estamos desenvolvendo
Um modelo é uma simplificação da realidade
Um modelo pode ser estrutural ou comportamental
O que é um modelo?
27/04/23
3
O que é um modelo?
27/04/23
4
Por que modelar software?
27/04/23
5
Ajuda a ter uma visão geral do sistema
Permite especificar a estrutura e o comportamento do sistema
Proporciona um guia para a construção do sistema
Documenta as decisões tomadas
O que é a UML?
27/04/23
6Unified Modeling Language:
...uma linguagem gráfica para visualizar, especificar, construir e documentar os artefatos de um sistema de software.
...resultado da unificação das notações utilizadas nos métodos Booch, OMT (Object Modeling Technique) e OOSE (Object-Oriented Software Engineering).
...adotada por grande parte da indústria de software e por fornecedores de ferramentas CASE como linguagem padrão de modelagem.
…utilizada com qualquer processo de desenvolvimento
UML
27/04/23
7
A UML é uma linguagem para visualização
No processo de desenvolvimento de sistemas de software, é quase impossível a visualização de toda a estrutura de um sistema sem o uso de modelos
A UML fornece os símbolos gráficos para a representação de artefatos de software.
Por trás de cada símbolo empregado na notação da UML, existe uma sintaxe e uma semântica bem-definidas.
Assim, o desenvolvedor pode usar a UML para escrever modelos, diminuindo a ambigüidade em sua interpretação
UML
27/04/23
8
A UML é uma linguagem para construçãoOs modelos de UML podem ser diretamente
”traduzidos” para várias linguagens de programação É possível mapear os modelos da UML para linguagens
de programação tais como, Java, C++ e Visual Basic.
Realização de uma engenharia de produção: geração de código a partir de um modelo em UML
O processo inverso, a engenharia reversa, também é possível, com a reconstrução de um modelo a partir de sua implementação
UML
27/04/23
9
A UML é uma linguagem para documentação Cada modelo criado é um artefato de software
Diagrama de Seqüência
: SIM : AnalisadorMatricula
2: adicionar(a,d )
1: submeterFormulario(f)0..*
1 autor
0..*
0..*
1 dono0..* 1usuario
0..*
usaUsuarioBlog
-email:String
+notificarExclusao:void
Conteudo
-dtCriacao:Date-texto:String-autor:UsuarioBlog
+Conteudo+exibirConteudo:void
Blog
-dtCriacao:Date-titulo:String-dono:UsuarioBlog-conteudos:Vector
+criarNota:void+exibirConteudo:void+comentar:void+lerComentarios:Vector+removerConteudo:void+lerNotas:Vector+Blog
Nota
-comentarios:Vector-attribute1:int
+comentar:void+lerComentarios:Vector+finalize:void
Comentario
+finalize:void
Diagrama de Classes
Diagrama de Casos de Uso
blogSystem
Criar Comentario
Ler Conteudo
Remover Conteudo Remover Nota
Remover Comentario
Criar Blog
Ler Comentario
Ler Nota
Criar Nota
Usuario
Dono do blog
<<include>> <<include>>
<<include>>
…
27/04/23
Linguagem de Diagramas
27/04/23
10
Diagramas de Classe
Diagramas de Colaboração
Diagramas de Seqüência
Diagramas de Estado
Diagramas de AtividadeDiagramas de Objetos
Diagrama de Deployment
Diagramas de Componentes
Diagrama de Casos de Uso
Modelos
Ponto de Vista Estático
Ponto de Vista Dinâmico
27/04/23
11
Casos de Uso
Casos de Uso
27/04/23
12
Um caso de uso é uma seqüência de ações realizada por um sistema que produz um resultado de valor observável para determinado ator
Todos os casos de uso juntos devem descrever a funcionalidade completa do sistema (requisitos)
Atores são fundamentais para a descoberta dos casos de uso
Casos de Uso
Cenários para os requisitos
Detalhamento dos requisitos para implementação
Interação dos atores com o sistema
27/04/23
13
Casos de Uso
27/04/23
14
Este caso de uso é responsável por autenticar um usuário do sistema.
Pré-condição: nenhumaPós-condição: um usuário válido é logado e sua sessão é registrada no sistema.
Fluxo de eventos principal1. O cliente informa login e senha.2. O sistema verifica se o login e a senha são válidos (verifica-se se o login e senha pertencem a uma conta).3. O sistema registra o início de uma sessão de uso.
Fluxos secundários- No passo 2, se o login ou a senha forem inválidos, o sistema exibe uma mensagem e volta ao passo 1.
Descrição Narrativa
CASO DE USO
ATOR
Diagrama de Casos de Uso
27/04/23
15
Estudante
Secretária
<<estende>> Solicitar histórico dosemestre atual
Solicitar histórico detodos os semestres
Solicitarhistórico
<<estende>>
Verificardependências
Matricularaluno<<inclui>>
ATOR
Atores – Especialização
27/04/23
16É possível definir
tipos gerais de atores e especializá-los usando o relacionamento de especialização
Cliente
ClienteEspecial
Atores – Especialização
27/04/23
17
Na generalização de ator o filho herda o papel que o pai pode desempenhar em um caso de uso
Facilita a leitura do modelo de caso de uso
Diagrama de Classes
27/04/23
18
Modelar o vocabulário de um sistema do ponto de vista do usuário/problema ou do desenvolvedor/solução Ponto de vista do usuário/problema – na fase de captura e
análise de requisitos, em paralelo com a identificação dos casos de uso
Vocabulário do desenvolvedor/solução – na fase de projeto (design)
Construído e refinado ao longo das várias fases do desenvolvimento do software
Diagrama de Classes
27/04/23
19
Também serve para: Especificar relacionamentos e colaborações
Especificar esquemas lógicos de bases de dados
Especificar visões (estrutura de dados de formulários, relatórios, etc.)
Modelos de objetos de domínio, negócio, análise e projeto
Base da implementação
Diagrama de Classes
27/04/23
20
+confirmar()+cancelar()-calcularTotal():CurrencygerarNovoCodigo: Integer
-codigo: Integer-dataRecebido-total: Currency
Pedido
#creditoPermitido: Currency#nivelCredibilidade()
-nome: String-endereco: String-dataPrimeiraCompra: Date-dataUltimaCompra: Date-totalComprado: Currency
Cliente
-quantidade: Integer-preco: Currency-emEstoque: Boolean
Item de PedidonomeContato: Stringtelefones[1..10]: StringCGC: StringFAX[1..3]: String
Cliente pessoa-jurídica
colocarListaNegra()
nome: StringCPF: StringnumCartaoCredito
Cliente pessoa-física
EmpregadoProduto
* representantede vendas
IPessoa
itens
0..* 1 faz
Diagrama de Objetos
27/04/23
21
Oferece uma visão estática das instâncias (objetos) das classes
Registrar os objetos e seus relacionamentos num determinado instante de tempo
Diagrama de Objetos
27/04/23
22
p2: Professormatricula: "205-6712-09"
nome: "Jaelson Castro"
p1: Professor
codCurso: "IF291"descrição: "MPS"codTurma: I7
: Curso
codCurso: "IF185"descrição: "AER"codTurma: I6
: Curso
matricula: "219846534"nome: "Nelson Mandella"
:aluno
matricula: "562746134"nome: "John Major"
:aluno
: Aluno
: Aluno
: Aluno
: Aluno
c1: Curso
c2: Curso
c3: Curso
Bill
: Aluno : Aluno
Lewinsky
-matrícula: String-nome: String
Professor-codDisciplina: String-descrição: String-codTurma: String
Curso
-matrícula: String-nome: String-período: Integer
Aluno
[0..10]
ministra
[1..5]*
[1..3]
Diagrama de Objetos
27/04/23
23
Diagrama de Objetos
27/04/23
24
Diagrama de Sequência
27/04/23
25
Exibe objetos e as mensagens trocadas entre eles ao longo do tempo
Retrata a ordenação temporal das mensagens
Descreve a maneira como os grupos de objetos colaboram em algum comportamento ao longo do tempo registra o comportamento de um único caso de
uso
Diagrama de Sequência
27/04/23
26
: ClienteAtor : TelaLogin : ControladorLogin : CadastroContas
efetuarLogin(login, senha)
efetuarLogin(login, senha)
existeConta(login, senha)
registraSessao(login)
Diagrama de Sequência
27/04/23
27
Diagrama de Colaboração
27/04/23
28
Ilustra o fluxo de troca de mensagens entre objetos
Mostram interação entre objetos sem (muita) preocupação com a seqüência das ações
São adequados para especificar um processo na lógica do programa
Diagrama de Colaboração
27/04/23
29Janela de entrada
de pedido
p: Pedido
: ItemPedido :ItemEs toque
:ItemRenov Es toque:ItemEntrega
1: preparar()
1.1: *[para c ada item do pedido] preparar( )
1.1.1 : emEs toque := v erif ic ar( )1.1.2 : [emEs toque] remov er( )
1.1.2.1: es toqueBaix o := v erif ic Es toqueBaixo()
1.1.2.2 [es toqueBaix o] <<c riar>>
1.1.3 : [emEstoque] <<c riar>>
Diagrama de Colaboração
27/04/23
30
Diagrama de Estados
27/04/23
31
Exibe os estados e as transições entre estes
Modela uma máquina de estados (seqüência do ciclo de vida de um objeto)
Especifica as seqüências de estados pelos quais um objeto passa durante seu tempo de vida em resposta a eventos
Diagrama de Estados
27/04/23
32
Diagrama de Atividades
27/04/23
33
É um tipo especial de gráfico de estados
Exibe o fluxo de atividades no sistemaAtividade: operação que resulta na
mudança de um estado do sistemaGeralmente é utilizado para modelar
uma função do sistema
Diagrama de Atividades
27/04/23
34
Procurar bebida
[achou café]
H
PessoaH
[sem café] [sem Coca]
[achou Coca]
Pegar latade Coca
Beber
Adicionar água àmáquina
Colocar caféno filtro
Colocar filtrona máquina
Ligar máquina
Filtrar café
Pegarxícara
Colocar café naxícara
Diagrama de Componentes
27/04/23
35
Exibe as organizações e as dependências de um conjunto de componentes de SW
Retrata uma visão estática da implementação do SOFTWARE
Relacionado com o diagrama de classes classes e interfaces são mapeadas
em componentes
Diagrama de Componentes
27/04/23
36
FormCadastro.html
Cadastro.exe
Principal.html
FormEntrada.html
Autenticacao.exe
<<link>>
<<link>>Banco
Usuários
Senhas
Diagrama de Componentes
27/04/23
37
Diagrama de Implantação
27/04/23
38
Exibe a configuração dos nós de processamento e dispositivos
Retrata uma visão estática da organização do hardware
Relacionado com o diagrama de componentes um nó inclui um ou mais componentes
Diagrama de Implantação
27/04/23
39
servidorWeb
Autenticação.exe
Cadastro.exe
servidorDeArquivos
FormCadastro.html
Principal.html
FormEntrada.html
servidorBancoDeDados
SGBD
O SGBD a serutilizado aindanão foi escolhido.
PC - G309
NestscapeCommunicator
5.0
Diagrama de Implantação
27/04/23
40
27/04/2341
PERGUNTAS ???
Bibliografia
27/04/23
42
The Unified Modelling Language User Guide (Grady Booch)
The Unified Modelling Language Reference Manual (James Rumbaugh)
The Unified Software Development Process (Ivar Jacobson)
UML Distilled (Martin Fowler)