Você está na página 1de 19

TECNOLOGIA EM ANÁLISE E DESENVOLVIMENTO DE

SISTEMAS

TAÍS DE JESUS BISPO

RA:3071828430

DESAFIO PROFISSIONAL

4ª SÉRIE

VITÓRIA - ES

OUTUBRO 2018
TAÍS DE JESUS BISPO

DESAFIO PROFISSIONAL
4ª SÉRIE
Locadora de Livros Medievais

Trabalho apresentado ao Curso


Superior de Tecnologia em Análise e
Desenvolvimento de Sistemas do
Centro de Educação à Distância
(EAD) – da Universidade Anhanguera,
como requisito parcial para obtenção
das notas das disciplinas de
Linguagem de programação
comercial, programação orientada a
objetos, estrutura de dados,
programação em banco de dados e
sistemas de informação
Orientador (a):

Orientador (a):​​.

VITÓRIA - ES

OUTUBRO DE 2018
RESUMO

No atual cenário mundial a tecnologia se faz presente em quase tudo em nosso dia -
a - dia, seja em uma relógio, calculadora, computador ou smartphone. Para que
esses aparelhos funcionem são desenvolvidos softwares para aproveitar o melhor
desempenho do hardware oferecido, além também de facilitar as tarefas executadas
diariamente pela população nas mais diversas áreas.

Este trabalho traz uma pesquisa recente de algumas das tecnologias utilizadas na
engenharia de software, além de suas definições e alocações no atual mercado de
de desenvolvimento. Tudo isso para descrever melhor como foi realizado o projeto
do sistema da locadora de livros medievais.

Palavras-chave: Software, Linguagem de programação, Sistema de Banco de dados,


UML, Diagrama de caso de Uso.
SUMÁRIO​​.
INTRODUÇÃO. 5

2. PRINCIPAIS TECNOLOGIAS DO MERCADO 6

3. DEFINIÇÕES DO PROJETO 11
1. INTRODUÇÃO
Com o advento dos sistemas de informação e com todas as vantagens
advindas dos mesmos, grande parte das empresas entraram em um
processo de automatização, facilitando o fluxo de informações e o
aproveitamento do tempo de trabalho.

Visando aproveitar destes mesmos recursos de automatização, este


trabalho tem o foco de automatizar a locadora de livros medievais. O
sistema tem como funcionalidade gerar cadastros, movimentar entradas e
saída de livros, movimentar pagamentos, gerar relatórios, permitirá ainda
que o cliente poderá efetuar reservas de livro, promovendo um diferencial
em termos de disponibilidade de informações, visando elevar sua posição
no mercado.

1.1 JUSTIFICATIVA

O desenvolvimento de um software consistente, seguro e de fácil


manipulação, acarretará no melhor atendimento de clientes bem como no
crescimento organizacional da empresa, de modo que, a qualquer
momento, os usuários que tiverem acesso ao software poderão buscar
dados e movimentações para eventuais reuniões e prestações de contas.
Tem ainda como objetivo facilitar o acompanhamento de todo o processo
de locações, devoluções reservas, pagamentos, cadastros de clientes,
controle de estoques, ou mesmo informações que ofereçam suporte para
as mudanças na empresa que possam vir a ser tomadas.

1.2 OBJETIVOS

O objetivo do trabalho é a automatização da empresa oferecendo um


sistema mais prático ao usuário, intuitivo e ao mesmo tempo ágil nos
processos de locação e reservas, com módulo online de agendamento,
utilizando técnicas de UML (Linguagem de Modelagem Unificada) para

modelagem do sistema e a linguagem Java para implantação do mesmo.


2. PRINCIPAIS TECNOLOGIAS DO MERCADO
● Engenharia de software: Termo utilizado para o ramo que levanta requisitos,
cria e implementa software.

"Engenharia de Software é o estabelecimento e o emprego de


sólidos princípios de engenharia de modo a obter software de
maneira econômica, que seja confiável e funcione de forma
eficiente em máquinas reais". - Fritz Bauer

● Linguagem de Programação: As dez linguagens de programação mais


utilizadas na atualidade, são:

Java: Linguagem amplamente usada por desenvolvedores por ser portável e


ser de uma linguagem muito utilizada para desenvolvimento android (sistema
utilizados em smartphones);

JavaScript: Muito utilizada em aplicações web.

Python: Uma das linguagens mais simples de ser lida. Muito utilizada em
desenvolvimento web e learn machine.

