Вы находитесь на странице: 1из 19

UNIVERSIDADE ANHANGUERA – **************

**************** - RA:***************
**************** - RA:***************
**************** - RA:***************

DESAFIO PROFISSIONAL APLICADO AO CURSO SUPERIOR DE


TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

SÃO BERNARDO DO CAMPO/SP


2017
1
**************** - RA:***************
**************** - RA:***************
**************** - RA:***************

DESAFIO PROFISSIONAL APLICADO AO CURSO SUPERIOR DE


TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE SISTEMAS

Desafio Profissional Aplicado ao Curso Superior de


Tecnologia em Análise e Desenvolvimento de
Sistemas (Desafio Profissional) para obtenção de
nota, sob orientação do Tutor à distância.

Orientador: ****************************

SÃO BERNARDO DO CAMPO/SP


2017

2
RESUMO

O objetivo da atividade é criar um sistema de informação para a empresa “Locadora


de livros medievais” visando o desenvolvimento de um sistema de locação online dos
livros para o seu público.

Para isso temos a integração de sistemas de informação e a estruturação das


possibilidades através de linguagens de programação C#, JAVA e programação
Orientada a Objetos, aliando o Banco de dados para sua realização.

As vantagens e benefícios da criação de um site para divulgação da empresa são


incontáveis.

3
LISTA DE ILUSTRAÇÕES

Figura 1 – Diagrama ER ..................................................................................................... 12

4
LISTA DE TABELAS

Tabela 1 - Descrição ................................................................................................... 8


Tabela 2 - Requisitos funcionais ................................................................................. 8
Tabela 3 - Cadastro de cliente .................................................................................... 9
Tabela 4 - Cadastro de autores .................................................................................. 9
Tabela 5 - Cadastro de livros ...................................................................................... 9
Tabela 6 - Classificação de título .............................................................................. 10
Tabela 7 - Empréstimo de livros ............................................................................... 10
Tabela 8 - Requisitos não funcionais ........................................................................ 10

5
SUMÁRIO

1. Sistema de informação ....................................................................................................................... 7


1.1. Levantamento de requisitos ....................................................................................................... 7
1.2. Proposta de infraestrutura.......................................................................................................... 8
2. Requisitos funcionais e não-funcionais ............................................................................................. 8
a. Requisitos funcionais (RF) .............................................................................................................. 8
b. Requisitos não funcionais (RNF) .................................................................................................. 10
3. Metodologia ..................................................................................................................................... 11
3.1. Modelagem do projeto ............................................................................................................. 11
a. Banco de dados ......................................................................................................................... 11
b. Diagrama ER (Entidades-Relacionamento) .............................................................................. 12
4. Programação ..................................................................................................................................... 15
4.1. Pesquisa ..................................................................................................................................... 15
4.2. Classes ........................................................................................................................................ 16
5. Referências Bibliográficas ................................................................................................................ 19

6
1. Sistema de informação

1.1. Levantamento de requisitos

O levantamento de requisitos é umas das partes mais importantes do processo que


resultará no desenvolvimento de um sistema. Entender aquilo que o cliente deseja ou
o que o cliente acredita que precisa e as regras do negócio ou processos do negócio.
Isso é o fator determinante que move essa importante função que faz parte da
Engenharia de Software (Engenharia de requisitos).

Em nossa pesquisa com colaboradores de médias e grandes empresas encontramos


o seguinte quadro:

Pequenas/ Médias empresas.


 Baixo investimento
 Equipamentos desatualizados
 Profissionais com pouca qualificação
 Infraestrutura inadequada, etc...

Em sua grande maioria pequenas e médias empresas, sem recursos para grandes
investimentos, apresentam falhas que impactam na qualidade que invariavelmente
acabam afetando seus negócios.

Grandes empresas.
 Investimento em infraestrutura
 Investimento em equipamentos
 Investimentos em softwares
 Investimento em profissionais qualificados, etc...

Já as grandes empresas apresentaram um cenário totalmente inverso.


Com o aporte financeiro que dispõe possuem um quadro de TI de porte condizente
com seu faturamento e investem nesse departamento.

Atualmente a terceirização da infraestrutura de servidores tem sido uma tendência


utilizada em larga escala, devido ao baixo custo de servidores em nuvem, exigindo
7
apenas que a empresa disponha de um acesso à internet através de um provedor de
acesso.

1.2. Proposta de infraestrutura

Foi escolhido um servidor em nuvem para redução de custo e otimização dos


serviços.
As especificações do servidor escolhido foi a seguinte:

