Buscar

Trab grupo Aluga Bugy

Prévia do material em texto

SISTEMA DE ENSINO PRESENCIAL CONECTADO
ANALISE E DESENVOLVIMENTO DE SISTEMAS
ANA PAULA BENEDITO MOTA
FERNANDO KRAUZER GABRESCHT
FRANCINALDO PINHEIRO SIQUEIRA
GILMAR MACHADO
JEANES NOVAIS DE SOUZA
JOEL DIAZ DOS SANTOS
PRODUÇÃO TEXTUAL INTERDISCIPLINAR EM GRUPO:
DESENVOLVIMENTO DE SISTEMAS DE INFORMAÇÃO I
Ariquemes
2014
ANA PAULA BENEDITO MOTA
FERNANDO KRAUZER GABRESCHT
FRANCINALDO PINHEIRO SIQUEIRA
GILMAR MACHADO
JEANES NOVAIS DE SOUZA
JOEL DIAZ DOS SANTOS
PRODUÇÃO TEXTUAL INTERDISCIPLINAR EM GRUPO -
DESENVOLVIMENTO DE SISTEMAS DE INFORMAÇÃO I
Trabalho apresentado à Universidade Norte do Paraná - UNOPAR, como requisito parcial para a obtenção de média bimestral nas disciplinas de Desenvolvimento Orientado a Objetos, Redes de computadores, Modelagem Orientada a Objetos e Tópicos em Desenvolvimento de Sistemas.
Orientadores: Profª. Marcio Roberto Chiaveli
 Paulo K. Nishitani
 Polyanna P.G.Fabris
 Adriane A. Loper