C: Uma das mais conhecidas devido as suas variações e muito utilizada por
gigantes do mundo digital, como microsoft e linux. É um tipo de linguagem
que não exigem muito da máquina, por esse motivo seus programas são
encontrados em dispositivos de baixo desempenho.

C++: É uma das variações da linguagem C, sendo bem mais atualizada e


amplamente utilizada para desenvolvimento de programas mais robustos
como jogos, sistemas integrados e etc.

C#: Outra variação em C, porém está caindo em desuso. Amplamente


utilizada em programação de jogos.

Ruby: Usada na construção de serviços mundialmente reconhecidos como o


Airbnb e o Twitter, a linguagem Ruby se caracteriza pela sintaxe de fácil

leitura, permitindo que um desenvolvedor escrever menos código para que


suas aplicações funcionem.
PHP: Usado majoritariamente em aplicações web, a linguagem PHP é útil
para incluir funções a uma página que o HTML não é capaz de suportar.

R:Essa linguagem vem ganhando popularidade nos últimos anos, devido à


sua utilidade na área de big data, que tem recebido mais vagas recentemente
e tende a crescer mais no mercado. Também é considerada uma linguagem
fácil de operar e aprender.

Objective-C:Uma variação do mundialmente conhecido C#, mas específico


para construir aplicativos para iPhone e iPad.

● Banco de dados:

Oracle: A menina dos olhos do Mercado. O Oracle foi lançado em 1980 é um


banco de dados relacional e literalmente domina o mercado a anos. Sua
linguagem de programação oficial é o PL/SQL, atualmente está na versão
12c, que foi lançada em julho de 2014 e se baseia em servidores na nuvem
ou locais.

MySQL: Um banco de dados que tem o foco sistemas online. Ele também
pertence a Oracle, foi lançado em 1996 e está versão 5, esta versão foi
lançada em fevereiro de 2016. O seu grande diferencial é ser um sistema
Open Source. Ele é também um Banco de Dados relacional.

SQL Server: O Banco de Dados da Microsoft é o terceiro colocado no ranking,


ele foi lançado em 1989 e também é um Banco de Dados relacional. Este é
um banco de dados muito utilizado no mercado, mas devido ao fato de hoje
ele suportar linguagens do pacote .NET, além a da sua linguagem principal o
T-SQL, não é tão valorizado quanto o Oracle.

MongoDB: O primeiro e único banco de dados não relacional da lista do TOP


Five dos Bancos de Dados. Nele é utilizado o armazenamento de arquivos
para guardar informações, o conceito de NoSQL. Foi lançado em 2009 pela
MongoDB e é Open Source.

PostgreSQL: Banco de Dados relacional Open Source da PostgreSQL Global


Development Group, foi lançado em 1989 e sua última versão, a 9.5.1 foi
lançada em fevereiro de 2016. Por ser Open Source, assim como o MySQL, é
muito utilizado para sistemas web, caso você queira se especializar em este
tipo de aplicação para criação de pequenos sistemas é altamente
aconselhável que você invista em PostgreSQL.

● Provedores de acesso a internet: Para que um sistema siga no ar, será


necessário um provedor de internet de confiança e que sua velocidade seja
satisfatória, as opções da região apresentadas foram: NET, OI e VIVO.

Na categoria satisfação a NET liderou, seguida pela OI e em terceiro veio a


Vivo.

Na categoria velocidade, a NET foi a escolhida novamente; assim como em


estabilidade, disponibilidade e atendimento.

A Vivo ficou em segundo lugar nos quesitos velocidade, estabilidade,


disponibilidade e atendimento.

Por esse motivo a NET foi apontada como melhor escolha para prover o
serviço de acesso a internet.

● Provedores de serviços de aplicativos:

Amazon Web Services: Como em muitos outros aspectos da computação em


nuvem, a Amazon Web Services é considerada um líder no mercado de
armazenamento em nuvem. A empresa é um player precoce e agressiva no
mercado. Sua oferta acaba movimentando a concorrência, segundo o
Gartner. Seu preço é "benchmark da indústria." A oferta Simple Storage
Service (S3) é o serviço básico de armazenamento, enquanto que Elastic
Block Storage é para grandes volumes.

AT&TO: serviço da AT&T Synaptic está alinhado com o de armazenamento


