Você está na página 1de 93

FCT-UNESP 16/05/2017

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

 Revisão de conceitos de Orientação a Objetos

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 2

Prof. Dr. Rogério E. Garcia 1


FCT-UNESP 16/05/2017

Padrão IEEE para o


Documento de Requisitos BCC
16/05/2017

 1 Introdução

 1.1 Propósito do documento de requisitos


 Motivações, público-alvo, ...
 1.2 Escopo do produto
 Explicitar o que o produto faz (e o que não faz).
 Descrever a aplicação.
 1.3 Definições, acrônimos e abreviações
 1.4 Referências
 Listar todos os documentos referenciados.
 Especificar a origem dos documentos.
 1.5 Visão geral do restante do documento
 Estrutura/organização.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 6

Padrão IEEE para o


Documento de Requisitos BCC
16/05/2017

 2 Descrição Geral

 2.1 Perspectiva do Produto


 Relacionamento: sistema, usuário, hardware, software,
comunicação.
 2.2 Funcionalidades do Produto
 2.3 Características do Usuário
 2.4 Restrições Gerais
 Limitações de hardware, considerações sobre segurança,
...
 2.5 Suposições e Dependências
 Máquina específica, sistema operacional, ...

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 7

Prof. Dr. Rogério E. Garcia 2


FCT-UNESP 16/05/2017

Padrão IEEE para o


Documento de Requisitos BCC
16/05/2017

 3 Requisitos Específicos

 Abrangem os requisitos funcionais, não funcionais e de interface.

 Os requisitos podem documentar interfaces externas, descrever


funcionalidade e desempenho do sistema, especificar requisitos
lógicos de banco de dados, restrições de projeto, propriedades
emergentes do sistema e características de qualidade.

 4 Apêndices

 5 Índice

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 8

Análise de Requisitos BCC


16/05/2017

Engenharia de
Como Proceder?
Sistemas de
Computador ANÁLISE DE
REQUISITOS

Projeto de
Software

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 9

Prof. Dr. Rogério E. Garcia 3


FCT-UNESP 16/05/2017

Princípios da Análise BCC


16/05/2017

 O domínio de informação de um problema deve ser


representado e compreendido
 Modelos que descrevam a informação, função e
comportamento do sistema devem ser
desenvolvidos
 Os modelos devem ser divididos em partições, de
maneira que revele os detalhes em forma de
camadas, preferencialmente
 O processo de análise deve ter como foco a
informação essencial do (UdeI) – detalhes de
implementação ficam para a fase de Projeto

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 10

Princípios da Especificação BCC


16/05/2017

 Separar funcionalidade de implementação

 Uso de uma linguagem de especificação orientada


ao processo

 A especificação deve abranger o sistema do qual o


software é um componente

 A especificação deve abranger o sistema no qual o


software opera

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 11

Prof. Dr. Rogério E. Garcia 4


FCT-UNESP 16/05/2017

Princípios da Especificação
(Cont.) BCC
16/05/2017

 Uma especificação deve ser um modelo cognitivo

 Uma especificação deve ser operacional

 Uma especificação deve ser tolerante com a não-


inteireza e ser expansível

 Uma especificação deve ser localizada e


fracamente acoplada

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 12

Formulação dos requisitos BCC


16/05/2017

Estabelecimento das Estudo de Modelagem


necessidades do sistema viabilidade do sistema

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

Prof. Dr. Rogério E. Garcia 5


FCT-UNESP 16/05/2017

Para que tudo isso? BCC


16/05/2017

 Obter uma descrição dos requisitos

 Propor uma solução (“software”) que atenda


ao requisitos da melhor maneira possível

 Possibilidade de avaliar não apenas a


proposta, mas também as conseqüências de
decisões tomadas em tempo de projeto

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 14

Problema X Solução BCC


16/05/2017

Problema Solução

Abstrato

Concreto

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 15

Prof. Dr. Rogério E. Garcia 6


FCT-UNESP 16/05/2017

Portanto... BCC
16/05/2017

 É preciso planejar considerando a maneira


com que um projeto será implementado...

Orientado a Objetos

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 16

Mundo x Paradigma OO BCC


16/05/2017

 Mundo Real é formado por objetos que se


interagem

 Representar esses objetos em um software é mais


natural e permanente do que representar a sua
funcionalidade (decomposição funcional), pois essa
é mutável

 A representação usando objetos facilita o


mapeamento do mundo real, ou seja, a criação de
um modelo que o represente
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 18

Prof. Dr. Rogério E. Garcia 7


FCT-UNESP 16/05/2017

Problema... BCC
16/05/2017

Mundo Real Mundo Computacional

ESPAÇO DE ESPAÇO DE
PROBLEMAS SOLUÇÕES

Gap Semântico

Todo software representa um Modelo de um problema


do mundo real, no Espaço de Soluções
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 19

Gap Semântico BCC


16/05/2017

 Quanto menor o Gap (diferença entre espaços)


mais fácil será :
 o desenvolvimento da aplicação
 assegurar a compreensão, confiabilidade e manutenção
da aplicação

 Diminuir o Gap implica em tornar o mapeamento do


mundo real (modelo) mais próximo da realidade

 Sendo mais “natural”, o Paradigma de Orientação a


Objetos tem por objetivo diminuir o gap semântico
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 21

Prof. Dr. Rogério E. Garcia 8


FCT-UNESP 16/05/2017

Criação de Modelos BCC


16/05/2017

Processo de Identificação de
Mapeamento
“coisas” do mundo real para
compor o modelo

ABSTRAÇÃO Modelo Conceitual

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 22

Problema X Solução BCC


16/05/2017

Problema Solução

Abstrato

Concreto

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 23

Prof. Dr. Rogério E. Garcia 9


FCT-UNESP 16/05/2017

BCC
16/05/2017

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 24

Método Larman: Visão Geral BCC


16/05/2017

A/POO

Padrões Notação UML

Tópicos e
Habilidades
Princípios e Engenharia de
Diretrizes Requisitos

Desenvolvimento
Iterativo

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 25

Prof. Dr. Rogério E. Garcia 10


FCT-UNESP 16/05/2017

BCC
16/05/2017

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 26

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 (???)

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 27

Prof. Dr. Rogério E. Garcia 11


FCT-UNESP 16/05/2017

UML BCC
16/05/2017

 Segundo OMG: “A UML (Unified Modeling


Language - Linguagem de Modelagem Unificada) é
uma linguagem para especificar, visualizar, construir
e documentar os artefatos de sistemas de software,
bem como para modelar negócios e outros sistemas
que não sejam de software”

 Notação UML - principalmente diagramática, para


modelagem de sistemas usando conceitos
baseados na metáfora de “objetos”

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 28

UML BCC
16/05/2017

 A UML é a linguagem padrão para visualizar,


especificar, construir e documentar os
artefatos de um sistema intensamente
baseado em software

 Pode ser usada com todos os processos,


durante todo o ciclo de desenvolvimento, e
com diferentes tecnologias de
implementação;
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 31

Prof. Dr. Rogério E. Garcia 12


FCT-UNESP 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 X Solução BCC


16/05/2017

Problema Solução
Diagrama de Diagrama de
Classes Classes
Abstrato

Concreto

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 33

Prof. Dr. Rogério E. Garcia 13


FCT-UNESP 16/05/2017

Método Larman: Visão Geral BCC


16/05/2017

 Processo Planejar e Elaborar


 Casos de Uso: Formatos, Tipos e Diagrama
 Modelo Conceitual: Conceitos e Associações

 Processo Construir (Fase Analisar)


 Modelo Conceitual: Agregações, Generalizações e
Tipos Associativos
 Diagramas de Seqüência
 Contratos de Operação

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 34

Método Larman: Visão Geral BCC


16/05/2017

 Auxiliar o desenvolvedor a:
 Aplicar princípios, diretrizes e padrões na
construção de software

 Seguir um conjunto de atividades comuns de


análise e projeto, a partir de um ciclo de
desenvolvimento iterativo

 Criar diagramas freqüentemente utilizados na


notação UML

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 35

Prof. Dr. Rogério E. Garcia 14


FCT-UNESP 16/05/2017

Desenvolvimento Iterativo BCC


16/05/2017

 Um ciclo de vida iterativo (CVI) envolve a repetição


dos ciclos de planejamento, elaboração, construção
e instalação
 O sistema cresce pela adição de novas funções (e
refinamento das existentes) em cada ciclo iterativo
 Cada ciclo ataca um pequeno conjunto de requisitos
instalar planejar

construir elaborar

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 36

Método Larman BCC


16/05/2017

Planejar e
Construir Instalar
Elaborar

Ciclo de
Desenvolvimento 1
Ciclo de
Desenvolvimento 2

Refinar Sincronizar Analisar Projetar Construir Testar


Plano Artefatos

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 37

Prof. Dr. Rogério E. Garcia 15


FCT-UNESP 16/05/2017

Método Larman BCC


16/05/2017

Planejar e
Construir Instalar
Elaborar

Ciclo de
Desenvolvimento 1
Ciclo de
Desenvolvimento 2

Refinar Sincronizar Analisar Projetar Construir Testar


Plano Artefatos

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 38

Método Larman: Planejar e


