• Nenhum resultado encontrado

[Arquitectura da aplicação]

N/A
N/A
Protected

Academic year: 2021

Share "[Arquitectura da aplicação]"

Copied!
20
0
0

Texto

(1)

[Arquitectura da aplicação]

Resumo do documento:

Este documento tem como objectivo especificar a arquitectura do Sistema de Informações da ANET. Nele estão presente informações estruturais da aplicação, necessárias ao correcto entendimento da arquitectura organizacional do mesmo.

Palavras-Chave:

Arquitectura, interface da aplicação

Histórico de versões:

Versão Data Realizado por

(2)

Índice

1 Introdução ... 3

2 Arquitectura ... 4

2.1 Arquitectura geral do sistema ... 4

2.1.1 Diagrama da Arquitectura de Sistema... 4

2.2 Camada de apresentação ou interface ... 5

2.3 Camada de negócio ... 5

2.4 Camada de dados ... 5

3 Estrutura ... 6

3.1 Visão Geral ... 6

3.1 Aplicação ANET ... 7

3.2 Módulos da Aplicação ANET ... 7

3.3 Estrutura do código desenvolvida para Aplicação: ... 8

(3)

Este documento tem como objectivo especificar a arquitectura do Sistema de Informação da ANET. Para a arquitectura foram considerados factores como a finalidade do sistema, ambiente de execução, tipo de utilizadores, tipo de dados e requisitos funcionais e não funcionais. Atendendo aos factores analisados, a arquitectura a ser adoptada atender às características descritas nas próximas secções.

Objectivo:

O desenvolvimento do projecto tem como objectivo, a performance, escalabilidade, portatibilidade e segurança do sistema.

Restrições:

Para o seu desenvolvimento a que levar em consideração as ferramentas a utilizar, como o utilizador poderá conectar-se ao sistema e o tipo de linguagem a utilizar para o seu desenvolvimento.

1. Ferramentas utilizadas:

• Geany – ferramenta de edição de texto.

• PHPMyAdmin – ferramenta de administração de Base de Dados. • FileZilla(Client) – ferramenta FTP para transferência de dados. • Apache – servidor http open source.

2. Formas de conectividade entre hardware:

A conectividade entre o cliente e o servidor deverá ser efectuada por meio de Internet.

3. Linguagem de programação lado do cliente:

A linguagem de desenvolvimento utilizada para o sistema de cliente será HTML, JavaScript/Jquery, CSS.

4. Linguagem programação lado do servidor: PHP do lado do servidor e SQL.

(4)

2 Arquitectura

2.1 Arquitectura geral do sistema

O sistema será composto por três camadas:

• Camada de apresentação ou interface. • Camada de negócio

• Camada de dados

2.1.1 Diagrama da Arquitectura de Sistema

(5)

2.2 Camada de apresentação ou interface

Esta camada é a responsável pela apresentação do Sistema de Informação da ANET. Este S.I corre num browser, sendo responsável por apresentar os dados e imagens ao utilizador final.

2.3 Camada de negócio

Esta corresponde à camada de aplicação onde são implementadas as regras de negócio através de módulos de acesso às bases de dados escritos em PHP. Os dados provenientes da camada de dados são manipulados de acordo com as necessidades e lógica de negócio da empresa entregando-os à camada de apresentação.

2.4 Camada de dados

Nesta camada encontram-se todas as estruturas de armazenamento de dados onde é guardada toda a informação que a aplicação apresenta. É a camada responsável pela manutenção, integridade dos dados e informações da aplicação.

(6)

3 Estrutura

Nessa sessão será definida a decomposição em camadas da aplicação lógica da aplicação e serão explorados todos os módulos do mesmo. Também será explicada a estrutura de codificação da aplicação.

3.1 Visão Geral

Níveis da aplicação do Sistema da Informação da ANET:

Nível Descrição Exemplo

A aplicação é composta por vários grupos de módulos

S.I -ANET

Um grupo de módulo separa uma aplicação em interface com

requisitos lógicos

Interface com o utilizador

Um módulo é um conjunto de sub-menus do mesmo dominio mas

com conteúdos e estrutura diferentes

Membro