EMC Atmos, utilizado como instalações de sistemas de armazenamento. Isso
cria uma oportunidade para a AT & T vender soluções para a base sólida de
clientes da EMC e oferecer recursos de nuvem híbrida.
O Gartner observa que este produto tem focado principalmente pequenas e
médias empresas (PMEs).

Google Cloud Storage: Lançado em 2010, Google Cloud Storage é o produto


de armazenamento subjacente para outros produtos e serviços de nuvem do
Google. A oferta inclui o Google App Engine, plataforma de desenvolvimento
de aplicativos, Google Compute Engine e BigQuery, que são máquinas
virtuais baseadas em cloud e uma ferramenta de análise para Big Data. Os
clientes acessam o Google Cloud Storage através de uma API . O serviço
está disponível nos EUA e Europa.

Porém, o que está impedindo a plataforma de armazenamento em nuvem do


Google de ganhar mais presença no mercado é a falta de suporte direcionado
a clientes corporativos, afirma o Gartner

HP: A HP anunciou a versão beta pública de sua plataforma para


armazenamento em nuvem e estreou em maio de 2012. O projeto foi
concebido para trabalhar com a rede de computadores e distribuição de
conteúdo (CDN) e se associou recentemente com a Akamai. A tecnologia é
baseada em OpenStack e a HP oferece suporte via chat 24/7 com garantia de
disponibilidade de 99,95%.

IBM: O armazenamento em nuvem da IBM é parte de sua oferta empresarial


SmartCloud, que inclui outros serviços, tais como o desenvolvimento de
aplicativos baseados em nuvem e infraestrutura.Para o Gartner, a
desvantagem principal da IBM é a falta de integração entre os vários aspectos
da oferta SmartCloud. Por exemplo, a IBM vende sua solução de backup em
nuvem e de recuperação, mas esses serviços não utilizam o Object Storage
SmartCloud em seu servidor.

Internap: A história da Internap é de um provedor de serviços gerenciados


que recentemente tornou-se também um player em nuvem. Seu sistema de
armazenamento na cloud é o AgileFiles, baseado em plataforma OpenStack
Swift e está disponível nos EUA, Europa e Ásia, com planos de expansão
futura.
Microsoft: Depois da Amazon Web Services, o Windows Azure Blob Storage
da Microsoft, é segundo previsões do Gartner, o segundo serviço de
armazenamento mais utilizado. Atualmente, a tecnologia conta com mais de
um bilhão de objetos e cresce 200% ao ano. O produto dá suporte para uma

ampla gama de recursos, incluindo armazenamento de objetos, tabela, SQL


Server e uma rede de entrega de conteúdo (CDN).

O armazenamento Blob Azure está numa verdadeira corrida para oferecer o


menor preço, já que a Amazon e Google baixaram seus custos
constantemente no ano passado. Seu objetivo é ser o mais competitivo entre
os três. O Gartner chama a Microsoft de "rápida seguidora" das
características da AWS. Suas opções de suporte atraem clientes de grandes
empresas, de acordo com a consultoria, oferecendo uma equipe de apoio
prático, baseado em prestações.
3. DEFINIÇÕES DO PROJETO
A “Locadora de Livros Medievais” é uma empresa privada com fins lucrativos e está

situada na região central da cidade de Curitiba, fundada no ano de 2.001, com o

objetivo de atender a demanda de locação de livros direcionada a um público

diferenciado.

Seu fundador Sr. Paulo Gomes é o diretor e conta com um quadro de funcionários

que atuam em diversas áreas, sendo: departamento de locação, compras,

controle de estoque e financeiro.

Seu estoque atual possui títulos, que são classificados como: ouro e prata, sendo os

valores da locação distribuídos pela classificação.

Desde sua fundação, a empresa adquiriu o seu primeiro computador e teve a

necessidade de contratar uma empresa de TI (Tecnologia da Informação) para

informatizar as primeiras rotinas de escritório, na qual, a opção escolhida foi de um

sistema local.

3.1 LEVANTAMENTO DE REQUISITOS


Os pontos chaves analisados foram:
● Dados de entrada e saída para clientes.
● Dados de entrada e saída para livros.
● Dados para entrada e saída de compras
● Dados de entrada e saída para estoque.
● Dados de entrada e saída para aluguel de livros.
● Dados de entrada e saída de funcionários.
● Dados de entrada e saída de empréstimos de livros.
● Dados para entrada e saída para financeiro
A partir das chaves foram definidas as informações relevantes para
montagem do sistema.
● Clientes
● Livros
● Empréstimos
● Reservas
● Compras
● Pagamentos
● Histórico de empréstimos

