Sistema de Gestão Escolar
Sistema de Gestão Escolar
Sistema de Gestão Escolar
Funchal – Portugal
Novembro - 2016
iii
Orientador Interno:
Eduardo Leopoldo Fermé, PhD
Professor Associado com Agregação da faculdade de Ciências Exatas e da Engenharia da Universidade da
Madeira
v
ABSTRACT
This report was made with the intent of describing and presenting methodologies, tools and
technologies used to develop my project, in curricular internship context and to finish the
Master’s degree in Computer Science and Engineering. With this document I also intend to
expose my experience during the internship term.
The main goal of achieving a curricular internship arose from the need of putting into practice
the knowledge acquired during the bachelor’s degree and master’s degree, to live a great
experience outside the classroom, contact and meet the world of work and develop my areas of
expertise.
Throughout this report, I will describe the entire process of developing a school management
system tailored to Colégio Guadalupe’s needs, as well as explain the techniques, methodologies
and tools used to accomplish the main goal and, finally, I will present the results achieved.
In this project there were addressed areas such as Software Engineering and techniques for
Managing Software projects.
vii
KEYWORDS
Software Engineering
Web Aplication
Project Management
Agile Methods
RESUMO
Este relatório foi feito com a finalidade de descrever e apresentar metodologias, ferramentas e
tecnologias utilizadas no desenvolvimento do projeto, no âmbito de estágio curricular para a
conclusão do curso do mestrado em Engenharia Informática. Neste documento também pretendo
expor a minha experiência vivida durante a duração do mesmo.
Ao longo deste relatório, irei descrever todo o processo de desenvolvimento de um sistema para
a gestão escolar desenvolvido à medida das necessidades do Colégio Guadalupe, assim como
também explicarei as técnicas, metodologias e ferramentas utilizadas para cumprir com o
objetivo principal e, finalmente, apresentarei os resultados obtidos.
Neste projeto foram abordadas áreas como a Engenharia de Software e técnicas para a gestão
projetos de Software.
xiii
PALAVRAS-CHAVE
Engenharia de Software
Aplicação Web
Gestão de Projeto
Métodos Ágeis
xv
Acknowledgments
AGRADECIMENTOS
O sucesso deste projeto deveu-se à contribuição de um amplo grupo de pessoas que, direta ou
indiretamente, influenciaram positivamente o meu trabalho. Expresso, assim, os meus sinceros
agradecimentos a todos.
Em primeiro lugar, quero que agradecer a Deus, aos meus pais e ao meu marido, pelo apoio
incondicional, assim como a paciência e encorajamento que me transmitiram em todo momento,
contribuindo, assim, para a realização dos meus objetivos.
Um especial agradecimento ao meu orientador Professor Doutor Eduardo Fermé, pelo seu total
apoio e disponibilidade, por acreditar na mais valia da realização do estágio curricular, pela sua
orientação, notáveis e imprescindíveis para a conclusão do trabalho e deste relatório.
À Universidade da Madeira por permitir realizar o estágio curricular, assim como a todos os
professores que, através das aulas, me transmitiram conhecimentos necessários para a realização
deste projeto.
De igual modo, quero agradecer a entidade proprietária do Colégio Guadalupe, o grupo CELFF
- Centro de Estudos Línguas e Formação do Fogueteiro S.A, por me permitir realizar o estágio
nas suas instalações, assim como, a total disponibilidade e ajuda da Direção e Administração do
Colégio, sem a vossa colaboração não conseguiria alcançar o meu propósito.
A todo os colaboradores do Colégio, pois com eles aprendi muito, em especial aos professores
que lá trabalham, que sempre estiveram dispostos a contribuir e colaborar comigo.
Por último, e não menos importante, quero agradecer à minha família, amigos e novos amigos
que ganhei com esta experiência, eles garantiram o tão necessário equilíbrio emocional durante
este processo.
xvii
Table of Contents
ÍNDICE
I. Introdução 4
I.1. Apresentação .......................................................................................................... 5
I.2. Contexto do Estágio .............................................................................................. 6
I.3. Contexto Institucional ........................................................................................... 7
I.3.1. Descrição do Colégio ...................................................................................................... 7
I.3.2. Localização ....................................................................................................................... 8
I.3.3. Organigrama .................................................................................................................... 8
I.4. Tarefas a desempenhar no estágio .................................................................... 10
I.5. Problemática contextual: Sistema de inscrições e lançamento de notas ...... 12
I.5.1. Matrícula/Inscrição ...................................................................................................... 12
I.5.2. Lançamento de notas .................................................................................................... 12
I.5.3. Academic Manager ....................................................................................................... 14
xviii
Table of Contents
V. Referências bibliográficas 81
VI. Anexos 85
VI.1. Anexo 1 – Repositório no Bitbucket .................................................................. 86
VI.2. Anexo 2 – Organização de tarefas no trello ..................................................... 87
VI.3. Anexo 3 – Base de dados em phpMyadmin..................................................... 88
VI.4. Anexo 4 – Desenho da base de dados em MySQL Workbench .................... 89
VI.5. Anexo 5 – Terminal de comado Git Bash ......................................................... 90
VI.6. Anexo 6 – Exemplo de um currículo académico gerado pelo sistema –
Página 1/2............................................................................................................. 91
VI.7. Anexo 7 – Exemplo de um currículo académico gerado pelo sistema –
Página 2/2............................................................................................................. 92
xix
xxi
LISTA DE FIGURAS
xxii
xxiii
1
ACRÓNIMOS/SIGLAS
XP - Extreme Programming
2
3
I. INTRODUÇÃO
4
I.1. APRESENTAÇÃO
5
I.2. CONTEXTO DO ESTÁGIO
O primeiro contato com o grupo CELF foi na E.P.H.T Madeira, onde me foi feita uma entrevista
em que me foi dada uma introdução do que era o grupo CELF. Também me foi pedido um
protocolo de estágio, onde deveria explicar em que consistia e demonstrar quais os objetivos do
projeto a desenvolver (e o que pretendia fazer). Despois de passar esta fase, dirigi- -me ao Colégio
Guadalupe para ser entrevistada novamente. Nesta entrevista, fui informada sobre as
necessidades informáticas que o Colégio tinha.
O objetivo principal do estágio era desenhar e desenvolver uma aplicação web que se
encarregasse do processo de matrícula/inscrição no colégio, lançamento de notas e gerador
automático de currículos académicos. A este sistema dei-lhe o nome de Academic-Manager.
6
I.3. CONTEXTO INSTITUCIONAL
I.3.1.Descrição do Colégio
O Conselho de Administração é um órgão que pertence a CELFF S.A. e que a representa junto do
Colégio Guadalupe.
Destaca-se pela sua integração na paisagem natural em que se encontra inserido, criando um
ambiente de estudo que favorece a tranquilidade e sossego dos alunos, fator importantíssimo
para o equilíbrio emocional dos mesmos.
Com espaços bem definidos para o Pré-escolar, o Ensino Básico e o Ensino Secundário, todo o
edifício foi pensado no incentivo de partilha entre grandes e pequenos.
Princípios Orientadores
Contribuir para a estabilidade e segurança afetiva com respeito pelas características individuais
de cada aluno;
7
Incentivar o respeito pela família, pela sua identidade cultural, e pelos valores nacionais;
Todos estes princípios e linhas orientadoras ajudam a concretizar os fins a que se propõem.
I.3.2. Localização
I.3.3.Organigrama
8
que orientam o ensino que o Colégio ministra e garante a coesão de todos os que
colaboram na vida da Escola.
9
I.4. TAREFAS A DESEMPENHAR NO ESTÁGIO
Durante o tempo que estive no estágio, a direção do Colégio disponibilizou-me um espaço onde
podia trabalhar as horas que considerasse necessárias, assim como também sempre esteve à
minha disponibilidade, na medida do possível, pessoal docente e não docente para esclarecer a
minhas dúvidas, explicar o funcionamento do sistema de matrículas e lançamento de notas, da
mesma forma que me foram proporcionados documentos e acessos ao sistema informático.
A primeira fase, foi o levamento de informação, dito levamento foi feito através de entrevistas às
pessoas responsáveis pelas diferentes áreas, tive contacto com o pessoal da secretaria, os quais
me explicaram como realizavam o processo de inscrições/matrícula dos alunos no Colégio, o
processo de inscrições nas diferentes atividades extracurriculares e dos diferentes serviços que o
Colégio oferece.
Depois tive a oportunidade de falar com a Direção Pedagógica e alguns professores, que me
explicaram o processo de lançamento de notas, como eram os diferentes documentos de avaliação
que os docentes utilizavam para avaliar os alunos, quais eram os diferentes passos do processo
de lançamento de notas e, finalmente, como chegava esta informação aos encarregados de
educação e aos alunos.
10
Depois do processo do levantamento de informação, passei à fase de desenho do sistema. Após
muita pesquisa, investigação e análise da informação recolhida, decidi que o sistema iria ser
dividido em módulos. Um módulo principal de inscrição e quatro módulos secundários, o
módulo de avaliações, módulo de serviços, módulo de atividades extracurriculares e, finalmente,
o módulo de currículos académicos. Os módulos secundários não dependem uns dos outros, mas
sim, do sistema principal, o que permite uma maior flexibilidade na hora de manutenção e
evolução do sistema.
11
I.5. PROBLEMÁTICA CONTEXTUAL: SISTEMA DE INSCRIÇÕES E
LANÇAMENTO DE NOTAS
I.5.1.Matrícula/Inscrição
Com base na informação fornecida pelos encarregados de educação no ato da inscrição, que
posteriormente é compilada pelo departamento administrativo, a informação é inserida no
chamado sistema de “alunos”, criando uma atualização na ficha de inscrição com os dados
recentemente fornecido. No caso dos alunos novos, os dados são introduzidos de raiz no sistema
“alunos” e criando um novo perfil.
I.5.2.Lançamento de notas
O processo de notas é ainda muito mais complicado, pois existem dois tipos de avaliações, as
avaliações intercalares e as de final de período. Nas avaliações intercalares são atribuídas notas
qualitativas, onde os encarregados de educação têm uma noção como está a decorrer o período
antes do término do mesmo, estas ocorrem a meio do 1º e 2º períodos. As notas finais de período
são quantitativas (0-20) e são atribuídas pelos professores responsáveis por cada disciplina no
final de cada período (1º, 2º e 3º períodos).
12
dos alunos que integram a turma e cada uma das disciplinas que eles frequentam com os
parâmetros a ser avaliados. Cada professor deve preencher os espaços correspondentes à
disciplina nos parâmetros de avaliação de cada aluno. As folhas seguintes são os registos de
avaliação de cada um dos alunos com interligação à primeira folha (pauta), estas ligações
permitem que se preencham os registos automaticamente.
Nas avaliações de final de período, o procedimento é ligeiramente diferente. Cada professor tem
uma grelha de avaliação por cada turma, nesta grelha encontram-se os diferentes âmbitos de
avaliação, temos as competências científicas e 0sa competências atitudinais, cada uma com a sua
respetiva percentagem, dependendo da disciplina e do ciclo de ensino, dentro de cada
competência existem várias avaliações. Nas competências científicas são avaliados os testes e
trabalhos, os conhecimentos cognitivos do aluno nesse período. Nas competências atitudinais é
avaliada a participação, o empenho e o respeito pelas normas na sala de aula. Nas células finais
das grelhas encontra-se a classificação final de cada aluno nesse período referente a essa
disciplina com uma escala de 0-20 valores.
Ao mesmo tempo, no Google drive, é criado, por parte dos professores encarregues dos registos
de avaliação, um novo livro com as avaliações de final de período por cada turma. Neste livro,
voltamos a encontrar várias folhas, a primeira folha encontra-se uma nova “pauta”, mantendo a
mesma estrutura da pauta intercalar, podemos ver os nomes dos alunos que integram a turma,
as disciplinas e quadros para preencher com a nota final, falta totais e faltas injustificadas de cada
disciplina, nesta pauta cada professor completa a(s) célula(s) referente(s) a(s) sua(s) disciplina(s)
com a classificação final obtida da grelha de avaliação, nas folhas seguintes podemos encontrar
os registos de avaliação de cada um dos alunos que são preenchidos automaticamente por
ligações feitas da “pauta”, os registos de avaliação constam de duas páginas, na primeira temos
as disciplinas, a classificação final de período, aulas previstas, dadas e assistidas, faltas totais e
injustificadas. No fim da página, existem dois quadros, o primeiro quadro recebe o nome de
“Apreciação Global/Síntese Descritiva”, onde o conselho de turma escreve um comentário
referente ao desempenho do aluno esse período, o segundo quadro é chamado “Observações”,
este quadro só é preenchido quando exista alguma observação referente a algumas das
disciplinas do registo de avaliação.
Na segunda página, existe um quadro chamado a “apreciação por disciplina”, uma avaliação
qualitativa referente a cada disciplina; cada professor deve preencher com uma cruz a avaliação
correspondentes de cada aluno (I - Insuficiente; SP - Suficiente Pouco; S - Suficiente; B -
Bom; MB - Muito Bom), as quais devem coincidir com a nota final. Esta apreciação é feita aluno
a aluno, tornando o processo muito repetitivo e com uma grande probabilidade de cometer
algum erro.
13
A marcação de faltas é feita através de livros de pontos. Durante o período cada professor sinaliza
no livro de ponto os alunos ausentes nas aulas, no fim do período o diretor de turma passa todas
as faltas para o sistema alunos. Este sistema informático contabiliza as faltas referentes a cada
aluno e a cada disciplina, estes totais são introduzidos na pauta no Google drive e são usadas,
novamente, as ligações para introduzir as faltas automaticamente em cada um dos registos.
As aulas previstas e dadas são inseridas por cada professor no registo de avaliação do aluno Nº1,
isto quer dizer, na primeira folha a seguir à da pauta, os registos a seguir têm uma ligação a esta
página e, assim, só é preenchido uma vez por cada turma, as aulas assistidas e a subtração entre
as aulas dadas e as faltas totais.
Após todo este processo, são impressas todas as pautas (de 0-20 e de 1-5) e registos de avaliação
para fazer o “pente fino”. Nesse dia, após muitas horas de verificação de material, são publicadas
as pautas de 0-20 no placard de informações do colégio e os diretores de turma colocam na
plataforma “Moodle” a pauta da sua direção de turma para poderem ser consultadas pelos
encarregados de educação. As pautas de 1-5 geradas pelo sistema “Alunos” são impressas e
arquivadas.
Depois deste processo, é entregue, em mão, aos encarregados de educação uma cópia do registo
de avaliação do seu educando.
A Direção do Colégio desejava um sistema que simplificasse e facilitasse todos estes processos.
Academic-Manager, foi o nome dado ao programa informático que iria ser desenhado e
desenvolvido ao longo do estágio.
Pretendia-se que as matrículas fossem feitas no sistema e que este gerasse todos os relatórios que
eram feitos em documentos excels, assim como também gerir as turmas, as inscrições nas
diferentes disciplinas, gerir o módulo das atividades extracurriculares e dos serviços. Referente
ao módulo de lançamento de notas, deseja-se que no sistema fosse possível fazer as grelhas de
14
cada uma das disciplinas e professores, e que a nota gerada automaticamente preenchesse as
pautas (de 0-20 e de 1-5) e os registos de avaliação de cada um dos alunos.
Aquando do estágio, não existia nenhuma formatação para elaborar o currículo académico do
aluno, por este motivo, foi-me pedido pela Direção do Colégio para elaborar um módulo dentro
do sistema que produzisse esse documento. Neste módulo, pretende-se que o sistema gere um
currículo académico com a descrição de destaque do aluno durante o seu percurso escolar, quer
seja tanto no âmbito académico, distinções académicas, projetos, projetos internacionais,
estágios/cursos, certificações nacionais e internacionais, quer méritos desportivos, partições em
clubes, entre outros.
15
II. ESTADO DA ARTE
16
II.1. METODOLOGIA DE TRABALHO E FERRAMENTAS DE APOIO
II.1.1.Metodologias Ágeis
Ágil é uma nova forma de gestão e desenvolvimento de Software que usa uma abordagem
de planeamento e execução interativa e incremental voltada para processos empíricos
(complexos, caóticos ou com muita incerteza, tem mudança ao longo do processo, não são
repetitivos e são imprevisíveis) que divide o problema em produtos menores e que visa
entregar software funcionando regularmente, visa a aproximação e maior colaboração da
equipa de desenvolvimento com os experts de negócios, comunicação cara a cara, redução
dos riscos associados às incertezas dos projetos, abraçar e responder às mudanças de forma
mais rápida e natural e, é claro, a satisfação final dos clientes por meio da adoção de
práticas de gestão e de engenharia de software com foco nos valores e princípios do Lean e
do Ágil. O seu principal objetivo é entregar o produto que o cliente realmente deseja e que
será útil e com qualidade. [2]
17
3. Entregar frequentemente o software a funcionar, de poucas semanas a poucos meses,
com preferência da menor escala de tempo.
4. As equipas de negócios e dos desenvolvedores devem trabalhar diariamente em conjunto
ao longo de todo o projeto.
5. Construção de projetos em torno de indivíduos motivados. Eles deverão encontrar-se
num ambiente propício ao desenvolvimento criativo e ter o apoio necessário, de modo a
que chefias demonstrem confiança para efetuar o seu trabalho.
6. O método mais eficiente e eficaz de transmitir informações para e entre uma equipa de
desenvolvimento é através de conversa presencial.
7. Software a funcionar é a medida crucial para o progresso.
8. Os processos ágeis promovem o desenvolvimento sustentável. Os patrocinadores,
desenvolvedores e utilizadores devem ser capazes de manter um ritmo constante.
9. Contínua atenção à excelência técnica e bom design aumenta a agilidade.
10. Simplicidade (a arte de maximizar a quantidade de trabalho não realizado) é essencial.
11. As melhores arquiteturas, requisitos e designs emergem de equipas auto-organizáveis.
12. Em intervalos regulares, a equipa reflete sobre como se tornar mais eficaz e então refina
e ajusta seu comportamento. [2]
II.1.1.1.Metodologias XP
18
Codificação: Antes do código, recomenda o processo, que se crie uma bateria de testes
unitários para que a história fique satisfatória. Então, o foco dos programadores é a
satisfação destes testes unitários. Para a codificação, o XP recomenda que esta seja feita
em pares (duas cabeças trabalham melhor do que uma), isto garante outros aspetos
como qualidade e rapidez (existe algum trabalho científico que comprava que o
trabalhar em pares não prejudica o rendimento, pelo contrário, habitualmente
consegue-se mais produtividade).
Teste: Os testes unitários são mantidos ao longo das várias iterações e passam a fazer
parte de uma bateria de testes de regressão, que não são mais do que todos os testes
unitários agrupados para serem testados periodicamente de uma vez em períodos
curtos, pode ser de horas, ao final do dia ou no final da semana. A ideia é confirmar que
nada deixou de funcionar. [5]
Cada uma destas cinco dimensões pode ter um dos seguintes papéis num determinado
projeto: restrição (constraint), controlador (driver), ou grau de liberdade (degree of
freedom).
19
Uma restrição é um fator limitante que não está ao alcance do controlo do líder do
projeto. Se uma equipa de tamanho fixo é atribuída a um projeto, esta torna-se uma
restrição. O custo é uma restrição num projeto no âmbito de um contrato de preço fixo,
enquanto a qualidade será um constrangimento para um projeto de desenvolvimento
de software de uma peça de equipamento médico ou num sistema de controlo de voo
de um avião.
Qualquer dimensão de projeto pode não ser nem um condutor, nem uma restrição,
neste caso torna-se um grau de liberdade. Estes são fatores de objetivos de um projeto.
Por exemplo, em alguns projetos de sistemas de informação internos, os condutores são
características e qualidade, e a equipa é a restrição, de modo que os graus de liberdade
se tornam o tempo e o custo.
Um aspeto importante deste modelo não é saber quais as dimensões que serão
restrições, controladores ou graus de liberdade, mas sim a negociação prévia das
prioridades relativas de cada dimensão. Nem todas as cinco dimensões podem ser
controladores ou restrições, este processo de negociação ajuda então a definir as regras
e limites do projeto.
As dimensões são classificadas de acordo com a flexibilidade que o líder de projeto tem
sobre estas. Uma restrição não brinda qualquer flexibilidade, um controlador oferece
pouca flexibilidade, mas um grau de liberdade fornece flexibilidade suficiente para
equilibrar com as excedentes dimensões. Esta classificação é feita numa escala de 0 a 10,
em que 10 significa totalmente flexível e 0 completamente restringido. O resultado é
representado graficamente num diagrama de “Kiviat”, onde cada eixo representa o
nível de flexibilidade que o líder de projeto tem sobre a dimensão a que corresponde e,
por este último motivo, são chamados diagramas de flexibilidade. [48]
20
Figura 5 - Exemplo de diagrama de flexibilidade
Para conseguir desenhar e desenvolver o sistema com sucesso e maior facilidade, recorri ao uso
de algumas ferramentas que ajudariam significativamente o cumprimento dos meus objetivos.
21
II.1.3.1.phpMyAdmin
Características:
Exportar dados para vários formatos: CSV, SQL, XML, PDF, ISO / IEC
26300 - Texto OpenDocument e Spreadsheet, Palavra, LATEX e outros;
22
II.1.3.2.MySQL Workbench
MySQL Workbench é uma ferramenta visual unificada para desenho de base de dados,
desenvolvedores e DBAs. MySQL Workbench fornece modelagem de dados, desenvolvimento
de SQL e ferramentas de administração abrangentes para configuração do servidor,
administração de usuários, backup e muito mais. Esta ferramenta está disponível no Windows,
Linux e Mac OS X. [11]
II.1.3.3.PHPStorm
Assistência de codificação inteligente: PhpStorm é um IDE PHP que realmente “recebe” o código.
Suporta PHP 5,3/5,4/5,5/5,6/7,0, oferece prevenção on-the-fly de erro, auto-completa e
refatoriza de código, depuração de configuração zero, e um HTML estendido, CSS e JavaScript
editor.
Editor de código PHP inteligente: O IDE fornece conclusão de código inteligente, destaque de
sintaxe, configuração de formatação código estendido, on-the-fly verificação de erros,
dobramento de código, suporta misturas de idiomas e muito mais. Refatorações automatizadas
que tratam o seu código com cuidado, ajudando a tornar as configurações globais do projeto
facilmente e com segurança.
Fácil Código Navegação e Pesquisa: PhpStorm ajuda a obter em torno de seu código mais
eficiente e poupar tempo quando se trabalha com grandes projetos.
23
Depuração: depuração Zero-configuração faz com que seja muito fácil de depurar suas aplicações
PHP. Além disso, PhpStorm oferece inúmeras opções para depurar seu código PHP com o Visual
Debugger, para que possa: inspecionar variáveis e relógios definidos pelo usuário, definir pontos
de interrupção e avaliar uma expressão em tempo de execução, aplicações remotas de depuração,
depurar uma página em várias sessões simultaneamente.
Profiling: é possível obter um perfil das aplicações com Xdebug ou Zend Debugger e verificar
relatórios agregados em PhpStorm [12]
II.1.3.4.Trello
Trello é uma aplicação web para fazer listagens dentro de listagens. O que a torna único é a sua
versatilidade: cada item em uma lista pode ser adicionado a todas as outras listas, imagens,
vídeos, documentos, etc. Além disso, é extremamente poderosa para uso colaborativo. Pode ser
adicionado qualquer número de utilizadores, designar tarefas, colocar datas limite, tem o seu
próprio calendário que pode sincronizar com o Google.
Trello baseia-se no método Kanban para gestão de projetos, com cartões que viajam por diferentes
tarefas em função do seu estado: assim, costumamos ter uma lista de coisas por fazer (to do, ou
pendentes), coisas que se estão a ser feitas (doing, ou em processo), ou que já foram feitas (done,
ou terminadas) [13]
Através deste programa consegui organizar as tarefas que tinha por fazer, impor metas semanais
e ter uma visão geral e detalhada da evolução do projeto.
Uma das vantagens desta ferramenta é que não é necessário apagar nada, quando finalizava uma
tarefa, arquivava esse cartão e desaparecia da listagem, mas em qualquer momento era possível
aceder aos cartões arquivados.
24
Figura 10 - Logotipo de Trello
II.1.3.5. Git
Git é um sistema de controlo de versões cuja diferença dos restantes, é armazenar e pensar sobre
a informação de uma forma global. A maior distinção entre Git e qualquer outro VCS (Subversion
e similares inclusos) está na forma como o Git trata os dados. Conceitualmente, a maior parte dos
outros sistemas armazena informação como uma lista de mudanças por arquivo. Esses sistemas
(CVS, Subversion, Perforce, Bazaar, etc.) tratam a informação que mantém como um conjunto de
arquivos e as mudanças feitas a cada arquivo ao longo do tempo. Git considera que os dados são
como um conjunto de snapshots (captura de algo num determinado instante, como numa foto)
de um minissistema de arquivos. Cada vez que se salva ou consolida (commit) o estado do projeto
no Git, é como se ele tirasse uma foto de todos os seus arquivos naquele momento e armazenasse
uma referência para essa captura. Para ser eficiente, se nenhum arquivo foi alterado, a informação
não é armazenada novamente, apenas um link para o arquivo idêntico anterior que já foi
armazenado. [14]
Com a utilização de Git, consegui criar um controlo das versões do Academic-Manager e cópias
de segurança.
II.1.3.6.Bitbucket:
25
II.1.4.Projetos semelhantes
No mercado, existem alguns sistemas utilizados para a gestão escolar, entre os quais
podemos encontrar.
II.1.4.1. Alunos
Este sistema permite a impressão de mapas e listagens, das quais destacamos: Pautas
de Avaliação, Fichas Informativas, Termos (9º ano), Registos Biográficos, Extratos de
Assiduidade, Certificados, Gráficos de Sucesso/ Insucesso Escolar, Listas de Turma,
Impressos de Matrícula, Listagens diversas. Software certificado pelo Gabinete
Coordenador do Sistema de Informação do Ministério da Educação (MISI). [49]
II.1.4.2. eSchooling
Permite de uma forma simples e através de uma interface agradável toda a gestão
escolar de uma escola profissional ou regular, abordando entre outros os seguintes
temas: Livro de Ponto digital, Gestão de Cursos, Gestão de Alunos, Gestão de Faltas,
Gestão de Docentes e Funcionários, Gestão de Horários e Exceções de Horário. [50]
26
II.1.4.3. praXis
Este sistema conta com um módulo para os encarregados de educação, nos quais é
possível seguir o percurso do aluno, contatar docentes e serviços administrativos, fazer
pagamentos, consultar atividades ou apresentar justificações. [51]
O inovar alunos é uma aplicação adaptada a cada nível de ensino: Creche, Pré-Escolar,
Básico, Secundário, CEF, Vocacional, EFA, Profissional, Recorrente, DREF – Profij,
DREF – Unecas, DREF – Oportunidade.
Esta aplicação, entre muitas coisas, permite realizar sumários, coordenação de Turma,
gestão de cursos, avaliações, entre outros. Entre as caraterísticas que distinguem inovar
alunos de outros sistemas gestores académicos podemos encontrar as seguintes:
27
Envio de notificações, emails, SMS para docentes, alunos e encarregados de
educação;
28
II.2. CONCLUSÃO
No fim deste capítulo, foi feita uma análise dos diferentes projetos semelhantes ao
projeto por mim desenvolvido presentes no mercado. Estes sistemas não cumprem
inteiramente com as principais funcionalidades pedidas pelo cliente.
29
III. DESENVOLVIMENTO DO SISTEMA
30
III.1. CICLO DE VIDA DE UM SISTEMA DE SOFTWARE
Pelas caraterísticas do projeto, foi implementado o modelo em espiral que foi escolhido,
entre outros modelos, sendo este o mais adequado.
31
A cada ciclo, o modelo espiral gera um protótipo ligeiramente diferente do anterior
sendo uma versão mais sofisticada do software, na medida em que não há etapas fixas
no modelo espiral, isto é, cada fase ocorre mais do que uma vez. O raio da espiral
representa o custo do processo e o ângulo da espiral representaria o progresso realizado
na construção do software.
O processo espiral não termina após a entrega do software, como nos outros modelos,
podendo ser adaptado para uma aplicação posterior, como um projeto de
aperfeiçoamento do produto entregue. [53] e [54].
32
III.2. REQUISITOS
Nesta secção, serão apresentados os requisitos funcionais e não funcionais do sistema Academic-
Manager.
III.2.1.Requisitos funcionais
RF1. Os utilizadores devem ser capazes de adicionar, editar, gerir e/ou remover anos
letivos.
RF2. Os utilizadores devem ser capazes de adicionar, editar e/ou remover utilizadores.
RF3. Os utilizadores devem ser capazes de adicionar, editar e/ou remover anos escolares.
RF4. Os utilizadores devem ser capazes de adicionar, editar e/ou remover cursos
RF5. Os utilizadores devem ser capazes de adicionar, editar e/ou remover disciplinas.
RF6. Os utilizadores devem ser capazes de adicionar, editar, gerir e/ou remover turmas.
RF7. Os utilizadores devem ser capazes de adicionar, editar e/ou remover serviços.
RF8. Os utilizadores devem ser capazes de adicionar, editar e/ou remover atividades
extracurriculares
RF9. Os utilizadores devem ser capazes de adicionar, editar e/ou remover alunos.
RF10. Os utilizadores devem ser capazes de fazer a inscrição no colégio através do sistema
33
RF12. O sistema deve permitir que os utilizadores realizem a inscrição nas diferentes
atividades extracurriculares
RF13. O sistema deve permitir qua os utilizadores adquiriram serviços através do sistema
RF14. Os utilizadores devem ser capazes de criar listagens dos alunos por atividade
extracurricular
RF15. Os utilizadores devem ser capazes de criar listagens dos alunos por serviço.
RF16. Os utilizadores devem ser capazes de criar listagens dos alunos por turma
RF17. Os utilizadores devem ser capazes de criar listagens dos alunos por disciplinas
RF18. Os utilizadores devem ser capazes de criar listagens dos alunos por curso.
RF19. Os utilizadores devem ser capazes de criar listagens dos alunos por ano escolar.
RF20. Os utilizadores devem ser capazes de criar listagens dos alunos por ciclo de ensino.
RF24. O sistema deve gerar automaticamente os alunos destacados nos quadros de honra
e de excelência.
RF25. O sistema deve gerar automaticamente o currículo académico dos alunos em PDF
Requisitos de Produto
Requisitos de usabilidade
34
RU3. A interface gráfica deverá ser intuitiva.
Requisitos de fiabilidade
Requisitos de desempenho
RDE1. Qualquer página da aplicação não deve demorar em média mais do que
5seg. a ser carregada
Requisitos de robustez
Requisitos Organizacionais
Requisitos de Desenvolvimento
Requisitos Externos
Requisitos de Segurança
RS1. A aplicação não deverá permitir o acesso de nenhum usuário sem primeiro
realizar o login.
35
III.3. CASOS DE UTILIZAÇÃO
Os diagramas de caso de utilização documentam o que o sistema faz do ponto de vista do usuário.
Descreve as principais funcionalidades do sistema e a interação dessas funcionalidades com os
usuários do mesmo. Além disto, permite capturar os requisitos de sistemas sob desenho ou
consideração, descrever a funcionalidade fornecida por esses sistemas e determinar os requisitos
dos sistemas colocam em seu ambiente. [19] e [20] (descrever a funcionalidade fornecida por esses
sistemas e determinar os seus requisitos inseridos no seu ambiente)
Direção pedagógica: a Direção do Colégio que vai ser a encarregue de gerir a inscrição
do aluno no sistema.
36
III.3.2.Caso de utilização do módulo de atividades extracurriculares
Direção: um colaborador do Colégio com privilégios de direção vai ser o encarregue de gerir as
atividades extracurriculares que o colégio dispõe.
No módulo dos serviços, os atores que interagem com o sistema são os seguintes:
Direção: um colaborador do colégio com privilégios de direção é que vai gerir os serviços no
sistema
37
Figura 16 - Diagrama de caso de utilização do módulo de serviços
No módulo de lançamento de notas, os atores que interagem com o sistema são o professor titular
ou diretor de turma e os professores de cada uma das disciplinas, após o preenchimento dos
dados, o sistema gera os documentos necessários para finalizar este processo.
38
III.3.5.Caso de utilização do módulo de currículo académico
No módulo de currículo académico, o ator que interage com o sistema é o professor titular ou
diretor de turma preenchendo os dados necessários para o sistema gerar automaticamente os
currículos académicos.
39
III.4. ARQUITETURA
A arquitetura não é o software operacional, mas sim, uma representação que permite analisar a
efetividade do projeto no atendimento dos requisitos, considerar alternativas de arquitetura na
hora de realizar mudanças no projeto e minimizar os riscos associados à construção de um
software.
Evidencia decisões de projeto iniciais que terão profundo impacto em todo o trabalho de
engenharia de software que se segue depois e, tão importante quanto, no sucesso final do
sistema como uma entidade operacional;
40
2. Um conjunto de clientes que recorre aos serviços oferecidos pelos servidores. Não será
normalmente várias instâncias de um programa de cliente executando simultaneamente
em diferentes computadores.
3. Uma rede que permite que os clientes acedem a esses serviços. A maioria dos sistemas
cliente-servidor são implementados como sistemas distribuídos, conectados usando
protocolos de Internet. [24]
Os padrões arquiteturais podem ser agrupados por categorias de acordo com as caraterísticas do
sistema
Sistemas distribuídos: esta categoria inclui o padrão Broker, este padrão fornece uma
infraestrutura completa para arquiteturas distribuídas;
Sistemas interativos: esta categoria compreende dos padrões, MVC (Model View
Controller) e Presentation-Abstraction-Control. Ambos os padrões apoiam a estrutura dos
sistemas de software que oferece iteração humano-computador;
41
Sistemas adaptáveis: padrão Reflection e o padrão Microkernel apoiam fortemente a
extensão de aplicações e a sua adaptação à evolução das tecnologias e mudanças dos
requisitos funcionais. [23]
Academic Manager é um sistema que deseja permitir um alto grau de iteração com o
utilizador através das interfaces gráficas com o objetivo de facilitar o uso da aplicação,
mas, ao mesmo tempo, manter o núcleo funcional independente da interface do
utilizador. Isto exige escolher uma arquitetura que suporte a adaptação das partes da
interface do usuário, sem causar grandes efeitos para a funcionalidade específica do
sistema ou o modelo de dados subjacente ao software. Por este motivo, o padrão
escolhido foi o MVC.
Múltiplas vistas com o mesmo modelo: MVC separa estritamente o modelo dos
componentes da interface do utilizador, portanto, muitas vistas podem usar o
mesmo modelo;
42
Framework potencial: é possível basear uma estrutura de framework sobre este
padrão. [23]
43
III.5. DIAGRAMA DE ENTIDADE-RELAÇÃO
Como o sistema foi dividido em módulos e para melhor compreensão, passo a explicar o
diagrama de entidade e relação de cada módulo.
44
III.5.1. Módulo de inscrição:
Academic years (anos letivos): contém informação dos anos letivos. Esta
entidade servirá de referencia (referência) para armazenar informação relativas
aos anos letivos.
School years (anos escolares): contém informação dos anos escolares que estão
disponíveis para fazer a matrícula.
45
Disciplines-School years (Disciplinas-anos escolares): entidade que relaciona as
entidades “Disciplines” e “Courses- School years”.
46
Figura 23 - Diagrama de entidade relação do módulo atividades extracurriculares
47
Evaluation reports (relatórios de avaliações): armazena a informação necessária
para fazer os relatórios de avaliações. Esta entidade serve de ligação entre o
módulo de inscrição e o módulo de lançamento de notas.
48
III.5.5. Módulo de currículos académicos
O módulo encarregue pela criação do currículo académico contém uma única entidade,
como é possível ver na figura 26
Users (Utilizadores): laravel cria esta tabela por definição, para guardar
os dados dos utilizadores que irão utilizar o sistema
49
Passwords_resets: o mesmo que que a tabela users, é um componente
do sistema de login de utilizadores de Laravel.
50
III.6. INTERFACES DO UTILIZADOR
Uma vez identificadas as tarefas, são criados e analisados cenários de utilizadores para
definir um conjunto de ações e objetos de interface. Isto fornece uma base para a criação
de um layout de ecrã que represente a design gráfico e o posicionamento de ícones, a
definição de textos descritivos no ecrã, a representação e a colocação de títulos nas
janelas, bem como a especificação de itens de menu principais e secundários. Uma
grande variedade de ferramentas de implementação é usada para construir um
protótipo para avaliação das interfaces.
51
III.6.1. Interfaces de configuração do sistema
Como mostra a imagem 28, esta interface permite criar o ano letivo sobre o qual o
sistema vai funcionar, assim como mudar o estado do ano letivo de “ativo” ou
“desativo”. O sistema não permite ter mais do que um ano letivo ativo. Através desta
interface, também conseguimos observar os anos escolares que já foram criados, assim
como o estado dos mesmos.
A interface representada pela figura 29 permite a criação de anos escolares. Para criar o
ano letivo é obrigatório escolher o ciclo ao qual pertence. Através desta interface,
também podemos ver os anos escolares criados relativamente ao ano letivo ativo.
52
Figura 29 - Vista para criar um novo ano escolar
53
III.6.1.4. Interface – Disciplinas
Através desta interface, é possível criar as disciplinas alusivas ao ano letivo ativo, assim
como associar as disciplinas aos cursos e aos anos escolares. Mediante esta interface
representada pela figura 31, também podemos ver as disciplinas já criadas.
Na figura 32, conseguimos ver o processo de criação de turmas relativas ao ano letivo
ativo. Nesta interface, criamos a turma, assim como, associamos as turmas a um ano
escolar a um curso e adicionamos as disciplinas que serão lecionadas a determinada
turma. Esta interface também nos permite ver as turmas já criadas, assim como alguns
dos seus atributos.
54
Figura 32 - Vista para criar uma nova turma
55
Figura 33 - Vista para criar um novo aluno
56
Figura 34 - Vista para criar um familiar
57
Figura 35 - Vista para realizar a inscrição de um aluno
A quarta, e última, etapa deste processo consiste na inscrição do aluno numa das
turmas, assim como a assinatura do número de listagem. Esta etapa esta representada
pela figura 36.
Uma primeira interface, representada pela figura 37, na qual é possível criar a atividade
extracurricular, assim como também adicionar uma descrição. Nesta interface também
é possível ver as atividades já existentes no sistema.
58
Uma segunda interface, na qual o aluno se escreve na atividade, tal como é possível
observar na figura 38.
A figura 39, representa a primeira interface deste módulo. Nesta interface é possível
criar os serviços, adicionar uma descrição e visualizar os serviços criados.
59
A segunda interface, a qual é possível observar através da figura 40, o aluno seleciona
os serviços que quere adquirir.
60
Na segunda interface relacionada com este módulo é possível ver a listagem de alunos
com currículo académico criado, com as opções de aditar e imprimir o respetivo
currículo em formato pdf. Na figura 42 observamos a interface acima descrita.
61
III.7. IMPLEMENTAÇÃO
Após a pesquisa e análise das ferramentas mais utilizadas atualmente, decidi, pelas
suas características e porque já conhecia esta ferramenta, utilizar PHP como linguagem
de desenvolvimento principal, juntamente com MySQL como gestor de base de dados
e outras tecnologias, as quais passo a explicar com mais detalhe.
III.7.1.1. PHP
O que distingue o PHP de algo como o Javascript no lado do cliente é que o código é
executado no servidor, gerando o HTML que é então enviado para o navegador. O
navegador recebe os resultados da execução desse script, mas não sabe qual é o código
fonte. É possível, inclusive, configurar o servidor web para processar todos os seus
arquivos HTML com o PHP, assim, não haverá realmente nenhum modo dos
utilizadores descobrirem se o programador está a usar essa linguagem ou não.
A melhor coisa em usar o PHP é que é extremamente simples para um iniciante, mas
oferece muitos recursos para um programador profissional. [25]
62
mais segurança, com práticas de desenvolvimento web modernas, etc. Nesse momento,
comecei a estudar a possibilidade de utilizar um framework para auxiliar estas minhas
necessidades.
63
Laravel:
Embora Laravel seja um framework de PHP relativamente novo (foi lançado em 2011),
de acordo com recente pesquisa online da Sitepoint é o framework mais popular entre os
desenvolvedores. Laravel tem um enorme ecossistema com um instante de
hospedagem e plataformas de implementação, no site oficial encontram-se muitos
tutoriais screencast chamados Laracasts.
64
1. O utilizador enviar um pedido
Laravel esforçar-se por fazer todo o desenvolvimento em PHP uma experiência simples,
por este motivo, existe várias ferramentas que ajudam e facilitam a instalação de Laravel
e a sua utilização.
Vagrant:
65
O facto de não ter que configurar nada no computador, faz com que, se por equivoco
desconfiguramos alguma ferramenta seja na máquina virtual e não diretamente no
computador. [36] e [37].
VirtualBox:
66
Laravel Homestead:
Composer:
A instalação dos pacotes é feita por projeto e por default, nada é instalado globalmente.
Por isso o Composer é considerado mais um Gerenciador de Dependências do que um
Gerenciador de Pacotes.
67
Depois de configurar corretamente o arquivo “composer.json” para instalar as
dependências informadas, é feita uma verificação para ver se há algum erro de sintaxe,
acontece a busca no repositório pelo pacote informado, o download é realizado e a
“instalação” feita no diretório apropriado.
Packagist:
68
laravelcollective/bus: este pacote fornece um método conveniente de
encapsular as tarefas que a aplicação precisa para executar de forma simples e
fácil de entender "comandos".
Laravel Colective:
JavaScrip:
Javascript é uma linguagem que surgiu com o objetivo inicial de programar certos
comportamentos sobre as páginas web, respondendo à interação do utilizador e à
realização de automatismos simples. Neste contexto, podemos dizer que nasceu como
uma linguagem de sccripting do lado do cliente, embora, hoje Javascript seja muito mais.
As necessidades das aplicações web modernas e o HTML 5, têm provocado que o uso
de javascript, que encontramos hoje, tenha chegado a uns níveis de complexidade e
prestações tão grandes como outras linguagens de primeiro nível. [42]
69
JQuery:
jQuery é a livraria de Javascript mais conhecida. Com Jquery é possível escrever código
Javascript que pode ser capaz de se executar sem erros em qualquer navegador, incluído
os antigos e implementa muitas funcionalidades.
AJAX:
HTML 5:
HTML é a linguagem com a qual se escreve as páginas web. As páginas web podem ser
vistas pelos utilizadores através dos browsers. Podemos dizer, então, que HTML é a
linguagem utilizada pelos browsers para mostrar as páginas webs aos utilizadores.
Esta linguagem permite aglutinar textos, sons e imagens e combiná-los de acordo com
os nossos gostos. Além disso, e é aqui onde reside a vantagem com respeito a livros e
revistas, HTML permite a introdução de referências às outras páginas por meio de
ligações de hipertexto. [44]
HTML5 é a mais nova versão de HTML. HTML5 incorpora caraterísticas nas quais se
encontra suporte à medida, de modo a melhorar o suporte à criação de aplicações web,
que podem interagir com o usuário, os seus dados locais e servidores de maneira mais
fácil e efetiva. [45]
70
CSS 3:
A especificação de CSS3 traz novidades interessantes que permitem fazer sites mais
elaborados e mais dinâmicas, com maior separação entre estilos e conteúdos. CSS3 dá
suporte a muitas necessidades dos sites atuais, sem ter que recorrer a truques de designs
ou linguagens de programação. [47]
Bootstrap:
Bootstrap é uma framework criada originalmente pelo Twitter, que permite criar
interfaces web com CSS e JavaScript, cuja particularidade é adaptar a interface do site
para o tamanho do dispositivo que é exibido. Isto é, o site adapta-se automaticamente
ao tamanho de um PC, um tablet ou outro dispositivo. Esta técnica de design e
desenvolvimento é conhecido como "responsive design " ou desenho adaptativo.
71
Font Awesome:
Font Awesome é uma fonte que podemos utilizar para implementar ícones sem a
necessidade de imagens e sem técnicas intrusivas.
Suporte para retina display, o que significa que são magníficos em écrans de
alta resolução;
72
III.8. FUNCIONALIDADES IMPLEMENTADAS
RF1. Os utilizadores devem ser capazes de adicionar, editar, gerir e/ou remover anos
letivos.
RF2. Os utilizadores devem ser capazes de adicionar, editar e/ou remover utilizadores.
RF3. Os utilizadores devem ser capazes de adicionar, editar e/ou remover anos
escolares.
RF4. Os utilizadores devem ser capazes de adicionar, editar e/ou remover cursos
RF5. Os utilizadores devem ser capazes de adicionar, editar e/ou remover disciplinas.
RF6. Os utilizadores devem ser capazes de adicionar, editar, gerir e/ou remover
turmas.
RF7. Os utilizadores devem ser capazes de adicionar, editar e/ou remover serviços.
RF8. Os utilizadores devem ser capazes de adicionar, editar e/ou remover atividades
extracurriculares
RF9. Os utilizadores devem ser capazes de adicionar, editar e/ou remover alunos.
73
RF11. Os utilizadores devem ser capazes de fazer a renovação de matrícula no colégio.
RF12. O sistema deve permitir qua os utilizadores realizem a inscrição nas diferentes
atividades extracurriculares
RF14. Os utilizadores devem ser capazes de criar listagens dos alunos por atividade
extracurricular
RF15. Os utilizadores devem ser capazes de criar listagens dos alunos por serviço.
RF16. Os utilizadores devem ser capazes de criar listagens dos alunos por turma
RF17. Os utilizadores devem ser capazes de criar listagens dos alunos por disciplinas
RF18. Os utilizadores devem ser capazes de criar listagens dos alunos por curso.
RF19. Os utilizadores devem ser capazes de criar listagens dos alunos por ano escolar.
RF20. Os utilizadores devem ser capazes de criar listagens dos alunos por ciclo de
ensino.
RF25. O sistema deve gerar automaticamente o currículo académico dos alunos em PDF
Os sobrantes requisitos que não foram referidos no subcapítulo anterior, são os que não
foram implementados. Em suma, não foi implementado o módulo de avaliações, o qual
se refletia nos seguintes requisitos:
74
III.9. SOFTWARE TESTING
Um software precisa de ser testado para se descobrirem os erros que foram cometidos
durante o projeto. Os testes de software são um elemento indispensável para a garantia
da qualidade de software e representa uma revisão final das especificações, do desenho
e da codificação. [40] e [41]
No fim, foram feitos os testes unitários através dos testes de caixa negra e caixa branca.
Através das interfaces gráficas, foram feitos os testes de caixa negra, os quais
pretendiam demostrar que o sistema funciona adequadamente, isto é, que os dados
introduzidos são aceites de forma e que o seu comportamento é o esperado.
Após a execução de estes testes e a correção de alguns erros, foram realizados os testes
de caixa branca, estes testes comprovaram os caminhos lógicos do software através de
minuciosas probas dos detalhes dos procedimentos.
75
III.10. CONCLUSÃO
Na hora da implementação, foi feito uma análise para determinar quais dos requisitos
eram a prioridade na hora da implementação. Resumidamente, o módulo de inscrição,
atividades extracurriculares, serviços e currículos académicos, foram implementados
na totalidade, ao contrário do módulo de lançamento de notas que não foi
implementado.
76
IV. CONCLUSÃO E TRABALHO FUTURO
" The only way to do great work is to love what you do”
- Steve Jobs
77
IV.1. VISÃO CRÍTICA DO ESTÁGIO
A decisão de realizar um estágio curricular como dissertação foi, sem dúvida, favorável
para minha carreia profissional, pois através do projeto desenvolvido, consegui
adquirir competências, conhecimento e experiência que só conseguiria obter desta
forma.
Neste capítulo final, pretendo efetuar uma reflexão analítica sobre o percurso do meu
estágio curricular, de um ponto de vista geral.
Visto que não existia no colégio uma pessoa com conhecimentos amplos na área
da programação, a execução do trabalho recaiu essencialmente sobre mim, o
que me trouxe alguns desafios acrescidos, contudo, todos os elementos que
constituem a empresa, com as suas questões pertinentes e sugestões, me
ajudaram a alcançar respostas e gerir a tomada de decisões, encontrando,
assim, um rumo.
O facto de não ter um orientador interno, nem uma pessoa com experiência na
área de desenvolvimento que me pudesse ajudar e orientar, fez com que este
estágio curricular fosse, ainda, mais desafiante. Devido a este facto, o processo,
pontualmente, detinha-se em determinadas etapas, pois precisava de
investigar e encontrar as respostas para os problemas que iam surgindo por
mim própria.
78
documentos internos, presenciar os processos executados pelos utilizadores também
facilitou a compreensão dos problemas que possuíam.
Nos primeiros tempos do curso, não se tem uma ideia clara do que se gosta e do que se
quer fazer. Como o campo da informática é muito amplo, enveredar por um dos ramos
mais específicos desta área e ter uma experiência laboral efetiva em determinada
vertente de conhecimento, leva-nos a ter uma noção mais ampla sobre os nossos gostos
pessoais e sobre as áreas em que pretendemos continuar a investir como profissionais,
descobrindo, deste modo, o que realmente se pretende fazer no futuro.
Sem dúvida alguma, fazer o estágio curricular enriqueceu o meu currículo vitae, assim
como me preparou para o campo laboral e me fez perceber o que pretendia fazer após
esta experiência enriquecedora. Permitiu-me, deste modo, estar exposta a uma cultura
e ambiente empresarial de diferentes. Tive a oportunidade de apreender as melhores
práticas de comunicação e comportamento profissional, assim como, melhorar a
comunicação escrita e oral para com os colegas diretos e os clientes. Também foi uma
mais valia para refinar as competências sociais.
Toda esta aprendizagem fez com que esteja tanto profissionalmente, como
pessoalmente, melhor preparada para um próximo emprego.
79
IV.2. PERSPETIVAS FUTURAS
80
V. REFERÊNCIAS BIBLIOGRÁFICAS
81
[10] “Bringing MySQL to the web”, https://www.phpmyadmin.net/, acedido em 21 de agosto,
2016,
[17] ”Top 5 Best PHP Frameworks for 2016 To Become a Master Developer”,
https://webandmobiletech.wordpress.com/2016/01/01/top-5-best-php-frameworks-for-2016-
to-become-a-master-developer/ , acedido em 22 de agosto, 2016, Gregory Gillis
[21] Len Bass, Paul Clements, Rick Kazman, “Software Architecture in Practice, Second Edition”
Addison Wesley, 2003
[22] Roger S. Pressman, “Engenharia de Software, uma abordagem profissional, Sétima Edicação”
[23] Frank Buschmann, Regine Meunier, Hnas Rohnert, Peter Sommerlad, Michael Stak, “Pattern-
oriented software architecture A sistem of patterns”, JOHN WlLEY & SONS, 2001
82
[24] Ian Sommerville, “Software Engineering ninth edition” pearson 2011
[40] José Carlos Cordeiro Martins [2007]. “Técnicas para gerenciamento de projetos de software”
83
[41] Fernando Alonso, Loic Martínes, Fco. Javier Segovia [2005] “Introducción a la ingeniería del
software. Modelos de desarrollo de programas”
[46] Qué es y para qué sirve el lenguaje CSS (Cascading Style Sheets - Hojas de Estilo),
http://www.aprenderaprogramar.com/index.php?option=com_content&id=546:que-es-y-
para-que-sirve-el-lenguaje-css-cascading-style-sheets-hojas-de-estilo&Itemid=163, acedido em
18 de setembro, 2016.
84
VI. ANEXOS
85
VI.1. ANEXO 1 – REPOSITÓRIO NO BITBUCKET
86
VI.2. ANEXO 2 – ORGANIZAÇÃO DE TAREFAS NO TRELLO
87
VI.3. ANEXO 3 – BASE DE DADOS EM PHPMYADMIN
88
VI.4. ANEXO 4 – DESENHO DA BASE DE DADOS EM
MYSQL WORKBENCH
89
VI.5. ANEXO 5 – TERMINAL DE COMADO GIT BASH
90
VI.6. ANEXO 6 – EXEMPLO DE UM CURRÍCULO
ACADÉMICO GERADO PELO SISTEMA – PÁGINA 1/2
91
VI.7. ANEXO 7 – EXEMPLO DE UM CURRÍCULO
ACADÉMICO GERADO PELO SISTEMA – PÁGINA 2/2
92