Engenharia de Softwares e Sistema – IF682 (2012.1)
Bruno Medeiros([email protected])

Algumas definições
◦ Engenharia de Software – conjunto de tecnologias e
práticas usadas para construir software de
qualidade e dentro de estimativas de custo e
tempo.
◦ Projeto – “Um projeto é um esforço temporário
empreendido para criar um produto, serviço ou
resultado exclusivo.” [PMBOK, 2004].
◦ Processo – é um conjunto de passos parcialmente
ordenados que objetivam atingir uma meta; é uma
receita a ser seguida por um projeto; uma
abstração concretizada pelo projeto.
◦ Não confundir processo, projeto e produto!

Estudaremos a seguir os fluxos de Análise e
de Projeto (design) baseados no processo de
desenvolvimento de software do RUP.
Concepção
Elaboração
Construção
A
P
.
n
r
.
á
.
l
i
s
e
o
j
e
t
o
Transição
.
.
.


Após o levantamento dos requisitos
desejamos detalhar, estruturar e validar tais
requisitos através de um modelo conceitual
do problema.
Nesta etapa, queremos:
◦ Modelar de forma precisa os conceitos relevantes
ao domínio do problema;
◦ Verificar a qualidade dos requisitos obtidos pelo
fluxo de Requisitos;
◦ Atingir um nível de detalhes suficiente para
alimentar o fluxo de Projeto, mas evitar aspectos
próprios à implementação e não ao problema.

Cada caso de uso deve ser analisado individualmente
para:
1. Identificação das classes - a partir dos fluxos dos casos
de uso são identificadas as classes do produto.
2. Organização das classes - as classes são agrupadas em
pacotes e marcadas com os estereótipos de fronteira,
entidade, controle ou coleção.
3. Identificação dos relacionamentos - determina os
relacionamentos entre as classes.
4. Identificação dos atributos - levantamento dos atributos
que fazem parte dos conceitos expressos pelas classes.
5. Realização dos casos de uso - representa os fluxos dos
casos de uso através de diagramas de seqüencia.

Classes

Objetos

Estereótipos de classes
◦ Fronteira <<boundary>> : Modela interação entre
um ator e o sistema.
◦ Entidade <<entity>>: Representa abstrações e
conceitos chaves; freqüentemente corresponde a
entidades de banco de dados.
◦ Controle <<control>>: Tipicamente dependente da
aplicação; encapsula lógica que não se enquadra na
entidade; em geral, uma por caso de uso.
Estabelecem uma interface entre fronteira e entidade.
◦ Coleção <<entity collection>>: Classe de entidade
que deve ser persistida.

Representações dos estereótipos

Em geral, pode-se ter
uma hierarquia de
classes relacionadas
por herança /
generalização
◦ em cada classe da
hierarquia colocam-se
as propriedades que são
comuns a todas as suas
subclasses
 evita-se redundância,
promove-se reutilização!
Pessoa
Aluno
Professor
Pessoa
Aluno
Professor


Numa sub-classe podem-se redefinir
operações da super-classe
Em UML, quando se repete (a assinatura) de
uma operação numa sub-classe, quer-se
dizer que a operação tem uma
implementação diferente (a implementação
não é herdada)
◦ chama-se método à implementação da operação

QIB - Qualiti Internet Banking
◦ [UC-02] Efetuar pagamento Qualiti Card.
◦ [UC-06] Comprar ações.
[UC-02] Efetuar pagamento Qualiti Card
Prioridade: Essencial
Ator(es): Cliente e Operadora de cartão de crédito.
Descrição: Permite ao cliente realizar o pagamento da fatura do cartão de crédito. Ao efetuar o pagamento o
sistema se comunica com a operadora de cartão para autenticar o número do cartão do usuário.
Precondições: Usuário deve estar conectado ao sistema (ter efetuado o login).
Pós-condições: Pagamento realizado (o sistema informa a operadora de cartão de crédito que o pagamento foi
efetuado), com débito do valor pago na conta do usuário e comprovante de pagamento.
Fluxo principal
1. O usuário escolhe a opção de pagamento do Qualiti Card.
2. Include Informar dados do Qualiti Card.
3. O sistema verifica a data de vencimento da fatura.
4. Se a data de pagamento da fatura for inferior ou igual à data de vencimento, o usuário pagará o valor
correspondente da fatura.
5. Se não, se a data for superior a data de vencimento da fatura o sistema cobrará 10% de juros em cima do
valor da fatura.
6. Se a diferença entre a data da fatura e a data de pagamento for superior a 30 o banco emitirá uma
mensagem ao usuário informando que o pagamento só poderá ser efetuado na operadora do cartão de
crédito.
7. O usuário informa o tipo de pagamento a ser feito da fatura, parcial ou total.
8. Se o pagamento for parcial, ele pagará 10% do valor da fatura, ficando o restante para ser debitado na
próxima fatura.
9. Se o pagamento for total o usuário pagará todo o valor correspondente da fatura.
10.O usuário confirma o pagamento.
11.O sistema efetua o pagamento e emite para o usuário um comprovante informando que o pagamento da
fatura do cartão foi realizado.
Fluxo de erros
[FE-001] - No passo 10 do fluxo de eventos principal, caso o saldo da conta do cliente não seja suficiente para
realizar o pagamento da fatura, o sistema informa ao usuário que ele não possui saldo suficiente para fazer o
pagamento e cancela a operação.
[UC-06] Comprar ações
Prioridade: Essencial
Ator(es): Cliente e Operadora do Mercado de Ações.
Descrição: Este caso de uso é responsável por realizar a compra de ações.
Precondições: O cliente deve estar conectado ao sistema (ter efetuado o login) e estar cadastrado para
comprar e vender ações.
Pós-condições: O valor da compra debitado na conta do cliente.
Fluxo principal
1. O cliente informa os dados necessários para a realização da compra:
•
De quem ele quer comprar as ações (BOVESPA, NASDAQ, MERVAL);
•
A quantidade de ações.
2. O sistema calcula o valor das ações a serem compradas.
3. O sistema verifica se o saldo da conta do cliente é suficiente para a realização da compra.
4. O sistema envia a compra à operadora do mercado de ações.
5. O valor é debitado da conta do cliente.
6. O QIB registra a ocorrência desta transação (uma compra de ações).
7. Emite-se um comprovante da compra para o usuário, contendo os dados da conta do usuário, data, valor da
compra e de quem as ações foram compradas.
Fluxos alternativos
[FA-001] - Em qualquer momento o usuário pode cancelar a operação.
Fluxo de erros
[FE-001] - No passo 3, se o saldo disponível na conta do usuário for menor que o valor da compra, o sistema
informa que o saldo é insuficiente e retorna ao passo 1 do fluxo principal de eventos.
[FE-002] No passo 4, se a operadora do mercado de ações estiver inativa ou se ocorrer algum erro de
comunicação que impeça a efetivação da transação, o sistema emite uma mensagem para o cliente e aborta a
transação.
 Para
