Elaboração
Projeto Final - APGS
Adriana P. de Medeiros
Elaboração



Objetivo da fase
Análise e Projeto

Modelo Conceitual

Modelo de Projeto

Diagramas de Sequência

Diagrama de Estados

Proposta de componentes
Documentação
Análise, Projeto e Gerência de Sistemas
Projeto Final
2
Objetivo

Analisar o domínio do problema e estabelecer uma base
arquitetural para o novo sistema
Necessário:






concluir os casos de uso de sistema
construir o modelo conceitual
construir o modelo de projeto
construir os diagramas de sequência
construir diagramas de estados (se necessário)
preparar proposta de componentes para o sistema
Análise, Projeto e Gerência de Sistemas
Projeto Final
3
Elaboração
Análise e Projeto
Análise, Projeto e Gerência de Sistemas
Projeto Final
4
UML: Perspectivas Múltiplas

A UML descreve tipos puros de diagramas


Diagrama de Classes, Diagrama de Sequência, etc.
A mesma notação diagramática pode ser usada em três
tipos de perspectivas e modelos:

Perspectiva essencial ou conceitual


Perspectiva de especificação


Diagramas representam uma descrição de coisas no mundo real ou
domínio de interesse
Diagramas representam uma descrição de abstrações de software ou
componentes com especificações e interfaces
Perspectiva de implementação

Diagramas representam uma descrição de implementação de
software em uma tecnologia e linguagem específica (como Java)
Análise, Projeto e Gerência de Sistemas
Projeto Final
5
Diagrama de Classes: Perspectivas

Conceitual
Modelo
Conceitual

Especificação (Tipos e Interfaces)
Modelo de
Projeto

Implementação
Análise, Projeto e Gerência de Sistemas
Projeto Final
6
Modelo Conceitual

Ilustra as classes conceituais significativas em um
domínio de problema

Pode mostrar:

objetos do domínio ou classes conceituais

associações entre as classes conceituais

atributos de classes conceituais
Usando a notação UML, um modelo conceitual é
ilustrado como um conjunto de diagramas de
classes, nos quais não se definem operações
Análise, Projeto e Gerência de Sistemas
Projeto Final
7
Modelo Conceitual
Um Modelo Conceitual é
uma representação de classes
conceituais do mundo real, não
de componentes de software.
Durante a Modelagem Conceitual
levantamos conceitos relativos
ao domínio de um problema.
Devemos nos concentrar no
negócio e não em detalhes de
implementação.
Análise, Projeto e Gerência de Sistemas
Projeto Final
8
Modelo Conceitual

Modelos não são corretos ou incorretos; eles são mais
úteis ou menos úteis [Fowler 97]

Se modelamos um conceito de uma determinada
maneira, devemos nos questionar quanto a sua utilidade
e se a forma que modelamos é a que mais nos facilitará.

Queremos:

Representar abstrações

Independência de implementações

Facilidade de comunicação
[Fowler 97] Fowler, M., Analysis Patterns – Reusable Object Models, Addison Wesley, 1997
Análise, Projeto e Gerência de Sistemas
Projeto Final
9
Exemplo: Modelo Conceitual
Funcionário
Pedido
preenche
número
data
1
*
nome
idade
*
1
Organização
1
Cargo
1..*
LinhaDe
ItemDePedido
quantidade
1
1
Produto
{incompleto}
Livro
Análise, Projeto e Gerência de Sistemas
CD
Projeto Final
DVD
10
Dicas

Se você não pensar em uma classe conceitual X como
um número ou um texto no mundo real, então X
provavelmente será uma classe conceitual, não um
atributo

Concentre-se nas associações cujo conhecimento do
relacionamento deve ser preservado por algum tempo
(associações “que devem ser conhecidas”)

Relacione classes conceituais com uma associação, não
com um atributo
Fonte: Livro “Utilizando UML e Padrões” - Craig Larman
Análise, Projeto e Gerência de Sistemas
Projeto Final
11
Modelo de Projeto

Contém diversos tipos de diagramas, incluindo os
diagramas de classes, de pacotes e de interação

Um diagrama de classe de projeto ilustra as
especificações para classes de software e interfaces em
uma aplicação. Inclui:

classes, associações e atributos

informação de tipo de atributo

métodos

interfaces, com suas operações e constantes

navegabilidade

dependências
Análise, Projeto e Gerência de Sistemas
Projeto Final
12
Modelo de Projeto

Considerar:
Operações
necessárias
Padrões de Projeto
Restrições
Diagramas de Sequência
Análise, Projeto e Gerência de Sistemas
Projeto Final
13
Exemplo: Modelo de Projeto
Pedido
número: Integer
data: Date
criarLinhaDeItem(...)
obterTotal ()
LinhaDeItemDePedido
1
contém
1..*
quantidade: Integer
obterSubTotal ()
1
descreve
*
EspecificaçãoProduto
descricao: String
preco: Moeda
...
Análise, Projeto e Gerência de Sistemas
Projeto Final
14
Revisão: Classes Abstratas