3.2 USUÁRIOS DO SISTEMA


● Cliente
● Funcionário

3.3 AÇÕES IDENTIFICADAS


● Controlar clientes (cadastrar, localizar histórico de empréstimo)
● Controlar empréstimo (realizar empréstimo, realizar devolução, incluir
histórico de empréstimo)
● Controlar o tempo de empréstimo (incluir livro, excluir livro, alterar livro,
verificar disponibilidade, verificar tempo de empréstimo)
● Controlar compras (comprar livros, incluir valor empréstimo, alterar
valor empréstimo)
● Controlar livros (cadastrar livros, cadastrar autores, cadastrar tipo de
livro)

3.4 MÉTODOS E FERRAMENTAS

3.3.1 UML
A UML – Unified Modeling Language (Linguagem de Modelagem
Unificada), como o próprio nome já diz, é uma linguagem para
modelagem de objetos do mundo real, usada para especificar, construir,
visualizar e documentar um software. Em suma, uma modelagem UML
oferece um “desenho” do software que se pretende desenvolver​.
3.4 CRONOGRAMA DE TRABALHO

Fases/Mês AGO SET OUT NOV


Levantamento de Requisitos
Especificação de requisitos
Diagrama de caso de uso
Especificação de caso de uso
Diagrama de classe
Diagrama de atividades
Diagrama de entidade
relacionamento
Programação

3.5 MODELAGEM BANCO DE DADOS


3.5.1 DIAGRAMA DE ENTIDADE RELACIONAMENTO
3.6 DIAGRAMA DE CASO DE USO

3.7 DESCRIÇÃO CASOS DE USO


CASO DE USO – RESERVAR LIVRO

3.8 LINGUAGEM DE DESENVOLVIMENTO


Eclipse é um IDE para desenvolvimento Java, porém suporta várias outras
linguagens a partir de plugins como C/C++,PHP,ColdFusion, Python, Scala e
plataforma Android. Ele foi feito em Java e segue o modelo open source de
desenvolvimento de software. Atualmente faz parte do kit de desenvolvimento de
software recomendado para desenvolvedores Android.
O projeto Eclipse foi iniciado na IBM que desenvolveu a primeira versão do produto e
doou-o como software livre para a comunidade. O gasto inicial da IBM no produto foi
de mais de 40 milhões de dólares. Hoje, o Eclipse é o IDE Java mais utilizado no
mundo. Possui como característica marcante o uso da SWT e não do Swing como
biblioteca gráfica, a forte orientação ao desenvolvimento baseado em plug-ins e o
amplo suporte ao desenvolvedor com centenas de plug-ins que procuram atender as
diferentes necessidades de diferentes programadores.
O software Eclipse tem a licença EPL (Eclipse Public License).

