• Nenhum resultado encontrado

Nesta seção será possível ver o diagrama de classes referente ao projeto. Este mostra as relações entre as diferentes classes presentes no sistema a desenvolver. Cada classe é constituída por um nome, atributos e, por fim, as operações dos atores no sistema.

Neste caso e devido ao projeto desenvolvido foi somente usado um diagrama de classe para o Book

Relatório de Projeto em Contexto de Estágio 4 Análise de Requisitos 27 Book a Room ID_Requester Requester Requester_group Meeting_subject Costcenter Number_of_attendees Date Confidencial Recurrent Start_hours Start_minutes Star_time End_hours End_minutes End_time Frequency Final_date Building Location Room Floor Inserir () Consultar ()

Figura 12 – Diagrama de classe do Book a Room [Elaboração Própria]

4.8 Dicionário de Dados

O dicionário de dados não é nada mais do que a explicação do diagrama de classes, isto é, descreve todos os campos, dizendo qual o tipo de dados desse campo: a descrição, quais os valores válidos e as restrições.

28

Nome do campo Tipo de dados Descrição Valores Validos

Restrições

ID_Requester ObjectId Chave primária Letras e números

Única, criada pelo sistema; não alterável

Requester Referência Utilizador que faz o pedido

Requester_group Referência Grupo que faz o pedido

Meeting_subject Linha de texto única

Tema da reunião Obrigatório

Costcenter Referência

Number_of_attendees Linha única de

texto

Número de presentes

Números Obrigatório

Date Data Data do sistema Formato data

Confidencial CheckBox Caso utilizador queira torna a reserva confidencial

Sim ou não

Recurrent CheckBox Caso utilizador queira tornar as reuniões recorrentes Sim ou não Star_hout Caixa de seleção Hora de início Star_minute Caixa de seleção Minutos de início Star_time Caixa de seleção Hora completa de início End_hour Caixa de seleção Hora de fim End_minute Caixa de seleção Minutos de fim End_time Caixa de seleção Hora completa do fim Frequency Caixa de seleção Caso se queira tornar recorrente nas datas

Relatório de Projeto em Contexto de Estágio 4 Análise de Requisitos

29

Final_date Data Data de fim do recorrente

Building Referência Edifícios disponíveis

Obrigatório

Location Referência Localização do edifício

Room Referência Salas do edifício

Floor Referência Pisos do edifício

Relatório de Projeto em Contexto de Estágio 5 Tecnologias

31

5 Tecnologias

Neste capítulo serão mencionadas as tecnologias e ferramentas utilizadas, as linguagens trabalhadas, as plataformas fornecedoras de serviços e o restante software.

5.1 Computação na Cloud

O Cloud computing é um modelo e não uma tecnologia. Este modelo veio mudar a forma como as pessoas e as empresas utilizam os recursos disponibilizados pelas TI (Tecnologias de Informação). Assim, este permite o acesso ubíquo, conveniente e on-demand, através da rede, a um conjunto de recursos partilhados (redes, servidores, armazenamento, aplicações, serviços, etc) que podem ser aprovisionados ou libertados, com um mínimo de esforço e sem interação do fornecedor. Desta forma, o serviço não se encontra registado num determinado computador ou servidor, mas sim numa rede, sendo a sua localização desconhecida pelo utilizador.

O modelo Cloud compõe-se por cinco características, três modelos de serviço e quatro de implementação. [5]

Características essenciais:

On-demand self-service – o utilizador pode, unilateralmente, aprovisionar recursos, sem interagir

com o fornecedor;

Acesso generalizado à rede – desde que se esteja ligado a uma rede tem-se acesso ao serviço Cloud e em qualquer equipamento;

Acesso partilhado a recursos – a Cloud pressupõe uma otimização de recursos fazendo com que haja menos desperdício de recursos;

Elasticidade rápida – possibilidade de upgrade ou downgrade rápido e instantâneo devido a necessidade;

32 Modelo de serviço:

IaaS: Infrastructure-as-a-Service – utilização de recursos de infraestrutura básicos de computação

e armazenamento;

PaaS: Platform-as-a-Service – utilização de um ambiente de desenvolvimento ou serviço de base

de dados, tipicamente para programadores;

SaaS: Software-as-Service – disponibilização de uma aplicação feita vulgarmente através de uma

interface Web normal, serviço de cloud que está mais próximo do consumidor final. Modelo de implementação:

Os dois principais tipos: - Cloud Privada

- Cloud Pública Duas variantes:

- Cloud híbrida – Permite a uma empresa ter parte das suas informações e ou aplicações numa

cloud privada com um maior nível de segurança e as restantes numa cloud pública;

- Cloud comunidade – é partilhada por várias empresas diferentes, mas as quais têm interesses comuns em partilhar diversas informações, como a missão, os requisitos de segurança, entre outras informações e ou aplicações.

As vantagens do serviço cloud são: - Custo de equipamento minimizado; - Investimento inicial mais económico; - Não é necessário investir em hardware; - Oferece uma maior estabilidade;

Relatório de Projeto em Contexto de Estágio 5 Tecnologias

33 - Custos previsíveis ao longo do tempo;

- Atualizações contínuas e automáticas; - Implementação rápida;

- Backups constantes e automáticos; - Trabalho rápido e facilitado, em equipa;

- Um número crescente de plataformas desenvolvedoras de aplicações web;

5.2 ServiceNow

Tendo em conta que a Fruition Partners é a maior parceira, a nível mundial, do ServiceNow, sendo este o seu principal foco tecnológico, este foi o serviço escolhido.

A ServiceNow,Inc (Service-now em 2011) é uma companhia Americana de cloud computing com a sua sede em Santa Clara, Califórnia. Foi fundada em 2004 por Fred Luddy (anterior CTO das companhias de software Peregrine Systems e Remedy Corporation). A ServiceNow foi rotulada como a “empresa de crescimento mais rápido, com receitas de US $ 1 bilião”, vendo as suas vendas subir 38%, encerrando o último trimestre de 2017 como o melhor de sempre. [6]

A ServiceNow fornece software de gestão de serviços como um serviço através de uma plataforma SaaS. A empresa é especializada em gestão de serviços de TI (ITSM), gestão de operações de TI (ITOM) e gestão de negócios de TI (ITBM). Além destes, a ServiceNow oferece todas as seguintes soluções: [7]

- IT Service Management; - IT Operations Management; - IT Business Management; - Software Asset Management; - Security Operations;

34 - Governance, Risk and Compliance;

Figura 13 – Interface do ServiceNow Developer [Elaboração Própria]

5.3 JavaScript

Esta é a linguagem usada por defeito no ServiceNow e que foi lecionada durante a licenciatura, tendo sido usada na parte do server-side.

O JavaScript é uma linguagem de programação interpretada. Foi originalmente implementada como parte dos navegadores web, para que scripts pudessem ser executados do lado do cliente e interagissem com o utilizador, sem a necessidade deste script passar pelo servidor, controlando o navegador, realizando comunicação assíncrona e alterando o conteúdo do documento exibido. [8] Como pode ser consultado em anexo esta linguagem de programação está bastante presente no desenvolvimento do projeto e sendo utilizada para programar a parte do back-end.

Relatório de Projeto em Contexto de Estágio 5 Tecnologias

35

5.4 HTML

HTML é uma linguagem de marcação utilizada na construção de páginas web. Trata-se de um conjunto de etiquetas (tags). Estas servem para definir de que forma será apresentado o texto e outros elementos da página. É constituída por código que delimitam conteúdos específicos, segundo uma sintaxe própria e que definem o tipo de letra, o tamanho, cor, espaçamento, e vários outros aspetos de uma página web.

De forma a ser visível o gantt chart [Anexo 1] no portal foi necessário utilizar HTML de forma a poder ser mostrado no portal. Desda forma e como possível ver em anexo está mostrada a sua utilização.