Ariquemes
2014
Sumário
31	INTRODUÇÃO	�
42	DIAGRAMA DE CLASSE DE ACORDO COM O SOLICITADO - ITEM 4.1	�
42.1	PROJETO DE BANCO DE DADOS	�
51.1	MODELO CONCEITUAL - CONFORME ITEM 4.1	�
51.2	MODELO EM BRMODELO LÓGICO - CONFORME ITEM 4.1	�
61.3	SCRIPT SQL GERADO NO BRMODELO – CONFORME ITEM 4.2	�
71.4	FERRAMENTA C# IMPLEMENTAÇÃO DAS CLASSES – CONFORME 4.3	�
102	IMPLEMENTAÇÕES DISTRIBUÍDA VISANDO CUSTO E SOLUÇÕES – CONFORME ITEM 4.4	�
112.1	DESENVOLVIMENTO E ORGANIZAÇÃO	�
133.1	Engenharia de Software	�
163.2	TECNOLOGIAS UTILIZADAS	�
204	CONSIDERAÇÕES FINAIS	�
21REFERÊNCIAS	�
�
Sumário
31	INTRODUÇÃO	�
42	DIAGRAMA DE CLASSE DE ACORDO COM O SOLICITADO - ITEM 4.1	�
42.1	PROJETO DE BANCO DE DADOS	�
52.2	MODELO CONCEITUAL - CONFORME ITEM 4.1	�
52.3	MODELO EM BRMODELO LÓGICO - CONFORME ITEM 4.1	�
62.4	SCRIPT SQL GERADO NO BRMODELO – CONFORME ITEM 4.2	�
72.5	FERRAMENTA C# IMPLEMENTAÇÃO DAS CLASSES – CONFORME 4.3	�
103	IMPLEMENTAÇÃO DISTRIBUÍDA VISANDO CUSTO E SOLUÇÕES – CONFORME ITEM 4.4	�
113.1	DESENVOLVIMENTO E ORGANIZAÇÃO	�
133.1	Engenharia de Software	�
163.2	TECNOLOGIAS UTILIZADAS	�
204	CONSIDERAÇÕES FINAIS	�
21REFERÊNCIAS	�
�
�
INTRODUÇÃO
Este trabalho tem o intuito de desenvolver e analisar produção textual interdisciplinar que tem como base os assuntos abordados no eixo temático - Desenvolvimento de Sistemas de Informação I. Neste contexto busca se evidenciar e apresentar os preceitos das aprendizagens obtidas através do conhecimento absorvido do semestre, para discutir a funcionalidades e importância da organização na produção do processo de criação do projeto na construção do software através dos conceitos da UML. Neste sentindo busca se estudar e analisar o funcionamento do soft de locação de veículos, baseado no cenário de orientação do trabalho proposto com diagrama de Classe, com classe cliente, buggy, tipo-buggy e reserva.
O analista de sistemas deve garantir o alinhamento entre tecnologia e estratégias organizacionais, os projetos de software devem conhecer o cenário organizacional em um nível suficiente, a ponto de avaliar e sugerir melhorias, ou mesmo reengenharia nos processos de negócio. Este trabalho mostrará na prática a importância das técnicas e o desenvolvimento do sistema que iremos utilizar a linguagem C#, através do diagrama de atividades, bem como a modelagem de dados na utilização dos consagrados bancos de dados relacionais juntamente com a programação orientada a objetos, viabilizando o sucesso dos sistemas no que tange o alinhamento dos objetivos aos processos onde os requisitos coletados na forma de diagramas de casos de uso e a suas entidades de relacionamento, implementar esses dados em um software de desenvolvimento mostrando as telas que conteria o sistema. Ao concluirmos este trabalho teremos em mãos todas as informações para o desenvolvimento do software até o teste e validação..
DIAGRAMA DE CLASSE DE ACORDO COM O SOLICITADO - ITEM 4.1 
PROJETO DE BANCO DE DADOS 
De acordo com o nosso cenário, será apresentado um projeto de Banco de Dados, usando o modelo conceitual nas aplicações das formas normais, usando a ferramenta CASE, também fora acrescentado sem pedido do projeto, mas para aprofundamento do modelo, o modelo Lógico parametrizando todos os modelos de um Bando de Dados e suas funcionalidades de acordo com o projeto apresentado, que é Locadora de Buggy´s.
MODELO CONCEITUAL - CONFORME ITEM 4.1
MODELO EM BRMODELO LÓGICO - CONFORME ITEM 4.1
SCRIPT SQL GERADO NO BRMODELO – CONFORME ITEM 4.2
-- Geração de Modelo físico
-- Sql ANSI 2003 - brModelo.
CREATE TABLE Cliente (
codclient Numero(10) PRIMARY KEY,
nclient Texto(60),
ruaclient Texto(60),
numero Texto(15),
telclient Numero(13),
cpfclient Numero(11),
cnh Texto(20),
rgclient Texto(15)
)
CREATE TABLE Funcionário (
cod_func Numero(6) PRIMARY KEY,
nomefunc Texto(60),
cargo Texto(50),
setorfunc Texto(50)
)
CREATE TABLE Tabela Buggy (
cod_bug Numero(6),
buggy Texto(60),
valorkm Texto(1),
modelo/ano Texto(60)
)
CREATE TABLE Descrição (
cod_bug Numero(6),
codbug Numero(6)
)
CREATE TABLE Buggy (
codbug Numero(6) PRIMARY KEY,
Modelobug Texto(50),
anobug Numero(4),
placabug Texto(7),
valorfipe Numero(10),
valorseg Numero(10),
datainicio Numero(8),
datafinal Numero(8),
codclient Numero(10),
FOREIGN KEY(codclient) REFERENCES Cliente (codclient)
)
CREATE TABLE Agenda Buggy (
cod_bug Numero(6) PRIMARY KEY,
dataentrega Numero(8),
datasaida Numero(8),
valorkm Numero(10),
ano Numero(4),
modelo Texto(60),
km_atual Numero(11),
km_entrega Numero(11),
total Numero(11)
)
CREATE TABLE Gerência (
cod_func Numero(6),
codclient Numero(10),
FOREIGN KEY(cod_func) REFERENCES Funcionário (cod_func),
FOREIGN KEY(codclient) REFERENCES Cliente (codclient)
)
ALTER TABLE Tabela Buggy ADD FOREIGN KEY(cod_bug) REFERENCES Agenda Buggy (cod_bug)
ALTER TABLE Descrição ADD FOREIGN KEY(cod_bug) REFERENCES Agenda Buggy (cod_bug)
ALTER TABLE Descrição ADD FOREIGN KEY(codbug) REFERENCES Buggy (codbug)
FERRAMENTA C# IMPLEMENTAÇÃO DAS CLASSES – CONFORME 4.3
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using buggy1;
using buggy2;
namespace buggy2
{
 public class Fila
 {
 private int[] conteudo;
 private int fim;
 public Fila(int n) /* Método CONSTRUTOR */
 {
 if (n > 0)
 {
 conteudo = new int[n];
 fim = -1;
 }
 }
 public void SAIDA(int valor) /* Método para INSERIR no Fim da FILA */
 {
 if (fim < conteudo.Length - 1)
 {
 fim++;
 conteudo[fim] = valor;
 }
 }
 public int CHEGADA() /* Método para REMOVER do Inicio da FILA */
 {
 int valor = -1;
 if (fim >= 0)
 {
 valor = conteudo[0];
 for (int i = 0; i < conteudo.Length - 1; i++)
 {
 conteudo[i] = conteudo[i + 1];
 }
 fim--;
 }
 return valor;
 }
 public string IMPRIMIR() /* Método para IMPRIMIR a Lista em FILA*/
 {
 string msg = "";
 for (int i = 0; i <= fim; i++)
 {
 msg += conteudo[i] + " ";
 }
 return msg;
 }
 }
}
namespace buggy1
{
 class Program
 {static void Main(string[] args)
 {
 Fila fila = new Fila(5);
 int sair = 0;
 string imprime = "";
 while (sair == 0)
 {
 imprimeOpcoes();
 int opcao = int.Parse(Console.ReadLine());
 if (opcao == 0) /* OPÇÃO SAIR..*/
 {
 sair = 1;
 }
 else
 if (opcao == 1) /* OPÇÃO INSERIR CÓDIGO (DAR SAÍDA DO BUGGY)..*/
 {
 Console.BackgroundColor = ConsoleColor.Blue;
 Console.Clear();
 Console.Write("\nCÓDIGO do BUGGY..: ");
 fila.SAIDA(int.Parse(Console.ReadLine()));
 imprime = fila.IMPRIMIR();
 Console.WriteLine("\n.......................................\n");
 Console.WriteLine(imprime);
 Console.WriteLine("\n.......................................\n");
 }
 else
 if (opcao == 2) /* OPÇÃO REMOVER SAÍDA (CHEGADA)...*/
 {
 Console.Clear();
 fila.CHEGADA();
 imprime = fila.IMPRIMIR();
 Console.WriteLine("\n.......................................\n");
 Console.WriteLine(imprime);
 Console.WriteLine("\n.......................................\n");
 }
 else
 if (opcao == 3) /* OPÇÃO IMPRIMIR LISTA DE SAÍDAS..*/
 {
 Console.Clear();
 imprime = fila.IMPRIMIR();
 Console.WriteLine("\n.......................................\n");
 Console.WriteLine(imprime);
 Console.WriteLine("\n.......................................\n");
 }
 }
 }
 static public void imprimeOpcoes()
 {
 Console.BackgroundColor = ConsoleColor.Red;
 int count = 0;
 Console.WriteLine("<**************************************>");
 Console.WriteLine("| ESCOLHA UMA OPÇÃO: |");
 Console.WriteLine("<**************************************>\n");
 Console.WriteLine("+--------------------------------------+");
 Console.WriteLine("| SAIDA BUGGY..................Digite 1|");
 Console.WriteLine("| CHEGADA BUGGY................Digite 2|");
 Console.WriteLine("| Imprimir BUGGYs da Fila......Digite 3|");
 Console.WriteLine("| Sair do PROGRAMA.............Digite 0|");
 Console.WriteLine("+--------------------------------------+\n");
 Console.Write(" OPÇÃO.: ");
 }
 }
}
IMPLEMENTAÇÕES DISTRIBUÍDA VISANDO CUSTO E SOLUÇÕES – CONFORME ITEM 4.4
	