● Linguagem
ClasseLivro:
public class Livro {
private String tituloDoLivro;
private String codigoDoLivro;
private String tipoDoLivro;
private int anoDeLancamento;
private boolean anoDeLancamento;
private boolean estaReservado;
private Date dataDeReserva;
private boolean estaAlugado;
private Date ultimaDataDeLocacao;
private Date dataDeDevolucao;
private double valorLancamento;
private double valorNormal;
String lancamento;
String reserva;
String Alugado;
public Livro(int anoDoLancamento, double valorLancamento, double
valorNormal){
this.anoDeLancamento=anoDeLancamento;
this.valorLancamento=valorLancamento;
this.valorNormal=valorNormal;
}
public String gettituloDoLivro(){
return tituloDoLivro;
}
public void settituloDoLivro(String tituloDoLivro){
this.tituloDoLivro=tituloDoLivro;
}
public String getcodigoDoLivro(){
return codigoDoLivro;
}
public void setcodigoDoLivro(String codigoDoLivro){
this.codigoDoLivro=codigoDoLivro;
}
public String getgeneroDoLivro(){
return tipoDoLivro;
}
public void setgeneroDoLivro(String tipoDoLivro){
this.tipoDoLivro=tipoDoLivro;
}
public int getanoDeLancamento(){
return anoDeLancamento;
}
public void setanoDeLancamento(int anoDeLancamento){
this.anoDeLancamento=anoDeLancamento;
}
public boolean geteLancamento(){
return eLancamento;
}
public void seteLancamento(boolean eLancamento){
this.eLancamento=eLancamento;
}
public boolean getestaReservado(){
return estaReservado;
}
public void setestaReservado(boolean estaReservado){
this.estaReservado=estaReservado;
}
public Date getdataDeReserva(){
return dataDeReserva;
}
public void setdataDeReserva(Date dataDeReserva){
this.dataDeReserva=dataDeReserva;
}
public boolean getestaAlugado(){
return estaAlugado;
}
public void setestaAlugado(boolean estaAlugado){
this.estaAlugado=estaAlugado;
}
public Date getultimaDataDeLocacao(){
return ultimaDataDeLocacao;
}
public void setultimaDataDeLocacao(Date ultimaDataDeLocacao){
this.ultimaDataDeLocacao=ultimaDataDeLocacao;
}
public Date getdataDeDevolucao(){
return dataDeDevolucao;
}
public void setdataDeDevolucao(Date dataDeDevolucao){
this.dataDeDevolucao=dataDeDevolucao;
}
public double getvalorLancamento(){
return valorLancamento;
}
public void setvalorLancamento(double valorLancamento){
this.valorLancamento=valorLancamento;
}
public double getvalorNornal(){
return valorNormal;
}
public void setvalorNormal(double valorNormal){
this.valorNormal=valorNormal;
}
public void verLivro(){
System.out.println("Título do Livro: "+tituloDoLivro);
System.out.println("Código do Livro: "+codigoDoLivro);
System.out.println("Tipo do Livro: "+tipoDoLivro);
System.out.println("Ano de Lançamento: "+anoDeLancamento);
lancamento = JOptionPane.showInputDialog(null, "É Lançamento?\n\n"
+"Sim\n"
+"Não\n");
if(lancamento=="sim"){
valorLancamento=3.5;
}
if(lancamento=="Não"){
valorNormal=2.0;
}
reverva = JOptionPane.showInputDialog(null, "Está Reservado?\n\n"
+"Sim\n"
+"Não\n");
if(lancamento=="sim"){
System.out.println("Infelizmente o Livro não pode ser locado.");
}
if(lancamento=="Não"){
System.out.println("O Livro pode ser locado");
}
System.out.println("Data da`Última Locação: "+ultimaDataDeLocacao);
System.out.println("Data de Devolução: "+dataDeDevolucao);
}
}

Classe Cliente:
public class Cliente_Livro {
private int codigoCliente;
private String nome;
private int idade;
private String endereco;
private String telefone;
public Cliente_Livro(int codigoCliente, int idade){
this.codigoCliente=codigoCliente;
this.idade=idade;
}
public int getcodigoCliente(){
return codigoCliente;
}
public void setcodigoCliente(int codigoCliente){
this.codigoCliente=codigoCliente;
}
public String getnome(){
return nome;
}
public void setnome(String nome){
this.nome=nome;
}
public int getidade(){
return idade;
}
public void setidade(int idade){
this.idade=idade;
}
public String getendereco(){
return endereco;
}
public void setendereco(String endereco){
this.endereco=endereco;
}
public String gettelefone(){
return telefone;
}
public void settelefone(String endereco){
this.telefone=telefone;
}

public void verDados(){


System.out.println("Código do Cliente: "+codigoCliente);
System.out.println("Nome: "+nome);
System.out.println("Idade: "+idade);
System.out.println("Endereço: "+endereco);
}
}
Classe Funcionário:
public class Funcionario_Livro {
private int codigoFuncionario;
private String nomeFuncionario;
private String enderecoFuncionario;
}
public int getcodigoFuncionario(){
return codigoFuncionario;
}
public void setcodigoFuncionario(int codigoFuncionario){
this.codigoFuncionario=codigoFuncionario;
}
public String getnomeFuncionario(){
return nomeFuncionario;
}
public void setnomeFuncionario(String nomeFuncionario){
this.nomeFuncionario=nomeFuncionario;
}
public String getenderecoFuncionario(){
return enderecoFuncionario;
}
public void setenderecoFuncionario(String enderecoFuncionario){
this.enderecoFuncionario=enderecoFuncionario;
}
public void verDados(){
System.out.println("Código do Funcionário: "+codigoFuncionario);
System.out.println("Nome do Funcionário: "+nomeFuncionario);
System.out.println("Endereço do Funcionário: "+enderecoFuncionario);
}
}

Você também pode gostar