Sub-menu é um grupo de operações pertencentes a um domínio comum

Planear Formações

Operações é uma acção que o sistema executa, uma acção está associada a uma edição, remoção,

visualização

Adicionar Formações

Figura 2 – Visão geral dos níveis de decomposição do sistema de informação da ANET.

Aplicação

Grupo de Módulos

Módulos

Sub-Menu

(7)

3.1 Aplicação ANET

A aplicação ANET será composta por dois grupos: Aplicação ANET que será a composição dos vários módulos e a parte da conexão com o Servidor Apache

Figura 3 – Decomposição do sistema ANET em módulos.

3.2 Módulos da Aplicação ANET

A aplicação ANET encontra-se devida em 7 módulos, sendo elas representadas na figura a seguir:

ANET

Aplicação

ANET

Servidor

Apache

Aplicação ANET

Declarações Documentos Insc./Estágio Membros Secretária Perfil Configurações::Sistema

(8)

Figura 4 - Decomposição da aplicação ANET em módulos.

Nota: Estes são os módulos que forma desenvolvidas pela estagiária para nova plataforma, sendo que a aplicação irá conter outros módulos que serão posteriormente desenvolvidos.

Módulo secretaria e declarações só encontram desenvolvidos os layouts. Módulo Perfil e Configurações::Sistema foram desenvolvidas pela orientadora.

3.3 Estrutura do código desenvolvida para Aplicação:

A aplicação encontra-se sub-dividada em pastas, dispostas segundo uma ordem lógica do ponto de vista estrutural, que agrupam um conjunto de ficheiros (.php, .css ou .js) de acordo com a sua finalidade.

A figura seguinte retrata a estrutura da aplicação:

Estrutura:

• internal, responsável pela manipulação de dados da aplicação, quer sejam dados

introduzidos pelo utilizador (input) ou dados que se prevê que a mesma apresente

(output).

Nesta pasta, encontram-se as seguintes pastas:

 html2fpdf – Pasta que conterá os ficheiros geradores de PDFs;

 includes – Pasta que inclui todos os ficheiros de responsáveis pela execução

de comandos SQL.

SI_ANET

Internal

Módulos

Themes

config.php

index.php

login.php

(9)

• modules, esta pasta possui uma sub-pasta components (armazena os icons referentes aos

módulos), e um conjunto de sub-pastas para cada um dos módulos que compõem a

interface gráfica para o utilizador. Por cada novo módulo que venha a compor a

aplicação, este ficará alojado nesta pasta, garantindo-se não só uma organização no

código para uma fácil leitura, como a característica modelar que se pretende com a

aplicação.

Cada uma das sub-pastas contém:

 Um ficheiro main.php, considerado o motor do módulo, uma vez que efectua a

ponte entre a interface deste com a manipulação dos dados, na Base de Dados,

adjacentes às funcionalidades pretendidas.

 Uma pasta html, com os ficheiros responsáveis pelo desenho das funcionalidades

pretendidas: apresentação de layouts quer para a inserção de dados quer para

visualização dos dados manipulados, respeitantes ao módulo.

• themes, esta pasta concentra todos os ficheiros que compõem a interface base da

aplicação. O conteúdo de cada módulo é carregado, quando solicitado, mediante o

conteúdo desta Pasta.

Está organizada da seguinte forma:

Sub-Pastas:

default, contém sub-pastas com as componentes essenciais ao carregamento do

módulos e os ficheiros base para o layout da aplicação.

Sub-Pastas:

 imagens, pasta com as imagens da interface base com o utilizador (a home

do utilizador);

 scripts, pasta com ficheiros externos de Javascript (extras.js, com funções

comuns de validação, verificação e outros plugins em javascript) e Jquery

(jquery-1.4.4.min.js, ficheiro base para que os plugins desenvolvidos em

jquery possam correr na aplicação).

 style, pasta que agrupa as folhas de estilos (CSS) usadas pela a aplicação:

base.css, estilos da interface base; <color>.css, ficheiro com os estilos

específicos do tema que o utilizador escolheu para background da sua conta.

Ficheiros:

 main.php, motor da aplicação no que diz respeito à envolvente gráfica. Este