Neste software a arquitetura foi separada em dois grandes componentes: o software web e o software distribuição. Eles possuem interação entre si. Em uma primeira fase, foi determinado qual seria o processo de software do software da locadora, suas característica e propriedades e formas de funcionamento. Foram também definidas suas propriedades de engenharia de software, onde foram aplicados os conhecimentos disciplinares de engenharia de software. A interface para o usuário da locadora distribuída foi feita totalmente pelas páginas web, similarmente a um sítio web da internet. Nesta fase foram definidos os casos de uso do sistema e a arquitetura do sistema dividida em módulos e componentes que interagem. Nesse sentido Também foi definido o modelo conceitual do sistema considerando seu trabalho conjunto com os bancos de dados, e as interações temporais entre as partes do sistema, caracterizando os diagramas de sequência. Para promover a melhoria do sistema definimos a implementação no diagrama que mostra a disposição física dos componentes do software entre as máquinas da arquitetura distribuída.
Após isso, foram feitas as primeiras implementações do sistema distribuído em c#, onde deveriam ser realizados os casos de uso de forma distribuída. O software foi sendo desenvolvido de maneira incremental e evolutiva, sendo que cada caso de uso foi desenvolvido em uma ordem determinada, de maneira sistematizada e com realização de testes de funcionamento. No programa web também foi desenvolvido de forma organizada, e a integração entre o sistema web e o sistema distribuído foi sendo realizada de maneira gradativa.
DESENVOLVIMENTO E ORGANIZAÇÃO 
Foram levantados os requisitos e as características para a modelagem e desenvolvimento do projeto, fatores estes que são de sumula importancia para execução de um sistema de qualidade em uma locadora de buggy. A partir deste contexto, buscou se viabilizar os requisitos e necessidades da arquitetura da locadora distribuída, composta por alguns módulos que iriam construir um software que seria concebido para a Matriz, e outro software que seria concebido para as Filiais. Assim decidiu-se que haveria um software distribuído para a execução das ações dos serviços da locadora, e este se dividiria em dois programas: um deles para a matriz, e outro idêntico para cada uma das filiais. O motivo de o programa ser igual para todas as filiais é o de que cada filial tem o mesmo comportamento, diferenciando-se apenas das peculiaridades do local.
No programa na matriz levariam em consideração as mesmas características das filiais, porém com o adicional de que na matriz tem-se conhecimento de todo o processo de gerência administração e propaganda e marketing desenvolvido para rede de loja. A matriz possui seu banco de dados específico, que faz atualização para as filiais. Os bancos de dados das filiais possuem apenas um número muito pequeno de informações em tabelas, para tratar do processamento e execução dos casos de uso. A maior parte das informações da rede de locadoras fica no banco de dados da matriz.
Em um nível mais alto, a arquitetura da dinâmica de funcionamento da locadora foi definida como possuindo o software web e o software distribuído. No software distribuído, formado por dois programas, um para filiais e outro para matriz, são realizados as comunicações, cálculos e processamentos referentes a cada caso de uso e de informação dos dados transmitidos. Os resultados gerados pelo processamento e comunicações distribuídas dos softwares distribuídos são salvos e atualizados em banco de dados. Assim, durante o processamento de um caso de uso, e dependendo do tipo de caso de uso, ocorrem mudanças ou resultados e eles são salvos nos bancos de dados de matriz e filial, com coerência nas tabelas corretas e com consistência de dados.
Software web, durante seu trabalho, também realiza leitura e escrita nos dados do banco de dados da matriz. Desta forma, foi definido como parte da arquitetura o comportamento de que na locadora matriz fica localizado o servidor web, além do banco de dados da matriz. O servidor web trabalha para gerar as páginas web da interface com o usuário, para o browser. Além disso, o programa web também trabalha com o gerenciador de banco de dados para realizar consultas ou transações no banco de dados das filiais para a matriz, assim o sistema sempre se mantem atualizado.
Figura: Arquitetura de funcionamento do sistema
				
