Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Ministrio da Educao
Universidade Catlica de Angola
1
Miguel Sungue Copyright@2016 UCAN
Contedo
Agradecimentos............................................................................................. 4
Resumo.......................................................................................................... 5
Siglas Resumo de alguns elementos utilizados............................................6
Introduo...................................................................................................... 7
1 - Enquadramento........................................................................................ 7
2 - Objetivos................................................................................................... 7
2.1 - Objetivos Gerais.................................................................................. 7
2.2 - Objetivos Especficos..........................................................................8
3-Especificao.............................................................................................. 8
4 - Requisitos do Sistema............................................................................... 8
4.1 Requisitos Funcionais............................................................................. 8
4.2 Requisitos no Funcionais...................................................................9
5 Ferramentas............................................................................................. 9
5.1 - Linguagem de Programao...............................................................9
5.2 - Linguagem de Modelao...................................................................9
5.3 - Plataforma.......................................................................................... 9
5. 4- Framework.......................................................................................... 9
5.5 - APIs..................................................................................................... 9
5.6- Servidores.......................................................................................... 10
6 - Arquitetura do Sistema........................................................................... 10
6.1 Diagram de Casos de Uso.................................................................10
6.2 Diagrama de Classes........................................................................10
7- Implementao........................................................................................ 11
7.1 Home Page Administrador................................................................11
7.2 Gerir Utilizador................................................................................. 12
8 - Camada das regras de negcio...............................................................12
8.1 Utilizador Servlet............................................................................. 12
8.2 Entidade cadastrarUtilizador.jsp.......................................................14
8.3 Entidade listarUtilizador.jsp.................................................................16
8.3 Class Utilizadador.java......................................................................17
8.4 Class ContaFacadeLocal.java............................................................19
8.5 Modelo Utilizador.java.......................................................................20
9 Camada de Persistncia.........................................................................24
9.1 Diagrama da Base de Dados............................................................24
10 Concluses........................................................................................... 25
11-Extenses................................................................................................ 26
2
Miguel Sungue Copyright@2016 UCAN
3
Miguel Sungue Copyright@2016 UCAN
Agradecimentos
Agradeo a todos aqueles que me acompanharam durante toda esta
caminhada. Ao professor da cadeira e aos amigos de estudo. Agradeo,
tambm aos meus orientadores, Bruno Banguela, Herbert Neto, Paulo
Mbunga, Francisco Sebastio e demais colegas pelas sugestes e
contribuies que ajudaram no enriquecimento deste trabalho, por fornecer
os equipamentos e tecnologias indispensveis na realizao deste trabalho. E
por fim, agradeo a meus familiares pelo apoio nesta importante fase de
minha vida.
Ao engenheiro Felisberto Delgado pela pacincia na orientao incentivo
q tornaram possvel concluso deste Projecto.
4
Miguel Sungue Copyright@2016 UCAN
Resumo
Projeto realizado no mbito da cadeira de Sistemas Distribudos e
Paralelos II e tem por objectivo dar o processo no seu todo realizado e
as diferentes fases do seu desenvolvimento.
O principal fato a criao de uma interface grfica com o utilizador,
para a principal operao que a empresa denominada Mawonso
realiza em Leiles Online.
O documento constitudo por onze captulos nos quais se apresenta
o trabalho realizado no decorrer do semestre.
Com os
mesmo,
mdulos
Clientes,
Mas apraz-me dizer que neste documento ser detalhado com maior
preciso o principal objectivo da empresa, que o sorteio do leilo,
desde a fase de lances at o sorteio do vencedor
5
Miguel Sungue Copyright@2016 UCAN
6
Miguel Sungue Copyright@2016 UCAN
Introduo
O mundo Online abriu as portas para diversos tipos de novos
negcios, e alguns deles possuem todas as suas bases de
funcionamento dentro de ambientes digitais. So leiles, Ecommerce, ERP's, Imobilirias, Sistemas de Reservas para Hotis e
Pousadas, Jogos, entre tantos outros...
A Mawonso vem se especializando em algumas destas plataformas, a
fim de poder oferecer solues ainda mais completas, para beneficiar
a sua empresa com ganhos em produtividade e customizao de
processos.
1 - Enquadramento
O sistema de leilo online da Mawonso, possui uma plataforma
completa para realizar leiles online, com lances prvios.
Conta com cadastro de clientes, que aps aprovados, podem dar
lances nos lotes, com notificaes em tempo real a cada lance
superado. Nos lotes os clientes podem conferir fotos, e detalhes. Na
parte administrativa h mdulos para administrar os leiles, lotes,
usurios, lances, relatrios entre outros.
O site de leiles tambm contempla um sistema de administrao,
com acesso restrito para os administradores do site, com cadastros
(para inserir, editar e excluir leiles), relatrios de lances, cadastro de
lotes (com possibilidades de inserir diversas imagens/fotos, regras de
lances), controle de cadastro de clientes e lances.
preciso deixar claro que o leilo virtual no a mesma coisa que
um leilo tradicional. um novo conceito de leilo que possibilita aos
consumidores adquirir produtos dos mais variados, a preos muito
baixos, sendo que, em alguns casos com at 99% de desconto.
2 - Objetivos
2.1 - Objetivos Gerais
Caracterizam-se
como
objetivos
do
presente
trabalho,
o
desenvolvimento de um sistema de leilo voltado para internet, que
implemente os conceitos de multicamadas, utilizando a tecnologia
Java Server Pages. Os objetivos especficos do trabalho so:
7
Miguel Sungue Copyright@2016 UCAN
3-Especificao
Para a especificao do sistema, optou-se pela anlise orientada a
objetos, utilizando a linguagem UML (Unified Modeling Language),
sugerida por Fowler (2000) para a implementao de sistemas
utilizando linguagens orientadas a objetos.
A UML aborda conceitos fundamentais da orientao a objeto,
buscando efetuar um casamento entre mtodo e utilizao prtica,
para cobrir o ciclo de vida de desenvolvimento.
O modo para descrever os vrios aspectos de modelagem pela UML
atravs da notao definida pelos seus vrios tipos de diagramas. Um
diagrama uma apresentao grfica de uma coleo de elementos
de modelo, frequentemente conectados por arcos e vrtices (outros
elementos do modelo).
Segue abaixo, os diagramas que sero utilizados para a especificao
do sistema:
a) Diagrama de casos de uso;
b) Diagrama de classes.
Para a construo dos diagramas foi utilizada a ferramenta Astah
Professional, seguindo os padres de modelagem desta ferramenta.
8
Miguel Sungue Copyright@2016 UCAN
4 - Requisitos do Sistema
4.1 Requisitos Funcionais
Aps um forte na viabilidade de implementao do sistema, cheguei a
concluso de ser preciso avaliar os seguintes requisitos:
O
O
O
O
O
O
O
sistema
sistema
sistema
sistema
sistema
sistema
sistema
5 Ferramentas
NetBeans 7.4
Astah Professional
Java
UML
9
Miguel Sungue Copyright@2016 UCAN
5.3 - Plataforma
Java EE 6
5. 4- Framework
JSP
5.5 - APIs
JDK 1.7
EJBs
5.6- Servidores
Glassfish 4.0
6 - Arquitetura do Sistema
6.1 Diagram de Casos de Uso
Diagramas de caso de uso fornecem um modo de descrever a viso
externa do sistema e suas interaes com o mundo exterior,
representando uma viso de alto nvel de funcionalidade intencional
mediante o recebimento de um tipo de requisio do usurio.
A figura abaixo demonstra claramente as interaes do sistema com
o mundo exterior, delimitando os personagens e funes do sistema.
O anunciante ou compradora poder efetuar o cadastro no sistema. O
anunciante ir anunciar os seus produtos e efetivar ou fechar a
negociao sobre a maior proposta do comprador. O comprador
poder consultar os anncios e efetuar propostas sobre os mesmos.
10
Miguel Sungue Copyright@2016 UCAN
7- Implementao
Nesta etapa desenvolvido o sistema de leilo propriamente dito,
onde so descritas as tcnicas e ferramentas utilizadas para
implementao segundo os objetivos propostos. Alm deste
apresentado um estudo de caso, mostrando as funcionalidades do
sistema do ponto de vista do usurio.
11
Miguel Sungue Copyright@2016 UCAN
Descrio
Gerir
Utilizador
Cadastr
Alter
Elimina
Lista
r
12
Miguel Sungue Copyright@2016 UCAN
pessoaFacade.create(pessoa);
conta.setUsername(request.getParameter("txtusername"));
conta.setSenha(request.getParameter("txtsenha"));
conta.setEmail(request.getParameter("txtemail"));
conta.setAcesso(1);
pessoa2=pessoaFacade.consultarUltimaPessoa();
if(pessoa2!=null){
conta.setIdpessoa(pessoa2);
contaFacade.create(conta);
request.setAttribute("resultado", "Cadastrado com sucesso");
request.getRequestDispatcher("/inserirUtilizador.jsp").forward(request,
response);
}
else{
request.setAttribute("resultado", "Erro ao cadastrar");
request.getRequestDispatcher("/inserirUtilizador.jsp").forward(request,
response);
}
}
}
</section>
</div>
</td>
<td>
<div class="container">
<section class="register">
<h3>Dados Conta</h3>
<div class="reg_section personal_info">
<input value="" id="txtusername"
name="txtusername" type="text" placeholder="username" required="true"
autofocus="">
<input value="" id="txtsenha"
name="txtsenha" type="password" placeholder="senha" required="true"
autofocus="">
15
Miguel Sungue Copyright@2016 UCAN
</td>
</tr>
</table>
</fieldset>
</form>
16
Miguel Sungue Copyright@2016 UCAN
18
Miguel Sungue Copyright@2016 UCAN
@NotNull
@Size(min = 1, max = 45)
@Column(name = "senha")
private String senha;
// @Pattern(regexp="[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\\.[a-z0-9!#$
%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\\.)+[a-z0-9](?:[az0-9-]*[a-z0-9])?", message="Invalid email")//if the field contains email
address consider using this annotation to enforce field validation
@Basic(optional = false)
@NotNull
@Size(min = 1, max = 45)
@Column(name = "email")
private String email;
@Basic(optional = false)
@NotNull
@Column(name = "acesso")
private int acesso;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idconta")
private List<Licitacoes> licitacoesList;
@JoinColumn(name = "idpessoa", referencedColumnName = "idpessoa")
@ManyToOne(optional = false)
private Pessoa idpessoa;
@OneToMany(cascade = CascadeType.ALL, mappedBy = "idconta")
private List<Artigo> artigoList;
public Conta() {
}
public Conta(Integer idconta) {
this.idconta = idconta;
}
public Conta(Integer idconta, String username, String senha, String email,
int acesso) {
this.idconta = idconta;
this.username = username;
this.senha = senha;
this.email = email;
this.acesso = acesso;
}
public Integer getIdconta() {
return idconta;
}
public void setIdconta(Integer idconta) {
this.idconta = idconta;
}
20
Miguel Sungue Copyright@2016 UCAN
21
Miguel Sungue Copyright@2016 UCAN
@XmlTransient
public List<Artigo> getArtigoList() {
return artigoList;
}
public void setArtigoList(List<Artigo> artigoList) {
this.artigoList = artigoList;
}
@Override
public int hashCode() {
int hash = 0;
hash += (idconta != null ? idconta.hashCode() : 0);
return hash;
}
@Override
public boolean equals(Object object) {
// TODO: Warning - this method won't work in the case the id fields are
not set
if (!(object instanceof Conta)) {
return false;
}
Conta other = (Conta) object;
if ((this.idconta == null && other.idconta != null) || (this.idconta != null
&& !this.idconta.equals(other.idconta))) {
return false;
}
return true;
}
@Override
public String toString() {
return "com.ucan.entidades.Conta[ idconta=" + idconta + " ]";
}
}
22
Miguel Sungue Copyright@2016 UCAN
9 Camada de Persistncia
9.1 Diagrama da Base de Dados
Apresento a imagem que compe o referido diagrama:
23
Miguel Sungue Copyright@2016 UCAN
10 Concluses
Com a disseminao do uso da internet nos ltimos anos, a
arquitetura multicamadas tem-se tornado uma arquitetura bastante
utilizada visando atender as necessidades de sistemas de
informaes requeridos pelas empresas para buscar atender seus
objetivos e a satisfao de seus clientes. O objetivo principal deste
trabalho foi alcanado atravs da implementao de um sistema de
leilo voltado para a internet.
Com o desenvolvimento do presente trabalho observou-se que a
arquitetura multicamadas oferece vantagens significativas sobre as
demais arquiteturas de software existentes no mercado.
Porm, com estudo e implementao da arquitetura multicamadas
atravs da tecnologia Java Server Pages, algumas dificuldades foram
encontradas devido a quantidade de tecnologias que so envolvidas
no desenvolvimento de um sistema para internet, sendo necessrio
estudar cada uma delas para a correta implementao do sistema.
Neste trabalho, foi utilizado tecnologias para criao das telas (HTML,
JavaScript e JSP), tecnologias para encapsular as regras de negcios
(JavaBeans), linguagens para trabalhar com banco de dados como o
SQL (Structured Query Language) alm de ferramentas para
desenvolvimento, servidor de aplicao e sistema gerenciador de
banco de dados.
Mesmo com um grande nmero de recursos e ferramentas
envolvidas, a tecnologia
JavaServer Pages se mostrou uma excelente soluo para
desenvolvimentos de sistemas para a internet, destacando os
seguintes pontos:
a) JavaServer Pages tem suporte a rpida construo e
manuteno das aplicaes, pela implementao da arquitetura
multicamadas, atravs da construo de componentes
reutilizveis e pela clara separao da lgica de apresentao
da lgica de negcios;
b) JSP no est vinculado a um fabricante. Qualquer camada de
uma aplicao JSP tem suporte a vrias tecnologias existentes
no mercado:
11-Extenses
Como sugestes para trabalhos futuros sugere-se:
a) Estudar o funcionamento dos servidores de aplicao;
b) Utilizar Java Server Pages na implementao de sistemas
distribudos utilizando o suporte de Java para Enterprise
JavaBeans;
Sugere-se ainda estudos no sentido de aprofundar a investigao do
conceito de multicamadas o que diz respeito a camadas de gerncia
de aplicaes distribudas, utilizando tecnologias como Enterprise
JavaBeans.
Alm das camadas de lgica do negcio, acesso a banco de dados e
interface com o usurio, pode-se propor arquiteturas mais complexas,
que implementem camadas de servios tpicos de sistemas
distribudos, tais como servios de controlo de transaes, servios de
comunicao entre partes do sistema, tolerncia a falhas, dentre
outras.
Tais estudos representam a evoluo deste trabalho no que diz
respeito ao aprofundamento de questes relativas a arquiteturas de
sistemas distribudos.
25
Miguel Sungue Copyright@2016 UCAN