ficheiro faz a chamada aos ficheiros JS e CSS necessários ao seu

funcionamento, bem como a inclusão da informação do módulo carregado via

opção de menu;

 Settings.php, ficheiro de auxílio ao main.php com as configurações para

data/hora e titulos dos módulos a mostrar na aplicação.

(10)

mod_login, pasta componentes da área de Login da aplicação. À semelhança da pasta

themes, possui uma estrutura própria com sub-pastas para os ficheiros JS e CSS respectivos

e outra sub-pastas que guarda as imagens de fundo que esta área contém. Contém também o ficheiro login.php que constrói a interface da área referida.

• config.php, ficheiro que contém as constantes necessárias à ligação com a Base de

Dados. A escolha do uso de constantes acontece na tentativa aplicar maior flexibilidade

ponto de vista dos dados de acesso à Base de Dados (nome, username, password) que

estarão afectos à aplicação e devido à existência de vários ficheiros que requerem que a

ligação seja estabelecida directamente nos mesmos (popups: thickbox), se ocorrer

mudança naquelas variáveis, bastará alterar neste ficheiro, que toda a aplicação ficará a

conhecer os novos parâmetros.

• index.php, ficheiro principal da aplicação. A aplicação nasce apartir deste ficheiro.

Quando a plataforma detecta o URL, verifica se existe uma sessão aberta, caso exista

procede à análise de permissões associadas ao utilizador logado (restringindo as opções

de menu visiveis para as correspondentes ao seu nível de permissão) e procede ao

carregamento da estrutra incorporando-a no ficheiro main.php [pasta themes/default];

caso a sessão não se encontre aberta, carrega a àrea de login, chamando o ficheiro

login.php [pasta themes/mod_login].

• login.php, ficheiro que vai receber os dados inseridos na área de login, para aceder à

aplicação caso os dados estejam correctos e o utilizador possua um estado activo. Se o

login tiver sido realizado com sucesso, o ficheiro inicializa um array de variáveis de

sessão com dados referentes ao utilizador logado e à correspondente sessão.

Com esta abordagem, consegue-se obter uma estruturação organizada, eficaz e inteligível. Para

além de ter um consumo menor no que diz respeito a performance, uma vez que ao termos os

scripts externos e não “inline”, no carregamento das páginas não será necessário estar sempre a

carregar os ficheiros JS, CSS se esses forem mantidos em cache.

Nota:

Importa referir que a estrutura base da aplicação sob a qual a estagiária desenvolveu o seu

trabalho, já havia sido implementada pela empresa, a estagiária apenas teve que desenvolver os

módulos acordados para melhorar a aplicação da ANET.

(11)

3.3.1 Composição de cada módulo

3.3.1.1 Módulo membro

Módulo responsável pela gestão dos membros, em que para esse módulo temos os seguintes ficheiros que o compõem:

• main.php – ficheiro principal do módulo.

A pasta html, que contêm os seguintes ficheiros responsáveis para html do respectivo módulo: Para criação dos “sub-menu” listagem membros, foi necessário criar dois ficheiro html:

• membro_cfoto.php, responsável pela listagem dos membros com fotos. Apresenta uma tabela com a lista dos membros com foto e um formulário de pesquisa.

• membro_sfoto.php, responsáveis para a listagem dos membros sem fotos. Apresenta uma com a lista dos membros sem foto e um formulário de pesquisa.

Os ficheiros responsáveis pela criação do “sub-menu” Pesquisa, foi necessário desenvolver os seguintes ficheiros:

• lista_pesqDirecta.php, ficheiros que contem o formulário da pesquisa directa.

• lista_pesqComposta.php, responsável pela criação do formulário da pesquisa composta.

• pagina.php, esse ficheiro será usada pela pesquisa composta, pesquisa directa e pelo subemenu- gestão de formação. Pois esse ficheiro tem um conjunto de funções que são responsáveis, pela criação das tabelas resultantes das pesquisas directa, composta e lista de formações/cursos, com também pelas tabelas resultantes de edição de dados.

Ficheiros responsáveis pela criação do “sub-menu” Gestão de Formações:

• lista_membros.php, responsável por apresentar a tabela resultante com a lista dos cursos/formações existentes, também para apresentar o formulário de inscrições para membros internos a associação.

(12)

Ficheiros responsáveis pela criação do “sub-menu” Lista membros CDN:

• lista_memb_cdn.php, responsável por apresentar a tabela com a lista dos membros agrupados pela situação actual com o respectivos numero de inscritos, e a possilibilidade de abrir

Ficheiros responsáveis pela criação do “sub-menu” Competências:

• pesq_comp.php, responsável por apresentar o formulário de pesquisa.

Ficheiros responsáveis pela criação do “sub-menu” Planear Formações:

• planer_formacao.php, responsável por apresentar o tabela com a lista de formações a serem abertos.

• procuraPal.php

Outros ficheiros de utilização comum nos sub-menus do módulo membro:

• paginacao.php, esse ficheiro é responsável pela paginação, sempre que tiver um numero elevado de pesquisa é usada a paginação de 20 a 20. E será usada no sub-menu: Listagem de membros, Pesquisa, Gestão e Formação.

• validacampo.php, responsável, por validar o campo numero membro existe ou não na pesquisa composta, na pesquisa de competência, e no modulo documentos para os numero. Esse ficheiro também será usado no modulo Insc./Estágio

O ficheiro responsável para as funções SQL, que encontra na pasta internal:

• module_memb.php

Para cada sub-menu do módulo membro foi desenvolvido um conjunto de funções e para cada um será abaixo apresentado as funções desenvolvidas:

• Sub-menu Listagem membros, foram criadas as seguintes funções:

 lista_sfoto(), responsável por devolver a lista dos membros sem foto e limitar a pesquisa de 20 a 20.

(13)

que será utilizada na função lista_sfoto, de forma a esses ir agrupando em conjunto de 20.

• Sub-menu Pesquisa, foram necessários criar as seguintes funções:

 pesquisa_total(), responsável por devolver a lista total da pesquisa resultante da pesquisa composta, que posteriormente será utilizada na pesquisa.

 pesquisa(), responsável por devolver a listagem resultante da pesquisa composta efectuda, em agrupamentos de 20 por paginas.

 edit_membros , responsável por edição dos dados de um respectivo membro essas função será usada na pesquisa composta e na pesquisa directa.

 getdados_memb , devolve os dados nos membro de pesquisa, essa função será usada pela pesquisa directa e composta.

 lista_Totalpesq_dir responsável por devolver a lista total da pesquisa resultante da pesquisa composta, que posteriormente será utilizada na pesquisa.

 lista_pesq_dir responsável por devolver a listagem resultante da pesquisa composta efectuda, em agrupamentos de 20 por paginas.

• Sub-menu Gestão de formação, foram necessário criar as seguintes funções:

 lista_TotalCcursos, devolve a lista total de curso/formações da associação.

 lista_curso, devolve a lista de cursos/formações em agrupamentos de 20.  getLista_inscrito, devolve a lista de inscritos num formação/curso.

 incricoes_internos_formacao, responsável por inserir os membros internos da formação.  getNumetotal_listaInsc, responsável por devolver o número total dos inscritos numa

dada formanção.

 edit_insc_formacao, responsável pela edição dos membros inscritos numa formação.  elim_insc_formacao, responsável por eliminar um membro inscrito numa

(14)

• Sub-menu Competências, foram necessário criar as seguintes funções:  get_competencia, devolve a lista de competência existentes.

 add_competencias, responsável por adicionar uma competência a um do membro.  getdados_pessoais, responsável por devolver os dados do membro de pesquisa.  pesquisa_competencias, devolve as competências associadas a um dado membro. • Sub-menu Planear Formações, foram necessário criar as seguintes funções:

 lista_insc_PlanForm, devolve a lista de inscritos nos cursos/formações a serem lançados.  lista_Total_insc_curso, devolve a lista total dos inscritos num curso/formação.

 lista_insc_por_curso, devolve a lista de inscritos nos cursos.

• Funções usadas nos ficheiros auxiliares dos sub-menu do módulo membro:

 get_MembroID, devolve o id do membro caso existe na lista de membros associados.

