Você está na página 1de 22

SISTEMA DE ENSINO PRESENCIAL CONECTADO

SUPERIOR DE TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO


DE SISTEMAS
ALUNOS

ANÁLISE DE SISTEMAS
Portfólio em Grupo

Teixeira de Freitas, Bahia


2016
ALUNOS

ANÁLISE DE SISTEMAS
Portfólio em Grupo

Trabalho de Análise e Desenvolvimento de Sistemas


apresentado à Universidade Norte do Paraná - UNOPAR,
como requisito parcial para a obtenção de média
bimestral na disciplina Fundamentos de Análise
Orientada a Objetos II, Banco de Dados II, Programação
Orientada a Objetos, Programação Web I e Seminário IV.

Orientador: Iolanda C. S. Catarino,


Roberto Y. Nishmura,
Anderson E. M. Gonçalves,
Cristiane R. Y. Mashuda e
Adriane Ap. Loper

Teixeira de Freitas, Bahia


2016
SUMÁRIO

1 INTRODUÇÃO.......................................................................................................3
2 OBJETIVOS...........................................................................................................4
3 DESENVOLVIMENTO...........................................................................................5
3.1 Análise Orientada a Objetos...............................................................................5
3.2 Banco de Dados.................................................................................................10
3.3 Programação Orientada a Objetos...................................................................11
3.4 Programação Para Web I...................................................................................13
3.5 Implementação em PHP....................................................................................14
4 CONCLUSÃO......................................................................................................20
REFERÊNCIAS...........................................................................................................21
3

1 INTRODUÇÃO

Baseado no cenário proposto apresentaremos aqui um estudo de


caso do Controle de Frota de Veículos, bem como uma implementação de sistema
baseado na linguagem PHP, utilizando como base de dados o mySQL.
Esperamos que ao final da leitura deste trabalho o leitor possa se
familiarizar a como aplicar de modo prático todo o conhecimento obtido através das
matérias ministradas até momento no curso de Análise e Desenvolvimento de
Sistemas.
4

2 OBJETIVOS

Esta produção textual tem como objetivo abordar alguns conceitos


teóricos e práticos sobre o estudo, análise e desenvolvimento de sistema, mostrar a
prototipação e parte do código-fonte utilizado, além dos passos necessários para a
apresentação deste estudo de caso.
5

3 DESENVOLVIMENTO

3.1 Anáá lise Orientádá á Objetos

A partir daqui mostraremos diagrama de caso de uso, diagrama de


classe, diagrama de sequência (para cada caso de uso identificado), diagrama de
estado (reserva do veículo; veículo) e diagrama de implantação.
Nos diagramas de caso de uso mostrados abaixo mostramos o que
as funcionalidades da aplicação e sua interação com o usuário.

Figura 1 – Caso de Uso Reserva

Figura 2 – Caso de Uso Funcionário


6

Figura 3 – Caso de Uso Veículos

Em um diagrama de classe podemos observar as informações


estruturais de um objeto, usadas pela aplicação. As informações são descritas,
classes e ralações são demonstradas graficamente de acordo com sua interligação
às tabelas na base de dados, nos nós XML ou nas composições de outros objetos
de software.

Figura 4 – Diagrama de Classe Reserva

O diagrama de sequencia objeta mostras as mensagens que são


trocadas entre os objetos quando estes realizam alguma operação.
7

Figura 5 – Diagrama de Sequência Reserva

No diagrama de estado mostramos o comportamento do objeto e


seu estado, que por sua vez depende da atividade onde ele está processando.
Através desse diagrama se mostra as possibilidades de transações que pelas
mudanças de estado do objeto.
8

Figura 6 – Diagrama de Estado Reserva

Os diagramas de implementação dizem respeito à modelagem da


arquitetura física do sistema mostrando os relacionamentos entre o software e o
hardware, além de sua distribuição física.
9

Figura 7 – Diagrama de Implantação


10

3.2 Bánco de Dádos

Relacionado ao estudo de caso, criamos um DER devidamente


aplicado ao MRN, na primeira forma normal, segunda forma normal e terceira forma
normal, utilizando a ferramenta BrModelo.
No que diz respeito à modelagem conceitual construímos aqui o
Diagrama de Entidade e Relacionamento, identificando as entidades e os
relacionamentos entre elas.
Já quanto ao modelo lógico, definimos as chaves primárias e
estrangeiras, normalização, integridade e referencial.

