Contexto Análise Passando de casos de uso para diagramas de classes 2.
Transcript of Contexto Análise Passando de casos de uso para diagramas de classes 2.
![Page 1: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/1.jpg)
![Page 2: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/2.jpg)
Contexto Análise Passando de casos de uso para diagramas de classes
22
![Page 3: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/3.jpg)
Após a etapa de análise de requisitos, temos documentos de requisitos e os casos de uso em mãos.
Queremos agora gerar um primeiro modelo do sistema a partir dos casos de uso.
Este modelo é chamado de modelo de análise.
33
![Page 4: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/4.jpg)
44
Requisitos Análise Projeto
ARQUITETURAARQUITETURA
![Page 5: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/5.jpg)
Vai proporcionar um método que permita que criemos um modelo de classes do sistema a partir dos casos de uso
Trará a resposta para a pergunta:◦ Quais classes preciso para implementar estes casos de uso?
55
![Page 6: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/6.jpg)
A maneira como vamos realizar a etapa de análise se baseia no processo do RUP (Rational Unified Process)
A análise será orientada a casos de uso, ou seja, os casos de uso servirão de guia para a etapa de análise
66
![Page 7: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/7.jpg)
casos de uso análise Descritos na linguagem do cliente
Descrito na linguagem dos desenvolvedores
Visão externa do sistema
Visão interna do sistema
Captura as funcionalidades do sistema
Mostra, de modo abstrato, como a funcionalidade pode ser realizada
Estruturado por casos de uso
Estruturado por classes e pacotes
77
![Page 8: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/8.jpg)
Identificar as classes◦ Identificar persistência
Identificar responsabilidades das classes
Identificar relacionamentos Identificar atributos
88
![Page 9: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/9.jpg)
No primeiro passo de análise, identificaremos três tipos de classes:◦ Fronteira ◦ Entidade◦ Controle
Tais classes são identificadas separadamente para cada caso de uso
99
![Page 10: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/10.jpg)
Utilizada para modelar a interação entre um ator e o sistema
Para cada interação entre um ator e caso de uso, é criada uma classe de fronteira
Possuem o estereótipo <<boundary>>
1010
![Page 11: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/11.jpg)
Utilizadas para modelar a informação manipulada pelo sistema
Podem ser persistentes ou não
São identificadas a partir do fluxo de eventos do caso de uso
Possuem o estereótipo <<entity>>
1111
![Page 12: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/12.jpg)
Classes responsáveis por controlar o fluxo de execução do caso de uso
Normalmente é criada uma classe de controle para cada caso de uso
Possuem o estereótipo <<control>>
1212
![Page 13: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/13.jpg)
registrar faltas
registrar súmulasdas aulas
Professor
consultar freqüência
Aluno
editar alunos remover alunos
adicionar turma
remover turma
editar turma
Servidor de e-mailadicionar alunos
Secretária
Usuarioefetuar login
1313
![Page 14: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/14.jpg)
Efetuar Login Fluxo de eventos:1. Usuário informa login e senha2. Sistema checa se o login e senha conferem
3. Sistema registra a informações do aluno e a tela principal do sistema é exibida
1414
![Page 15: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/15.jpg)
Que classes preciso criar?◦ uma classe de fronteira para lidar com a interação dos atores com o sistema
◦ uma classe de entidade para representar as informações relevantes do aluno
◦ uma classe de controle para gerenciar o fluxo de execução do caso de uso
1515
![Page 16: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/16.jpg)
1616
ControladorLogin UsuarioTelaLogin
ControladorLogin<<control>>
Usuario<<entity>>
TelaLogin<<boundary>>
Há diferentes opções de visualização dos estereótipos. A opção padrão é mostrada acima - os estereótipos são visualizados através da mudança dos ícones das classes. Há também a opção de se visualizar os estereótipos do modo convencional (<<estereótipo>>).
![Page 17: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/17.jpg)
Após a identificação das classes, é necessário descobrir quais são as responsabilidades de cada classe, o que cada uma precisa fazer.
Os diagramas de interação (sequência e colaboração) são muito úteis nesta tarefa
1717
![Page 18: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/18.jpg)
1818
: usuário : TelaLogin : ControladorLogin : CadastroAlunos
efetuarLogin(login, senha)
efetuarLogin(login, senha)
checar(login, senha)
registrarSessao()
ControladorLogin UsuarioTelaLogin
![Page 19: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/19.jpg)
Após identificarmos as responsabilidades (métodos) pelos diagramas de interação, devemos acrescentar os métodos nas classes previamente identificadas (1º passo)
1919
![Page 20: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/20.jpg)
2020
TelaLogin<<boundary>>
+efetuarLogin(login, senha)
ControladorLogin<<control>>
+efetuarLogin(login, senha)+registrarSessao()
Usuario<<entity>>
+checar(login, senha)
![Page 21: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/21.jpg)
As classes identificadas não funcionam isoladamente, elas se relacionam com as demais classes
Os diagramas de interação são muito úteis nesta tarefa
Para cada ligação presente nos diagramas de interação, é necessário um relacionamento no diagrama de classes
2121
![Page 22: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/22.jpg)
2222
TelaLogin<<boundary>>
+efetuarLogin(login, senha)
ControladorLogin<<control>>
+efetuarLogin(login, senha)+registrarSessao()
Usuario<<entity>>
+checar(login, senha)
1*
*
1
![Page 23: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/23.jpg)
Também é necessário identificar quais os atributos das classes
Um bom conhecimento do domínio do problema é bastante importante para esta tarefa, principalmente na identificação de atributos das classes de entidade
Nesta etapa ainda não precisamos indicar quais os tipos dos atributos
2323
![Page 24: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/24.jpg)
2424
TelaLogin<<boundary>>
+efetuarLogin(login, senha)
ControladorLogin<<control>>
+efetuarLogin(login, senha)+registrarSessao()
Usuario<<entity>>
+login+senha
+checar(login, senha)
1*
*
1
![Page 25: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/25.jpg)
Secretária Servidor de e-mailadicionar alunos
2525
Fluxo de eventos:1. Secretária informa dados do aluno2. Secretária seleciona a opção “confirmar cadastro”3. Sistema checa se os dados são válidos4. Sistema adiciona o aluno à base de dados5. Sistema envia um e-mail para o aluno, informando-o seu login e senha6. Sistema exibe uma mensagem de confirmação de cadastro
Identificar as classes do caso de uso “adicionar aluno”
![Page 26: Contexto Análise Passando de casos de uso para diagramas de classes 2.](https://reader035.fdocumentos.tips/reader035/viewer/2022062404/552fc100497959413d8bcb6c/html5/thumbnails/26.jpg)
2626
Email<<entity>>
+Email()
TelaAdicionarAluno<<boundary>>
+adicionarAluno()
ControladorAdicionarAluno<<control>>
+adicionarAluno()
ComunicacaoServidorEmail<<boundary>>
+enviarEmail()
Aluno<<entity>>
+nome+email+login+senha
+Aluno()+inserirAluno()
1 1
*
1
1
**
1