Escolar Documentos
Profissional Documentos
Cultura Documentos
Especificação de
Projeto
Projeto de Software
Disciplina Análise e Projeto Orientado à Objetos – Terceiro Semestre
Bacharelado em Ciência da Computação
Professor Lucio
UTFPR – Universidade Tecnológica Federal do Paraná – Campus Campo Mourão
HISTÓRICO DE REVISÕES
Índice
1. INTRODUÇÃO
..... 5
1.1 DESCRIÇÃO DO SISTEMA
..... 5
1.2 OBJETIVO DO SISTEMA
..... 5
1.3 CONVENÇÕES, TERMOS E ABREVIAÇÕES
..... 5
1.3.1 Identificação dos casos de uso .................................................................................. 5
1.3.2 Prioridades dos casos de uso ..................................................................................... 5
2. LISTA DE REQUISITOS
..... 6
3. ATORES
..... 6
4. CASOS DE USO
..... 6
Diagrama de Caso de Uso - < HYPERLINK "#__RefHeading__27_117254275"
HYPERLINK "#__RefHeading__27_117254275" HYPERLINK
"#__RefHeading__27_117254275"< HYPERLINK "#__RefHeading__27_117254275"
HYPERLINK "#__RefHeading__27_117254275" HYPERLINK
"#__RefHeading__27_117254275"nome do projeto HYPERLINK
"#__RefHeading__27_117254275" HYPERLINK "#__RefHeading__27_117254275"
HYPERLINK "#__RefHeading__27_117254275"> HYPERLINK
"#__RefHeading__27_117254275" HYPERLINK "#__RefHeading__27_117254275"
HYPERLINK "#__RefHeading__27_117254275"> ............................................................... 7
[UC01] HYPERLINK "#__RefHeading__29_117254275" HYPERLINK
"#__RefHeading__29_117254275" HYPERLINK "#__RefHeading__29_117254275"<
HYPERLINK "#__RefHeading__29_117254275" HYPERLINK
"#__RefHeading__29_117254275" HYPERLINK "#__RefHeading__29_117254275"Incluir
ao lado do identificador um nome para o caso de uso HYPERLINK
"#__RefHeading__29_117254275" HYPERLINK "#__RefHeading__29_117254275"
HYPERLINK "#__RefHeading__29_117254275"> ............................................................... 7
4.1 ANÁLISE TEXTUAL.
..... 8
5. PACOTES
..... 8
Diagrama de Pacote - HYPERLINK "#__RefHeading__35_117254275" HYPERLINK
"#__RefHeading__35_117254275" HYPERLINK "#__RefHeading__35_117254275"<
HYPERLINK "#__RefHeading__35_117254275" HYPERLINK
"#__RefHeading__35_117254275" HYPERLINK "#__RefHeading__35_117254275"<
HYPERLINK "#__RefHeading__35_117254275" HYPERLINK
"#__RefHeading__35_117254275" HYPERLINK "#__RefHeading__35_117254275"nome
do projeto HYPERLINK "#__RefHeading__35_117254275" HYPERLINK
"#__RefHeading__35_117254275" HYPERLINK "#__RefHeading__35_117254275">
HYPERLINK "#__RefHeading__35_117254275" HYPERLINK
"#__RefHeading__35_117254275" HYPERLINK "#__RefHeading__35_117254275"> ...... 8
< HYPERLINK "#__RefHeading__37_117254275" HYPERLINK
"#__RefHeading__37_117254275" HYPERLINK "#__RefHeading__37_117254275"Nome
do Pacote 1 HYPERLINK "#__RefHeading__37_117254275" HYPERLINK
"#__RefHeading__37_117254275" HYPERLINK "#__RefHeading__37_117254275"> ...... 9
6. CLASSES
..... 9
Diagrama de Classes - HYPERLINK "#__RefHeading__41_117254275" HYPERLINK
"#__RefHeading__41_117254275" HYPERLINK "#__RefHeading__41_117254275"<
HYPERLINK "#__RefHeading__41_117254275" HYPERLINK
"#__RefHeading__41_117254275" HYPERLINK "#__RefHeading__41_117254275"<
HYPERLINK "#__RefHeading__41_117254275" HYPERLINK
"#__RefHeading__41_117254275" HYPERLINK "#__RefHeading__41_117254275"nome
do projeto HYPERLINK "#__RefHeading__41_117254275" HYPERLINK
"#__RefHeading__41_117254275" HYPERLINK "#__RefHeading__41_117254275">
HYPERLINK "#__RefHeading__41_117254275" HYPERLINK
"#__RefHeading__41_117254275" HYPERLINK "#__RefHeading__41_117254275"> ...... 9
7. SEQUÊNCIA
..... 9
Diagrama de Sequência - HYPERLINK "#__RefHeading__45_117254275" HYPERLINK
"#__RefHeading__45_117254275" HYPERLINK "#__RefHeading__45_117254275"<
HYPERLINK "#__RefHeading__45_117254275" HYPERLINK
"#__RefHeading__45_117254275" HYPERLINK "#__RefHeading__45_117254275"<
HYPERLINK "#__RefHeading__45_117254275" HYPERLINK
"#__RefHeading__45_117254275" HYPERLINK "#__RefHeading__45_117254275"código
do caso de uso HYPERLINK "#__RefHeading__45_117254275" HYPERLINK
"#__RefHeading__45_117254275" HYPERLINK "#__RefHeading__45_117254275">
HYPERLINK "#__RefHeading__45_117254275" HYPERLINK
"#__RefHeading__45_117254275" HYPERLINK "#__RefHeading__45_117254275"> ...... 9
8. DECISÕES DE PROJETO
... 10
9. REFERÊNCIAS
... 10
Introdução
Este documento especifica os casos de uso e requisitos não-funcionais (RNFs)
do projeto intitulado Sistema de controle de estoque de cosméticos, referente ao projeto
final da disciplina de Análise e Projeto Orientado à Objetos, contida no terceiro semestre
da matriz curricular do curso de Bacharelado em Ciência da Computação, ministrada
pelo professor Ms. Igor Scaliante Wiese. O objetivo do documento é apresentar as
soluções elaboradas e discutidas durante o semestre para a construção da análise e do
projeto de um software fundamentado nas ideias do paradigma orientado à objetos.
Descrição do sistema
O sistema possui como objetivo a organização de estoque de uma empresa de
cosméticos. O sistema irá possuir um número de quantidade em estoque, a informação
de estoque vazio, valor do produto, nome, marca, homecare ou profissional. Também
terá o cadastro de clientes no qual irão possuir dados (nome, telefone, endereço, CPF),
quantidade de produtos comprados e histórico de compras.
Objetivo do sistema
O sistema deverá possuir controle de produtos, clientes e valores, onde o produto irá
chegar da transportadora, será feita uma listagem de quantos e quais produtos
chegaram, após isso será inserido os valores dentro do sistema (quantidade e preço)
com opção para alteração do mesmo.
Lista de Requisitos
Abaixo encontra-se a lista de requisitos do projeto.
1RF: O sistema deve realizar cadastro de novos produtos;
2RF: O sistema deve adicionar produtos no estoque;
3RF: O sistema precisa cadastrar novos clientes;
4RF: O sistema deve ter a função de venda dos produtos;
5RF: O sistema permite desativar e ativar clientes;
6RF: O sistema deve ter a função de remover produto;
7RF: O sistema deve ter a função de adicionar o preço nos produtos, e alterar
dados.
8RF: Os clientes devem possuir historico de compras passadas.
9RF: O sistema deve ter a opçao de alterar dado dos clientes.
Atores
A tabela abaixo descreve brevemente cada ator da aplicação.
Ator Descrição
1. Coletor 1. Quem irá receber o produto do entregador e
cadastrar o produto no sistema de estoque, o
coletor terá acesso ao sistema.
2. Entregador 2. Quem irá entregar o produto para o coletor.
Casos de Uso
"casos de uso podem ser usados para representar requisitos de sistema, entre outras
coisas. Atualmente, eles são uma das abordagens mais importantes para requisitos
porque permitem a construção de uma estrutura que é mais fácil de entender, comunicar
e gerenciar do que as abordagens anteriores.
• Um caso de uso produz valor para um usuário particular e não para uma comunidade
não identificada deles.
• Casos de uso são também casos de teste; quando uma equipe termina de organizar
os requisitos em casos de uso eles também já produziram a estrutura necessária para
os casos de teste.
• Casos de uso são o ponto de partida para projetar experiências de usuário efetivas,
tais como, por exemplo, um web site.
COLETAR PRODUTOS
Fluxo principal
• O entregador irá entregar os produtos
• O coletor irá verificar quais produtos chegaram
• O coletor vai verificar se os produtos estão cadastrados.[UC03] <<include>>
• O coletor deverá alterar a quantidade de estoque do produto.
[UC04]<<include>>
[UC02] Cadastrar produto
Descrição: O coletor irá verificar se o produto está no sistema, caso não esteja, o
coletor deverá incluir o produto no sistema com nome, foto, quantidade em estoque
e valor.
Fluxo principal
• Verificar se o produto está no sistema [UC03]<<include>>
• Cadastrar o produto.
Fluxo principal
• O Coletor irá aumentar a quantidade desse produto no estoque.
[UC05] Deletar produto
Fluxo principal
• O vendedor vai receber a informação que o produto deixou de ser produzido;
• Verificar se o produto zerou no estoque [UC03]<<include>>
• Deletar o produto do sistema;
Descrição: O ator irá modificar o que deseja do produto: preço, imagem e nome.
Pré-condições: É necessário que o produto esteja cadastrado e precise ser
modificado.
Pós-condições: Os produto terá uma modificação.
Fluxo principal
• O Ator irá mudar algum dado.
Descrição: O vendedor irá verificar se o cliente não existe no sistema, se não existir,
deverá incluir o cliente com nome, identidade (CPF, RG), foto(opcional), endereço,
telefone, nome fantasia, histórico de compras, data de ultima compra, Se o cliente
está ativo ou não.
Fluxo principal
• Verificar se o cliente não realiza compras a muito tempo [UC08]<<include>>
• Modificar o estado do cliente para desativado[UC09]
• Desativar o cliente.
Fluxo principal
• Verificar se o cliente está desativado [UC08]
• O cliente desejará fazer compras.
• Modificar o estado do cliente para ativo.
[UC12]Vender Produto
Análise textual.
<<colocar uma referência bibliográfica explicando o que é uma análise textual.
Sucinta. Máximo 150 palavras>>
Apresente a análise textual. Esta tabela o ajudará no diagrama de classes.
A tabela abaixo descreve quais cada ator da aplicação.
Identificador Substantivos encontrados Verbos Encontrados
do Caso de Uso
<Indique o código do caso <coloque os substantivos <coloque os verbos encontrados
de uso> encontrados no caso de uso, no caso de uso, separe-os por
separe-os por vírgula> vírgula>
Pacotes
<<colocar uma referência bibliográfica explicando o que é um diagrama de
pacotes. Sucinta. Máximo 150 palavras>>
<Não deixe de apresentar a explicação do que cada pacote contém, deixando claro
quais pacotes oferecem quais serviços. Não se esqueça de verificar as dependências
após o diagrama de classe estar concluído.>
Classes
<<colocar uma referência bibliográfica explicando o que é um diagrama de
classes. Sucinta. Máximo 150 palavras>>
<Não esqueça de aplicar os princípios de um grande software. Prime por um projeto de
classes flexível e muito bem encapsulado. Que garanta a facilidade de manutenção e
reuso das classes, podendo atender a novos requisitos do cliente sem muitos
“traumas!”. Lembre-se de manter seu projeto o mais coeso possível, deixando a
aplicação “livremente unida”.>
Sequência
<<colocar uma referência bibliográfica explicando o que é um diagrama de
seqüência. Sucinta. Máximo 150 palavras>>
<Repetir a estrutura para cada diagrama de sequência. Lembrando que cada operação do
CRUD possui um diagrama diferente.>
Decisões de projeto
<Explicar pontos mais complexos do projeto justificando as tomadas de decisão.
Ex: Porque foi utilizado Interface e não classe abstrata e/ou vice e versa. Explicar pontos
onde foram utilizado polimorfismo/herança, princípio de divisão de responsabilidade
(encapsular o que varia), pontos onde por ventura foi necessário utilizar MAP ou outra
estrutura do Java collection Mostrar trechos específicos do diagrama de classes/código.
Separar cada explicação do projeto em Subitens. 6.1, 6.2, 6.3, consecutivamente.)
Referências
Nesta seção, são apresentadas as referências utilizadas para a elaboração
deste documento.
<Pode-se adicionar referências para justificar ações durante o projeto. O mesmo
pode ser utilizado para referenciar “inspirações” na tomada de decisão do projeto ou da
aplicação de conceitos mencionados no projeto. Devem-se seguir as normas da ABNT
para referenciar sites, documentos técnicos, livros, e-books, entre outros>