Senhor do Bonfim 2013
AGNALDO APRIGIO DA SILVA
SISTEMA DE ENSINO PRESENCIAL CONECTADO CURSO SUPERIOR DE TECNOLOGIA EM
ANÁLISE E DESENVOLVIMENTO DE SISTEMAS
ANÁLISE E PROGRAMAÇÃO DE SISTEMAS DE INFORMAÇÃO
2
Senhor do Bonfim 2013
1 ANÁLISE E PROGRAMAÇÃO DE SISTEMAS DE INFORMAÇÃO
Trabalho de Produção Textual Interdisciplinar Individual apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média bimestral na disciplina de: Desenvolvimento Orientado a Objeto; Redes de Computadores; Modelagem Orientada a Objetos; Tópicos em Desenvolvimento de Sistemas. Orientador: Prof.: Marcio Roberto Chiaveli; Paulo K.
Nishitani; Polyanna P. Gomes Fabris; Adriane A. Loper.
AGNALDO APRIGIO DA SILVA
3
SUMÁRIO
1 INTRODUÇÃO ..................................................................................................... 4
2 OBJETIVO ........................................................................................................... 5
3 DESENVOLVIMENTO ......................................................................................... 6
3.1 DIAGRAMA DE CLASSE ...................................................................................... 7
3.2 PROJETO DE UM BANCO DE DADOS NO MODELO CONCEITUAL ................. 8
3.3 IMPLEMENTAÇÃO DO DIAGRAMA DE CLASSE EM C# .................................. 10
3.4 SOLUÇÕES E CUSTOS PARA A IMPLEMENTAÇÃO DE UMA REDE ............. 19
4 CONCLUSÃO .................................................................................................... 23
5 REFERÊNCIAS ................................................................................................. 24
4
1 INTRODUÇÃO
O progresso da tecnologia de informação nos últimos 50 anos de
história foi muito acelerado. O desenvolvimento de hardwares e softwares garante a
operacionalização da comunicação e dos processos decorrentes em meios virtuais.
No entanto, foi a popularização da internet que potencializou a comunicação on-line
e disseminou em grande escala a tecnologia de informação.
Através da internet, novos sistemas de comunicação e informação
foram criados, formando uma verdadeira rede. Criações como e-mail, chat, fóruns,
agenda de grupos on-line e comunidades virtuais, revolucionaram os
relacionamentos humanos.
Através do trabalho colaborativo, profissionais distantes
geograficamente trabalham em equipe. O intercâmbio de informações tem gerado
novos conhecimentos e competências entre os profissionais e o trabalho por parte
de Analista de Sistemas no desenvolvimento de aplicações que tem sido cada vez
mais um grande desafio.
O nosso trabalho tem como cenário uma empresa que trabalha no
ramo de aluguel de buggy. A dona da empresa “Aluga Buggy” chama-se Polyanna e
está sediada em Guarapari-ES. Hoje essa empresa tem cinco lojas que por falta de
tecnologia trabalham de forma isolada, cada uma com seu próprio servidor de Banco
de Dados.
A proposta feita por esta empresa, é contratar uma equipe
desenvolvedora de sistemas onde o objetivo maior é fazer a integração por rede on-
line unindo todas as estações de todas as lojas numa só rede onde deverá existir a
comunicação entre os usuários e um só Banco de Dados em cada loja, porém se
comunicando com o sistema de Banco de Dados das outras lojas.
Após uma conversa de Polyanna com seus amigos também
empresários Roberto e Anderson, a empresa “Aluga Buggy” abriu lojas em Porto
Seguro-BA, Porto de Galinhas-PE, Natal-RN e em Fortaleza-CE. E para a realização
deste projeto de implantação foi necessário um aporte de capital onde este foi
realizado pela empresa Merris & Veronice Investimentos Ltda.
5
2 OBJETIVO
Como principal objetivo de trabalho e divulgação neste contexto,
será apresentado todo processo de desenvolvimento de um software que será
implantado na empresa “Aluga Buggy” e que tem por objetivo principal fazer a
ampliação da Tecnologia de Informação desta empresa de uma forma rápida e
eficiente.
O nosso projeto de análise inclui a alterações no sistema já
implantado, e neste ínterim, será necessário fazer a modularização que é a
comunicação de alguns aspectos com o sistema já implantado e elaborar um novo
projeto de Banco de Dados mais robusto e mais seguro.
Os diagramas de classe que ilustra o funcionamento da base de
dados incluindo seus atributos, operações e multiplicidade, serão abordados neste
contexto dando uma idéia de como o nosso sistema irá funcionar.
Outro objetivo importante do nosso trabalho e demonstrar de forma
dinâmica a implementação que inclui as principais operações de alteração, Inclusão,
Exclusão e Pesquisa. Na codificação foram inseridos métodos e os comandos para
verificação de erros (Ex: try – catch). Também será demonstrado de forma prática
como é feito na ligação da classe com outra por meio de cardinalidades (Ex: private
List <Reserva> reservas;).
Uma parte importante do Projeto em desenvolvimento é a verificação
da consistência do Banco de Dados, e esse processo de verificação que chamamos
de MNR – Modelo Relacional Normalizado irá verificar se a Base de Dados do nosso
Projeto está livre de possíveis erros que pode ocorrer durante a usabilidade.
E o objetivo maior a ser alcançado será a comunicação entre todas
as máquinas presente em todas as lojas da empresa “Aluga Buggy” se comunicando
por meio de uma Rede WAN.
6
3 DESENVOLVIMENTO
Na era da globalização, a informação é tratada como um bem
valioso. Vemos todos os meios de comunicação se interagindo para que, de alguma
forma se extraia o máximo de informações que se analisadas e trabalhadas podem
se tornar a diferença entre o sucesso e fracasso. Podemos perceber hoje, num
mercado totalmente turbulento, que as informações em conjunto com as estratégias
a elas adaptadas são fatores primordiais, fatores que diferenciam os métodos de
decisão.
Para que isso ocorra muitas empresas estão desenvolvendo
softwares que permitam aos administradores uma melhor análise dos dados que
influenciam a decisão. Podemos levar em consideração também a rapidez do
mercado em analisar e checar determinados dados. É nesse contexto que muitos
paradigmas foram quebrados e que novos surgiram, e é diante desse cenário que as
empresas estão cada vez mais investindo e aprimorando a implantação e a
atualização dos seus sistemas de Tecnologia de Informação.
É cada vez mais patente a relevância estratégica que as tecnologias
de informação apresentam para o desenvolvimento de novas técnicas de
administração, aumentando a eficiência e a eficácia do trabalho no ambiente global
da organização, criando vantagens competitivas e um melhor desempenho
organizacional.
7
3.1 DIAGRAMA DE CLASSE
O Diagrama de Classe para o nosso Projeto terão as operações
para cada entidade a visibilidade do tipo Pública, isso é importante num
relacionamento, pois qualquer alteração ou exclusão de um registro numa outra
entidade, as alterações e exclusões também serão feiras na entidade relacionada.
Por exemplo, se o código do cliente da entidade “Cadastrar Cliente” for alterada,
automaticamente esse número também será alterado no campo “codigoCliente” da
entidade “Cadastrar Reserva”.
8
3.2 PROJETO DE UM BANCO DE DADOS NO MODELO CONCEITUAL
O modelo conceitual de um Banco de Dados captura as
necessidades da organização em termos de armazenamento de dados de forma
independente de implementação.
O sistema de banco de dados deve prover uma visão abstrata de
dados aos usuários, isolando-os de certos detalhes do BD. A arquitetura desta
abstração se dá em três níveis. O mais externo, o nível de visões do usuário,
descreve partes do banco que serão visualizadas pelos usuários.
No nível intermediário, tem-se o nível conceitual (ou lógico), que
descreve quais os dados estão armazenados e seus relacionamentos. Finalmente,
no nível mais baixo, está o nível físico, descrevendo a forma como os dados estão
realmente armazenados.
Para desenvolver um banco de dados livre de erros possíveis a
acontecer durante o uso da aplicação diária de um software já implantado na
empresa, é necessário que o banco de dados passe por uma espécie de
refinamento feito por etapas que chamamos MNR – Modelo Relacional Normalizado.
No modelo conceitual é possível fazer quase tudo, porém no plano
físico nem sempre dá para implementar. Vejamos um cenário do nosso projeto de
banco de dados no modelo conceitual desde o modelo desnormalizado até a terceira
forma normal.
MODELO DESNORMALIZADO
9
No Modelo desnormalizado nós agrupamos as entidades e definimos
os atributos com seus atributos determinantes (ou chave).
Na primeira forma normal são eliminados os atributos repetidos, ou
seja, os atributos que representam o armazenamento de um mesmo dado em locais
diferente são também considerados tabelas alinhadas ou que contém mais de uma
ocorrência. Após identificar estes atributos eles devem ser transferidos para uma
nova entidade, e esta nova entidade deve estar relacionada com a entidade de onde
os atributos foram retirados.
Na entidade nova, a chave primária que veio da entidade forte se
tornará uma chave estrangeira, porém fazendo parte da chave primária da nova
entidade fraca.
PRIMEIRA FORMA NORMAL (Sem chaves Estrangeiras)
10
Uma tabela para estar na Segunda Forma Normal não pode conter
dependência funcional entre seus atributos não chave com partes da sua chave
primária. Uma tabela para estar na Terceira Forma Normal não pode conter
dependências funcionais dos seus atributos não chave com outros atributos não
chave. Também não pode haver atributos calculados.
PRIMEIRA, SEGUNDA E TERCEIRA FORMA NORMAL
(Com chaves estrangeiras e sem Dependência Funcional entre os atributos)
3.3 IMPLEMENTAÇÃO DO DIAGRAMA DE CLASSE EM C#
Com Base no Diagrama apresentado nesse Projeto, iremos agora
programar em C# as classes referentes ao Diagrama de Classe. Haverá também o
relacionamento incluindo a cardinalidade. Cliente para Reserva ( 1 *..1 ) (Um
para Muitos), Reserva para Buggy ( *..1 1 ) (Muitos para Um), Buggy para
Reserva ( 1 *..1 ) (Um para Muitos) e Buggy para Tipo_buggy ( *..1 1 ) (Muitos
11
para Um). O Nome da Solução em nosso projeto será chamado de “Grupo”.
Segue as quatro classes que inclui as definições dos atributos
incluindo os relacionamentos, as propriedades dos atributos (get e set), os
construtores e as operações (CRUD).
Classe Cliente
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Grupo { class Cliente { private int codigoCliente; private string nomeCliente; private string telefoneCliente; private int cnhCliente; private int rgCliente; private int cpfCliente; private string enderecoCliente; private List<Reserva> reservas; public int CodigoCliente { get { return codigoCliente; } set { codigoCliente = value; } } public string NomeCliente { get { return nomeCliente; } set { nomeCliente = value; } } public string TelefoneCliente { get { return telefoneCliente; } set { telefoneCliente = value; } } public int CnhCliente { get { return cnhCliente; } set { cnhCliente = value; } } public int RgCliente { get { return rgCliente; } set { rgCliente = value; } }
12
public int CpfCliente { get { return cpfCliente; } set { cpfCliente = value; } } public string EnderecoCliente { get { return enderecoCliente; } set { enderecoCliente = value; } } public List<Reserva> Reservas { get { return reservas; } set { reservas = value; } } public Cliente() { reservas = new List<Reserva>(); } public bool Incluir() { if (reservas.Count == 0) return false; // gravar dados no banco return true; } public bool IncluirReserva(Reserva pReserva) { try { reservas.Add(pReserva); return true; } catch { return false; } } public bool ExcluirReserva(Reserva pReserva) { Reserva reserva = reservas.Find(p => p.CodigoReserva == pReserva.CodigoReserva); if (reserva == null) return false; reservas.Remove(reserva); return true; } // O Código abaixo inclui Pesquisa e Alteração public bool AlterarReserva(Reserva pReserva) { int posicao = reservas.FindIndex(p => p.CodigoReserva == pReserva.CodigoReserva);
13
if (posicao <0) return false; reservas[posicao] = pReserva; return true; } } }
Classe Reserva
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Grupo { class Reserva { private int codigoReserva; private DateTime dataReserva; private DateTime dataRetirada_buggy; private DateTime dataDevolucao_buggy; private int codigoCliente; private int numeroBuggy; private double valorEstimado_reserva; private Cliente cliente; private Buggy buggy; public int CodigoReserva { get { return codigoReserva; } set { codigoReserva = value; } } public DateTime DataReserva { get { return dataReserva; } set { dataReserva = value; } } public DateTime DataRetirada_buggy { get { return dataRetirada_buggy; } set { dataRetirada_buggy = value; } } public DateTime DataDevolucao_buggy { get { return dataDevolucao_buggy; } set { dataDevolucao_buggy = value; } } public int CodigoCliente { get { return codigoCliente; } set { codigoCliente = value; } } public int NumeroBuggy
14
{ get { return numeroBuggy; } set { numeroBuggy = value; } } public double ValorEstimado_reserva { get { return valorEstimado_reserva; } set { valorEstimado_reserva = value; } } public Cliente Cliente { get { return cliente; } set { cliente = value; } } public Buggy Buggy { get { return buggy; } set { buggy = value; } } public bool Incluir() { if (codigoReserva == 0) return false; if (codigoCliente == 0) return false; if (numeroBuggy == 0) return false; if (cliente == null) return false; if (buggy == null) return false; // gravar os dados no banco return true; } } }
Classe Buggy
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Grupo { class Buggy { private int numeroBuggy; private string modeloBuggy; private int anoBuggy; private string tipoBuggy; private Tipo_buggy tipo_buggy; private List<Reserva> reservas; public int NumeroBuggy
15
{ get { return numeroBuggy; } set { numeroBuggy = value; } } public string ModeloBuggy { get { return modeloBuggy; } set { modeloBuggy = value; } } public int AnoBuggy { get { return anoBuggy; } set { anoBuggy = value; } } public string TipoBuggy { get { return tipoBuggy; } set { tipoBuggy = value; } } public Tipo_buggy Tipo_buggy { get { return tipo_buggy; } set { tipo_buggy = value; } } public List<Reserva> Reserva { get { return reservas; } set { reservas = value; } } public Buggy() { reservas = new List<Reserva>(); } public bool Incluir() { if (reservas.Count == 0) return false; if (numeroBuggy == 0) return false; if (modeloBuggy.Length == 0) return false; if (tipoBuggy == null) return false; // gravar dados no banco return true; } public bool IncluirReserva(Reserva pReserva) { try { reservas.Add(pReserva); return true; } catch
16
{ return false; } } public bool ExcluirReserva(Reserva pReserva) { Reserva reserva = reservas.Find(p => p.CodigoReserva == pReserva.CodigoReserva); if (reserva == null) return false; reservas.Remove(reserva); return true; } // O Código abaixo inclui Pesquisa e Alteração public bool AlterarReserva(Reserva pReserva) { int posicao = reservas.FindIndex(p => p.CodigoReserva == pReserva.CodigoReserva); if (posicao < 0) return false; reservas[posicao] = pReserva; return true; } } }
Classe Tipo_buggy
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; namespace Grupo { class Tipo_buggy { private string descricaoTipo; private int codigoTipo; private double valorTipo; private List<Buggy> buggys; public string DescricaoTipo { get { return descricaoTipo; } set { descricaoTipo = value; } } public int CodigoTipo { get { return codigoTipo; } set { codigoTipo = value; } }
17
public double ValorTipo { get { return valorTipo; } set { valorTipo = value; } } public List<Buggy> Buggy { get { return buggys; } set { buggys = value; } } public Tipo_buggy() { buggys = new List<Buggy>(); } public bool Incluir() { if (buggys.Count == 0) return false; // gravar dados no banco return true; } public bool IncluirBuggy(Buggy pBuggy) { try { buggys.Add(pBuggy); return true; } catch { return false; } } public bool ExcluirBuggy(Buggy pBuggy) { Buggy buggy = buggys.Find(p => p.NumeroBuggy == pBuggy.NumeroBuggy); if (buggy == null) return false; buggys.Remove(buggy); return true; } // O Código abaixo inclui Pesquisa e Alteração public bool AlterarBuggy(Buggy pBuggy) { int posicao = buggys.FindIndex(p => p.NumeroBuggy == pBuggy.NumeroBuggy); if (posicao < 0) return false; buggys[posicao] = pBuggy; return true; } } }
18
Uma maneira de demonstrar de forma mais detalhada as operações
de Inclusão, Alteração, Exclusão e Pesquisa seria criando uma classe abstrata
chamada “ModeloCrud” e nela implementar classes e métodos abstratos que inclui
as operações CRUD.
using System; using System.Collections.Generic; using System.Linq; using System.Reflection; using System.Text; using System.Threading.Tasks; namespace Grupo { abstract class ModeloCrud { public void Incluir() { PropertyInfo[] propriedade = this.GetType().GetProperties( BindingFlags.DeclaredOnly | BindingFlags.Public | BindingFlags.Instance); string insert = "INSERT INTO " + this.GetType().Name + "("; for (int i = 0; i < propriedade.Length; i++) { insert += propriedade[i].Name + ","; } insert = insert.Remove(insert.Length - 1); insert += ") VALUES("; for (int i = 0; i < propriedade.Length; i++) { if (propriedade[i].PropertyType == typeof(string)) insert += "'" + propriedade[i].GetValue(this).ToString() + "',"; else insert += propriedade[i].GetValue(this).ToString() + ","; } insert = insert.Remove(insert.Length - 1); insert += ")"; Conexao banco = new Conexao(); banco.AbrirConexao(); banco.ExecutarComando(insert); banco.FecharConexao(); } public abstract string[] Alterar(); public abstract string[] Excluir(); public abstract void Recuperar(); public abstract string[] Validar(); } }
19
O próximo passo seria fazer a herança de toda a implementação da classe
abstrata “ModeloCrud” nas classes: Cliente, Reserva, Buggy e Tipo_Buggy. E no
final da classe inserimos métodos do tipo “override” para cada operação CRUD. E
isso pode ser feito assim:
namespace Grupo { class NomeDaClasse : ModeloCrud { // Definição de atributos // Definição dos Métodos Get e Set public override string[] Alterar() { throw new NotImplementedException(); } public override string[] Excluir() { throw new NotImplementedException(); } public override void Recuperar() { throw new NotImplementedException(); } public override string[] Validar() { throw new NotImplementedException(); } } }
3.4 SOLUÇÕES E CUSTOS PARA A IMPLEMENTAÇÃO DE UMA REDE
No Município de Senhor do Bonfim (Interior da Bahia) região em que
moro, é permitido cabos de redes nos postes em toda a cidade, todavia, alguns
provedores de internet utilizam uma rede geograficamente distribuída, ou WAN (wide
area network), que abrange uma grande área geográfica. Ela contém um conjunto
de máquinas cuja finalidade é executar os programas (ou seja, as aplicações) do
usuário.
Essas máquinas são chamadas de hosts. Os hosts estão
conectados por uma sub-rede de comunicação ou, simplificando, uma sub-rede. Os
hosts pertencem aos usuários (por exemplo, são os computadores de uso pessoal),
enquanto a sub-rede de comunicação em geral pertence e é operada por uma
20
empresa de telefonia ou por um provedor de serviços da Internet.
A tarefa da sub-rede é transportar mensagens de um host para
outro, exatamente como o sistema de telefonia transporta as palavras da pessoa
que fala para a pessoa que ouve. Essa estrutura de rede é altamente simplificada,
pois separa os aspectos da comunicação pura da rede (a sub-rede) dos aspectos de
aplicação (os hosts).
Os custos para implantação de uma rede distribuída são altos,
sendo necessários à aquisição de equipamentos caros e antenas bem qualificadas.
As empresas e filiais na cidade de Senhor do Bonfim tem se beneficiado da
tecnologia (Rede Internet em Banda Larga), além dos esforços dos provedores
locais, muitos se beneficiam com a Velox.
Na maioria das redes geograficamente distribuídas, a sub-rede
consiste em dois componentes distintos: linhas de transmissão e elementos de
comutação. As linhas de transmissão transportam os bits entre as máquinas. Elas
podem ser formadas por fios de cobre, fibra óptica, ou mesmo enlaces de rádio. Os
elementos de comutação são computadores especializados que conectam três ou
mais linhas de transmissão. Quando os dados chegam a uma linha de entrada, o
elemento de comutação deve escolher uma linha de saída para encaminhá-los.
Esses computadores de comutação receberam diversos nomes no
passado; o nome roteador é agora o mais comumente usado. Em inglês, algumas
pessoas pronunciam esse nome da mesma forma que "rooter" e outras fazem rima
com "doubter".
Os hosts em geral estão conectados a uma LAN em que há um
roteador, embora em alguns casos um host possa estar conectado diretamente a um
roteador. O conjunto de linhas de comunicação e roteadores (sem os hosts) forma a
sub-rede.
Fonte: https://sites.google.com/site/estudandoredes/capitulo-01---introducao/1-2-hardware-de-rede/1-
2-3-redes-geograficamente-distribuidas
21
Vale a pena fazermos um breve comentário em relação ao termo
"sub-rede". Originalmente, seu único significado identificava o conjunto de
roteadores e linhas de comunicação que transportava pacotes entre os hosts de
origem e de destino. No entanto, alguns anos mais tarde, o termo adquiriu um
segundo significado, em conjunto com o endereçamento de rede. Infelizmente não
existe nenhuma alternativa amplamente utilizada para seu significado inicial, e assim
nós o utilizaremos com alguma hesitação em ambos os sentidos. Contudo, o
contexto sempre deixará clara a acepção do termo que está sendo utilizado.
Na maioria das WANs, a rede contém numerosas linhas de
transmissão, todas conectadas a um par de roteadores. No entanto, se dois
roteadores que não compartilham uma linha de transmissão desejar se comunicar,
eles só poderão fazê-lo indiretamente, através de outros roteadores. Quando é
enviado de um roteador para outro por meio de um ou mais roteadores
intermediários, o pacote é recebido integralmente em cada roteador intermediário,
onde é armazenado até a linha de saída solicitada ser liberada, para então ser
encaminhado. Uma sub-rede organizada de acordo com esse princípio é chamada
sub-rede de store-and-forward (de armazenamento e encaminhamento) ou de
comutação por pacotes. Quase todas as redes geograficamente distribuídas (com
exceção das que utilizam satélites) têm sub-redes store-and-forward.
Quando são pequenos e têm todos os mesmos tamanhos, os
pacotes costumam ser chamados de células. O princípio de uma WAN de
comutação por pacotes é tão importante que vale a pena dedicar mais algumas
palavras a esse assunto. Em geral, quando um processo em algum host tem uma
mensagem para ser enviada a um processo em algum outro host, primeiro o host
que irá transmitir divide a mensagem em pacotes, cada um contendo seu número na
sequência. Esses pacotes são então injetados na rede um de cada vez em rápida
sucessão. Os pacotes são transportados individualmente pela rede e depositados no
host receptor, onde são novamente montados para formar a mensagem original, que
é entregue ao processo receptor. Um fluxo de pacotes resultantes de alguma
mensagem inicial é ilustrado na figura abaixo.
22
Fonte: https://sites.google.com/site/estudandoredes/capitulo-01---introducao/1-2-hardware-de-rede/1-
2-3-redes-geograficamente-distribuidas
Nessa figura, todos os pacotes seguem a rota ABC, em vez de
ADEC ou ABEC. Em algumas redes, todos os pacotes de uma determinada
mensagem devem seguir a mesma rota; em outras, cada pacote é roteado
separadamente. É claro que, se ABC for a melhor rota, todos os pacotes deverão ser
enviados por ela, ainda que cada pacote seja roteado individualmente.
As decisões de roteamento são tomadas em caráter local. Quando
um pacote chega ao roteador A, cabe ao roteador A decidir se esse pacote deve ser
enviado na linha para B ou na linha para D. A forma como A toma essa decisão é
chamada algoritmo de roteamento. Existem muitos desses algoritmos.
Nem todas as WANs são comutadas por pacotes. Uma segunda
possibilidade para uma WAN é um sistema de satélite. Cada roteador tem uma
antena pela qual pode enviar e receber. Todos os roteadores podem ouvir as
transmissões do satélite e, em alguns casos, eles também podem ouvir as
transmissões de saída dos demais roteadores para o satélite. Às vezes, os
roteadores estão conectados a uma sub-rede ponto a ponto de grande porte, e
apenas um deles tem uma antena de satélite. As redes de satélite são
inerentemente redes de difusão e são mais úteis quando a propriedade de difusão é
importante.
23
4 CONCLUSÃO
Dentre os tópicos aqui apresentados, é importante ressaltar os
procedimentos e padrões de um processo de desenvolvimento que foram abordados
neste contexto, tais aspectos importantes devem ser observados num projeto antes
do seu planejamento.
Consideramos por meio de diagramas todos os detalhes de cada
Entidade ou Tabelas para o nosso Banco de Dados, seus atributos, operações e
multiplicidades. Aplicamos o MNR – Modelo Relacional Normalizado onde se aplica
o processo de refinamento para a detecção de futuros problemas possíveis que
poderiam acontecer no uso da aplicação com o Banco de Dados.
Os Diagramas de Classe nos deram uma visão ampla sobre todo o
Projeto do Banco de Dados incluindo as cardinalidades. Também foi demonstrado
de forma mais ampla, a implementação de nosso Projeto com o uso da linguagem
C# e suas principais operações (CRUD) como Alteração, Inclusão, Exclusão e
Pesquisa.
Abordamos vários aspectos importantes no processo de
desenvolvimento de um produto, desde a incorporação de um Sistema de
Tecnologia de Informação na organização “Aluga Buggy” onde os resultados obtidos
serão satisfatórios para a empresa.
24
REFERÊNCIAS
CHIAVELI, Márcio Roberto. Banco de Dados I: Modelo Entidade Relacionamento Mer. Biblioteca Digital.
DEITEL. C# Como Programar.
DUARTE, Roberto Gonzáles. Uso de Casos no Ensino de Administração.
ELMASRI, Navathe. Sistemas de Banco de Dados.
FORBELLONE, André Luiz Villar. Lógica de Programação. A construção de Algoritmos e Estrutura de Dados.
FOWLER, Martin. UML Essencial. 3ª Edição.
GOMES, Polyanna Pacheco. Curso de Extensão: Uml Unified Modeling Language. Conceitos Fundamentais de Orientação A Objetos e Modelagem: Diagrama de Objetos. Biblioteca Digital.
GUNNERSON, Eric. Introdução à programação em C#
OLIVEIRA, Rômulo Silva. Sistemas Operacionais. Editora Sagra Luzzano. Instituto de Informática da UFRGS.
VALDURIEZ, Patrick. Princípios de Sistemas de Bancos de Dados Distribuídos.
https://sites.google.com/site/estudandoredes/capitulo-01---introducao/1-2-hardware-de-rede/1-2-3-redes-geograficamente-distribuidas
Top Related