Aula 7 - Modelagem de Software

4,204 views 47 slides Feb 21, 2019
Slide 1
Slide 1 of 47
Slide 1
1
Slide 2
2
Slide 3
3
Slide 4
4
Slide 5
5
Slide 6
6
Slide 7
7
Slide 8
8
Slide 9
9
Slide 10
10
Slide 11
11
Slide 12
12
Slide 13
13
Slide 14
14
Slide 15
15
Slide 16
16
Slide 17
17
Slide 18
18
Slide 19
19
Slide 20
20
Slide 21
21
Slide 22
22
Slide 23
23
Slide 24
24
Slide 25
25
Slide 26
26
Slide 27
27
Slide 28
28
Slide 29
29
Slide 30
30
Slide 31
31
Slide 32
32
Slide 33
33
Slide 34
34
Slide 35
35
Slide 36
36
Slide 37
37
Slide 38
38
Slide 39
39
Slide 40
40
Slide 41
41
Slide 42
42
Slide 43
43
Slide 44
44
Slide 45
45
Slide 46
46
Slide 47
47

About This Presentation

Slides da disciplina de Engenharia de Software


Slide Content

Modelagem de Software
Leinylson Fontinele Pereira
Engenharia de Software

2
Modelagemde Software
•A modelagem de software é a construção de modelos
abstratos de um software:
•Apresenta uma visão ou perspectiva diferente do sistema,
•Modelos podem usar notações gráficas, tal como UML, ou
modelos formais com especificação formal
Ajuda na:
–Extração de requisitos
–Comunicação com a equipe –modelo técnico

Modelagemde Software
•Modelos são abstraçõesdo sistema, e não uma
representaçãoalternativa dele
–Representação: mantém todas as informações a
respeito da entidade apresentada
–Abstração: simplifica e seleciona as características
mais genéricas
–Exemplo:
•Representação: um livro traduzido em outra língua
•Abstração: um resumo pode ser considerado uma abstração
da entidade livro

Modelagemde Software
•Objetivos:
–Descrever o que o cliente deseja.
–Estabelecer a base para a criação de um projeto
de software.
–Definir um conjunto de requisitos que possa ser
validado quando o software for construído.

Modelagemde Software
•Podem ser usados em diferentes etapas da engenharia
de software
–Engenharia de requisitos –extrair requisitos do sistema,
esclarecer o que o sistema faz, tirar dúvidas, explicar os
requisitos para outros stakeholders
–Processo de Projeto –Descrever o sistema
–Outras etapas -Documentar a estrutura e operação do
sistema, estimular a discussão entre os engenheiros de
software, descrever detalhadamente o sistema

Modelagemde Software
•Diferentes modelos proporcionam
perspectivas (ou pontos de vista) diferentes:
–Perspectiva externa
•Modelo de contexto
–Perspectiva de interação
•Casos de uso, diagrama de sequencia...
–Perspectiva estrutural
•Classes, objetos, colaboração
–Perspectiva comportamental
•Diagrama de estados e derivados

Modelagemde Software
•Perspectiva externa:modela o contexto ou o ambiente do
sistema
•Perspectiva de interação:modela as interações entre um
sistema e seu ambiente, ou entre os componentes de um
sistema
•Perspectiva estrutural:modela a organização de um
sistema ou a estrutura dos dados processados pelo sistema
•Perspectiva comportamental:modela o comportamento
dinâmico do sistema e como ele reage aos eventos

Modelagemde Software
•A UML (UnifiedModelingLanguage) é uma
linguagem de modelagem amplamente utilizada:
–Conjunto de notações que visam apoiar a
modelagem de sistemas orientados a objetos
–Não explicita como a modelagem deve ser
conduzida
–Pode ser usada para modelar sistemas não-OO
•Modelos de domínio
•Modelos de contexto

Modelagemde Software
–Diagramas de Atividade:atividades envolvidas em um
processo ou no processamento de dados
–Diagramas de Caso de Uso:interações entre um sistema e seu
ambiente
–Diagramas de Sequência:interação entre os atores e o
sistema, e entre os componente ou objetos do sistema
–Diagramas de Classe:mostram as classes de objetos do
sistema e as associações entre elas
–Diagramas de Estado:mostram como o sistema reage a
eventos internos e externos

Modelagemde Software
•Modelos de contexto
–Diagramas de Atividades
•Modelos de interação
–Diagramas de Casos de uso, Diagramas de Sequência
•Modelos estruturais
–Diagramas de Classe
•Modelos comportamentais
–Diagramas de Estado

Modelos de Contexto
•Definem os limites do sistema
•Normalmente usados em um estágio inicial da especificação
de um sistema
•Mostram quais outros sistemas fazem parte do ambiente, mas
não mostram os tipos de relacionamentos entre sistemas
•Os sistema externos podem:
–produzir dados para o sistema consumir dados deste
–compartilhar dados
–ser conectados diretamente por meio de uma rede
–estar fisicamente no mesmo local ou em locais separados

Modelos de Contexto
Ex: contexto de um Sistema Operacional