Elaborar BCC
16/05/2017

Planejar e Elaborar Construir Implantar

1. Definir 2. Criar Relatório de


3. Definir Requisitos
Plano Inicial Investigação Preliminar

4. Registrar 5. Implementar 6. Definir Casos de Uso


d ordem variada

Termos no Glossário a Protótipo bd (Alto Nível e Essenciais)


b opcional
a ongoing

c adiável

7. Definir Modelo 8. Definir Arquitetura 9. Aperfeiçoar (Refinar)


Conceitual Inicial c Inicial do Sistema acd Plano

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 39

Prof. Dr. Rogério E. Garcia 16


FCT-UNESP 16/05/2017

Método Larman BCC


16/05/2017

Planejar e Elaborar Construir Implantar

Engenharia de Requisitos

1. Definir 2. Criar Relatório de


3. Definir Requisitos
Plano Inicial Investigação Preliminar

4. Registrar 5. Implementar 6. Definir Casos de Uso


Termos no Glossário Protótipo (Alto Nível e Essenciais)

7. Definir Modelo 8. Definir Arquitetura 9. Aperfeiçoar (Refinar)


Conceitual Inicial Inicial do Sistema Plano

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 40

Entendimento dos Requisitos BCC


16/05/2017

 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!!!

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 41

Prof. Dr. Rogério E. Garcia 17


FCT-UNESP 16/05/2017

Funções do Sistema BCC


16/05/2017

 O QUE o sistema deve fazer?


 ex: autorizar pagamento por cartão de crédito
 funções do sistema devem ser identificadas e
listadas em agrupamentos lógicos
 Geralmente escritas da forma: “O sistema
deve fazer <X>”
 Cada função pode ser expressa em termos
de um ou mais requisitos que o sistema
deve atender
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 42

Tipos de Funções BCC


16/05/2017

 Evidente ou Visível (E): deve ser executada e o


usuário tem conhecimento de ela foi executada
 Oculta (O): deve ser executada, mas não é visível
para o usuário
 vale para muitos serviços técnicos de infra-estrutura, tais
como salvar a informação em um dispositivo permanente
de armazenamento
 são freqüentemente, e incorretamente, esquecidas durante
a fase de especificação de requisitos

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 43

Prof. Dr. Rogério E. Garcia 18


FCT-UNESP 16/05/2017

Tipos de Funções BCC


16/05/2017

 Enfeite/Decoração/Luxo (D): opcional


 sua adição não afeta significativamente o custo
ou outras funções. ???

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 44

Estudo de caso - TPV BCC


16/05/2017

 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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 45

Prof. Dr. Rogério E. Garcia 19


FCT-UNESP 16/05/2017

Estudo de caso - TPV BCC


16/05/2017

 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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 46

TPV - Funções Básicas BCC


16/05/2017

 R1.1 – Registrar a venda em andamento (corrente),


isto é, os itens comprados (E)

 R1.2 – Calcular o total da venda corrente, incluindo


os cálculos de impostos e de cupons de desconto
(E)

 R1.3 – Capturar a informação de um item adquirido,


usando o código, obtido por um leitor de código de
barra, ou pela entrada manual do código do
produto, usando o código universal de produto
(CUP ou UPC) (E)
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 47

Prof. Dr. Rogério E. Garcia 20


FCT-UNESP 16/05/2017

Funções Básicas - TPV BCC


16/05/2017

 R1.4 – Reduzir a quantidade em estoque


quando a venda for finalizada (O)
 R1.5 – Registrar as vendas completadas (O)
 R1.6 – O funcionário (Caixa) deve abrir o
caixa (log in) com um Identificador (ID) e uma
senha para poder usar o sistema (E)
 R1.7 – Fornecer um mecanismo de
armazenamento permanente (O)

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 48

Funções Básicas - TPV BCC


16/05/2017

 R1.8 – Fornecer mecanismos de


comunicação inter-processos e inter-
sistemas (O)
 R1.9 – Exibir a descrição e o preço do item
registrado (E)

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 49

Prof. Dr. Rogério E. Garcia 21


FCT-UNESP 16/05/2017

Funções de Pagamento - TPV BCC


16/05/2017

 R2.1 – Tratar os pagamentos em dinheiro:


capturar a quantia recebida e informar o
troco (E)
 R2.2 – Tratar o pagamento com cartão de
crédito: captar a informação do cartão de
crédito por um leitor de cartões ou uma
entrada manual e autorizar o pagamento com
o serviço de autorização de crédito (externo)
da loja via conexão por modem (E)
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 50

Funções de Pagamento - TPV BCC


16/05/2017

 R2.3 – Registrar os pagamentos por crédito


no sistema de contas a receber da loja, uma
vez que o serviço de autorização de crédito
deve à loja a quantia oferecida como
pagamento (O)
 R2.4 – Tratar os pagamentos com cheque:
capturar o CPF por entrada manual e
autorizar o pagamento com o serviço de
autorização de crédito da loja (externo) via
conexão por modem (E)
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 51

Prof. Dr. Rogério E. Garcia 22


FCT-UNESP 16/05/2017

Atributos do Sistema – TPV BCC


16/05/2017

 para R1.9 (Exibir a descrição e o preço do


item registrado (E))
 tempo de resposta: Max 5s  Obrigatório
 metáfora da interface:
 saída baseada em formulário  Obrigatório
 saída colorida  Desejável

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 52

Atributos do Sistema – TPV BCC


16/05/2017

 para R2.3 (Registrar os pagamentos por


crédito no sistema de contas a receber da
loja (O))
 tolerância a falhas: deve registrar no sistema de
contas a receber em 24h, mesmo em caso de
falhas elétrica ou de hardware  Obrigatório
 tempo de resposta: Max 10s  Obrigatório

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 53

Prof. Dr. Rogério E. Garcia 23


FCT-UNESP 16/05/2017

Método Larman BCC


16/05/2017

Planejar e Elaborar Construir Implantar

1. Definir 2. Criar Relatório de


3. Definir Requisitos
Plano Inicial Investigação Preliminar

4. Registrar 5. Implementar 6. Definir Casos de Uso


Termos no Glossário Protótipo (Alto Nível e Essenciais)

7. Definir Modelo 8. Definir Arquitetura 9. Aperfeiçoar (Refinar)


Conceitual Inicial Inicial do Sistema Plano

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 54

Casos de Uso: descrevendo


processos BCC
16/05/2017

 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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 55

Prof. Dr. Rogério E. Garcia 24


FCT-UNESP 16/05/2017

Casso de Uso –
Documentação BCC
16/05/2017

 Um documento de fluxo de eventos é criado para


cada caso de uso
 Escrito do ponto de vista do ator

 Detalha o que o sistema deve fornecer quando o


caso de uso é executado

 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)

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 56

Casos de Uso BCC


16/05/2017

 Um caso de uso é um padrão de


comportamento que o sistema exibe

 Cada caso de uso é uma seqüência de


transações relacionadas executadas por um ator
e o sistema em um diálogo

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 57

Prof. Dr. Rogério E. Garcia 25


FCT-UNESP 16/05/2017

Casos de Uso BCC


16/05/2017

 Um caso de uso é um documento textual que


descreve a seqüência de eventos realizados por um
ator (um agente externo) para completar um
processo durante o uso do sistema

 Contam “histórias” de utilização do sistema

 Casos de uso não são especificação de requisitos,


mas ilustram e implicam requisitos
 dependem de que se tenha um entendimento ao menos
parcial dos requisitos do sistema

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 58

Atores BCC
16/05/2017

 Um ator é uma entidade externa ao sistema que


participa de um caso de uso de alguma forma.
 Atores interagem com o sistema, estimulando-o
com eventos de entrada ou de saída
 Representam o papel que desempenham no caso
de uso. Ex: Cliente, Caixa
 uma pessoa, por exemplo, pode assumir vários papéis
 várias pessoas podem ser instâncias de um ator

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 59

Prof. Dr. Rogério E. Garcia 26


FCT-UNESP 16/05/2017

Atores BCC
16/05/2017

 Atores podem ser papéis desempenhados


por pessoas, sistemas de computadores,
dispositivos elétricos e mecânicos, …

 Para um caso de uso, geralmente existe um


ator iniciador e possivelmente vários outros
atores participantes

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 60

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

Prof. Dr. Rogério E. Garcia 27


FCT-UNESP 16/05/2017

Caso de Uso de Alto Nível BCC


16/05/2017

Usar verbo para


nomear caso de
Caso de uso: Comprar Itens uso

Nome de atores
Atores: Cliente, Caixa com letra
maiúscula

Tipo: primário (a ser discutido adiante…)

Descrição: Um Cliente chega ao balcão de saída da


loja com itens que deseja comprar. O Caixa
registra os itens de compra e recebe o
pagamento. Quando termina, o Cliente sai
com os itens comprados.
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 62

Caso de Uso Expandido BCC


16/05/2017

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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 63

Prof. Dr. Rogério E. Garcia 28


FCT-UNESP 16/05/2017

Caso de Uso Expandido


(Parte 1 - Resumo) BCC
16/05/2017

(restrito a pagamento em dinheiro e sem tratar controle de estoque)