Não podem ser instanciadas

São usadas quando não conhecemos a implementação
de seus métodos

A implementação é dada por suas subclasses
Análise, Projeto e Gerência de Sistemas
Projeto Final
15
Exemplo
Figura
calcularArea()
Retângulo
altura
base
calcularArea()
base x altura
Análise, Projeto e Gerência de Sistemas
Triângulo
altura
base
Círculo
raio
calcularArea()
calcularArea()
PI x raio x raio
base x altura/2
Projeto Final
16
Revisão: Interfaces

Uma interface é uma coleção de operações usadas para
especificar um serviço de uma classe ou componente

Interfaces permitem separar a especificação de
funcionalidade, em termos de operações, de sua
implementação em termos de método

Esta separação torna o cliente que usa uma interface
independente da implementação desta interface
Uma implementação particular de uma interface, como por exemplo
uma classe ou componente, pode ser substituída por uma outra
implementação sem que seja necessário mudar o cliente
Análise, Projeto e Gerência de Sistemas
Projeto Final
17
Exemplo
Conta
Transacao
Cliente
<<usa>>
numero:Integer
create()
obterNumero()
retirarDinheiro()
depositarDinheiro()
OU
Conta
<<interface>>
Transacao
Cliente
numero:Integer
<<usa>>
retirarDinheiro()
depositarDinheiro()
Análise, Projeto e Gerência de Sistemas
Projeto Final
create()
obterNumero()
retirarDinheiro()
depositarDinheiro()
18
Revisão: Pacotes

Mecanismo de propósito geral para organizar elementos
de um modelo em grupos
Cliente
Regras de Negócio
FormPedido
Pedido
Cliente
GUI
+ Window
+ Form
# EventHandler
Análise, Projeto e Gerência de Sistemas
FormPedido
Pedido
Projeto Final
19
Revisão: Generalização de Pacotes
GUI
+ Windows
+ Form
# EventHandler
WindowsGUI
+ GUI::Window
+ Form
# GUI::EventHandler
+ VBForm
Análise, Projeto e Gerência de Sistemas
MacGUI
Projeto Final
20
Revisão: Subsistemas

Um subsistema é simplesmente uma parte de um
sistema e é usado para decompor um sistema complexo
em partes “quase” independentes
Sistema de
Varejo
Atendimento ao
cliente
Análise, Projeto e Gerência de Sistemas
Gestão da Loja
Projeto Final
Controle de
Estoque
21
Revisão: Padrões de Projeto

São descrições de objetos e classes comunicantes que
são customizados para resolver um problema geral de
projeto num contexto particular

São classificados por dois critérios:


Finalidade – o que o padrão faz

Criação

Estrutural

Comportamental
Escopo – especifica se o padrão se aplica a

Classes

Objetos
Análise, Projeto e Gerência de Sistemas
Projeto Final
22
Revisão: Padrões de Projeto

Analisar o uso de padrões de projeto para modelar
problemas já conhecidos

Criação


Estrutural


Singleton, Factory Method, Abstract Factory, etc
Composite, Decorator, Façade, etc
Comportamental

Command, Observer, State, Strategy, etc
 O uso dos padrões deve ser justificado
Análise, Projeto e Gerência de Sistemas
Projeto Final
23
Diagrama de Sequência


Diagramas de Sequência apresentam a interação entre
um grupo de objetos de um sistema, através de
mensagens ou controles, em um determinado cenário
Servem para modelar o “funcionamento” do sistema,
inclusive a concorrência entre objetos

Enfatizam a ordem temporal das mensagens

Úteis para compreensão da dinâmica, principalmente
para iniciantes na OO
Análise, Projeto e Gerência de Sistemas
Projeto Final
24
Aplicação

Diagramas de Sequência são primariamente utilizados
para a atribuição de responsabilidades a cada um dos
objetos do sistema - operações

Além de servir para descoberta das operações, serve
para a modelagem da interação entre os objetos

Completam o tripé da análise:

Casos de Uso - comportamento externo (funcional)

Diagramas de Classes - visão estática

Diagramas de Sequência - visão dinâmica
Análise, Projeto e Gerência de Sistemas
Projeto Final
Internos
25
Construção

Cada Caso de Uso provê vários cenários

Um cenário é uma instância de um caso de uso

O Diagrama de Classes mostra os objetos da aplicação

