Académique Documents
Professionnel Documents
Culture Documents
PATO BRANCO
2011
EMANUELE CARLA ROSSONI
PATO BRANCO
2011
A meus pais, meu padrasto, meus irmãos
e familiares, amigos e professores.
A todos aqueles que, acreditam e me
incentivam a correr atrás dos meus ideais.
ii
iii
AGRADECIMENTOS
RESUMO
ABSTRACT
Nowadays, the computer has become a very useful tool in all areas of business and
professionals. The purpose of this study is to analyze, model and develop a software
prototype to manage a Pet Shop, in function of the need to exist a control of the
processes carried out in this business area to organize and facilite their
implementation. The prototype has forms records, services schedule and some
controls reports. For the development of the prototype was used the programming
language Visual Basic.net and database SQL Server. The development of this work
has helped to improve skills and knowledge acquired in graduation course.
LISTA DE FIGURAS
LISTA DE QUADROS
LISTA DE TABELAS
SUMÁRIO
RESUMO................................................................................................................................... 3
ABSTRACT ............................................................................................................................... 3
LISTA DE FIGURAS ............................................................................................................... 4
LISTA DE QUADROS ............................................................................................................. 5
LISTA DE TABELAS ............................................................................................................... 6
LISTA DE ABREVIATURAS E SIGLAS ............................................................................... 7
1.1 Considerações Iniciais ................................................................................................... 10
1.2 Objetivos ........................................................................................................................... 11
1.2.1 Objetivo Geral............................................................................................................... 11
1.2.2 Objetivos Específicos .................................................................................................. 11
1.3 Justificativa ....................................................................................................................... 12
1.4 Estrutura do Trabalho ..................................................................................................... 12
2. REFERENCIAL TEÓRICO .............................................................................................. 14
2.1 Gerenciamento de Pet Shop ......................................................................................... 14
2.2 Levantamento de Requisitos ......................................................................................... 15
2.3 Análise e Projeto de Sistemas Orientados a Objetos ............................................... 17
2.3.1 Objetos .......................................................................................................................... 18
2.3.2 Atributos ........................................................................................................................ 19
2.3.3 Métodos ......................................................................................................................... 19
2.3.4 Encapsulamento .......................................................................................................... 19
2.3.5 Mensagens ................................................................................................................... 20
2.3.6 Classes .......................................................................................................................... 20
2.3.7 Herança ......................................................................................................................... 21
2.3.8 Polimorfismo ................................................................................................................. 21
2.4 UML - Unified Modeling Language (Linguagem de Modelagem Unificada) .......... 21
2.4.1 Diagramas da UML ...................................................................................................... 22
2.4.1.1 Diagrama de Classes............................................................................................... 24
2.4.1.2 Diagramas de Casos de Uso .................................................................................. 25
2.4.1.3 Diagrama de Sequência .......................................................................................... 26
2.5 Análise Estruturada e Essencial ................................................................................... 27
2.5.1 Diagrama de Entidade e Relacionamento ............................................................... 29
3 MATERIAIS E MÉTODO ................................................................................................... 31
3.1 Materiais ........................................................................................................................... 31
3.1.1 Ferramenta de Modelagem - Astah Community ..................................................... 32
3.1.2 Ferramenta de Modelagem – CASE Studio ............................................................ 32
3.1.3 SQL Server Management Studio .............................................................................. 33
3.1.4 SQL Server 2005 ......................................................................................................... 34
3.1.5 Visual Basic 2005 ........................................................................................................ 34
3.2 Método .............................................................................................................................. 35
4 RESULTADOS E DISCUSSÕES..................................................................................... 36
4.1 Descrição do Sistema..................................................................................................... 36
4.2 Modelagem do Sistema ................................................................................................. 37
4.2.1 Requisitos Funcionais e Não-Funcionais................................................................. 37
4.2.2 Diagrama de Casos de Uso ....................................................................................... 38
4.2.2.1 Informar Vacinas....................................................................................................... 39
4.2.2.2 Agendar Consultas/Serviços ................................................................................. 40
9
1 INTRODUÇÃO
1.2 Objetivos
1.3 Justificativa
2. REFERENCIAL TEÓRICO
De acordo com Tonsig (2000, pg. 19) “A análise de sistemas consiste nos
métodos e técnicas de investigação e especificação da solução de problemas, a
partir dos requisitos levantados, para criação e implementação de software em
algum meio que o suporte”.
O processo de desenvolvimento de software divide-se em quatro grandes
fases: análise, projeto, implementação e testes. Na fase de análise do projeto do
software será enfatizada a investigação do problema, para melhor compreensão do
mesmo. Antes do início do desenvolvimento é necessário conhecer o que se deseja
construir, ou seja, ter em mente as funções que o software irá realizar as restrições,
a política de funcionamento da empresa onde o software será implantado e as
interligações que existem no sistema.
O processo de desenvolvimento aplicado neste trabalho, baseado na obra do
autor Raul Sidnei Wazlawick (WAZLAWICK, 2004), é o processo unificado de
desenvolvimento de software, do qual serão abordadas as fases de concepção e
elaboração.
“A fase de concepção deve ser a primeira fase do processo de
desenvolvimento de software, na qual se procura levantar os principais
requisitos e compreender o sistema de forma abrangente. A elaboração é
constituída da análise e projeto.” (WAZLAWICK, 2004, p. 23).
A seguir autor descreve como é o processo da fase de concepção:
“a fase de concepção consiste em uma etapa na qual o analista vai buscar
as primeiras informações sobre o sistema a ser desenvolvido. Nessa etapa
assume-se pouco conhecimento do analista sobre o sistema e uma grande
interação com o usuário e cliente” (WAZLAWICK, 2004, p. 32).
O levantamento de requisitos, organização dos requisitos e planejamento do
desenvolvimento são as atividades que fazem parte da fase de concepção.
Ainda segundo Wazlawick (2004) a análise de requisitos é fundamental para o
desenvolvimento de sistemas, pois trata justamente de descobrir o que o cliente quer
com o sistema. Os requisitos podem ser:
• Funcionais – requisitos funcionais correspondem à listagem de todas as
coisas que o sistema deve fazer. Como por exemplo: controlar entrada e
saída, calcular multa, gerar relatórios.
17
dificuldade em dar suporte aos mesmos, sendo necessário buscar novas formas de
desenvolvimento.
“A análise de sistemas consiste nos métodos e técnicas de investigação e
especificação da solução de problemas, a partir dos requisitos levantados,
para criação e implementação de software em algum meio que o suporte”
(TONSIG, 2000, pg.19).
Segundo Martin (1995, pg. 10) “A análise e projeto orientado a objetos tentam
conseguir uma maciça reusabilidade de classes de objeto”.
De maneira mais específica, Pressman (1995) explica que os métodos
utilizados para fazer o levantamento dos requisitos, para o desenvolvimento do
software orientado a objetos, permitem que o desenvolvedor modele um problema
através de classes, objetos, atributos e operações.
Por meio da análise orientada a objetos, modela-se a realidade para os tipos
de objetos e aquilo que ocorre a eles, levando a projetar e programar sistemas de
forma orientada a objetos. Sua utilização oferece vários benefícios: os modelos
gerados por meio da análise refletem o mundo real de maneira aproximada,
proporcionando facilidade no entendimento: a realização de mudanças nos
requisitos se torna mais fácil: permite a reutilização de código: a manutenção do
protótipo se torna mais fácil e o projeto possui qualidade mais elevada, entre outros.
A seguir são descritos os principais conceitos relacionados à orientação a
objetos.
2.3.1 Objetos
comportamento e identidade única. Ele possui atributos e métodos que atuam sobre
ele.
O software é um conjunto de objetos que se comunicam por meio de
mensagens informando uns aos outros, o que deve ser feito, ou seja, são chamadas
as funções (métodos) que pertencem a um objeto em particular.
2.3.2 Atributos
2.3.3 Métodos
2.3.4 Encapsulamento
que os dados só possam ser acessados por meio dos seus próprios métodos,
protegendo assim os dados do objeto contra adulterações.
Os usuários compreendem quais as operações do objeto que podem ser
solicitadas, mas não conhecem os detalhes de como as operações são executadas.
O encapsulamento é importante porque separa a maneira como o objeto se
comporta da maneira como ele é implementado. Ele restringe a visibilidade do
objeto, mas facilita o reuso.
2.3.5 Mensagens
2.3.6 Classes
2.3.7 Herança
2.3.8 Polimorfismo
Figura 7 - Relacionamentos
31
3 MATERIAIS E MÉTODO
3.1 Materiais
com base nos requisitos identificados, foi realizada a modelagem estática e dinâmica
do sistema por meio da ferramenta Astah para criação dos diagramas da UML e o
DER (Diagrama de Entidade e Relacionamento) referente à modelagem do banco de
dados foi criado com a ferramenta CaseStudio.
Para implementação do protótipo foi utilizada a linguagem de programação
Microsoft Visual Basic 2005 Express, como sistema gerenciador de banco de dados
o Microsoft SQL Server 2005 e como ferramenta de gerenciamento SQL Server
Management Studio Express.
Em seguida serão descritas as ferramentas que foram utilizadas para realizar
a modelagem e implementação do protótipo proposto.
capacidades de comandos (scripts) para dar acesso ao SQL Server para usuários de
todos os níveis de conhecimento e habilidade.
3.2 Método
4 RESULTADOS E DISCUSSÕES
Requisitos Funcionais
Código Nome Prioridade
RF1 Efetuar Login Essencial
RF2 Cadastrar cliente Essencial
RF3 Localizar Ciente Necessário
RF4 Excluir Cliente Essencial
RF5 Editar dados do Cliente Essencial
RF6 Inserir consultas\serviços Essencial
38
Requisitos não-funcionais
Código Nome Prioridade Relação com
Funcionais
RNF1 Valor de venda dos produtos Necessário RF8
RNF2 Aviso data de validade dos produtos Essencial RF10
a vencer
RNF3 Formas de pagamento Essencial RF8
Fluxo principal
1. O usuário irá acessar o sistema.
2. Cliente informa dados das vacinas para usuário do sistema.
3. O sistema registra os dados informados pelo usuário sobre as vacinas.
40
Fluxo principal
1. O cliente irá marcar uma consulta/serviço para seu animal.
2. O atendente irá acessar o sistema.
3. O atendente selecionará a opção de Agenda e em seguida localizará o
cadastro do cliente e selecionará o animal.
4. O sistema registra os dados informados pelo atendente sobre o horário e
data, incluindo o agendamento ou também poderá desmarcar.
Fluxo principal
1. O atendente irá acessar o sistema.
2. O atendente selecionará a opção Financeiro e registrará o pagamento.
3. O sistema registra os dados informados pelo atendente sobre os dados do
pagamento.
Fluxo principal
1. O usuário irá acessar o sistema.
2. O usuário selecionará na tela principal a opção Cadastro e em seguida a
opção Animais.
3. O sistema registra os dados informados pelo usuário sobre os animais.
Fluxo principal
1. O usuário irá acessar o sistema.
41
Fluxo principal
1. O usuário irá acessar o sistema.
2. O usuário selecionará na tela principal a opção Cadastro e em seguida a
opção Funcionários.
3. O sistema registra os dados informados pelo usuário sobre os funcionários.
Fluxo principal
1. O usuário irá acessar o sistema.
2. O usuário selecionará na tela principal a opção Cadastro e em seguida a
opção Fornecedores.
3. O sistema registra os dados informados pelo usuário sobre os
fornecedores.
Fluxo principal
1. O gerente irá acessar o sistema.
2. O gerente selecionará a opção de Cadastro e selecionará em seguida a
opção Médicos veterinários.
3. O sistema registra os dados informados pelo usuário sobre os médicos
veterinários.
42
Fluxo principal
1. O usuário irá acessar o sistema.
2. O usuário selecionará na tela principal a opção Cadastro e em seguida a
opção Produtos.
3. O sistema registra os dados informados pelo usuário sobre os produtos.
Fluxo principal
1. O usuário irá acessar o sistema.
2. O usuário selecionará na tela principal a opção Cadastro e em seguida a
opção Serviços.
3. O sistema registra os dados informados pelo usuário sobre os serviços.
Fluxo principal
1. O gerente irá acessar o sistema.
2. O gerente selecionará na tela principal a opção da tela de Financeiro.
3. O sistema registra os dados informados pelo usuário sobre as contas a
receber.
Fluxo principal
1. O gerente irá acessar o sistema.
2. O gerente selecionará na tela principal a opção da tela de Gerar Relatórios.
3. O gerente selecionará qual(is) o(s) relatório(s) que deseja.
43
Fluxo principal
1. O gerente ou atendente irá acessar o sistema.
2. O gerente ou atendente selecionará na tela principal a opção Vendas.
3. O gerente ou atendente selecionará qual(is) a(s) venda(s) que deseja gerar a
nota.
4. O gerente ou atendente selecionará qual comando: para visualizar e após
fazer a impressão ou para fazer a impressão direta.
Fluxo principal
1. O gerente ou atendente irá acessar o sistema.
2. O gerente ou atendente selecionará na tela principal a opção Controle de
Estoque.
3. O gerente ou atendente selecionará qual(is) o(s) produtos(s) que deseja
visualizar a quantidade contida em estoque.
Figura 10 - Diagrama de Sequência 1 – Interação dos atores cliente e atendente com o sistema
Figura 11 - Diagrama de Sequência 2 – Interação dos atores gerente e funcionário com o sistema
operações. Estes dados podem ser usadas pelo gerente para verificar
lucros, lista de preços, contas, entre outros, visando principalmente uma
melhor organização do estabelecimento.
• Sobre – Contém as informações da versão e do distribuidor do sistema.
Por meio das opções de menu descritas acima o usuário poderá visualizar
informações precisas de forma rápida e com maior facilidade.
Return sCor
End Get
Set(ByVal value As String)
sCor = value
End Set
End Property
"Values(@nomeAni,@cor,@dt_Nascimento_Ani,@codRaca,@sexo,@codCli,@codEspecie)",
pCN)
With oCmd.Parameters
.Add(p1)
.Add(p2)
.Add(p3)
.Add(p4)
.Add(p5)
.Add(p6)
.Add(p7)
End With
If oCmd.ExecuteNonQuery() = 1 Then
Return True
Else
Return False
End If
End Function
With oCmd.Parameters
.Add(p1)
.Add(p2)
.Add(p3)
.Add(p4)
.Add(p5)
.Add(p6)
.Add(p7)
.Add(p8)
53
If oCmd.ExecuteNonQuery() = 1 Then
Return True
Else
Return False
End If
End With
End Function
With oCmd.Parameters
.Add(p1)
End With
If oCmd.ExecuteNonQuery() = 1 Then
Return True
Else
Return False
End If
End Function
da.Fill(dt)
Return dt
End Function
End Class
4.6.3 Cadastros
oForm.Show()
End Sub
End Sub
cmbRaca.DataSource = oRacas.Listar(oConexao.ConexaoSQL)
cmbRaca.DisplayMember = "nomeRaca"
cmbRaca.ValueMember = "codRaca"
End Sub
cmbEspecie.DataSource = oEspecies.Listar(oConexao.ConexaoSQL)
cmbEspecie.DisplayMember = "nomeEspecie"
cmbEspecie.ValueMember = "codEspecie"
End Sub
cmbCodCli.DataSource = oClientes.Listar(oConexao.ConexaoSQL)
cmbCodCli.DisplayMember = "nomeCli"
cmbCodCli.ValueMember = "codCli"
End Sub
AnimaisDgv.DataSource = _
oAnimais.Listar(oConexao.ConexaoSQL)
FormataGridAnimais()
txtCodAni.Clear()
txtNomeAni.Clear()
txtCor.Clear()
cmbRaca.SelectedValue = 0
cmbSexo.Text = ""
cmbCodCli.SelectedValue = 0
cmbEspecie.SelectedValue = 0
57
End Sub
oConexao.Abrir()
If oAnimais.Inserir(oConexao.ConexaoSQL) Then
MsgBox("Animal cadastrado com sucesso!")
End If
oConexao.Fechar()
CarregaGridAnimais()
End Sub
oAnimais.nomeAni = txtNomeAni.Text
oAnimais.cor = txtCor.Text
oAnimais.dt_Nascimento_Ani = dtNascimento.Value
oAnimais.codRaca = cmbRaca.SelectedValue
oAnimais.sexo = cmbSexo.SelectedValue
oAnimais.codCli = cmbCodCli.SelectedValue
oAnimais.codEspecie = cmbEspecie.SelectedValue
oConexao.Abrir()
If oAnimais.Editar(oConexao.ConexaoSQL) Then
MsgBox("Dados do Animal editado com sucesso!")
58
End If
oConexao.Fechar()
CarregaGridAnimais()
nCodAniCorrente = 0
btnInserir.Text = "Inserir"
End Sub
nIndiceLinha = AnimaisDgv.CurrentRow.Index
With AnimaisDgv.Rows(nIndiceLinha)
nCodAniCorrente = _
.Cells(0).Value
txtCodAni.Text = _
.Cells(0).Value
txtNomeAni.Text = _
.Cells(1).Value
txtCor.Text = _
.Cells(2).Value
dtNascimento.Value = _
.Cells(3).Value
cmbRaca.SelectedValue = _
.Cells(4).Value
cmbSexo.SelectedValue = _
.Cells(5).Value
cmbCodCli.SelectedValue = _
.Cells(6).Value
cmbEspecie.SelectedValue = _
.Cells(7).Value
btnInserir.Text = "Salvar"
End With
End Sub
59
sw.BaseStream.Seek(0, SeekOrigin.End)
sw.WriteLine("***************ANIMAIS***************")
sw.WriteLine()
End Sub
60
nIndiceLinha = AnimaisDgv.CurrentRow.Index
oAnimais.codAni = AnimaisDgv.Rows(nIndiceLinha).Cells(0).Value
oConexao.Abrir()
If oAnimais.Excluir(oConexao.ConexaoSQL) Then
MsgBox("Registro(s) excluído(s)!")
End If
oConexao.Fechar()
End Sub
oForm.Show()
End Sub
ByVal e As System.EventArgs)
PreparaEdicao()
End Sub
End Sub
End Class
4.6.4 Lançamentos
End Sub
cmbProduto.DataSource = oProdutos.Listar(oConexao.ConexaoSQL)
cmbProduto.DisplayMember = "nomeProd"
cmbProduto.ValueMember = "codProd"
End Sub
62
cmbCliente.DataSource = oClientes.Listar(oConexao.ConexaoSQL)
cmbCliente.DisplayMember = "nomeCli"
cmbCliente.ValueMember = "codCli"
End Sub
dr = dt.NewRow()
dr("Nome") = "Dinheiro"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("Nome") = "Cheque"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("Nome") = "Cheque Pré-Datado"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("Nome") = "Cartão"
dt.Rows.Add(dr)
With cmbTipoPgtoVenda
.DataSource = dt
.DisplayMember = "Nome"
.ValueMember = "Nome"
.SelectedIndex = 0
End With
End Sub
dr = dt.NewRow()
dr("Nome") = "Recebida"
dt.Rows.Add(dr)
dr = dt.NewRow()
dr("Nome") = "A Receber"
dt.Rows.Add(dr)
With cmbStatusVenda
.DataSource = dt
.DisplayMember = "Nome"
.ValueMember = "Nome"
.SelectedIndex = 0
End With
End Sub
63
End Sub
dgvVendas.DataSource = oVendas.Listar(oConexao.ConexaoSQL)
FormataGridVendas()
txtCodVenda.Text = ""
cmbProduto.SelectedValue = 0
cmbCliente.SelectedValue = 0
txtValorVenda.Text = ""
cmbTipoPgtoVenda.SelectedValue = 0
cmbStatusVenda.SelectedValue = 0
End Sub
oConexao.Abrir()
If oVendas.Inserir(oConexao.ConexaoSQL) Then
MsgBox("Venda cadastrada com sucesso!")
End If
oConexao.Fechar()
CarregaGridVendas()
End Sub
dgvVendas.Columns(6).HeaderText = "Data"
dgvVendas.Columns(6).DefaultCellStyle.Format = "dd/MM/yyyy"
dgvVendas.Columns(7).DefaultCellStyle.Format = "00,00"
dgvVendas.Columns(7).HeaderText = "Tipo Pagamento"
dgvVendas.Columns(8).HeaderText = "Status Venda"
End Sub
btnInserir.Text = "Inserir"
End Sub
oVendas.codProd = cmbProduto.SelectedValue
oVendas.codCli = cmbCliente.SelectedValue
oVendas.valorVenda = txtValorVenda.Text
oVendas.dataVenda = dtDataVenda.Value
oVendas.tipoPgtoVenda = cmbTipoPgtoVenda.SelectedValue
oVendas.statusVenda = cmbStatusVenda.SelectedValue
oVendas.codVenda = nCodVendaCorrente
oConexao.Abrir()
If oVendas.Editar(oConexao.ConexaoSQL) Then
MsgBox("Dado(s) da Venda editado(s) com sucesso!")
End If
oConexao.Fechar()
CarregaGridVendas()
nCodVendaCorrente = 0
btnInserir.Text = "Inserir"
End Sub
nIndiceLinha = dgvVendas.CurrentRow.Index
With dgvVendas.Rows(nIndiceLinha)
nCodVendaCorrente = _
.Cells(0).Value
txtCodVenda.Text = _
.Cells(0).Value
cmbProduto.SelectedValue = _
.Cells(1).Value
65
cmbCliente.SelectedValue = _
.Cells(3).Value
txtValorVenda.Text = _
.Cells(5).Value
dtDataVenda.Value = _
.Cells(6).Value
cmbTipoPgtoVenda.SelectedValue = _
.Cells(7).Value
cmbStatusVenda.SelectedValue = _
.Cells(8).Value
btnInserir.Text = "Salvar"
End With
End Sub
sw.BaseStream.Seek(0, SeekOrigin.End)
sw.WriteLine("***************VENDAS***************")
sw.WriteLine()
'dgvVendas.Columns(5).DefaultCellStyle.Format = "###,##0.00
dtData = "DATA: " & dgvVendas.Rows(i).Cells(6).Value
' dtData = "DATA: " &
dgvVendas.Rows(i).Cells(6).FormattedValue("dd/mm/yyyy")
sTipoPgtoVenda = "TIPO PAGAMENTO: " &
dgvVendas.Rows(i).Cells(7).Value
sStatusVenda = "STATUS VENDA: " &
dgvVendas.Rows(i).Cells(8).Value
sResultado = sProduto & vbCrLf & sCliente & vbCrLf & nValor &
vbCrLf & dtData & vbCrLf _
& sTipoPgtoVenda & vbCrLf & sStatusVenda & vbCrLf
sw.WriteLine(sResultado)
Next
End Sub
nIndiceLinha = dgvVendas.CurrentRow.Index
oVendas.codVenda = dgvVendas.Rows(nIndiceLinha).Cells(0).Value
oConexao.Abrir()
If oVendas.Excluir(oConexao.ConexaoSQL) Then
MsgBox("Registro(s) excluído(s)!")
End If
oConexao.Fechar()
End Sub
67
oForm.Show()
End Sub
End If
End Sub
End Sub
End Sub
End Class
68
4.6.5 Relatórios
zoomno = Convert.ToInt32(NroZoom.Value)
Imprimir.AutoZoom = True
End Sub
i = i + 120
Next
End Sub
5 CONSIDERAÇÕES FINAIS
5.1 Dificuldades
6 CONCLUSÃO
8 PERSPECTIVAS FUTURAS
REFERÊNCIAS
BOOCH, Grady. UML: guia do usuário. Rio de Janeiro - RJ: Campus, 2000.
CANTÚ, Marco. Dominando o Delphi 7: a bíblia. São Paulo: Makron Books, 2003.
COFFMAN, Gayle. SQL server 7: completo e total guia de referência. São Paulo:
Makron Books, 2000.
LIMA, Adilson da Silva. UML 2.0: Do requisito a solução. Editora Érica, 2005.
77
MARTIN, James. Análise e projeto orientados a objeto. São Paulo - SP: Makron
Books, 1995.
PENDER, Tom. UML a Bíblia. Rio de Janeiro - RJ: Campus Books, 2004.
PEREIRA, Vitor Emanuel. O Guia Prático do Visual Basic 2005 Express. Lisboa –
Portugal: Centro Atlântico, 2006.
APÊNDICES
80
APÊNDICE A
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________
______________________________________________________________