Caso de Uso: Comprar Itens com Dinheiro
Informar ator que
Atores: Cliente (iniciador), Caixa inicia o processo

Finalidade: Capturar a venda e seu pagamento em dinheiro


Visão geral: Um Cliente chega ao balcão de saída da loja com itens que
deseja comprar. O Caixa registra os itens de compra e
recebe o pagamento. Quando termina, o Cliente sai com os
itens comprados.
Tipo: primário e essencial (a ser discutido adiante…)

Referências Requisitos: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1


Cruzadas:
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 64

Caso de Uso Expandido BCC


16/05/2017

 Rastreabilidade
 A cláusula de referência cruzada permite conferir
se todos os requisitos foram atendidos por casos
de uso.

 Ao final, todos os casos de uso devem poder ser


rastreados para a implementação e o teste.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 65

Prof. Dr. Rogério E. Garcia 29


FCT-UNESP 16/05/2017

Lembrando... BCC
16/05/2017

 R1.1 – Registrar a venda em andamento … (E)


 R1.2 – Calcular o total da venda corrente … (E)
 R1.3 – Capturar a informação de um item adquirido,
usando o código… (E)
 R1.7 – Fornecer um mecanismo de armazenamento
permanente (O)
 R1.9 – Exibir a descrição e o preço do item
registrado (E)
 R2.1 – Tratar os pagamentos em dinheiro… (E)

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 66

Caso de Uso Expandido


Parte 2 - Seqüência típica de eventos BCC
16/05/2017
Ação do ator Resposta do Sistema
1. Este caso de uso começa quando o Cliente
chega ao TPV com itens para comprar

2. O Caixa registra o identificador de cada 3. Determina o preço do item e adiciona


item informação sobre o item à transação de venda
corrente

Se há mais de um do mesmo item, o caixa A descrição e o preço do item são


também entra a quantidade apresentados
4. Quando termina a entrada dos itens, o 5. Calcula e apresenta o total da venda
Caixa indica ao TPV que as entradas estão
completas
6. O Caixa informa o total ao cliente

7. O Cliente entrega o pagamento em dinheiro


– o “pagamento em dinheiro” – possivelmente
maior que o total da venda
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 67

Prof. Dr. Rogério E. Garcia 30


FCT-UNESP 16/05/2017

Caso de Uso Expandido


Parte 2 - Seqüência típica de eventos-Cont. BCC
16/05/2017

Ação do ator Resposta do Sistema


8. O Caixa registra a quantidade de dinheiro 9. Exibe o valor do troco a ser devolvido ao
recebida cliente
10. O Caixa deposita o dinheiro recebido e 11. Registra a venda completada (logs)
retira o troco devido

O Caixa entrega ao cliente o troco e o recibo


impresso
12. O Cliente sai com os itens comprados

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 68

Caso de Uso Expandido


(Parte 3 – Seqüências Alternativas) BCC
16/05/2017

 Descreve alternativas importantes ou


exceções que podem ocorrer numa
seqüência típica
 se forem muito complexas podem se transformar
num caso de uso
 Seqüências alternativas:
 Linha 2: Identificador de item inválido digitado.
Indicar o erro.
 Linha 7: O Cliente não tem dinheiro suficiente.
Cancelar a transação de venda

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 69

Prof. Dr. Rogério E. Garcia 31


FCT-UNESP 16/05/2017

Tipos de Casos de Uso (I) BCC


16/05/2017

 Primários : principais processos comuns


Ex: Comprar Itens

 Secundários: processos menos importantes ou


raros
Ex: Requisição de estoque de produto novo

 Opcionais: processos que podem não ser incluídos


na solução

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 70

Tipos de Casos de Uso (II) BCC


16/05/2017

 Essencial: caso de uso expandido expresso numa


forma ideal, que é relativamente livre de detalhes
tecnológicos e de implementação
 decisões de projeto são postergadas

 Real: descreve o processo em termos de seu


projeto atual (real)
 considera tecnologia, entrada e saída, interface,…
 definido na fase de projeto

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 71

Prof. Dr. Rogério E. Garcia 32


FCT-UNESP 16/05/2017

Tipos de Casos de Uso (II) BCC


16/05/2017

 Casos de uso de alto nível são essenciais por


natureza, devido à sua forma resumida e alto nível
de abstração

 O intervalo entre essencial e real deve ser visto


como um contínuo em que o caso de uso pode se
situar em qualquer ponto
Requisitos/Análise Projeto

Essencial, Real,
muito muito
16/05/2017
abstratoCiência da Computação - Engenharia de Software I - Rogério Eduardo Garcia
concreto 72

Caso de Uso Comprar Itens:


Essencial BCC
16/05/2017

Ação do ator Resposta do Sistema


1. Este caso de uso começa quando o
Cliente chega ao TPV com itens para
comprar
2. O Caixa registra o identificador de 3. Determina o preço do item e adiciona
cada item informação sobre o item à transação de
venda corrente
Se há mais de um do mesmo item, o A descrição e o preço do item são
caixa também entra a quantidade apresentados
4. … ….

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 73

Prof. Dr. Rogério E. Garcia 33


FCT-UNESP 16/05/2017

Caso de Uso Comprar Itens:


Real BCC
16/05/2017

Ação do Ator Resposta do Sistema


1. Este caso de uso começa quando o
Cliente chega ao TPV com itens para
comprar
2. Para cada item o Caixa digita o código 3. Mostra o preço do item e adiciona a
universal do produto no campo de informação do item à transação de venda
entrada UPC da janela. Ele então corrente. A descrição e o preço são
pressiona o botão “Entrar Item” com o mostrados na caixa de texto 2 da Janela1.
mouse ou pressiona <Enter>

…. ...

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 74

Importante BCC
16/05/2017

 Em geral, os casos de uso reais não devem


ser produzidos na fase de engenharia de
requisitos (comprometimento prematuro com
uma decisão de projeto e complexidade
desnecessária)

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 75

Prof. Dr. Rogério E. Garcia 34


FCT-UNESP 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

Tipo do caso de uso (II) Essencial


Real

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 76

Diagrama de Casos de Uso:


UML Diagram BCC
16/05/2017

 Objetivo
 Mostrar como o sistema a ser desenvolvido irá
interagir com o ambiente, delimitando o sistema e
definindo a funcionalidade

 Importantes na organização e modelagem do


comportamento do sistema

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 77

Prof. Dr. Rogério E. Garcia 35


FCT-UNESP 16/05/2017

Diagrama de Casos de Uso BCC


16/05/2017

 Um diagrama de caso de uso mostra o


relacionamento entre os atores e os casos de uso
dentro de um sistema.
 Um caso de uso representa uma funcionalidade do
sistema.
 Representado por uma elipse contendo o nome do caso de
uso.
 Um ator é um agente externo (um usuário ou um outro
sistema) que interage com o sistema.
 Pode ser representado como um retângulo de classe com o
estereótipo "ator” ou pela figura de um homem estilizado.
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 78

Diagrama de Casos de Uso:


Notação BCC
16/05/2017

Comprar Itens

ícone para caso de uso


Caixa
ícone para ator

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 79

Prof. Dr. Rogério E. Garcia 36


FCT-UNESP 16/05/2017

Diagrama de Casos de Uso BCC


16/05/2017
TPV

Comprar
Itens

Abrir
Caixa (Log in) Cliente

Reembolsar
Itens

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 80

Diagrama de Casos de Uso BCC


16/05/2017

TPV

Comprar
Itens

Abrir
Caixa (Log in) Cliente

Reembolsar
Itens

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 81

Prof. Dr. Rogério E. Garcia 37


FCT-UNESP 16/05/2017

Diagrama de Casos de Uso:


Notação BCC
16/05/2017

 Relacionamentos entre casos de uso e atores:


 communicates: relacionamento entre atores e casos de
uso.

 extends: um relacionamento extends de um caso de uso


A para um caso de uso B indica que uma instância de B
pode incluir o comportamento especificado por A.

 include: um relacionamento include de um caso de uso A


para um caso de uso B indica que uma instância
de B inclui o comportamento especificado por A.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 82

Diagrama de Casos de Uso:


Notação BCC
16/05/2017

Relacionamento <<include>> Relacionamento <<extends>>

Cliente RealizarPedido Cliente RealizarPedido


<<extends>>
<<include>>

ValidarCliente CadastrarCliente

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 83

Prof. Dr. Rogério E. Garcia 38


FCT-UNESP 16/05/2017

Diagrama de Casos de Uso:


Exemplo BCC
16/05/2017

Sistema de Biblioteca
Leitor Adicionar título
Reservar

Cancelar << extends >>


reserva
Remover
/atualizar
<<extends>> título << extends >>

Bibliotecário Manter
Emprestar
Adicionar item << extends >> Bibliotecário

<< extends >>


Devolver
Adicionar leitor

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 84

Identificação de casos de uso BCC


16/05/2017

 Dois métodos: baseado nos atores ou


baseado nos eventos do sistema
 Baseado em atores
 Identificar os atores relacionados a um sistema
ou organização
 Para cada ator, identificar os processos que eles
iniciam ou dos quais eles participam
 Exemplos:
 Caixa - Iniciar uso, Registrar retirada de dinheiro
 Cliente – Comprar itens, Reembolsar itens
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 85