Descrição
 Memória: 2 GB
 CPU: 2 vCPUs
 Disco:50 GB
 Transferência Mensal: 175 G
Tabela 1 - Descrição

A configuração se mostra suficiente para atender a demanda de tráfego da empresa.

2. Requisitos funcionais e não-funcionais

a. Requisitos funcionais (RF)

Número Requisito Funcional Descrição

RF1 Cadastro de clientes Nome completo, Data de nascimento,


RG, CPF, Logradouro, Número,
Complemento, Bairro, Cidade, UF,
CEP

RF2 Cadastro de autores Nome completo

RF3 Cadastro de livros Título da obra, Autor (es), Quantidade


de exemplares disponíveis

RF4 Classificação do título Tipo de classificação

RF5 Empréstimos de livros Nome do cliente, Data de retirada,


Data de devolução, Exemplar (es)
Tabela 2 - Requisitos funcionais

8
Cadastro de clientes ( ) Oculto

Descrição Cadastro completo com os dados do cliente, onde deve ser


possível interagir com o fluxo de locação e seu histórico.

Cód - Nome Restrição Categoria Desejável Permanente

RF1 - Não permitir Básica x


Cadastro cadastro de Usabilidade
Clientes clientes
menores de
idade
Tabela 3 - Cadastro de cliente

Cadastro de autores ( ) Oculto

Descrição Cadastro com nome de autores de livros para vincular às obras


disponíveis na locadora para facilitar busca por autor.

Cód - Nome Restrição Categoria Desejável Permanente

RF2 - Não permitir Básica x


Cadastro repetição de Usabilidade
Autores autores
Tabela 4 - Cadastro de autores

Cadastro de livros ( ) Oculto

Descrição Cadastro completo de exemplares com vínculo com seu(s)


autor(es) e definição da quantidade de exemplares disponíveis na
locadora.

Cód - Nome Restrição Categoria Desejável Permanente

RF3 - Permitir a Básica x


Cadastro definição de Usabilidade
Livros vários autores Controle
para um título
Tabela 5 - Cadastro de livros

9
Classificação de título ( ) Oculto

Descrição Classificação fixa de títulos para precificação.

Cód - Nome Restrição Categoria Desejável Permanente

RF4 - Classe Um título deve Básica x


Título ter apenas Usabilidade
uma
classificação
Tabela 6 - Classificação de título

Empréstimo de livros ( ) Oculto

Descrição Gestão de empréstimos realizados. Cliente pode alugar diversos


livros e a devolução deve ser total, além de poder locar o mesmo
título quantas vezes ele quiser. Apenas um usuário pode realizar
empréstimos na locadora.

Cód - Nome Restrição Categoria Desejável Permanente

RF5 - Não permitir Controle x


Empréstimo novas
Livros locações caso
não sejam
devolvidos
todos os
exemplares
retirados na
última locação
realizada pelo
cliente
Tabela 7 - Empréstimo de livros

b. Requisitos não funcionais (RNF)

Conexão internet ( x ) Oculto

Descrição A conexão de dados é fundamental para o funcionamento do


sistema.

Cód - Nome Restrição Categoria Desejável Permanente

RNF1 - Dados - Comunicação x


GPRS
Tabela 8 - Requisitos não funcionais

10
3. Metodologia

Foi adotado a metodologia RUP (Rational Unified Process, ou Processo Unificado da


Rational) pois o seu principal objetivo é atender as necessidades dos usuários
garantindo uma produção de software de alta qualidade que cumpra um cronograma
e um orçamento previsíveis. Assim, o RUP mostra como o sistema será construído na
fase de implementação, gerando o modelo do projeto e, opcionalmente, o modelo de
análise que é utilizado para garantir a robustez. O RUP define perfeitamente quem é
responsável pelo que, como as coisas deverão ser feitas e quando devem ser
realizadas, descrevendo todas as metas de desenvolvimento especificamente para
que sejam alcançadas.

3.1. Modelagem do projeto

a. Banco de dados
Para a composição da base de dados do sistema foi utilizado o MySQL, que é um
sistema gerenciador de banco de dados relacional de código aberto usado na maioria
das aplicações gratuitas para gerir suas bases de dados. O serviço utiliza a linguagem
SQL (Structure Query Language – Linguagem de Consulta Estruturada), que é a
linguagem mais popular para inserir, acessar e gerenciar o conteúdo armazenado num
banco de dados.
Abaixo segue algumas das principais características do MySQL
 Multiplataforma, suporta diferentes plataformas: como por exemplo, Win32,