Engenharia de Software
	
Após as etapas iniciais de especificação do projeto, foram desenvolvidos os aspectos de engenharia de software do sistema. Estes aspectos foram os casos de uso do sistema e seus detalhes, o modelo conceitual dosistema como um todo, o modelo do banco de dados da Matriz e Filiais, Também foram trabalhado os diagramas de sequência dos casos de uso do sistema, e os diagramas de implementações. 
Com os métodos de análise tradicionais, modelamos o mundo utilizando funções ou comportamentos como nossos blocos de construção. Temos visto algumas das deficiências desse paradigma de modelagem. Com a análise orientada a objeto, modelagem realidade tendo objetos como nossos blocos de construção na esperança de eliminar as falhas de urn paradigma de modelagem baseado em funções(LEE; TEPFENHART, 2001, p.74).
Segundo Bezerra (2006) uma técnica que serve de complemento a análise de requisitos e a construção de protótipos. No contexto do desenvolvimento de software, um protótipo ë um esboço de algumas partes do sistema. A construção de protótipos e comumente chamada de prototipagem.
Os diagramas de sequências para os casos de uso são:
 
Fonte: Aplicativo BRMODELO
1-> Alugar Buggy 2-> Devolver Buggy
 
 
3-> Cadastrar 4-> Efetuar login
 