Prof. Dr. Rogério E. Garcia 39


FCT-UNESP 16/05/2017

Identificação de casos de uso BCC


16/05/2017

 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)

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 86

Importante BCC
16/05/2017

 um caso de uso não representa um passo individual ou uma


operação ou transação de entrada. por exemplo: “imprimir o
recibo” não é um caso de uso no sistema de TPV

 um caso de uso é normalmente a descrição de um processo


relativamente grande, com início e fim próprios, que
normalmente incluem várias transações ou operações de
entrada e saída. Ex:
 retirar dinheiro de um caixa automático
 matricular-se em uma disciplina
 verificar ortográfica em um editor de texto
 …

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 87

Prof. Dr. Rogério E. Garcia 40


FCT-UNESP 16/05/2017

Escopo do Sistema BCC


16/05/2017

 O sistema pode ser limitado por:


 Hardware ou software
 Departamentos de uma organização
 Toda a organização

 O limite é sempre delimitado arbitrariamente pelo


analista e o cliente, mas geralmente leva em conta
critérios tais como: política organizacional, limites de
menor comunicação entre os subsistemas,
oportunidade e tamanho do sistema

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 88

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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 89

Prof. Dr. Rogério E. Garcia 41


FCT-UNESP 16/05/2017

Decisão e Desvio BCC


16/05/2017

 Pontos de decisão e desvio podem ocorrer em um caso de


uso
 Ex: no caso de uso Comprar Itens, o cliente pode pagar em
dinheiro, cartão de crédito ou cheque
 Dividir o caso de uso em seções
 Para cada caso de uso:
 Parte 1 – Resumo
 Seção Principal
 parte 2 – seqüência típica de eventos
 parte 3 – seqüências alternativas
 Seção Pagamento com dinheiro
 parte 2 – seqüência típica de eventos
 parte 3 – seqüências alternativas
 Seção Pagamento com cartão de crédito
 …
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 90

Caso de Uso Comprar Itens


Seção Principal
BCC
Seqüência típica de eventos 16/05/2017
Ação do ator Resposta do Sistema
1. Este caso de uso começa quando o Cliente chega
ao TPV com itens para comprar
2. O Caixa registra o identificador de cada item … 3. Determina o preço do item…

4. Quando termina a entrada dos itens… 5. Calcula…


6. O Caixa informa o total ao cliente
7. O Cliente escolhe o tipo de pagamento:
i. Se for pagamento em dinheiro, ver seção
Pagamento em Dinheiro
ii. Se for pagamento com cartão de crédito ver
seção Pagamento por Cartão de Crédito
iii. Se for pagamento por cheque, ver seção
Pagamento em Cheque

8. Registra a venda completada


9. O Caixa entrega o recibo para o Cliente
10. O Cliente sai da loja com os itens…
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 91

Prof. Dr. Rogério E. Garcia 42


FCT-UNESP 16/05/2017

Caso de Uso Comprar Itens


Seção Pagamento com Dinheiro
BCC
Seqüência típica de eventos 16/05/2017

Ação do ator Resposta do Sistema


1. O Cliente entrega o pagamento em
dinheiro, possivelmente maior que o total
da venda
2. O Caixa registra a quantidade de 3. Exibe o valor do troco a ser devolvido
dinheiro recebida ao cliente
4. O Caixa deposita o dinheiro recebido e
retira o troco devido

O Caixa entrega o troco ao Cliente

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

1. Listar todas as funções (requisitos), definir os limites do sistema e


identificar atores e casos de uso.
2. Escrever todos os casos de uso no formato de alto nível, classificando-
os como principais, secundários e opcionais.

3. Desenhar o diagrama de casos de uso.

4. Escrever o formato expandido dos casos de uso mais importantes,


mais complexos ou mais arriscados. Os demais poderão ser
expandidos quando forem tratados em fases posteriores do processo
de desenvolvimento.

5. Idealmente, postergar os casos de uso reais até a fase de projeto.


Exceções podem ocorrer se:
a) descrições concretas auxiliam grandemente a compreensão, ou
b) os clientes demandam que o processo seja especificado dessa
forma.
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 93

Prof. Dr. Rogério E. Garcia 43


FCT-UNESP 16/05/2017

Exemplo – Sistema TPV BCC


16/05/2017

(Passo 1. Identificar atores, casos de uso e limites do sistema.)

Os limites do sistema serão definidos como o sistema de hardware e


software.

Atores e casos de uso:

Caixa: Abrir (Log In), Retirar dinheiro da caixa, Fechar


Cliente: Comprar Itens, Reembolsar Itens
Gerente: Iniciar e Encerrar (o sistema)
Administrador do Sistema: Adicionar novo usuário

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 94

Exemplo – Sistema TPV BCC


16/05/2017

(Passo 2. Escrever casos de uso no formato de alto nível.)

Caso de uso: Comprar Itens


Atores: Cliente (iniciador), Caixa
Tipo: primário
Descrição: Um cliente chega ao balcão de saída da loja com
itens para comprar. O caixa registra os itens de
compra e recebe o pagamento. Quando termina,
o cliente sai com os itens comprados.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 95

Prof. Dr. Rogério E. Garcia 44


FCT-UNESP 16/05/2017

Exemplo – Sistema TPV BCC


16/05/2017

(Passo 2. Escrever casos de uso no formato de alto nível.)

Caso de uso: Iniciar


Atores: Gerente
Tipo: primário
Descrição: Um Gerente liga o sistema TPV de modo a
prepará-lo para o uso pelos Caixas. O Gerente
confere que as datas e hora estão corretas, após
o que o sistema está pronto para uso dos Caixas.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 96

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.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 97

Prof. Dr. Rogério E. Garcia 45


FCT-UNESP 16/05/2017

Exemplo – Sistema TPV


(Passo 4. Escrever casos de uso essenciais expandidos.)
BCC
16/05/2017

Caso de Uso: Comprar Itens


Atores: Cliente (iniciador), Caixa

Propósito: Captura a venda e seu pagamento em dinheiro


Visão geral: Um cliente chega a um ponto de pagamento, com vários itens que
deseja comprar. O caixa registra os itens de compra e recebe o
pagamento, o qual pode necessitar autorização. No final, o cliente
sai com os itens comprados.
Tipo: primário e essencial
Referências
Cruzadas: Funções: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1, R2.2, R2.3, R2.4
Casos de Uso: o caixa deve ter completado o caso de uso Abrir

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 98

Exemplo – Sistema TPV


(Passo 4. Escrever casos de uso essenciais expandidos.)
BCC
16/05/2017

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.

2. O Caixa registra cada item. 3. Determina o preço do item e


acrescenta informação sobre o
Se houver mais de um exemplar do item, o item à transação de vendas em andamento
Caixa também pode entrar a quantidade. A descrição e o preço do item corrente são
apresentados

4. No término da entrada de itens, o Caixa 5. Calcula e apresenta o total


indica para o TPV que a entrada de itens da venda.
está completa.

6. O Caixa informa ao Cliente o total.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 99

Prof. Dr. Rogério E. Garcia 46


FCT-UNESP 16/05/2017

Exemplo – Sistema TPV


(Passo 4. Escrever casos de uso essenciais expandidos.)
BCC
16/05/2017
(continuação…)
Ação do ator Resposta do sistema

7. O Cliente escolhe o tipo de pagamento:


a. Se pagamento em dinheiro, ver seção
Pagar com Dinheiro.
b. Se pagamento com cartão, ver seção
Pagar com Cartão de Crédito.
c. Se pagamento com cheque, ver seção
Pagar com Cheque.
8. Registra a venda completada.
9. Atualiza os níveis de estoque.
10. Gera um recibo.
11. O Caixa dá o recibo ao Cliente.
12. O Cliente sai com os itens comprados.

Seqüências alternativas

Linha 2: Entrada de Identificador de item inválido. Indicas erro.


Linha 7: Cliente não pode pagar. Cancelar a transação de venda.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 100

Exemplo – Sistema TPV


(Passo 4. Escrever casos de uso essenciais expandidos.)
BCC
16/05/2017
Seção: Pagar com Dinheiro
Seqüência Típica de Eventos
Ação do ator Resposta do sistema
1. O Cliente dá um pagamento em dinheiro.
O valor fornecido é possivelmente maior que o
total da venda.
2. O Caixa registra a quantia fornecida 3. Apresenta o troco devido ao
Cliente
4. O Caixa deposita o dinheiro recebido e retira
o troco devido.
O Caixa dá o troco ao Cliente
Seqüências Alternativas
Linha 1: O Cliente não tem dinheiro suficiente. Pode cancelar a venda ou iniciar outro método de
pagamento
Linha 4: A gaveta de dinheiro não contém o suficiente para pagar o troco. O Caixa solicita mais dinheiro
ao supervisor ou pede ao Cliente uma quantia de dinheiro diferente ou a opção por
um outro método de pagamento

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 101

Prof. Dr. Rogério E. Garcia 47


FCT-UNESP 16/05/2017

Exemplo – Sistema TPV