Os ficheiros responsáveis para gerar os ficheiros Excel e PDF:

• export_excel_membrolist.php, responsável por gerar o Excel com a lista dos inscritos numa dada formação/curso.

• pdf_memblist.php, responsável por gerar o PDF com a lista dos inscritos numa dada formação/curso.

3.3.1.2 Módulo Insc.Estágio

Módulo responsável pela gestão dos membros, em que para esse módulo temos os seguintes ficheiros que o compõem:

• main.php – ficheiro principal do módulo.

(15)

• listagem_pendente.php, responsável por apresentar a tabela do menu e a tabela com a lista das listas de membros pendentes na associação.

Para criação dos “sub-menu” Parecer, foi necessário criar os seguintes ficheiro html:

• listagem_estagios_mod.php, responsável por apresentar o “accordion” com as opções Parecer C.E e C.D da S.R.C. No parecer C.E apresenta uma serie de tabelas resultantes entre os quais tem-se a lista dos membros com estágio por aprovar (curricular ou formais).

• listagem_estg_aprov.php, responsável por apresentar a lista de tabelas com os membros com estágios aprovados pela C.E (curriculares e formais).

Para criação dos “sub-menu” Comunicação ao membro, foi necessário criar os seguintes ficheiro html: • comunicacao_membro.php, responsável por apresentar tabelas com a lista de comunicações ao

membro (para modalidade formais e curriculares), e uma tabela resultante com a lista de prorrogações aceites.

Para criação dos “sub-menu” Audição, foi necessário criar os seguintes ficheiro html:

• marc_audicoes.php, responsável por apresentar o “tabs” com as seguintes opções de Marcação de audição (tabela resultante a lista de membros com mensagem internas recebiras), e resultado de audição.

• result_marc.php, responsável por apresentar uma tabelas com a lista de membros com audições por concluir e outra tabela com a lista de membros com audições concluídas

Para criação dos “sub-menu” Curso de ética, foi necessário criar os seguintes ficheiro html: • cur_etica_1.php

(16)

• env_proc_CDN.php • estg_atrasados.php • ética.php

• gestao_estag.php • ped_patrono.php

O ficheiro responsável para as funções SQL, que encontra na pasta infernal: • module_insc_estg.php

• Sub-menu Gestão de Inscrição, foram necessário criar as seguintes funções:  getLista_memb_pendente, devolve a lista de membros pendentes.  elim_insc, responsável por eliminar o membro que foi seleccionado.  edit_data_pendentes, responsável por editar os dados do membro.

 getDados_memb_pend, devolve os dados relacionado com o membro. Também usada no sub-menu Parecer.

 getDados_Prof, devolve os dados profissionais associados a um membro.  getDocs, devolve a lista de documentos associados a um membro.

 getObs, devolve a lisa de observações associados a um membro. Também usada no Parecer C.E.

• Sub-menu Parcer, foram necessário criar as seguintes funções: Parecer C.D:

 get_prorrog, devolve as prorrogações pendentes de um dado membro. Também usada no sub-menu comunicação ao membro.

 getEst_curricular_aprov, devolve a lista de estágios aprovados com a modalidade curricular.

(17)

formal.

abrir: nos dois pareceres

 getdados_patrono, devolve a dados do patrono e entidade para um dado membro.  getDocumentos_memb

Parecer C.E:

 get_modal_estagio, devolve a lista de estágio por aprovar pelo parecer C.E, com modalidade curricular por aprovar parcer C.E.

 get_modal_estag_formal, devolve a lista de estagio por aprovar pelo parecer C.E, com modalidade formal por aprovar parcer C.E

 up_date, responsável pelo update do campo de observação para um dado membro. • Sub-menu Comunicação ao membro, foram necessários criar as seguintes funções:

 getcom_curri, devolve a lista de comunicações a um dado membro com a modalidade curricular.

 getcom_formal, devolve a lista de comunicações a um dado membro com a modalidade formal.

• Sub-menu Audição, foram necessários criar as seguintes funções:  aud_por_conc

 aud_concluidas  edit_data

 getdados_estagio  getDocumentos_memb