Fazemos um Diagrama de Sequência mostrando a
interação dos objetos em um determinado cenário, ou
seja, para cada cenário de um Caso de Uso teremos um
diagrama
Análise, Projeto e Gerência de Sistemas
Projeto Final
26
Construção (cont.)
Diagrama de Classes
efehc
oiránoicnuF
oãçacolA
*
odacola
*..1
rodacola
Caso de Uso
Nome: Reservando Passagem
Atores: Agente
Curso de Eventos
1- Ujfsaj jfklsdj jfdkkj fl als ;a f a;
2- jfaskdjf lj kl;k kdfjasdkl lkssss
3- jsdkfklk lkkkk lopjfa[ pokfsao opw
4- skdjfI)kkk;’PIO lkkfapp kjadfp
5- lkLKO oeppae fokkzp;xp pokf ;lp[
Alternativas
1- Ijfksa kJFKJ a;lkj ;kjfklasojk;a
oãsiviD
1
* odanidrobus
oãçacolA
atad
MeioTransporte
Operações
...
Carro
Navio
Diagrama de Sequência
Janela de
Entrada de
Pedido
uma linha
de
Pedido
um Pedido
um item
em Estoque
criar()
* criar()
verifica ()
[verfifica = true]
retirar_item()
refabricar_item()
[refabricar_item = true]
new
um Item de
Refabricação
Objetos
[verfifica = true]
new
um Item de
Entrega
Cenário
Interação
Análise, Projeto e Gerência de Sistemas
Projeto Final
27
Exemplo
Janela de
Entrada de
Atendente
Pedido
Informa dados
criar()
:Item_Estoque
:Pedido
* criar()
:linha_Pedido
verificar ()
[verfifica = true]
retirar_item()
refabricar_item()
[refabricar_item = true]
criar ()
:Item_Refabricação
[verificar = true]
criar ()
:Item_Entrega
data_entrega
Análise, Projeto e Gerência de Sistemas
Projeto Final
28
Exemplo
: Registro
: Catálogo
Produto
: Lista
Especificações
: Venda
li :LinhaDeItem
: Lista
ItensDeVenda
entrarItem(id, qtd)
obterEspec(id)
buscarEspec(id)
criarLinhaDeItem (esp, qtd)
criar(esp, qtd)
adicionar(li)
Análise, Projeto e Gerência de Sistemas
Projeto Final
29
Diagrama de Estados

Mostra as sequências de estados que um objeto ou uma
interação assume em sua vida, em resposta a estímulos
recebidos, juntamente com suas respostas e ações

Complementa a classe e relaciona os possíveis estados
que os objetos da classe podem ter e quais eventos
podem causar a mudança de estado (transição)
Análise, Projeto e Gerência de Sistemas
Projeto Final
30
Exemplo
Pedido enviado
Registrando pedido
Alteração de pedido
solicitada
Alterando pedido
Pedido para análise
requisitado
Analisando pedido
Pedido não pode ser
atendido no momento
Cancelando pedido
Pedido será
cancelado
Pedido p/
aprovação
Pedido já pode
ser atendido
Colocando pedido
em pendência
Análise, Projeto e Gerência de Sistemas
Cancelamento de
pedido solicitado
Pedido
cancelado
Aprovando pedido
Pedido será atendido
Pedido
atendido
Atendendo pedido
Projeto Final
31
Proposta de Componentes

Propor componentes para o novo sistema
apenas componentes considerados
necessários pelo grupo

Especificar as classes para cada componente

Definir as interfaces de cada componente

Especificar as operações de cada interface (incluindo a
assinatura de cada operação)
A
Análise, Projeto e Gerência de Sistemas
proposta deve ser justificada
Projeto Final
32
Referências
1.
The Unified Modeling Language User Guide By Booch, Grady /
Rumbaugh, Jim / Jacobson, Ivar; ISBN 0201571684.
2.
Understanding UML: The Developer's Guide, Harmon, Paul / Watson,
Mark; ISBN 1558604650.
3.
Utilizando UML e Padrões: Larman, Craig; ISBN 8536303581
4.
Padrões de Projeto: Soluções Reutilizáveis de Software Orientado a
Objetos, Gamma, Erich / Helm, Richard / Johnson, Ralph / Vlissides,
John; ISBN 8573076100
5.
http://hillside.net/patterns/
Análise, Projeto e Gerência de Sistemas
Projeto Final
33
Documentação Gerada
 Introdução
 Apresentação da empresa (o cliente)
 Objetivos gerais do projeto
 Estrutura do documento
 Modelagem de Negócio
 Características da empresa (descrição, estrutura organizacional,
recursos de informática, expectativa do cliente e processo atual )
 Processos de negócio (Casos de uso de negócio)
 Problemas identificados
 Necessidades detectadas
 Requisitos
 Diagrama de Casos de Uso e descrições
 Requisitos Suplementares
 Alternativas de Solução




Descrição de cada alternativa
Análise comparativa das alternativas
Alternativa recomendada pela equipe
Alternativa escolhida pelo usuário e critério de escolha
Análise, Projeto e Gerência de Sistemas
Projeto Final
34
Documentação Gerada
 Análise e Projeto
 Modelo Conceitual (diagrama de classes conceituais)
 Modelo de Projeto
- Diagrama de Classes de Projeto
• tipos de atributos e operações
• classes abstratas e interfaces
• padrões de projeto
• pacotes, etc.
- Justificativa para o uso de Padrões de Projeto
- Diagramas de Sequência
• apenas para os casos de uso de sistema principais
- Diagrama de Estados (se necessário)
- Proposta de Componentes
 Glossário
 Anexos
Análise, Projeto e Gerência de Sistemas
Projeto Final
35
Download

Projeto Lógico