Escolar Documentos
Profissional Documentos
Cultura Documentos
ES I Aula04
ES I Aula04
Engenharia de Software I
Bacharelado em
Rogério Eduardo Garcia Ciência da
Computação
16/05/2017
(rogerio@fct.unesp.br)
Aula 04
In a calm sea every man is a pilot.
Engenharia de Software I –
Aula 4 BCC
16/05/2017
Revisão
Introdução ao Método Larman
Planejar e Elaborar
Construir
Analisar
1 Introdução
2 Descrição Geral
3 Requisitos Específicos
4 Apêndices
5 Índice
Engenharia de
Como Proceder?
Sistemas de
Computador ANÁLISE DE
REQUISITOS
Projeto de
Software
Princípios da Especificação
(Cont.) BCC
16/05/2017
Definição
Relatório de Relatório de dos
necessidades viabilidade requisitos
Documento de Especif.
requisitos dos
requisitos
Especificação
Especific.
do projeto
do sistema
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 13
Problema Solução
Abstrato
Concreto
Portanto... BCC
16/05/2017
Orientado a Objetos
Problema... BCC
16/05/2017
ESPAÇO DE ESPAÇO DE
PROBLEMAS SOLUÇÕES
Gap Semântico
Processo de Identificação de
Mapeamento
“coisas” do mundo real para
compor o modelo
Problema Solução
Abstrato
Concreto
BCC
16/05/2017
A/POO
Tópicos e
Habilidades
Princípios e Engenharia de
Diretrizes Requisitos
Desenvolvimento
Iterativo
BCC
16/05/2017
UML BCC
16/05/2017
História da UML
início em 1994 – esforço conjunto de Booch e
Rumbaugh para combinar as notações
diagramáticas de seus métodos Booch e OMT
(Object Modeling Technique)
a eles juntaram-se outros colaboradores
adotada como padrão em 1997 pela OMG
continua a ser refinada…
versão 2.0 em andamento (???)
UML BCC
16/05/2017
UML BCC
16/05/2017
Diagramas BCC
16/05/2017
Use Case
Diagramas de Estrutura Estática
Diagrama de Objetos
Diagramas de Classe
Diagramas de Interação
Diagrama de Seqüência
Diagrama de Colaboração
Statecharts
Diagramas de Atividade
Diagrama de Implementação
Diagrama de Componentes
Diagrama de Desdobramentos (Deployment)
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 32
Problema Solução
Diagrama de Diagrama de
Classes Classes
Abstrato
Concreto
Auxiliar o desenvolvedor a:
Aplicar princípios, diretrizes e padrões na
construção de software
construir elaborar
Planejar e
Construir Instalar
Elaborar
Ciclo de
Desenvolvimento 1
Ciclo de
Desenvolvimento 2
…
Planejar e
Construir Instalar
Elaborar
Ciclo de
Desenvolvimento 1
Ciclo de
Desenvolvimento 2
…
c adiável
Engenharia de Requisitos
Objetivos:
Criar os artefatos da fase de engenharia de
requisitos
Documento de Especificação de Requisitos
Identificar e categorizar as funções do sistema
Identificar e categorizar os atributos do sistema
e relacioná-los com as funções
JÁ VISTO!!!
Descrição Geral:
O propósito deste projeto é criar um terminal de
ponto de vendas (TPV) para ser usado em lojas
de varejo
Clientes
ObjectStore, Inc., uma multinacional que
comercializa objetos
Objetivos:
O objetivo geral é aumentar a automatização
das compras (checkout) para permitir serviços e
processos comerciais mais rápidos, melhores e
mais baratos. Tipicamente, isso inclui:
checkout (passagem pelo caixa) mais rápido para o
cliente
análise rápida e precisa do crédito
controle automático do estoque
Objetivos:
Identificar e Escrever Casos de Uso
Elaborar Diagramas de Casos de Uso
Contrastar Casos de Uso de Alto Nível e
Expandidos
Contrastar Casos de Uso Reais e Essenciais
Casso de Uso –
Documentação BCC
16/05/2017
Conteúdos típicos
Como o caso de uso inicia e termina
Fluxo normal de eventos
Fluxos alternativos de eventos
Fluxos excepcionais de eventos (respostas a erros)
Atores BCC
16/05/2017
Atores BCC
16/05/2017
Método Larman:
Formatos dos Casos de Uso BCC
16/05/2017
de alto nível
descreve o processo sucintamente, em duas ou
três sentenças
são vagos a respeito de decisões de projeto e
são úteis para a compreensão dos principais
processos globais
expandidos
mostram mais detalhes
compreensão mais profunda dos processos e
requisitos
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 61
Nome de atores
Atores: Cliente, Caixa com letra
maiúscula
Parte 1
Descrição similar ao
Caso de uso de Alto Nível
Parte 2
Descrição da sequência
típica de eventos
Parte 3
Descrição de sequências
Alternativas de eventos
Rastreabilidade
A cláusula de referência cruzada permite conferir
se todos os requisitos foram atendidos por casos
de uso.
Lembrando... BCC
16/05/2017
Essencial, Real,
muito muito
16/05/2017
abstratoCiência da Computação - Engenharia de Software I - Rogério Eduardo Garcia
concreto 72
…. ...
Importante BCC
16/05/2017
Resumo BCC
16/05/2017
Alto nível
Formato do caso de uso
Expandido
Primário
Tipo do caso de uso (I)
Secundário
Opcional
Objetivo
Mostrar como o sistema a ser desenvolvido irá
interagir com o ambiente, delimitando o sistema e
definindo a funcionalidade
Comprar Itens
Comprar
Itens
Abrir
Caixa (Log in) Cliente
Reembolsar
Itens
TPV
Comprar
Itens
Abrir
Caixa (Log in) Cliente
Reembolsar
Itens
ValidarCliente CadastrarCliente
Sistema de Biblioteca
Leitor Adicionar título
Reservar
Bibliotecário Manter
Emprestar
Adicionar item << extends >> Bibliotecário
Baseado em eventos
Identificar os eventos externos aos quais um
sistema deve responder
Relacionar os eventos a atores e a casos de uso
Exemplos:
Itens vendidos (ator=cliente, caso de uso=comprar
item)
Dinheiro retirado (ator=caixa, caso de uso=registrar
retirada de dinheiro)
Importante BCC
16/05/2017
Exemplo BCC
16/05/2017
TPV
Comprar
Ex: considerar toda a loja como sendo
Itens
o sistema. O caixa está dentro do
Abrir
Cliente
sistema e é um de seus recursos.
Caixa (Log in)
Reembolsar
Itens
LOJA
Comprar
Itens
Limite do
sistema Cliente
Reembolsar
Itens
Seqüência alternativa:
• Linha 4: Dinheiro insuficiente na gaveta para pagar o troco. Solicita
dinheiro ao supervisor
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 92
Planejar e Elaborar:
Passos do Processo BCC
16/05/2017
Exemplo:
Sistema TPV TPV
BCC
16/05/2017
Comprar
(Passo 3. Desenhar um Itens
diagrama de casos
de uso.) Abrir
Caixa Cliente
Reembolsar
Itens
Adicionar
novos
usuários
Administrador Gerente
Do Sistema Iniciar
etc.
Seção : Principal
Seqüência Típica de Eventos
Ação do ator Resposta do sistema
1. Este caso de uso começa quando um Cli-
ente chega a um ponto de pagamento equi-
pado com um TPV, com vários itens que
deseja comprar.
Seqüências alternativas
Seqüências Alternativas
Linha 4: Solicitação de cheque negada pelo Serviço de Autorização de Cheques. Sugerir um método de pagamento diferente
Especificação de
Relatório de Requisitos
Investigação
Preliminar
Casos de Uso
a. Todos os de alto nível
b. Alguns essenciais
expandidos
Protótipos
Diagramas de Casos de Uso
Orçamento,
Cronograma Esboço do modelo conceitual
Glossário
Depende de
Expressão segundo
Operação mental as convenções:
para observar um notação gráfica,
domínio e capturar linguagem de
sua estrutura programação, etc.
ABSTRAÇÃO REPRESENTAÇÃO
Entidade Entidade
Observada Representada
Avião
Classificação/Instanciação BCC
16/05/2017
Estudante
CATEGORIA
INSTANCIAÇÃO
de
Graduação
CLASSIFICAÇÃO
INDIVÍDUO Maria
(Objeto) José
Símbolo
Ex.: Aeronave
Intenção
Ex.: (o conceito) Aeronave representa uma aeronave, ou
seja, um meio de transporte aéreo que possui categoria,
dimensões, número de lugares, …
Extensão
Ex.: AirBus PT999, Boing747 PX111, …
Estratégias para
Identificar Conceitos BCC
16/05/2017
Exemplo BCC
16/05/2017
Exemplos de Categorias de
Conceitos BCC
16/05/2017
Exemplos de Categorias de
Conceitos (cont.) BCC
16/05/2017
Identificação de Substantivos -
BCC
caso de uso Comprar Itens 16/05/2017
Lembre-se:
1. Nem todos os substantivos são conceitos – linguagem
natural pode ser ambígua
Ex: substantivos diferentes podem representar o mesmo conceito –
(Consumidor e Cliente)
2. Alguns dos substantivos são candidatos a conceitos e
outros são candidatos a atributos
Conceitos candidatos
BCC
Domínio TPV – caso de uso Comprar Itens 16/05/2017
• TPV • EspecificaçãoProduto
• Item • ItemLinhaVenda
• Loja
• Venda • Caixa
• CatálogoProdutos • Cliente
• Pagamento
• Gerente
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 125
O Conceito de Especificação
(ou de Descrição) BCC
16/05/2017
Dicas... BCC
16/05/2017
Dicas... BCC
16/05/2017
Venda Pagamento
1 1
data
hora
Pago-por quantia
Cardinalidade ou
Multiplicidade BCC
16/05/2017
5 exatamente cinco
C
Navegação BCC
16/05/2017
associação
1 1 Venda
TPV
Captura
Exemplo BCC
16/05/2017
associação
multiplicidade
1 1 Venda
TPV
Captura
1 Estoca *
Loja Item
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 137
1 1 .. * Empregado subordinado
Companhia
0 .. *
Associações Múltiplas
entre Conceitos BCC
16/05/2017
Destino
* Voa-para 1
Vôo Voa-de
Aeroporto
* 1
Origem
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 144
Exemplo BCC
16/05/2017
Companhia
Aérea OBS: considere vôos não
1 simultâneos na alocação de
pessoas e aeronaves. Essa
alocação seria feita, por
Emprega exemplo, o planejamento de
vôos do dia/semana/mês…
1..*
Designada-para Designada-para
Pessoa Vôo Aeronave
1 * 1
*
1 *
Supervisiona
Exemplo Registra-venda-de
BCC
16/05/2017
Descritos-por
1..1
Catálogo de Produtos Contém
0..1 * Especificação de Produto
1..1 1..*
ItemLinhaVenda 1..1
1..1
Usado-por
1..* Descreve
*
1..1 *
Contido-em Loja Estoca
Item
1..1 Registra-dados-da * 1..1
v 1..1
* 1..1
Venda Possui
1..1
1..*
1..1 capturada-em Iniciado por Gerente
1..1
1..1 TPV 0..* 1..1
1..1
Paga-por
1..1 < Registra-Vendas-do
Iniciada-por
1..1
Iniciada-por
1..1 1..1 Caixa
1..1
Pagamento Cliente
Planejar e
Construir Instalar
elaborar
Ciclo de
Desenvolvimento 1
Ciclo de
Desenvolvimento 2
…
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema
Exemplo BCC
16/05/2017
Registra-venda-de
Descritos-por
1..1
CatálogoProdutos
Contém EspecificaçãoProduto
0..1 * descrição
1..1 1..* preço
ItemLinhaVenda
1..1 UPC
quantidade Usado-por
1..1
1..* * Descreve
Loja *
Contido-em 1..1 endereço Estoca
Item
1..1 nome
Registra-Dados-da 1..1 * 1..*
Venda 1..1
*
data Possui
hora
1..1
Capturada-em 1..*
1..1 1..1 Iniciado por
Paga-por TPV Gerente
Iniciada-por 1..1 1..* 1..1
1..1 1..1 1..1
Pagamento Cliente Caixa
Registra-Vendas-do
quantia
1..1
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 153
Generalização BCC
16/05/2017
Os conceitos de PagamentoComDinheiro,
PagamentoComCartãoCrédito e PagamentoComCheque
são muitos semelhantes.
Generalização BCC
16/05/2017
Permite:
Construir classificações taxonômicas – hierarquias de tipos.
Compreender os conceitos em termos mais gerais e abstratos, ou mais
refinados.
supertipo –
conceito geral
ConceitoA ConceitoA
subtipo -
conceito especializado
Generalização/Especialização BCC
16/05/2017
Regra É-Um
Todos os membros de um conjunto
subtipo devem ser membros de seu
conjunto supertipo.
O Subtipo é um Supertipo.
Exemplo BCC
16/05/2017
Pagamento supertipo –
conceito geral
PagamentoComDinheiro PagamentoCheque
PagamentoComCartãoCrédito
subtipo -
conceito especializado
Pagamento
Generalização/Especialização BCC
16/05/2017
Pagamento
Pago-a Venda
valor: Quantia
Cliente
ClienteFeminino ClienteMasculino
Exemplo BCC
16/05/2017
Pessoa Departamento
atributos em Está-vinculada-a
nome nome
comum CPF * 1
Estudante Docente
nro. UNESP titulação
* 1..2
Pagamento
1 Venda
valor : Quantia Pago-a 1
* 1
Identifica_crédito_com Pago_com
1 1
CartãodeCrédito Cheque
Empresa Pessoa
* emprega * nome
nome
Uma opção:
Empresa Pessoa
* emprega * nome
nome
* *
paga Salário * recebe
*
valor
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 165
Um opção MELHOR:
Tipos Associativos BCC
16/05/2017
Empresa Pessoa
* emprega * nome
nome
Emprego
TIPO
salário: Quantia ASSOCIATIVO
Agregação BCC
16/05/2017
Mão Dedo
1 0..5
COMPOSTO
COMPONENT
E
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 168
Exemplos BCC
16/05/2017
1 1..* EspecificaçãoProduto
CatálogoProduto
Modelo Conceitual:
Diretrizes para Construção BCC
16/05/2017
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema
Diagramas de Seqüência
do Sistema (DSS) BCC
16/05/2017
Diagramas de Seqüência
do Sistema (DSS) BCC
16/05/2017
Diagramas de Seqüência
do Sistema (DSS) BCC
16/05/2017
Eventos e Operações do
Sistema BCC
16/05/2017
Relembrando...
BCC
Caso de Uso Expandido: Comprar Itens 16/05/2017
entrarItem(CUP, quantidade)
Evento de
entrada: ator
dispara uma descrição item, total
operação do
sistema *[mais itens]
terminarVenda()
Evento com parâmetro –
representa o evento de entrada
fazerPagamento(quantia) de dados de pagamento por
Evento de saída: algum mecanismo
resposta do sistema
à uma operação troco, recibo
entrarItem(CUP, quantidade)
Retorna descrição do item e total da compra.
terminarVenda()
Sem retorno.
fazerPagamento(quantia)
Retorna o troco e o recibo da compra.
Exemplo:
“entrarItem” (intenção do evento) é melhor que
“escanearItem” (revela intenções de projeto – uso de
scaner laser).
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema
Pré-Condições
Representam o estado do sistema antes da
invocação da operação.
Pós-Condições
entrarItem
Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos
5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema
Planejar e
Construir Instalar
elaborar
Ciclo de
Desenvolvimento 1
Ciclo de
Desenvolvimento 2
…
Próximo passo...