(Passo 4. Escrever casos de uso essenciais expandidos.)
BCC
16/05/2017
Seção: Pagar com Cartão de Crédito
Seqüência Típica de Eventos
Ação do ator Resposta do sistema
1. O Cliente comunica suas 2. Gera uma solicitação de pagamento com
informações de Crédito para o cartão de crédito e a envia a um Serviço
pagamento com cartão de crédito de Autorização de Crédito (SAC) externo
3. O SAC autoriza o pagamento 4. Recebe uma resposta de aprovação
de crédito do SAC.
5. Lança o pagamento com cartão de crédito
e a informação da resposta de aprovação no
sistema de Contas a Receber (C/R). (O SAC
deve dinheiro à Loja, logo C/R deve fazer o
acompanhamento)
6. Exibe a mensagem de autorização bem
sucedida
Seqüências Alternativas
Linha 3: Solicitação de crédito negada pelo SAC. Sugerir um método de pagamento diferente

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 102

Exemplo – Sistema TPV


(Passo 4. Escrever casos de uso essenciais expandidos.)
BCC
16/05/2017

Seção: Pagar com Cheque


Seqüência Típica de Eventos

Ação do ator Resposta do sistema

1. O Cliente preenche um cheque


e se identifica.

2. O Caixa registra a informação de 3. Gera uma solicitação de pagamento


identificação e solicita autorização com cheque e a envia a um Serviço de
para pagamento com cheque Autorização de Cheques externo

4. O Serviço de autorização de 5. Recebe uma resposta de aprovação


Cheques autoriza o pagamento do Serviço de Autorização de Cheques.

6. Indica autorização bem-sucedida.

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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 103

Prof. Dr. Rogério E. Garcia 48


FCT-UNESP 16/05/2017

Planejar e Elaborar: Artefatos BCC


16/05/2017

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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 104

Método Larman BCC


16/05/2017

Planejar e Elaborar Construir Implantar

1. Definir 2. Criar Relatório de


3. Definir Requisitos
Plano Inicial Investigação Preliminar

4. Registrar 5. Implementar 6. Definir Casos de Uso


Termos no Glossário Protótipo (Alto Nível e Essenciais)

7. Definir Modelo 8. Definir Arquitetura 9. Aperfeiçoar (Refinar)


Conceitual Inicial Inicial do Sistema Plano

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 105

Prof. Dr. Rogério E. Garcia 49


FCT-UNESP 16/05/2017

Método Larman BCC


16/05/2017

Planejar e Elaborar Construir Implantar

1. Definir 2. Criar Relatório de


3. Definir Requisitos
Plano Inicial Investigação Preliminar

4. Registrar 5. Implementar 6. Definir Casos de Uso


Termos no Glossário Protótipo (Alto Nível e Essenciais)

7. Definir Modelo 8. Definir Arquitetura 9. Aperfeiçoar (Refinar)


Conceitual Inicial Inicial do Sistema Plano

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 106

Modelos Conceituais BCC


16/05/2017

 Modelo Conceitual é uma representação dos


conceitos, ou objetos, do mundo real pertencentes a
um domínio de interesse
 É exibido por um conjunto de diagramas de
estrutura estática, no qual não se definem
operações
 Pode ser tratado como um “dicionário visual” das
abstrações significativas do domínio
 ajuda a compreender vocabulário e informação do domínio
 Pode mostrar: conceitos, associações entre
conceitos e atributos de conceitos

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 107

Prof. Dr. Rogério E. Garcia 50


FCT-UNESP 16/05/2017

Modelagem Conceitual BCC


16/05/2017

 Realiza-se a análise do domínio da aplicação


e a modelagem das entidades e fenômenos
desse domínio considerados importantes,
independentemente da implementação.
 A tarefa de modelagem conceitual envolve
dois mecanismos:
 Abstração e
 Representação.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 108

Modelagem Conceitual BCC


16/05/2017

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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 109

Prof. Dr. Rogério E. Garcia 51


FCT-UNESP 16/05/2017

Classificação/Instanciação BCC
16/05/2017

Estudante
CATEGORIA

INSTANCIAÇÃO
de
Graduação

CLASSIFICAÇÃO
INDIVÍDUO Maria
(Objeto) José

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 113

Modelo Conceitual: Conceito BCC


16/05/2017

 Informal: idéia, “coisa”, ou objeto do mundo real no domínio


de interesse.
 Algo digno de nota, de ser documentado, de importância para o
domínio.

 Formal: Um conceito pode ser considerado em termos de


seu:
 Símbolo: palavra ou imagem representando um conceito.
 Ex.: Venda
 Intenção: a definição de um conceito.
 Ex.: Uma venda representa uma transação de compra e possui
data e hora.
 Extensão: o conjunto de exemplos (instâncias) ao qual o
conceito se aplica.
 Ex.: Venda1, Venda2, Venda3 …

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 114

Prof. Dr. Rogério E. Garcia 52


FCT-UNESP 16/05/2017

Modelo Conceitual: Conceito BCC


16/05/2017

 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, …

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 115

Conceitos no Sistema TPV BCC


16/05/2017

TPV Venda Loja

 Como identificar conceitos em um sistema ?

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 116

Prof. Dr. Rogério E. Garcia 53


FCT-UNESP 16/05/2017

Estratégias para
Identificar Conceitos BCC
16/05/2017

 É melhor especificar em excesso um modelo conceitual com


muitos conceitos do que subespecificá-lo.
 Menos conceitos não implicam em um modelo melhor.
 Não exclua um conceito só porque sua necessidade não está
óbvia nos requisitos.
 Não exclua um conceito só porque não tem atributos – ele pode
possuir um papel de comportamento e não de informação.

 Usar uma Lista de Categorias de Conceitos.


 Identificar Substantivos.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 117

Conceito - Definição BCC


16/05/2017

 Informal: idéia, “coisa”, ou objeto do mundo real no domínio


de interesse
 algo digno de nota, de ser documentado, de importância para o
domínio
 Formal - Um conceito pode ser considerado em termos de
seu:
 Símbolo: palavra ou imagem representando um conceito. Ex:
Venda
 Intenção: a definição de um conceito. Ex: Uma venda
representa uma transação de compra e possui data e hora
 Extensão: o conjunto de exemplos (instâncias) ao qual o
conceito se aplica: Ex: Venda1, Venda2, Venda3 …

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 118

Prof. Dr. Rogério E. Garcia 54


FCT-UNESP 16/05/2017

Exemplo BCC
16/05/2017

 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,…

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 119

Conceitos no Sistema TPV BCC


16/05/2017

TPV Venda Loja

 Como identificar conceitos em um sistema ?

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 120

Prof. Dr. Rogério E. Garcia 55


FCT-UNESP 16/05/2017

Exemplos de Categorias de
Conceitos BCC
16/05/2017

 Objetos físicos ou tangíveis: TPV, Carro, Aeronave


 Especificações ou Descrições de “Coisas”:
EspecificaçãoProduto, ListaVerificação
 Lugares: Loja, Aeroporto
 Transações: Venda, Pagamento, Reserva
 Regras e Políticas: PolíticaReembolso
 Itens de linha de transação: ItemLinhaVendas

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 121

Exemplos de Categorias de
Conceitos (cont.) BCC
16/05/2017

 Papéis desempenhados por pessoas: Caixa


 Contêineres: Depósito, Armário, Aeronave
 Coisas em um contêiner: Item, Passageiro
 Catálogos: CatálogoProdutos, CatálogoPeças
 Organizações: DepartamentoVendas
 Sistema externo: SistmAutorizaçãoCartCrédito
 …

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 122

Prof. Dr. Rogério E. Garcia 56


FCT-UNESP 16/05/2017

Identificação de Substantivos -
BCC
caso de uso Comprar Itens 16/05/2017

1. Este caso de uso começa quando um Cliente chega a um


ponto de pagamento equipado com um TPV com vários
itens que deseja comprar.
2. O caixa registra o código universal do produto (UPC) de
cada item.
Se houver mais de um exemplar do item o caixa
também pode entrar a quantidade.
3. Determina o preço do item e acrescenta informação sobre o
item à transação de vendas em andamento.
A descrição e o preço do item corrente são apresentados

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 123

Identificação de Substantivos BCC


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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 124

Prof. Dr. Rogério E. Garcia 57


FCT-UNESP 16/05/2017

Conceitos candidatos
BCC
Domínio TPV – caso de uso Comprar Itens 16/05/2017

 Ideal: Combinar as estratégias para identificar


uma lista de candidatos a conceito

• 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

Incluir no modelo objetos do


tipo relatório? BCC
16/05/2017

 Um recibo é um relatório (uma saída do sistema) de uma


venda
 a informação contida num recibo é derivada de outras fontes, e
portanto essa informação é duplicada
  razão para excluí-lo
 Um recibo desempenha um papel importante em termos das
regras do negócio
 confere ao portador o direito de retornar o item comprado 
razão para incluí-lo
 Então… o Recibo deve ser incluído somente na fase onde o
retorno de itens for tratado – considerando o ciclo de
desenvolvimento iterativo

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 126

Prof. Dr. Rogério E. Garcia 58


FCT-UNESP 16/05/2017

O Conceito de Especificação
(ou de Descrição) BCC
16/05/2017

 O que aconteceria se todas as TVs de 19” (Item)