5-> Efetuar pagamento 6-> Checa Situação
7-> Checa Situação Devolução
O diagrama Atual é:
 	
	Um refinamento do diagrama de implementação, que mostra todos os processos do sistema, é:
 
	O diagrama mostra os processos e suas interações, durante a operação do sistema. O sistema pode ser interpretado com qualquer número de filiais.	Uma modelagem importante para o sistema foi a do banco de dados da matriz e o banco de dados da filial. Abaixo segue o modelo relacional dos bancos de dados:
	Modelo da base de dados da matriz:
Loja (Cod_loja, Nomeloja).
Aluga (cod_func,codclient, datasaida, dataentrega, km_entrega, totalpago).
Cliente (codclient, nclient, ruaclient, numero, telclient, cpfclient, cnh, rgclient).
Buggy (codbug, Modelobug, anobug, placabug, valorfipe, valorseg, datainicio, datafinal, codclient).
Agenda Buggy (cod_bug, datasaida, dataentrega, valorkm, ano, modelo, km_atual, km_entrega, total).
Resultado (result_codigo, buggcodigo, cliente_cpf, loja_codigo, loja_nome).
	Modelo da base de dados da filial:
Aluga (cod_func,codclient, datasaida, dataentrega, km_entrega, totalpago).
Cliente (codclient, nclient, ruaclient, numero, telclient, cpfclient, cnh, rgclient).
Buggy (codbug, Modelobug, anobug, placabug, valorfipe, valorseg, datainicio, datafinal, codclient).
Transferência e Backup (cod_bug, datasaida, dataentrega, valorkm, ano, modelo, km_atual, km_entrega, total).
TECNOLOGIAS UTILIZADAS
Para a realização o projeto da locadora distribuída, estudou se possibilidades de métodos ou tecnologias de implementações do sistema. Para este projeto utilizou se a linguagem de programação orientada a objetos. É simples, moderna e possui uma tipificação segura, derivada do C e C++ que fornece flexibilidade ao programador. Especificamente escrita para oferecer a simplicidade e o poder da C++, o C# permite aos desenvolvedores criar, depurar e distribuir aplicações, as quais podem ser usadas como componentes independentes para a plataforma .NET. Na tecnologia C# encontram-se várias ferramentas e bibliotecas adequadas disponíveis para um bom desenvolvimento do software, tais como orientação a objetos, tratamento de exceções, conexão com banco de dados, interação com banco de dados, sockets, métodos de rede, métodos para manipulação de strings, entre outros. 
Para C# utilizaremos a ferramenta da Microsoft Visual Studio 2010, de ambiente de desenvolvimento integrado, com compilador, editor de código, auto-completação de código, verificação de erros, organização de projeto, organização de pacotes, busca, numeração de linhas, depuração e teste, refatoramento, e outros. 
Figura: Desenvolvimento C# no Microsoft Visual Studio 2010 
Para o banco de dados, usou-se o sistema gerenciador de banco de dados MySQL, com bancos de dados relacionais. O sistema web deve prover uma interface para que o usuário interaja com o sistema distribuído da locadora, efetuando os processos descritos nos casos de uso, portanto o sistema web deve apresentar informações e também processar requisições como se fosse um software além de acessar o banco de dados, portanto precisamos de uma linguagem que gere conteúdo dinâmico além de página web estáticas feitas em html. E aplicativo Web do asp.net. O sistema distribuído funciona processando requisições que os usuários pedem pelo sistema Web e o canal de comunicação é o banco de dados. Por exemplo, quando o usuário Y quer alugar o buggy X, o sistema Web grava no banco de dados esta requisição com as informações “locação”, “usuário Y”, “buggy X”. O sistema distribuído lê periodicamente o banco de dados em busca de requisições e quando encontra alguma, processa-a. Então o sistema distribuído grava neste mesmo banco de dados os resultados da requisição (neste exemplo o nome do buggy alugado e de qual locadora ele vai sair) para que o sistema Web apresente para o usuário o resultado da requisição.	Implementação do sistema Web. O sistema Web inicial mostra uma tela de login em HTML, obrigando o usuário efetuar login para acessar o resto da página Web, caso ele não tenha um logjn, esta página inicial fornece um link que possibilite o usuário novo realizar cadastro. Quando o usuário envia os dados do login, um script é rodado que vai validar o usuário, quando o usuário é validade, uma página HTML é carregada no browser mostrando as opções que o usuário pode escolher.	Quando o usuário decide locar um filme, ele deve clicar no link alugar buggy, preencher os dados (sua identificação e a identificação do buggy que quer alugar) e envia-los. O sistema Web acorda depois de um tempo predefinido para que o sistema distribuído tenha tempo para processar a requisição e lê o banco de dados em busca do resultado e mostra na tela do browser para o usuário. Este exemplo serve para explicar todos os processos que ocorrem no sistema Web. O usuário acessa uma página HTML referente a algum caso de uso, põe os dados e envia para execução, então um programa PHP é ativado que se comunica com o sistema distribuído pelo banco de dados e espera que o sistema distribuído retorne algum resultado pelo banco de dados também. Alguns processos não necessitam do sistema distribuído, que são efetuar login, efetuar cadastro e buscar filme, pois casos envolvem informações disponíveis no banco de dados central localizado na matriz que é o único ao qual o sistema Web tem acesso.
Efetuar login
Sistema Online
O programa distribuído foi executado por um número grande de vezes até que seu funcionamento completo fosse atingido. Cada caso de uso foi testado separadamente, para que seu perfeito funcionamento fosse verificado até o fim. Esta verificação incluiu checagem no banco de dados, para visualizar se dados corretos das transações SQL estavam sendo feitos, e com coerência e consistência.
Ocorreram exceções sobre sockets, sincronização de comunicações, passagem de mensagens, decodificação de mensagens e ponteiros de objetos errados. Todas essas exceções ou erros foram tratados durante as depurações, e devidamente corrigidos.
CONSIDERAÇÕES FINAIS 
Com o uso de tecnologias que permitem uma boa implementação de sistemas distribuídos, é possível o desenvolvimento completo de uma aplicação distribuída que solucione problemas, aumento o desempenho e aumente a qualidade da aplicação de locadora. Este trabalho proporcionou uma reflexão no processo de desenvolvimento de software é a importância na administração das informações, também um reforço no processo de assimilação de aprendizagem em todas as etapas do Desenvolvimento De Sistemas de Informação I, é evidente que se faz necessário à organização e administração no processode desenvolvimento de sistema de informação para que os resultado tenham qualidade e eficiência para o efeito desejado.
No projeto da locadora distribuída, é possível obter-se um aumento da qualidade do dos serviços de uma rede de locadoras de uma cidade, com a utilização operacional de uma aplicação distribuída, como foi realizado neste trabalho.
Neste trabalho, conclui-se que o processo de modelagem do banco de dados com certeza merece um destaque especial em nossa avaliação, pois foi justamente por termos exercidos o trabalho de análise e programação onde foi possível identificar e conhecer o processo de organização para o desenvolvimento eficaz de sistema e aplicativos para automação de empresas. fica evidente que em projetos de sistemas, necessita se de vários profissionais trabalhando em conjunto para o resultado seja satisfatório no processo final. A pesquisa nos proporcionou a prática de programação, tão importante na concretização dos sistemas bem modelado.
REFERÊNCIAS
BEZERRA, Eduardo. Princípios de Análise e Projeto de Sistemas com UML, Campus, 2006.
LEE, C. Richard.; TEPFENHART, M. William.UML and C++ — A Practical Guide to Object-Oriented Development, Tradução: Celso Robeto Paschoa, Revisão Técnica: José Davi Furlan, São Paulo: MAKRON Books, 2001

Continue navegando