Linux, FreeBSD, Unix, etc.
 Suporte a múltiplos processadores.
 Banco de dados de código aberto e gratuito.
 Um sofisticado sistema de senhas criptografadas flexível e seguro.
 Suporte às API´s das Seguintes linguagens: PHP, Perl, C, C++, Java, Pynthon,
etc...

11
b. Diagrama ER (Entidades-Relacionamento)

Figura 1 – Diagrama ER

Fonte: Própria

c. Script SQL

CREATE TABLE Autores (


Cod_Autor INT NOT NULL,
Nome_Autor VARCHAR(100)
);

ALTER TABLE Autores ADD CONSTRAINT PK_Autores PRIMARY KEY (Cod_Autor);

12
CREATE TABLE Classe (
Cod_Classe INT NOT NULL,
Tip_Classe CHAR(10),
Valor FLOAT(10)
);

ALTER TABLE Classe ADD CONSTRAINT PK_Classe PRIMARY KEY (Cod_Classe);

CREATE TABLE Livros (


Cod_Livro INT NOT NULL,
Cod_Classe INT NOT NULL,
Cod_Autor INT NOT NULL,
Titulo VARCHAR(100),
QtdExemplares INT,
QtdDisponivelEmprestar INT
);

ALTER TABLE Livros ADD CONSTRAINT PK_Livros PRIMARY KEY


(Cod_Livro,Cod_Classe,Cod_Autor);

CREATE TABLE UF (
Cod_Estado INT NOT NULL,
Estado CHAR(10)
);

ALTER TABLE UF ADD CONSTRAINT PK_UF PRIMARY KEY (Cod_Estado);

CREATE TABLE Emprestimo (


Cod_Emprestimo INT NOT NULL,
Cod_Livro INT NOT NULL,
Cod_Classe INT NOT NULL,
Cod_Autor INT NOT NULL,
DataRetira DATE,
DataDevolve DATE,
ValorTicket FLOAT(10)

13
);

ALTER TABLE Emprestimo ADD CONSTRAINT PK_Emprestimo PRIMARY KEY


(Cod_Emprestimo,Cod_Livro,Cod_Classe,Cod_Autor);

CREATE TABLE Clientes (


CPF VARCHAR(10) NOT NULL,
Cod_Estado INT NOT NULL,
Nome VARCHAR(50),
DataNasc DATE,
RG VARCHAR(9),
Logradouro VARCHAR(100),
Numero INT,
Compl CHAR(20),
Bairro CHAR(30),
Cidade CHAR(30),
PermitirEmprestimo BOOLEAN
);

ALTER TABLE Clientes ADD CONSTRAINT PK_Clientes PRIMARY KEY


(CPF,Cod_Estado);

ALTER TABLE Livros ADD CONSTRAINT FK_Livros_0 FOREIGN KEY (Cod_Classe)


REFERENCES Classe (Cod_Classe);

ALTER TABLE Livros ADD CONSTRAINT FK_Livros_1 FOREIGN KEY (Cod_Autor)


REFERENCES Autores (Cod_Autor);

ALTER TABLE Emprestimo ADD CONSTRAINT FK_Emprestimo_0 FOREIGN KEY


(Cod_Livro,Cod_Classe,Cod_Autor) REFERENCES Livros
(Cod_Livro,Cod_Classe,Cod_Autor);

ALTER TABLE Clientes ADD CONSTRAINT FK_Clientes_0 FOREIGN KEY


(Cod_Estado) REFERENCES UF (Cod_Estado);

14
4. Programação

4.1. Pesquisa

Em nossa aplicação utilizaremos a linguagem C#, pois ela fornece os recursos


importantes para os programadores - além da orientação a objetos -,strings,
elementos gráficos, componentes de interface com o usuário gráfica (GUI), tratamento
de exceções, múltiplas linhas de execução, estruturas de dados pré-empacotadas que
facilitam a implementação de itens adicionais de segurança, interage facilmente junto
ao processamento no banco de dados e principalmente a facilidade de implementar
em servidores web baseados em Windows Server, que rodam nativamente aplicações
desenvolvidas nessa linguagem, reduzindo custos e aumentando a velocidade de
implementação.

A linguagem C# foi influenciada por várias linguagens, como por exemplo, JAVA e
C++. Na verdade, ela é uma junção das principais vantagens dentre essas linguagens,
melhorando suas implementações e adicionando novos recursos, fazendo a
linguagem atrativa para desenvolvedores que queiram migrar para o Microsoft .NET.