fossem vendidas ?
 Como fazer para saber o preço desse item de
venda ?

Item EspecificaçãoProduto Item


descrição ou 1 * número série
descrição
preço Descreve
preço
número série ?????
CUP
CUP
MELHOR
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 127

Quando utilizar conceitos de


especificações BCC
16/05/2017

 Quando houver necessidade da existência de uma


descrição de um item ou serviço, independente da
existência de uma instância do item ou serviço
 se a exclusão de instâncias do item/serviço resultar em
perda de informação que deveria ser mantida
 Quando reduzir informação redundante ou
duplicada

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 128

Prof. Dr. Rogério E. Garcia 59


FCT-UNESP 16/05/2017

Dicas... BCC
16/05/2017

 Objetos podem ser:


 Entidades Externas que produzem ou consomem informações
(outros sistemas, pessoas)
 Coisas que fazem parte do domínio (relatórios, displays, cartas)
 Eventos que ocorrem no contexto do sistema (transferência de
propriedade)
 Papéis desempenhados por pessoas (gerente, engenheiro,
vendedor)
 Unidades organizacionais (grupo, equipe)
 Lugares que estabelecem o contexto do problema (piso de
fábrica, área de descarga)

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 129

Dicas... BCC
16/05/2017

 Isolar nomes (e locuções nominais), verbos (e locuções


verbais)
 Os nomes e os verbos que são sinônimos ou que não tem
nenhuma relação com o processo de modelagem são
omitidos
 Os nomes são classes ou atributos (itens de dados)
 Os verbos são operações (métodos) - relacionamento entre
classes

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 130

Prof. Dr. Rogério E. Garcia 60


FCT-UNESP 16/05/2017

Exemplo para TPV BCC


16/05/2017

 Parte do Modelo Conceitual do TPV


 indica que os conceitos Venda e Pagamento são
significativos para o domínio
 indica que Venda e Pagamento estão relacionados de uma
forma digna de nota

Venda Pagamento
1 1
data
hora
Pago-por quantia

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 131

Modelo Conceitual BCC


16/05/2017

 Modelo Conceitual NÃO mostra artefatos de


software
NÃO!!!
 objetos ou classes de software
 métodos ou responsabilidades BDdeVendas
 janelas
 bases de dados
Venda
data
hora
imprimir ()

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 132

Prof. Dr. Rogério E. Garcia 61


FCT-UNESP 16/05/2017

Cardinalidade ou
Multiplicidade BCC
16/05/2017

 Cardinalidade define quantos objetos participam da


relação

 É o número de instâncias de objetos da classe que


participam da relação

 Para cada associação e agregação, são definidas duas


multiplicidades: uma para cada participante do
relacionamento.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 133

Multiplicidade: Exemplo BCC


16/05/2017

• A multiplicidade * C zero ou mais - muitos (as)


define quantas
instâncias de um
1..*
conceito A podem C um ou mais
ser associadas a
cada instância do
conceito B 1..40 C um a quarenta

5 exatamente cinco
C

3,5,8 exatamente três, cinco ou


C oito

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 134

Prof. Dr. Rogério E. Garcia 62


FCT-UNESP 16/05/2017

Navegação BCC
16/05/2017

 Embora associações e agregações sejam bi-


direcionais por default, por ser desejável restringir a
navegação em uma direção

 Para isso, uma ponta (flecha) é adicionada à linha,


indicando a direção da navegação

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 135

Exemplo do Sistema TPV BCC


16/05/2017

associação

1 1 Venda
TPV
Captura

nome da associação direção de leitura


(default: opcional)

OBS: o símbolo SOMENTE indica direção de


leitura – não tem significado no modelo
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 136

Prof. Dr. Rogério E. Garcia 63


FCT-UNESP 16/05/2017

Exemplo BCC
16/05/2017

associação
multiplicidade

1 1 Venda
TPV
Captura

nome da associação direção de leitura


(default: opcional)

1 Estoca *
Loja Item
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 137

Associação - definição BCC


16/05/2017

 Associação é um relacionamento entre


conceitos
 indica uma conexão com significado e interesse

 Em UML são descritas como


“relacionamentos semânticos entre objetos
diferentes”

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 138

Prof. Dr. Rogério E. Garcia 64


FCT-UNESP 16/05/2017

Critérios para incluir


associações BCC
16/05/2017

 Quando o conhecimento associado necessita ser preservado por


algum tempo
 “necessário-ser-conhecida” – requisitos indicam essa necessidade
 Ex: associação entre Venda e Pagamento
 Evite associações cuja necessidade não é sugerida nos requisitos
 Ex: associação entre Venda e Gerente
 É mais importante identificar conceitos do que associações
 Excesso de associações pode tornar o modelo conceitual confuso
 Evite mostrar associações redundantes ou deriváveis

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 139

Associações Comuns BCC


16/05/2017

 A é uma parte física de B


 Gaveta – TPV
 Asa - Aeronave
 A é uma parte lógica de B
 ItemLinhaVenda – Venda
 PernaVôo (Flight Leg) - RotaVôo
 A está fisicamente contida em/sobre B
 Item – Prateleira
 Passageiro - Aeronave
 A está logicamente contida em B
 DescriçãoItem - Catálogo
 Vôo – ProgramaçãoVôo
 A é registrada em B
 Venda - TPV
 Reserva - ManifestoVôo

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 140

Prof. Dr. Rogério E. Garcia 65


FCT-UNESP 16/05/2017

Associações Comuns BCC


16/05/2017

 A é uma descrição para B


 DescriçãoItem – Item
 DescriçãoVôo – Vôo
 A é um item de linha de uma transação ou relatório B
 ItemLinhaVenda – Venda
 ServiçoManutenção - LogManutenção
 A é uma transação relacionada a outra transação B
 Pagamento – Venda
 Reserva – Cancelamento
 …

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 141

Associações com Papéis BCC


16/05/2017

 Cada extremo de uma associação é chamado de


papel.

 Os papéis podem ter, opcionalmente, as seguintes


propriedades:
 Nome
 Expressão de multiplicidade
 Navegabilidade

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 142

Prof. Dr. Rogério E. Garcia 66


FCT-UNESP 16/05/2017

Associações com Papéis BCC


16/05/2017

 Nomes de papéis são necessários,


principalmente, para associação entre dois
objetos de mesma classe.

1 1 .. * Empregado subordinado
Companhia
0 .. *

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 143

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

Prof. Dr. Rogério E. Garcia 67


FCT-UNESP 16/05/2017

Associações e Implementação BCC


16/05/2017

 Uma associação indica um relacionamento significativo apenas


sob a perspectiva conceitual.
 Uma associação não implica em um fluxo de dados ou conexão
entre objetos em uma solução de software.

 Algumas associações do modelo conceitual podem não ser


necessárias na implementação.

 Durante a implementação podem ser descobertas associações


entre objetos de software que foram esquecidas durante a
modelagem conceitual.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 145

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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 146

Prof. Dr. Rogério E. Garcia 68


FCT-UNESP 16/05/2017

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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 147

Modelo Conceitual BCC


16/05/2017

Planejar e Elaborar Construir Implantar

1. Definir 2. Criar Relatório de


3. Definir Requisitos
Plano Inicial Investigação Preliminar

4. Registrar 5. Implementar 6. Definir Casos de Uso


Termos no Glossário Protótipo (Alto Nível e Essenciais)

7. Definir Modelo 8. Definir Arquitetura 9. Aperfeiçoar (Refinar)


Conceitual Inicial Inicial do Sistema Plano

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 148

Prof. Dr. Rogério E. Garcia 69


FCT-UNESP 16/05/2017

Desenvolvimento Iterativo BCC


16/05/2017

Planejar e
Construir Instalar
elaborar

Ciclo de
Desenvolvimento 1
Ciclo de
Desenvolvimento 2

Refinar Sincronizar Analisar Projetar Construir Testar


Plano Artefatos

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 149

Método Larman BCC


16/05/2017

Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos

1. Definir Casos 2. Refinar Diagramas 3. Refinar o Modelo


de Uso Essenciais de Casos de Uso Conceitual

5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema

6. Definir Contratos 7. Definir Diagramas


de Operação de Estado
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 150

Prof. Dr. Rogério E. Garcia 70


FCT-UNESP 16/05/2017

Modelo Conceitual: Atributo BCC


16/05/2017

 Um atributo é um valor de dados lógico de um objeto.


Descreve uma característica do objeto.

 Inclua no modelo conceitual apenas os atributos para os


quais os requisitos sugerem ou implicam uma necessidade
de memorizar a informação.
 Ex: preço de item, valor da compra, …

 Preferivelmente, no modelo conceitual, os tipos de atributos


devem ser simples, como:
 tipos de dados primitivos - booleano, inteiro, real, cadeia de
caracteres,...
 data, hora, cor, endereço, geometria, número de telefone, CEP,

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 151

Modelo Conceitual: Atributo BCC


16/05/2017

 Os atributos são descritos na segunda seção


da caixa de conceito.

 O tipo do atributo é opcional.


Venda Pessoa

data: Data nome: String


hora: Hora idade: Inteiro

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 152

Prof. Dr. Rogério E. Garcia 71