que fique claro o processo de obtenção do
Modelo de Análise, faremos um exemplo utilizando o
caso de uso [UC-02] Efetuar pagamento Qualiti Card.

Listar as classes a partir do fluxo do caso de
uso:
◦ Buscar por substantivos;
◦ Eliminar aspectos de implementação;
◦ Identificar responsabilidades das classes e suas,
possíveis, colaboradoras.

Agrupar classes em pacotes lógicos e indicar os
estereótipos. Explicitar fronteiras, entidades,
controles e coleções.


Determinar os relacionamentos com
multiplicidades e, quando necessário, com
nomes.
Tipos de relacionamentos:
◦ Associação: denota dependência semântica entre
as classes, é o tipo mais comum.
◦ Agregação: caso particular do anterior, indica o
caráter “todo-parte”. Ex.: um conjunto de pontos
formam um polígono, mas um ponto existe sem
que exista um polígono.
◦ Composição: tipo mais forte do relacionamento
“todo-parte”, objetos da classe “parte” não existem
sem a classe “todo”. Ex.: o centro de um círculo só
existe quando em presença deste.



Localizar atributos relevantes que ainda
não foram incluídos.
Atributos e relacionamentos podem
expressar o mesmo conceito, a escolha
deve visar à clareza do modelo.
Evitar atributos necessários apenas à
implementação (gambi, temp, aux1,
aux2, auxN...) 




Nesta atividade são descobertas as operações
(métodos) de cada classe através da interação
entre seus objetos.
Representam-se as interações entre objetos por
meio de diagramas de interação: seqüência e
colaboração.
Diagramas de seqüência exprimem o caráter
temporal das ações em andamento.
Num único diagrama de seqüência pode-se
representar todo os fluxos de um caso de uso,
ou se utilizar vários diagramas (mais comum).
 Obter
o Modelo de Análise para o caso de uso [UC-06]
Comprar ações.



O fluxo de Análise forneceu o primeiro
modelo da arquitetura do sistema.
Queremos melhorar esse modelo a fim de se
chegar a algo codificável.
Ao final desse fluxo obtemos o Modelo de
Projeto (design).




Abstrato
Independente da
tecnologia
Simples
Modelos por caso de
uso
Modelo de Análise




Concreto
Dependente da
tecnologia
Detalhado
Unificação em um
único modelo
Modelo de Projeto
1.
2.
3.
4.
Refinar o modelo de classes.
Aplicar padrões de projeto – Ex.: fachada.
Projetar arquitetura – Ex.: divisão em
camadas.
Projetar Banco de dados.







Eliminar os estereótipos de análise;
Definir os tipos dos atributos, de retorno e de
parâmetro dos métodos;
Adicionar modificadores de visibilidade aos
métodos e atributos;
Identificar redundância;
Criar ou remover classes;
Identificar necessidades de herança;
Agrupar todas as classes de análise em um
único diagrama.

Divisão do sistema em camadas, arquitetura
bastante comum.
Apresentação

Interface com o usuário
Comunicação
Comunicação entre apresentação
e negócio e com outros sistemas
Negócio
Regras de negócio inerentes
à aplicação
Dados
Código relacionado ao mecanismo
de persistência utilizado
Agrupar classes em pacotes: criar diagrama de
pacotes.

Em UML, um pacote é definido como: "Um
mecanismo de propósito geral para organizar
elementos semanticamente relacionados em
grupos." Todos os modelos de elementos que
são ligados ou referenciados por um pacote
são chamados de "Conteúdo do pacote". Um
pacote possui vários modelos de elementos,
e isto significa que estes não podem ser
incluídos em outros pacotes.
 Obter


o Modelo de Projeto para os casos de uso:
[UC-02] Efetuar pagamento Qualiti Card;
[UC-06] Comprar ações.




[Pádua, 2003] Pádua, Wilson de. P. F. Engenharia de Software:
Fundamentos, métodos e padrões. Editora LTC, 2ª ed., Rio de
Janeiro - RJ, 2003.
[PMBOK, 2004] Project Management Institute. Um Guia do
Conjunto de Conhecimentos em Gerenciamento de Projetos
(Guia PMBOK). 3ª ed., 2004.
[ESS, 2008] Site da disciplina Engenharia de Softwares e
Sistema. Disponível em : http://www.cin.ufpe.br/~if682.
Curso de UML, Universidade do Porto Faculdade
Engenharia(FEUP)
de
Download

Aula 5 - Modelo de Análise e Projeto