Sua sintaxe é simples e de fácil aprendizagem, muito familiar com a sintaxe de JAVA
e C. Além disso, simplifica muitas complexidades do C++, fornecendo recursos
poderosos, como tipos de valor nulo, enumerações, delegações, expressões lambdas
e acesso direto à memória, suporte a métodos e tipos genéricos, gerando uma melhor
segurança de tipo e desempenho.

Como C# é uma linguagem orientada a objetos, ela suporta conceitos como


encapsulamento, herança e polimorfismo. Todas suas variáveis e métodos são
encapsulados dentro das definições de uma classe. Ela é usada na maioria das
classes do .NET framework. Foi a primeira linguagem orientada a componentes da
família C/C++, segue os padrões POO, onde tudo deriva de um ancestral comum, no
caso de C# é System.Object.

15
4.2. Classes
Foi determinada a criação de três classes implementando situações que o sistema
deve atender.

1ª-Classe: btn_Cadastro_Clientes(object sender, EventArgs e)

public class Usuario


{
double id;
String nome;
String cpf;
public String getCpf()
{
return cpf;
}
public void setCpf(String cpf)
{
this.cpf = cpf;
}
public double getId()
{
return id;
}
public void setId(double id)
{
this.id = id;
}
public String getNome()
{
return nome;
}
public void setNome(String nome)
{
this.nome = nome;
}
}

public class Usuario


{
private DbConnection connection;
int id;
String nome;
String cpf;
public Usuario()
{
this.connection = new ConnectionFactory().getConnection();
}
public void adiciona(Usuario usuario)
{
String sql = "INSERT INTO usuario(nome,cpf) VALUES(?,?)";
try
{
PreparedStatement stmt = connection.prepareStatement(sql);
stmt.setString(1, usuario.getNome());
stmt.setString(2, usuario.getCpf());
stmt.execute();
stmt.close();
}
catch (SQLException u)
{
throw new RuntimeException(u);

16
}
}
}

2ª-Classe: Consultar

private void btn_Pesquisar_Cliente(object sender, EventArgs e) {


]
try
{
Class.forName("com.mysql.jdbc.Driver");
Connection conn;
conn = DriverManager.getConnection("caminho_base", "usuario",
"senha");
String query = "SELECT * FROM Clientes WHERE Nome like ?";
PreparedStatement cmd;
cmd = conn.prepareStatement(query);
cmd.setString(1, '%' + jTextField1.getText() + '%');
ResultSet rs;
rs = cmd.executeQuery();
DefaultTableModel model = (DefaultTableModel)jTable1.getModel();

model.setNumRows(0);

while (rs.next())
{
model.addRow(
new Object[]{
rs.getString("codigo"),
rs.getString("nome_do_cliente"),
}
)
}
}
catch (ClassNotFoundException e)
{
Console.WriteLine( e+"Classe não encontrada.");
}
catch (SQLException e)
{
Console.WriteLine(e+"Error" + e.getMessage());
}
}
3ª-Classe: Cadastro de Autores

public class Inserir_Autor


{
string 1 = Console.ReadLine();
Console.WriteLine("Cadastrar Autor");
Console.WriteLine("Digite os dados: " + "\nNome do autor: ");
String nome = 1.nextLine();
Dados Autores;
autor = new Dados();
autor.setNomeAutor(nome);
ArrayList<Dados> autor = new ArrayList<Dados>();
Autores.add(Inserir_Autor);
Console.WriteLine(autor.getNome());
}
}

public class Inserir_Autor


{
private String nome;
public Dados()
{

17
}
public String getNome()
{
return nome;
}

18
5. Referências Bibliográficas

VERAS, Manoel. COMPUTAÇÃO EM NUVEM: NOVA ARQUITETURA DE TI.


Brasport.

JAMSA, Kris A. CLOUD COMPUTING. Jones & Bartlett, 2011.

SOMMERVILLE, Ian. ENGENHARIA DE SOFTWARE. (Cap. 4, seção 4.1), 9a.


Edição. Pearson Education, 2011.

SEBESTA, Robert W. CONCEITOS DE LINGUAGEM DE PROGRAMAÇÃO.


Bookman, 2011.

FILHO, Wilson de Pádua Paula. ENGENHARIA DE SOFTWARE, FUNDAMENTOS,


MÉTODOS E PADRÕES. LTC, 2009.

LARMAN, Craig. UTILIZANDO UML E PADRÕES - UMA INTRODUÇÃO À ANÁLISE


E AO PROJETO ORIENTADO A OBJETOS E DESENVOLVIMENTO ITERATIVO.
Bookman, 2011.

19

Вам также может понравиться