FCT-UNESP 16/05/2017

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

 No sistema TPV – caso de uso ComprarItens :

 Os conceitos de PagamentoComDinheiro,
PagamentoComCartãoCrédito e PagamentoComCheque
são muitos semelhantes.

 Podem ser organizados em uma hierarquia de tipos (ou


conceitos).
 Hierarquia “generalização/especialização”.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 154

Prof. Dr. Rogério E. Garcia 72


FCT-UNESP 16/05/2017

Generalização BCC
16/05/2017

 Identifica o que há em comum entre conceitos.

 Permite:
 Construir classificações taxonômicas – hierarquias de tipos.
 Compreender os conceitos em termos mais gerais e abstratos, ou mais
refinados.

 Conduz a uma notação mais econômica


 Evita repetição de informação.

 Na implementação, pode ser feita com classes e herança.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 155

Generalização: Notação UML BCC


16/05/2017

supertipo –
conceito geral
ConceitoA ConceitoA

ConceitoA1 ConceitoA2 ConceitoA3 ConceitoA1 ConceitoA2 ConceitoA3

subtipo -
conceito especializado

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 156

Prof. Dr. Rogério E. Garcia 73


FCT-UNESP 16/05/2017

Generalização e Tipo BCC


16/05/2017

 A definição de um supertipo é mais geral e mais abrangente que a


definição de um subtipo.
 Pagamento: uma transação de transferência de dinheiro (não
necessariamente em espécie) de um comprador para um vendedor.
 PagamentoComCartãoCrédito: transferência de dinheiro, via uma
instituição de crédito, que necessita ser autorizada.
 Propriedade pertinência ao conjunto: todos os membros de um subtipo
são membros do supertipo.
 ex: PagamentosComCartãoCrédito estão dentro do conjunto
Pagamento.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 157

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.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 158

Prof. Dr. Rogério E. Garcia 74


FCT-UNESP 16/05/2017

Exemplo BCC
16/05/2017
Pagamento supertipo –
conceito geral

PagamentoComDinheiro PagamentoCheque

PagamentoComCartãoCrédito
subtipo -
conceito especializado

Pagamento

Pagamento Com Pagamento Com Pagamento Com


Dinheiro Cheque Cartão Crédito

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 159

Generalização/Especialização BCC
16/05/2017

Regra dos 100%


100% da definição do supertipo dever ser aplicada ao subtipo.
O subtipo deve estar em conformidade com 100% dos seguintes elementos
do supertipo:
• Atributos
• Associação

Pagamento
Pago-a Venda
valor: Quantia

PagamentoComDinheiro PagamentoComCartãoCrédito PagamentoComCheque

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 160

Prof. Dr. Rogério E. Garcia 75


FCT-UNESP 16/05/2017

Quando definir um subtipo ? BCC


16/05/2017

 Criar subtipos significa particionar um tipo.


 Dividir um tipo em subtipos disjuntos.
 Quando mostrar a partição de um tipo?
 Depende da relevância da partição para o domínio do problema.

 Ex: No sistema TPV seria útil definir a seguinte hierarquia??

Cliente

ClienteFeminino ClienteMasculino

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 161

Dicas de quando particionar... BCC


16/05/2017

1. Um subtipo tem atributos adicionais de interesse.


2. O subtipo tem associações adicionais de interesse.
3. O conceito do subtipo é tratado, operado ou manipulado de
maneira diferente que o supertipo ou outros subtipos,
segundo formas que são de interesse considerar.
4. O conceito do subtipo representa uma coisa ou ser animado
que se comporta de maneira diferente do supertipo ou de
outros subtipos, segundo formas que são de interesse
considerar.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 162

Prof. Dr. Rogério E. Garcia 76


FCT-UNESP 16/05/2017

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

subtipos com Cursa Ministra


atributos e
associações
adicionais, e * Disciplina
comportament código 0..3
o e distintos
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 163

Exemplo – Sistema TPV BCC


16/05/2017

Pagamento
1 Venda
valor : Quantia Pago-a 1

PagamentoComDinheiro PagamentoComCartãoCrédito PagamentoComCheque

* 1
Identifica_crédito_com Pago_com

1 1
CartãodeCrédito Cheque

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 164

Prof. Dr. Rogério E. Garcia 77


FCT-UNESP 16/05/2017

O que fazer??? BCC


16/05/2017

 Se uma pessoa pode ter mais de um emprego em empresas


diferentes, onde colocar a informação de salário????

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

 Classe associativa: seus atributos estão relacionados a uma


associação e não a um dos conceitos envolvidos na associação.

 Seu tempo de vida depende do tempo de vida da associação.


16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 166

Prof. Dr. Rogério E. Garcia 78


FCT-UNESP 16/05/2017

Tipos Associativos BCC


16/05/2017

 Indícios da existência de tipos associativos:

 Um atributo está relacionado a uma associação.

 As instâncias do tipo associativo têm tempo de vida


dependente do tempo de vida da associação.

 Existe uma associação muitos-para-muitos entre dois


conceitos, bem como informações relacionadas à
associação propriamente dita.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 167

Agregação BCC
16/05/2017

 É um tipo de associação usado para modelar relacionamentos


todo-parte entre coisas.
 O todo é geralmente chamado composto, as partes podem ser
chamadas componentes.

 Notação em UML: losango vazio ou preenchido.

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

Prof. Dr. Rogério E. Garcia 79


FCT-UNESP 16/05/2017

Agregação Composta BCC


(Losango Preenchido) 16/05/2017

 Agregação composta ou composição significa que:


 A multiplicidade na extremidade do composto pode ser no
máximo 1.
 Uma instância do componente pode ser parte de apenas
uma instância do composto (simultaneamente).

 Existe uma dependência de existência entre o


componente e o composto.

 A existência de uma instância do composto implica na


existência de instâncias dos componentes.

 A destruição de uma instância do composto implica na


destruição das instâncias dos componentes agregados.
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 169

Exemplos BCC
16/05/2017

 Um dedo só pode fazer parte de uma mão.

Mão 1 0..5 Dedo

 Um item de linha de venda só pode fazer parte de uma venda.

Venda 1 1..* ItemLinhaVenda

 Uma especificação de produto só pode ser parte de um catálogo.

1 1..* EspecificaçãoProduto
CatálogoProduto

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 170

Prof. Dr. Rogério E. Garcia 80


FCT-UNESP 16/05/2017

Agregação Compartilhada BCC


(Losango Vazio) 16/05/2017

 Agregação compartilhada significa que:


 A multiplicidade na extremidade do composto pode ser
maior que 1.
 Uma instância do componente pode estar
simultaneamente em muitas instâncias do composto.

 Esse tipo de agregação é raro em agregados


físicos, mas aparece em conceitos não-físicos.
 Exemplo:
Software
Classe
OO * *
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 171

Modelo Conceitual:
Diretrizes para Construção BCC
16/05/2017

 Liste os conceitos candidatos relacionados aos requisitos


considerados.
 Use a Lista de Categorias de Conceitos e a Identificação de
Substantivos.
 Desenhe os conceitos em um modelo conceitual.
 Registre as associações entre conceitos.

 Acrescente os atributos necessários para completar os


requisitos.
 Identifique possíveis agregações, generalizações e tipos
associativos.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 172

Prof. Dr. Rogério E. Garcia 81


FCT-UNESP 16/05/2017

Método Larman BCC


16/05/2017

Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos

1. Definir Casos 2. Refinar Diagramas 3. Refinar o Modelo


de Uso Essenciais de Casos de Uso Conceitual

5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema

6. Definir Contratos 7. Definir Diagramas


de Operação de Estado
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 173

Método Larman BCC


16/05/2017

Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos

1. Definir Casos 2. Refinar Diagramas 3. Refinar o Modelo


de Uso Essenciais de Casos de Uso Conceitual

5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema

6. Definir Contratos 7. Definir Diagramas


de Operação de Estado
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 174

Prof. Dr. Rogério E. Garcia 82


FCT-UNESP 16/05/2017

Diagramas de Seqüência
do Sistema (DSS) BCC
16/05/2017

 Para dar prosseguimento à fase de análise, é


desejável ter uma noção mais concreta do
comportamento esperado do sistema diante dos
eventos que fazem parte de cada caso de uso

 Idéia: investigar e definir o comportamento do sistema


como uma “caixa preta”.

 O comportamento é dependente dos casos de uso.


 Interação de atores com o sistema gera eventos que
solicitam operações em resposta.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 175

Diagramas de Seqüência
do Sistema (DSS) BCC
16/05/2017

 Os diagramas de seqüência do sistema são


utilizados para especificar parte de seu
comportamento.

 Mostram um cenário global do funcionamento do


sistema, dividindo o caso de uso em partes bem
definidas, denominadas operações, que são
executadas em resposta aos eventos.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 176

Prof. Dr. Rogério E. Garcia 83


FCT-UNESP 16/05/2017

Diagramas de Seqüência
do Sistema (DSS) BCC
16/05/2017

 Um DSS ilustra os eventos de entrada e saída do sistema.