Os ficheiros responsáveis para a geração do PDF e Excel: (….)

(18)

3.3.1.3 Módulo Documentos

Módulo responsável pela gestão dos membros, em que para esse módulo temos os seguintes ficheiros que o compõem:

• main.php – ficheiro principal do módulo.

Tem uma pasta html, que contem os seguintes ficheiros responsáveis para html do respectivo módulo: • listagem_docs.php

• pagina_lista_doc.php • pesquisa_doc.php

O ficheiro responsável para as funções SQL, que encontra na pasta infernal: • module_gest_docs.php

O ficheiro pdf:

• dados_conv_pdf.php, ficheiro responsável para converter os ficheiros imagem “JPEG” para pdf

3.3.1.4 Módulo secretaria

Este módulo foi desenvolvido alguns ficheiros Html para o layout, entre os quais tem-se: • comunicacoes.php • edic_estagio.php • gestao_empresa.php • gestao_etiq.php • prorrogacoes.php • recibos.php

Foi desenvolvido uma função SQL responsável por apresentar a lista de prorrogações aceites/pendentes e negadas, do sub-menu Gestão de Prorrogações,

Nota: Esse módulo não foi desenvolvido, pelo facto de dar prioridade aos testes dos outros módulos de modo a ter uma aplicação mais segura e com boa performance.

(19)

3.3.1.5 Módulo declarações

Este módulo foi desenvolvido alguns ficheiros html para o layout de alguns sub-menus, entre os quais se destacam:

• carreg_conta.php • pesquisa_decl.php

Nota: Esse módulo não foi desenvolvido, pelo facto de dar prioridade aos testes dos outros módulos de modo a ter uma aplicação mais segura e com boa performance.

3.3.1.6 Módulo perfil • lista_user.php

• perfil.php, responsável por apresentar a lista de cores, em que o utilizador pode personalizar a sua aplicação escolhendo a cores de fundo que pretender.

O ficheiro responsável para as funções SQL, que encontra na pasta infernal:

• panel_user_manager.php, ficheiro com as funções SQL, abaixo será indicadas as funções desenvolvidas para os respectivos sub-menus do módulo.

• Sub-menu "Minha conta"

 getUserNameByID, responsável para verificar o  changeUserOwndetails

 altUserPin, responsável por alterar o pin do utilizador • Sub-Menu "Perfil"

 insertUserBgcolor

Nota: Esse módulo foi desenvolvido pela Orientadora

3.3.1.7 Módulo Configurações::Sistema Html para esse módulo:

(20)

• Sub-menu níveis de acesso:  lista_acessos.php  thickbox.php  thickbox_result.php • Sub-menu Organigrama  lista_grupos.php  perm_group.php  thickbox.php  thickbox_results.php • sub-menu utilizadores:  lista.php  lista_users.php  thickbox.php  thickbox_results.php

Referências

Documentos relacionados

Entretanto, considerando o entendimento acerca do propósito da gestão de recursos próprios, a divulgação das informações relacionadas às políticas, procedimentos,

• A separação de fezes é um processo que consiste em separar partículas maiores contidas nos dejetos da fração líquida, conduzindo à obtenção de dois produtos:

Projecto Comunitário para prevenção da saúde através da Educação Ambiental do Instituto Superior Politénico Privado do Uíge (ISPPU) tem assentamento no

Em vista disso, foi mantida para todo o rebanho a nercenta gem de dois por cento de flor de enxofre na mistura mineral, duran te 1 ano aproximadamente, bem como rodízio normal

Esta foi a questão de fundo que gerou os debates do Fórum para a Construção do Programa Essencial de Oftalmologia, que em 09 de dezembro reuniu representantes da Diretoria e da

Aprova antecipação de quota orçamentária referente ao Cronograma de Execução Mensal de Desembolso dos Orçamentos Fiscal e da Seguridade Social, para os grupos de despesas com

Las Casas (2009) também diz que deve ser passada para os funcionários a importância de servir o consumidor, com o propósito de satisfazê-lo, mas que não seja

Durante a primeira fase da fermentação alcoólica realizou-se a cada 2 horas o controle das seguintes variáveis: concentração de açúcares redutores totais (ART)