Universidade de Lisboa
Faculdade de Ciências
Departamento de Informática
DESENVOLVIMENTO DE UMA SOLUÇÃO
PARA CONTROLO E REPORTE DAS
ACTIVIDADES DE PROJECTO - TIME
REPORT MANAGEMENT
Filipe Miguel dos Santos da Costa Cabaço
PROJETO
Versão Pública
MESTRADO EM ENGENHARIA INFORMÁTICA
Especialização em Engenharia de Software
U
NIVERSIDADE DE
L
ISBOA
Faculdade de Ciências
Departamento de Informática
DESENVOLVIMENTO DE UMA SOLUÇÃO
PARA CONTROLO E REPORTE DAS
ACTIVIDADES DE PROJECTO - TIME
REPORT MANAGEMENT
Filipe Miguel dos Santos da Costa Cabaço
PROJETO
Trabalho orientado pela Professora Doutora Maria da Graça de Figueiredo Rodrigues Gaspar e coorientado pela Engenheira Ana Teresa Almeida
MESTRADO EM ENGENHARIA INFORMÁTICA
Especialização em Engenharia de Software
Agradecimentos
Considero este relatório o culminar de uma parte importante da minha formação académica, finalizando o meu percurso na Faculdade de Ciências no qual tive o privilégio e prazer de receber uma formação completa, aumentando os meus horizontes e ambições graças a professores competentes e inspiradores.
Quero agradecer aos meus diversos colegas de faculdade que estiveram sempre presentes em todas as etapas da minha vida académica que foram uma força motivadora e de apoio que se tornaram em verdadeiros amigos.
Também quero mostrar o meu apreço aos meus colegas fora meio académico, sempre dispostos a apoiar em todas as minhas. Em especial quero agradecer à minha namorada Isabel Ramos que esteve presente para ajudar em todas as fases, tornando-se um apoio muito importante.
Aos meus colegas de trabalho agradeço as horas de paciência, a capacidade de me integrarem na equipa e o apoio que deram tanto no projeto como na escrita deste relatório, foram sem dúvida um ponto fulcral na minha iniciação na vida profissional. Em especial quero agradecer a minha orientadora Teresa Almeida pelo excelente trabalho como orientadora, proporcionando-me uma oportunidade valiosa, mostrando como poderia melhorar. Queria também agradecer ao Nuno Reis por todo o conhecimento partilhado e ajuda no projeto descrito no relatório . E, por fim, quero agradecer aos meus colegas Bruno Santos e Jaime Vaz, colegas de faculdade que se tornaram colegas de trabalho, ajudaram em todas as fases do meu estágio, facilitando bastante a integração e aprendizagem.
À minha coordenadora de estágio, Graça Gaspar, agradeço toda a sua disponibilidade e minuciosidade ao longo de todo o projeto, aconselhando de forma objetiva e construtiva, ajudando assim bastante a escrita deste relatório.
Por fim quero agradecer a toda a minha família por terem sido essenciais e uma motivação para concluir a minha vida académica. Em especial, quero agradecer aos meus avós, quatro pessoas que me inspiraram desde cedo fomentaram a minha curiosidade cientifica que guia. E por ultimo, quero agradecer aos meus pais que fizeram de tudo para me facultar o melhor para mim, sempre com um excelente conselho, mostrando que devo sempre querer mais, tornando-se a minha motivação para desafios futuros.
Resumo
O desenvolvimento de software é um processo complexo, com diversos objetivos e vários intervenientes, com diferentes exigências e requisitos a serem cumpridos, exigências estas que podem ser prazos, funcionalidades ou arquiteturas, entre outros fatores importantes para o projeto. Esta diversidade de objetivos apresenta desafios para os gestores na preparação e planeamento de um projeto, sendo necessário abordar inúmeros elementos, de forma a concretizar os objetivos propostos. Um dos elementos chave, ao longo de todas as fases do projeto, é a calendarização de tarefas, influenciando, diretamente, o sucesso ou insucesso dos objetivos a cumprir pelos gestores e equipa de desenvolvimento.
O objetivo deste trabalho é o desenvolvimento de uma aplicação web, com o intuito de prevenir e mitigar problemas relacionados com o cumprimento de tarefas planeadas, determinando o estado de execução e a conclusão das tarefas, com base nos dados introduzidos pelos membros da equipa de desenvolvimento do projeto.
Tendo em vista que são necessárias inúmeras entradas por parte dos utilizadores, foi dada particular relevância às questões relativas à usabilidade e portabilidade do software desenvolvido, tentando-se simplificar processos de aquisição de dados, por parte dos intervenientes, de forma a garantir um processo rápido, seguro e eficiente.
Assim, o projeto em causa irá ajudar o desenvolvimento de boas práticas, necessárias para entregas de software nos prazos estabelecidos, com a qualidade exigida pelo cliente, apresentando aos gestores valores concretos, com os quais poderão avaliar e planear com mais exatidão o trabalho das equipas de desenvolvimento, mitigando assim, possíveis riscos.
Palavras-chave: Monitorização, Gestão de Projetos, Tarefas, Planeamento, Calendarização, Aplicação Web
Abstract
Software development is a complex process, with various objectives and multiple users, with different demands and requirements to be fulfilled, from deadlines to functionalities or system architecture and any other elements that are relevant for a project. This diversity presents challenges to project managers when scheduling and planning a project, with various factors to account for, to guarantee that all objectives are accomplished. One of the key aspects of managing software development, during all its phases, is the correct scheduling of tasks, which affects, directly, the success or failure of the goals set by project managers.
This work presents a solution, by exposing the development of a tool with the goal of monitoring the software project tasks, using a simple, intuitive and multi-platform tool, preventing or reducing the impact of task planning errors using input of the development teams.
With this objective in mind, additional relevance was given to usability and portability, simplifying processes of data acquisition, improving fulfillment speed, safety and more efficient information gathering.
As such, the final goal was the implementation of good development practices that are needed for a well-managed software project, with the quality demanded by the client and within the deadlines proposed in the project planning, presenting the project managers with valuable data to evaluate and plan more precisely the various teams, avoiding future errors or delays.
Keywords: Monitoring, Project Management, Tasks, Planning, Scheduling, Web
Conteúdo
Capítulo 1 Introdução ... 15 1.1 Motivação ... 15 1.2 Objetivos ... 15 1.3 Notação Adotada ... 15 1.4 Organização do documento ... 15Capítulo 2 Trabalho relacionado ... 16
2.1 Aplicações Similares ... 16
2.2 Método atual da instituição de acolhimento ... 16
Capítulo 3 Enquadramento ... 17 3.1 Instituição de Acolhimento ... 17 3.2 Ferramentas de Desenvolvimento ... 17 3.3 Processo de Desenvolvimento ... 17 3.4 Plataforma de Desenvolvimento ... 17 3.5 Calendarização do Projeto ... 18
Capítulo 4 Fase de Análise ... 19
4.1 Documentação produzida... 19
4.2 Conclusão ... 19
Capítulo 5 Fase Desenho ... 20
5.1 Modelo de dados ... 20
5.2 Modelação do Sistema ... 20
Capítulo 6 Fase Implementação ... 21
6.1 Módulo de Acesso à Camada de Dados ... 21
6.2 Módulo de Automatização de Registo ... 21
6.3 RESTful API ... 21
Capítulo 7 Fase de Testes ... 22
7.1 Testes Unitários ... 22
7.2 Testes de Sistema ... 22
7.3 Testes de Aceitação ... 22
7.4 Conclusão ... 22
Capítulo 8 Conclusão ... 23
8.1 Influência da fase de análise na fase de desenho ... 23
8.3 Uso de MVC para aplicações Web ... 23 Capítulo 9 Bibliografia ... 24
Capítulo 1
Introdução
Por motivos de confidencialidade, nesta versão pública é apresentada a estrutura da tese mas a informação está omitida.
1.1 Motivação
Descrição da motivação para a criação do projeto.
Conteúdo omitido por razões de confidencialidade do trabalho.
1.2 Objetivos
Descrição dos objetivos pretendidos da aplicação
Conteúdo omitido por razões de confidencialidade do trabalho.
1.3 Notação Adotada
Notação utilizada no documento.
Conteúdo omitido por razões de confidencialidade do trabalho.
1.4 Organização do documento
Detalhada a organização do documento.
Capítulo 2
Trabalho relacionado
Nesta secção irei discutir produtos similares à solução proposta neste documento, concluindo com o porquê de não serem adequadas ao objetivo pretendido. Por fim, irei abordar o trabalho atual da empresa, na área de gestão e monitorização de tarefas e, quais os métodos utilizados, concluindo com a minha opinião sobre a sua eficácia.
2.1 Aplicações Similares
Analise de diversas aplicações semelhantes à ferramenta desenvolvida, abordando as diversas vantagens e desvantagens de cada aplicação, concluindo comparando com os objetivos propostos pelo projeto desenvolvido.
Conteúdo omitido por razões de confidencialidade do trabalho.
2.2 Método atual da instituição de acolhimento
Descrito os métodos atualmente adotados pela empresa de acolhimento para registo de atividades dos diversos trabalhadores, concluindo com uma analise das vantagens e desvantagens do método atual.
Capítulo 3
Enquadramento
Nesta secção irei descrever o enquadramento do trabalho na instituição de acolhimento, as ferramentas a usar, o processo de desenvolvimento, a plataforma de desenvolvimento e a calendarização do projeto.
3.1 Instituição de Acolhimento
É descrita a estrutura interna da instituição de acolhimento.
Conteúdo omitido por razões de confidencialidade do trabalho.
3.2 Ferramentas de Desenvolvimento
São especificadas as diversas ferramentas utilizadas no desenvolvimento do projeto.
Conteúdo omitido por razões de confidencialidade do trabalho.
3.3 Processo de Desenvolvimento
Aborda qual o processo de desenvolvimento utilizado para a implementação do projeto.
Conteúdo omitido por razões de confidencialidade do trabalho.
3.4 Plataforma de Desenvolvimento
Descrição da plataforma de desenvolvimento a ser utilizada pelo projeto. Conteúdo omitido por razões de confidencialidade do trabalho.
3.5 Calendarização do Projeto
Mapa de Gantt e planeamento temporal das diversas tarefas associadas ao desenvolvimento do projeto e respetiva conclusão sobre o cumprimento das datas estipuladas.
Capítulo 4
Fase de Análise
Seguindo a metodologia utilizada na instituição de acolhimento, foi produzida documentação de forma a determinar os objetivos, requisitos e funcionamento da aplicação. Neste capítulo, serão descritas as diferentes fases de análise e, qual a documentação produzida associada.
4.1 Documentação produzida
Descrição de toda a documentação produzida e anexada ao documento. Conteúdo omitido por razões de confidencialidade do trabalho.
4.2 Conclusão
São enunciadas as diversas vantagens e desvantagens da fase de análise e de toda a sua documentação.
Capítulo 5
Fase Desenho
De forma a garantir uma implementação rápida e com código de qualidade, é necessário haver documentação para garantir que as diversas equipas realizem as suas tarefas corretamente. Neste capítulo descrevo os documentos produzidos e como foi realizada a construção dos mesmos.
5.1 Modelo de dados
Descrito qual o modelo de dados escolhido e o motivo de ter sido escolhido. Conteúdo omitido por razões de confidencialidade do trabalho.
5.2 Modelação do Sistema
Descrita a arquitetura de sistema selecionada para o projeto e os motivos. Conteúdo omitido por razões de confidencialidade do trabalho.
Capítulo 6
Fase Implementação
Para uma aplicação cumprir todos os requisitos estipulados é necessário que a implementação seja cuidada, utilizando ao máximo as capacidades das plataformas escolhidas. Com esse fim, nesta secção do documento, irei descrever o que considero ser dos elementos mais importantes na aplicação.
6.1 Módulo de Acesso à Camada de Dados
Descrito o método criado para acesso à camada de dados.
Conteúdo omitido por razões de confidencialidade do trabalho.
6.2 Módulo de Automatização de Registo
Descrito o método criado para registo de processos automático. Conteúdo omitido por razões de confidencialidade do trabalho.
6.3 RESTful API
Descrição do serviço web criado para a aplicação.
Conteúdo omitido por razões de confidencialidade do trabalho.
Capítulo 7
Fase de Testes
Todas as aplicações necessitam de garantir um mínimo de qualidade, para que o cliente fique satisfeito com o produto, cumprindo os requisitos por ele estipulados. Neste capitulo, irei explicar como foi feita a fase de testes e qual a minha análise sobre o mesmo.
7.1 Testes Unitários
Descrição dos testes unitários realizados.
Conteúdo omitido por razões de confidencialidade do trabalho.
7.2 Testes de Sistema
Descrição dos testes de sistema realizados.
Conteúdo omitido por razões de confidencialidade do trabalho.
7.3 Testes de Aceitação
Descrição dos testes aceitação realizados.
Conteúdo omitido por razões de confidencialidade do trabalho.
7.4 Conclusão
Conclusão e discussão dos resultados dos testes.
Capítulo 8
Conclusão
Durante o desenvolvimento do projeto, tive a oportunidade de aprender bastante sobre as suas diversas fases, unindo componentes funcionais a componentes técnicas, o que permitiu ter uma perspetiva bastante abrangente, de como se processa a implementação de projetos de maiores dimensões e adaptados ao negócio.
Com base nesta experiencia, detalho de seguida três constatações que, a meu ver, são relevantes e que me levaram a pensar e a ver desenvolvimento de aplicações de forma diferente.
8.1 Influência da fase de análise na fase de desenho
Decomposição de como a fase de análise influenciou as decisões da fase de desenho do sistema.
Conteúdo omitido por razões de confidencialidade do trabalho.
8.2 Discussão do uso de plataformas de desenvolvimentos
Opinião sobre a utilização de uma plataforma de desenvolvimento ajuda ou limita o desenvolvimento de aplicações.
Conteúdo omitido por razões de confidencialidade do trabalho.
8.3 Uso de MVC para aplicações Web
Discussão da utilização do desenho arquitetural MVC em aplicações web. Conteúdo omitido por razões de confidencialidade do trabalho.
Capítulo 9 Bibliografia
Bibliografia usada na construção do documento.
Conteúdo omitido por razões de confidencialidade do trabalho.