Para uma seqüência específica de eventos (cenário) de um
caso de uso, o DSS mostra:
 Os atores que interagem com o sistema.
 O sistema, como uma “caixa-preta”.
 Eventos do sistema gerados pelos atores.
 Eventos entre sistemas.
 A ordem dos eventos.
 Deve ser feito para uma seqüência típica do caso de uso.
 Possivelmente outros DSS podem ser criados para as
seqüências alternativas mais interessantes.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 177

Eventos e Operações do
Sistema BCC
16/05/2017

 Um evento de sistema é um evento externo de entrada para o


sistema, gerado por um ator.
 Eventos de sistema podem incluir parâmetros.

 Cada evento inicia uma operação de resposta do sistema.


 Uma operação de sistema é uma operação executada em
resposta a um evento de sistema.

 Um mesmo nome é atribuído a um evento e à operação


correspondente (assim como mensagens e métodos).

 Eventos e operações também podem ser de saída.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 178

Prof. Dr. Rogério E. Garcia 84


FCT-UNESP 16/05/2017

Relembrando...
BCC
Caso de Uso Expandido: Comprar Itens 16/05/2017

(restrito a pagamento em dinheiro e sem tratar controle de estoque)


Caso de Uso: Comprar Itens com Dinheiro
Atores: Cliente (iniciador), Caixa
Finalidade: Capturar a venda e seu pagamento em dinheiro
Visão geral: Um Cliente chega ao balcão de saída da loja com itens que deseja comprar. O
Caixa registra os itens de compra e recebe o pagamento. Quando termina, o
Cliente sai com os itens comprados.
Tipo: primário e essencial (a ser discutido adiante…)

Referências Requisitos: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1


Cruzadas:

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 179

Caso de Uso Expandido BCC


16/05/2017

Ação do ator Resposta do Sistema

1. Este caso de uso começa quando o Cliente


chega ao TPV com itens para comprar
2. O Caixa registra o identificador de cada 3. Determina o preço do item e adiciona
item informação sobre o item à transação de venda
corrente

Se há mais de um do mesmo item, o caixa A descrição e o preço do item são


também entra a quantidade apresentados
4. Quando termina a entrada dos itens, o 5. Calcula e apresenta o total da venda
Caixa indica ao TPV que as entradas estão
completas
6. O Caixa informa o total ao cliente

7. O Cliente entrega o pagamento em dinheiro


– o “pagamento em dinheiro” – possivelmente
maior que o total daCiência
16/05/2017 venda da Computação - Engenharia de Software I - Rogério Eduardo Garcia 180

Prof. Dr. Rogério E. Garcia 85


FCT-UNESP 16/05/2017

Caso de Uso Expandido BCC


16/05/2017

Ação do ator Resposta do Sistema


8. O Caixa registra a quantidade de 9. Exibe o valor do troco a ser devolvido
dinheiro recebida ao cliente
10. O Caixa deposita o dinheiro recebido 11. Registra a venda completada (logs)
e retira o troco devido

O Caixa entrega ao cliente o troco e o


recibo impresso
12. O Cliente sai com os itens comprados

Que ator(es) realmente interage(m) com o sistema??


16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 181

Exemplo – Sistema TPV


BCC
DSS para o Caso de Uso Comprar Itens 16/05/2017
Ator
Comprar Itens :Sistema
Operação
:Caixa Linha do
iniciarNovaVenda( ) tempo
“:” indica
instância
entrarItem(CUP, quantidade)
descrição item, total
*[mais itens]

“*[..]” indica iteração e terminarVenda()


a caixa refere-se à
iteração
fazerPagamento(quantia) Repetição
de uma
troco, recibo operação
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 182

Prof. Dr. Rogério E. Garcia 86


FCT-UNESP 16/05/2017

Exemplo – Sistema TPV


DSS para o Caso de Uso Comprar Itens BCC
16/05/2017

Comprar Itens :Sistema


:Caixa
iniciarNovaVenda( ) Valores de retorno associados
ao evento anterior

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

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 183

Operações do Sistema BCC


16/05/2017

 O conjunto de eventos do sistema define um


conjunto de operações do sistema.

 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.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 184

Prof. Dr. Rogério E. Garcia 87


FCT-UNESP 16/05/2017

Como dar nome aos eventos


do sistema??? BCC
16/05/2017

 Devem capturar a intenção do evento.


 Não devem ser nomeados em termos dos meios físicos da
entrada de dados ou dos elementos da interface.

 Começar o nome com um verbo no infinitivo.

 Exemplo:
 “entrarItem” (intenção do evento) é melhor que
“escanearItem” (revela intenções de projeto – uso de
scaner laser).

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 185

Método Larman BCC


16/05/2017

Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos

1. Definir Casos 2. Refinar Diagramas 3. Refinar o Modelo


de Uso Essenciais de Casos de Uso Conceitual

5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema

6. Definir Contratos 7. Definir Diagramas


de Operação de Estado
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 186

Prof. Dr. Rogério E. Garcia 88


FCT-UNESP 16/05/2017

Método Larman BCC


16/05/2017

Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos

1. Definir Casos 2. Refinar Diagramas 3. Refinar o Modelo


de Uso Essenciais de Casos de Uso Conceitual

5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema

6. Definir Contratos 7. Definir Diagramas


de Operação de Estado
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 187

Contratos de Operação BCC


16/05/2017

 É importante que as tarefas atribuídas às operações sejam


bem documentadas, para evitar redundâncias e
inconsistências.

 Um contrato especifica o comportamento esperado para cada


operação correspondente a um evento do sistema.
 Linguagem precisa, analítica e rigorosa.

 Deve-se fazer um contrato para cada operação relevante.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 188

Prof. Dr. Rogério E. Garcia 89


FCT-UNESP 16/05/2017

Contratos de Operação BCC


16/05/2017

 Características típicas de um contrato:


 Nome da operação.
 Parâmetros de entrada.
 Referências cruzadas.
 Casos de uso nos quais a operação pode ocorrer.
 Pré-condições.
 Pós-condições.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 189

Contratos de Operação BCC


16/05/2017

 Pré-Condições
 Representam o estado do sistema antes da
invocação da operação.

 Não serão verificadas pela operação.


 Assume-se que elas são verdadeiras ao invocar a
operação.

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 190

Prof. Dr. Rogério E. Garcia 90


FCT-UNESP 16/05/2017

Contratos de Operação BCC


16/05/2017

 Pós-Condições

 Representam o estado do sistema após a invocação da


operação, mostrando o que mudou como conseqüência da
sua execução.

 Para cada operação, analisar os conceitos identificados no


Modelo Conceitual e definir, para cada possível objeto do
sistema, o que muda quando a operação é invocada.

 Observar o DSS para ter uma melhor idéia do contexto em


que a operação está inserida e o contexto resultante.
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 191

Exemplo – Sistema TPV BCC


16/05/2017

 entrarItem

 Qual a responsabilidade desta operação?

 Em quais casos de uso ela aparece?

 O que ela considera como verdadeiro para ser


executada?

 O que muda no Modelo Conceitual após sua


invocação?
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 192

Prof. Dr. Rogério E. Garcia 91


FCT-UNESP 16/05/2017

Exemplo – Sistema TPV BCC


16/05/2017

 Operação: entrarItem(CUP, quantidade)


 Referências Cruzadas: Casos de uso: ProcessarVenda
 Pré-Condições: Existe uma venda em andamento.
 Pós-Condições:
 Foi criada uma instância liv de LinhaDeItemDeVenda (criação de uma
instância)
 Liv foi associada com a Venda corrente (associação formada)
 liv.quantidade tornou-se quantidade (modificação de atributo).
 liv foi associada com uma EspecificaçãoDeProduto, com base na
correspondência de um itemID (associação formada).

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 193

Método Larman BCC


16/05/2017

Refinar Sincronizar
Analisar Projetar Construir Testar
Plano artefatos

1. Definir Casos 2. Refinar Diagramas 3. Refinar o Modelo


de Uso Essenciais de Casos de Uso Conceitual

5. Definir Diagramas de
4. Refinar Glossário
Seqüência do Sistema

6. Definir Contratos 7. Definir Diagramas


de Operação de Estado
16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 194

Prof. Dr. Rogério E. Garcia 92


FCT-UNESP 16/05/2017

Conclusão da Fase de Análise BCC


16/05/2017

 A fase de análise enfatiza uma compreensão dos


requisitos do sistema.
 “Fazer a Coisa Certa” – compreender objetivos, conceitos
e características do domínio do problema.
 Artefatos estudados...
Artefato da Análise Questões Respondidas
Casos de Uso Quais são os processos do domínio?

Modelo Conceitual Quais são os conceitos (objetos)?

Diagramas de Seqüência do Sistema Quais são os eventos e operações?

Contratos de Operação Qual é o comportamento da operação?


16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 195

Desenvolvimento Iterativo BCC


16/05/2017

Planejar e
Construir Instalar
elaborar

Ciclo de
Desenvolvimento 1
Ciclo de
Desenvolvimento 2

Refinar Sincronizar Analisar Projetar Construir Testar


Plano Artefatos

Próximo passo...

16/05/2017 Ciência da Computação - Engenharia de Software I - Rogério Eduardo Garcia 196

Prof. Dr. Rogério E. Garcia 93

Você também pode gostar