Modelo de Contexto
•Diagrama de Atividades da UML
–Modelam atividades, a ordem em que são realizadas
e dependências entre elas
•Podem também indicar entradas e saídas das
atividades
–Úteis para modelar fluxos de trabalho
–Exemplos:
•Sequênciade passos da descrição de um requisito
•Processos dentro de uma empresa

Modelos de Contexto
Ex 1: diagrama de atividades (UML)

Modelos de Contexto
•Diagramas de Atividades da UML
–Início do processo (círculo preenchido)
–Fim do processo (circulo dentro de outro círculo)
–Atividades (retângulo com canto arredondado)
–Objetos (retângulos -podem representar outros
sistemas)
–Fluxo de trabalho de uma atividade para outra (setas)
–Coordenação de atividades (barra sólida)
–Atividades podem ser executas em paralelo
–Anotações podem ser incluídas nas setas

Modelos de Contexto
Ex 2: diagrama de atividades (UML)

Modelos de Interação
•Mostra as interações :
–Do usuário com o sistema
–Entre sistemas
–Entre os componentes do sistema
•Existem duas abordagens para modelar a interação:
–Diagramas de Casos de uso: mostram, principalmente, interações com atores
externos (sistemas ou usuários)
–Diagramas de Sequência: mostram interações entre os componentes do sistema
•Ambas apresentam interações em diferentes níveis de detalhamento

Modelos de Interação
Caso de Uso
•Amplamente usado para apoiar a elicitaçãode requisitos
•Representa uma tarefa discreta que envolve a interação
externa com um sistema (pode ser
hardware/software/pessoa)
•Oferece uma visão simples de uma interação
–Necessário mais detalhes para entender o que está envolvido

Modelos de Interação
•Fornece uma visão global e de alto nível do sistema
•Um cenário é uma determinada sequênciade
ações que ilustra um comportamento do sistema
•Uma designação alternativa para cenário, por vezes
utilizada, é “fluxo de ações”

Modelos de Interação
•Especificar o comportamento de um caso de uso com
uma descrição textual de um ou mais fluxos de ações
•Tal especificação deve incluir:
–Como e quando o caso de uso começa e termina;
–Quando é que o caso de uso interage com os atores;
–Que objetos são trocados;
–Cenário principal e Cenários alternativos (situações de
exceção)

Modelos de Interação
•Caso de Uso –Exemplo 3 “Nome: Validar Usuário”
•Cenário Principal
O caso de uso inicia-se quando o sistema apresenta uma tela que pede ao cliente o seu
cartão eletrônico. O cliente introduz o seu cartão magnético e, através de um pequeno
teclado, a sua senha. Note-se que o cliente pode limpar a introdução da sua senha
inúmeras vezes e re-introduzir um novo número antes de pressionar o botão “Entrar”. O
cliente ativa o botão “Entrar” para confirmar. O sistema lê a senha e a respectiva
identificação do cartão, e verifica se é válido. Se a senha for válida o sistema aceita a
entrada e o caso de uso termina.
•Cenário Alternativo 1 (Cliente cancela operação)
O cliente pode cancelar a transação em qualquer momento ativando o botão “Cancelar”,
implicando a re-inicialização do caso de uso. Não é realizada qualquer alteração à conta
do cliente.
•Cenário Alternativo 2 (senha inválida)
Se o cliente introduz uma senha inválida o cartão MB é ejetado e o caso de uso
reinicializado. Se tal ocorrer 3 vezes consecutivas, o sistema aciona medidas de segurança
e “recolhe” o cartão e cancela a transação; não permitindo qualquer interação nos 2
minutos seguintes.

•Caso de Uso –Notações UML
–O diagrama de Caso de Uso é representado por:
•Atores;
•Casos de uso;
•Relacionamentos entre estes elementos.
–Estes relacionamentos podem ser:
•Associações entre atores e casos de uso;
•Generalizações entre os atores;
•Generalizações,extendseincludesentre os casos de uso.
–Casos de usopodem opcionalmente estar envolvidos por
um retângulo que representa os limites do sistema.

•Ator
–Usuário do sistema
•Humano ou um outro sistema.
•Caso de Uso
–Função do sistema que será automatizado.

•Relacionamentos
–Entre um ator e umcaso de uso (Associação)
•Funcionalidade do sistema na visão do usuário.
–Entre atores (Generalização)
•Oscasos de usode Bsão tambémcasos de usode A
•Atem seus próprioscasos de uso

–Entrecasos de uso
•Include
–Quando um caso de uso “A” inclui (include) outro caso
de uso “B”. Isto implica que ao executar o caso de uso
“A” executa-se também o caso de uso “B”.

–Extend
•Quando um caso de uso “A” tem um relacionamento do tipo
extendcom outro caso de uso “B”.
•Implica que ao executar o caso de uso “A” não
necessariamente “B” será exeutado.

•Sistema
–Limites do sistema: representado por um retângulo envolvendo
oscasos de usoque compõem o sistema.
–Nome do sistema: Localizado dentro do retângulo.