5.5 JSON

O JSON (JavaScript Object Notation) é um formato de documentos de padrão aberto, de troca simples e rápida de dados, entre sistemas. É uma forma bastante comum de formatação de dados, com uma diversa panóplia de aplicações, servindo de substituto a sistemas como XML.

É independente de linguagem tendo derivado do JavaScript. Muitas das linguagens de programação recentes utilizam-no, incluindo bibliotecas e mesmo código para gerar informação formatada pelo JSON.

De forma a passarmos parâmetros entre o back-end e o front-end usamos o JSON.

5.6 Git/GitHub

O Git é um repositório open source, baseado em tecnologia cloud para a gestão do código de aplicações. É capaz de guardar código numa variedade de linguagens de programação e preservar todas as alterações que são realizadas durante o desenvolvimento do projeto. Oferece também um sistema de controlo de versões, acessível em qualquer lado, o que o torna uma grande ferramenta. Presente no GitHub esta o primeiro gantt chart a ser utilizado. Pode ser consultado a documentação do mesmo assim como o seu respetivo código.

36

5.7 RawGit

Quando é executado um pedido de um certo formato de documento (JavaScript, CSS, HTML) desde o raw.githubusercontent.com ou gist.githubusercontent.com, o GitHub envia-os com um cabeçalho Content-Type no tipo texto/plain. Como resultado, muitos dos browsers modernos não conseguem interpretar estes documentos JavaScript, CSS, HTML, apresentando-os como textos. O RawGit funciona como um caching proxy. Envia pedidos à plataforma GitHub, recebendo a resposta e remetendo para o browser o documento com o cabeçalho Content-Type baseado na extensão em que o documento foi pedido.

As várias camadas em que esta operação é executada permitem que seja feito um esforço mínimo de carregamento na plataforma GitHub.

Na primeira implementação foi através do RawGit que o código do gantt chart foi importado.

5.8 AngularJS

O AngularJS é uma framework do JavaScript em código aberto, mantida pela Google, comunidades e individuais. Esta framework tem como principal objetivo o front-end, tendo sido criada para fazer frente aos desafios apresentados em desenvolver single-page applications.

A framework AngularJS lê primeiramente a página HTML que contem atributos especiais embebidos na mesma. O Angular interpreta esses atributos como diretivas e faz a ligação entre a apresentação e o modelo, representado por variáveis JavaScript comuns. O valor destas variáveis pode ser manualmente definido ou via um JSON dinâmico ou estático.

Relatório de Projeto em Contexto de Estágio 6 Implementação

37

6 Implementação

No capítulo seguinte será apresentado o processo de implementação da solução que se obteve para o problema apresentado.

Nem todas as tecnologias utilizadas foram lecionadas durante o decorrer da licenciatura o que obrigou a uma pesquisa das mesmas. O foco foi utilizar as tecnologias que a Fruition usa e as que neste momento estão em ascendência.

Um dos desafios nesta fase foi não existir uma base sólida, tendo sido necessário inicialmente fazer uma a aprendizagem sobre a plataforma ServiceNow. De seguida, foi necessária uma investigação bastante aprofundada do projeto assim como várias tentativas para se conseguir chegar à implementação final.

Durante todo o projeto houve sempre uma possibilidade de não haver sucesso, visto ser a primeira vez que se tentou fazer a implementação de algo deste género no ServiceNow. Tanto o supervisor como o arquiteto do sistema não tinham a certeza total da possibilidade de o mesmo ser feito. Também, durante a redação do próximo capítulo, foi tido em conta que, devido ao projeto estar a ser desenvolvido no ambiente profissional e para fins comerciais, partes do código seriam omitidas por formar a preservar os interesses da empresa e também por ser propriedade intelectual da mesma. Desta forma, caso seja necessária a visualização do mesmo, tem de ser efetuado um pedido há própria empresa.

Documentos relacionados