Figura 8 – DER conceitual


11

Figura 9 – DER lógico

CodVe Fabri Model Cor Plac tipoCombus QtdPorta Opcio


i c o a t s n
V001 Volks Hatch Vermelho Jks- Flex 4 Ar
7654
V002 Volks Sedan Cinza Jkm- Flex 4 ar
9988
Tabela 1 – Tabela Veículos 1ª Forma Normal

Cod CodVe Data Hora Km Status


i
R001 V001 15/10/2016 10:00 107562 Reservado
R002 V002 23/12/2016 09:00 157988 Reservado
Tabela 2 – Tabela Reserva 2ª Forma Normal

3.3 Prográmáçáã o Orientádá á Objetos

Apresentamos à seguir a implementação em C# de cadastro de


funcionários e veículos:

using System;
using System.Collections.Generic;
using System.Linq;
12

using System.Text;
using System.Threading.Tasks;

namespace trabalho_class
{
public abstract class Conectar
{
private string status;
public string Status
{
get { return status; }
}
public void Conectar();
public void Desconectar();
public abstract void Atualizar();
public abstract void Deletar();
public abstract void Adcionar();
}
}
Quadro 1 – Classe conectar

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace trabalho_class
{
class Funcionarios : Conexao,Cadastro,Enderecos
{
public string status
{
get;
}
public int codigo
{
get;
13

}
public string nome
{
get;
}
public string endereço
{
get;
}
public int cep
{
get;
}
public string cidade
{
get;
}
public string estado
{
get;
}

public void Conectar();


public void Desconectar();
public void Adicionar();
public void Atualizar();
public void Excluir();
}

Quadro 2 – Classe funcionarios

3.4 Prográmáçáã o Párá Web I

01 - Servidor HP ProLiant ML310e Gen8 V2 Quad Core Xeon E3-


1220v3 3.1 Ghz 8Mb 8GB 500GB 350W 724980-S05: R$ 2.705,76
14

02 - Computador Positivo Stilo DS3000 com Intel® Dual Core, 2GB,


320GB, Gravador de DVD, HDMI, LED 15.6" e Windows 8.1: R$ 993,90
03 – Plano de Conexão Velox 15Mb: R$ 69,90/mês
04 – Plano de Hospedagem Cloud Computing 50Gb de Disco e
10Mb/s de Banda: R$294,00/mês.

3.5 implementação em PHP

Temos logo abaixo a implementação em PHP da Reserva de


Veículo, da verificação da Reserva e Devolução do Veículo.

<?php
session_start();
include_once "config.php";

extract($_POST);
extract($_GET);

if ($acao == "incluir")
{

if ($cod != '')
{

if (is_numeric($cod))
{

$cod = addslashes(htmlentities($cod));
15

$query_rs_produto = "select * from veículos


where id = '".$cod."'";
$rs_produto =
mysql_query($query_rs_produto) or die(mysql_error());
$row_rs_produto =
mysql_fetch_assoc($rs_produto);
$totalRows_rs_produto =
mysql_num_rows($rs_produto);

if ($totalRows_rs_produto > 0)
{
$registro_produto =
mysql_fetch_assoc($rs_produto);

$add_sql = "INSERT INTO reserva


(id, id_cliente, id_veículo, nome, valor, quantidade,total, id_entregador,status,sessao)
VALUES
(NULL,0,'".$row_rs_produto['id']."','".
$row_rs_produto['nome']."','".
$row_rs_produto['valor']."','1','0',0,'Pendente','".session_id()."')";
$rs_produto_add =
mysql_query($add_sql) or die(mysql_error());
}

}
}
}
16

// Verificamos se a acao é igual a excluir


if ($acao == "excluir")
{
// Verificamos se cod do produto é diferente de vazio
if ($cod != '')
{
// Se for diferente de vazio verificamos se é numérico
if (is_numeric($cod))
{
// Tratamos a variavel de caracteres indevidos
$cod = addslashes(htmlentities($cod));
// Verificamos se o produto referente ao $cod está
no carrinho para o session id correnpondente
$query_rs_car = "SELECT * FROM reserva
WHERE id_veículo = '".$cod."' AND sessao = '".session_id()."'";
$rs_car = mysql_query($query_rs_car) or
die(mysql_error());
$row_rs_carrinho = mysql_fetch_assoc($rs_car);
$totalRows_rs_car = mysql_num_rows($rs_car);

// Se encontrarmos o registro, excluimos do


carrinho
//if ($totalRows_rs_car > 0)
//{
$sql_carrinho_excluir = "DELETE FROM
reserva WHERE id = '".$cod."' AND sessao = '".session_id()."'";
$exec_carrinho_excluir =
mysql_query($sql_carrinho_excluir) or die(mysql_error());
//}else{
// echo $totalRows_rs_car." nao é maior que
zero";
//}
}else{
echo "cod não é numerico";
17

}
}else{
echo "cod está vazio";
}
}

// Verificamos se a ação é de modificar a quantidade do produto


if ($acao == "modifica")
{
$quant = $_POST['qtd'];
// Se for diferente de vazio verificamos se é numérico
if (is_array($quant))
{
// Aqui percorremos o nosso array
foreach($quant as $cod => $qtd)
{
// Verificamos se os valores são do tipo
numeric
if(is_numeric($cod) && is_numeric($qtd))
{
// Fazemos nosso update nas
quantidades dos produtos
$sql_modifica = "UPDATE reserva
SET quantidade = '$qtd' WHERE id_produto = '$cod' AND sessao =
'".session_id()."'";
$rs_modifica =
mysql_query($sql_modifica) or die(mysql_error());
}
}
}

}
18

// Verificamos se a ação é de modificar a quantidade do produto


if ($acao == "finaliza")
{
$id_do_cliente = $_POST['id_do_cliente'];
$id_do_entregador = $_POST['id_do_entregador'];
// Se for diferente de vazio verificamos se é numérico

// Aqui percorremos o nosso array

// Verificamos se os valores são do tipo


numeric

// Fazemos nosso update nas


quantidades dos produtos
$sql_modifica2 = "UPDATE reserva
SET id_cliente = '$id_do_cliente', id_entregador = '$id_do_entregador' WHERE
sessao = '".session_id()."'";
$rs_modifica2 =
mysql_query($sql_modifica2) or die(mysql_error());
//}
//}
//}

// Unset all of the session variables.


$_SESSION = array();

// Finally, destroy the session.


session_destroy();
session_commit();
19

session_regenerate_id(true);
echo "<script>alert('Reserva realizada com sucesso!');</script>";
echo "<script>window.location.href=reserva.php'</script>";
}

?>
20

4 CONCLUSÃO

Este trabalho mostrou resumidamente os conhecimentos


adquiridos por todos os membros do grupo ao longo do semestre, aplicando-os e
pondo em prática a utilização das ferramentas disponibilizadas proporcionando a
cada um de nós a aplicação prática de todo esse conhecimento.
21

REFERÊNCIAS

BRASIL. Programando Para Web Com Php/Mysql. Disponível


em:<http://www.conter.gov.br/uploads/eleicoes/phpmanual.pdf>. Acesso em: 15-out-
2016.

______. Programação para Web com PHP e MYSQL. Disponível em:


<http://www.cin.ufpe.br/~rmd2/Programando_PHP_Web.pdf>. Acesso em: 15-out-
2016.

LIMA, Edwin; REIS, Eugênio. C# e .NET – Guia do Desenvolvedor; 1. ed. Rio de


Janeiro: Campos, 2002.

NISHIMURA, Roberto Yukio. Banco de Dados I. ed. São Paulo: Person Prentice
Hall,2009.

SILVIA, Flávio de Almeida e, Desenvolvimento Orientado a Objetos I. ed. São


Paulo: Person Prentice Hall,2009.

SOMMERVILE, Ian. ENGENHARIA DE SOFTWARE. 8 Edição. São Paulo: Pearson


Addison Wesley, 2007.

TANAKA, Simone Sawasaki, Análise de Sistemas I. ed. São Paulo: Person Prentice
Hall,2009.

UNIVERSIDADE FEDERAL DO PARANÁ. Biblioteca Central. Normas para


apresentação de trabalhos. 2. ed. Curitiba: UFPR, 1992. v. 2.

Você também pode gostar