Exemplos de Caso de Uso -Biblioteca
•R1. Para usar os serviços de uma biblioteca, os leitores
deverão estar registrados e possuir um cartão com número
de identificação e foto.
•R2. O sistema deve permitir que um leitor faça empréstimo
de um ou mais livros, por um período de tempo que varia
de 1 semana a 6 meses, dependendo do tipo de leitor (1
semana para estudantes de graduação, 15 dias para
estudantes de pós-graduação e 6 meses para docentes).

•R3. O leitor está apto a emprestar livros se não possuir em
seu poder livros com data de devolução vencida e desde
que o número de livros emprestados não ultrapasse o
máximo permitido, que depende do tipo de leitor.
•R4. O sistema deve permitir que o leitor devolva um ou
mais livros em seu poder, fazendo com que o livro volte a
ficar disponível na biblioteca

•De acordo com esses requisitos, existem 2 casos de uso:
–Emprestar Livro
–Devolver Livro
•Um requisito pode referir-se a mais de um caso de uso.
•Um caso de uso pode referir-se a mais de um requisito.

•Requisitos X Casos de Uso

•Atores:
–Leitor
–Atendente
–Bibliotecário
•Casos de Uso:
–Emprestar livro
–Devolver livro

•Cenário "comprar produto”:
–O cliente navega pelo catálogo e adiciona os itens
desejados ao carrinho de compras. Quando o
cliente desejar pagar, ele preenche os dados para
entrega e da forma de pagamento, confirmando a
compra no final. O sistema verifica o cartão de
crédito, tenta passar a compra no cartão e
confirma a venda com o envio de um e-mail.

•Tendo em vista que a verificação do cartãopode
dar não autorizado, gerando um segundo cenário.
•Seu cliente pode ser um cliente regular, não
necessitando preencher os dados de entrega ou
mesmo do cartão, isso já seria um terceiro cenário.
•Mas repare que a essência desses três cenários é
que o usuário tem o mesmo objetivo:comprar um
produto, nem sempre o usuário consegue, mas o
objetivo permanece.

•Os casos de uso informar endereçoe preencher
dados do cartão de créditosãoextends, pois só
haverá necessidade de informá-los se o cliente for
novo, ou se ele quiser alterar uma dessas
informações.
•Os casos de uso verificar dados do cartão de
créditoe faturar comprasão include, pois sempre
que for informado um novo cartão será necessário
validar esse cartão e sempre que for finalizada uma
compra, ela deve ser faturada.

Relacionamento entre Casos de Uso
•Existem 3 formas para tratar relacionamentos
entre casos de uso:
–Include
–Extend
–Generalization

•Considerando três Casos de Uso –A, B e C, vejamos cada um dos
relacionamentos.
•Include
–Se ocasoA“inclui” o caso B,então sempreque Afor executado o caso
de usoBtambém será executado.
–A direção do relacionamento é do caso de uso que estáincluindopara
o caso de usoincluído (A -----> B)
•Extend
–Se o caso Bestende o caso de usoA, então quando Afor executado o
Bpoderá(poderá –talvez não seja) ser executado também.
–A direção do relacionamento é do caso de usoextensorpara o caso de
usoestendido: (B ------> A)

•Generalization
–Quando o caso de usoBgeneraliza o caso de usoCisso
significa que, além de fazer tudo que nele está
especificado (B), eletambém executará tudo que
estáespecificadono caso de usoC.
–A direção do relacionamento é sempre
dogeneralizador(B) para ogeneralizado(C): B →C

•Ex: No diagrama temos quatro Casos de Uso,e três
relacionamentos diferentes: Include, Extende
Generalization.
•Include:
–Ocaso de uso “Solicitar Material” faz include no caso
de uso “Checar Estoque”.
–Isso se dá porquesempreque houver a solicitação de
materialsemprehaverá a consulta ao estoque para
saber se o material está disponível.
–Se sempre haverá, o relacionamento correto é o
include.

•Explicando o Extend
•O caso de uso “Comprar Material” estende o caso
de uso “Solicitar Material”. Isso se dá porque
quando houver a solicitação de material,caso o
material não exista em estoque(após consulta via
o caso de uso “Checar estoque”)poderáser
solicitado a compra do item.
•Mas também poderá não ser solicitada a compra,
pois o item pode existir em estoque. Sepoderáser
solicitada a compra (e nãosempreserá solicitada a
compra) o relacionamento correto é o extend.

Modelos de Interação
•Caso de Uso –Exemplo Generalização
“Testar Senha” e “Leitura com Smartcard” são especializam
o caso de uso “Validar usuário”

Modelos de Interação
•Caso de Uso –Exemplo <<include>>
Relação de delegação, significando que o caso base
incorpora o comportamento do outro caso

•Extend
•Quando o caso de usoBestende o caso de usoA, significa que
quando o caso de usoAfor executado o caso de
usoBpoderá(poderá –talvez não seja) ser executado também. A
direção do relacionamento é do caso de usoextensor(aqui o caso
de uso B) para o caso de usoestendido(aqui o caso de uso A).