DEPARTAMENTO DE INFORMÁTICA Faculdade de Ciências - Universidade de Lisboa Bloco C6 - Piso 3 - Campo Grande, 1749-016 Lisboa Tel & Fax: 351.217500084 RELATÓRIO DE PROJECTO sobre WEB APPLICATIONS realizado na LINK CONSULTING por Bruno Manuel Duarte Bento Universidade de Lisboa Faculdade de Ciências DEPARTAMENTO DE INFORMÁTICA Faculdade de Ciências - Universidade de Lisboa Bloco C6 - Piso 3 - Campo Grande, 1749-016 Lisboa Tel & Fax: 351.217500084 RELATÓRIO DE PROJECTO sobre WEB APPLICATIONS realizado na LINK CONSULTING por Bruno Manuel Duarte Bento Responsável pela FCUL: Eng. Pedro Antunes Responsável pela LINK CONSULTING : Eng. José Afonso Pires Lisboa, Junho de 2005 Agradecimentos Agora que este estágio se encontra concluído, gostaria de deixar algumas palavras de agradecimento às pessoas que tornaram a sua realização possível. Em primeiro lugar, gostaria de agradecer o acompanhamento dado pelo coordenador do projecto Engº João Assunção, pelo Director da Unidade de Portais & Intranets, Engº José Afonso Pires e pelo Professor da Faculdade de Ciências da Universidade de Lisboa, Pedro Antunes, que tiveram a disponibilidade para rever e dar opiniões sobre o documento. Sem eles, o texto teria muitas mais gralhas do que certamente possui. Gostaria de agradecer aos meus colegas de trabalho deste projecto e também, de um modo geral, a todos os colegas da Unidade de Portais & Intranets, de entre os quais destaco a Drª Cintia Cardoso, o Engº Paulo Monteiro e o Engº Paulo Mateus que contribuíram significativamente para os conhecimentos que hoje possuo. Finalmente, à minha família, um enorme pedido de desculpas por estar tão ausente e não passar, nem de perto nem de longe, o tempo suficiente com eles. É devido a eles que posso ser quem sou e a quem tudo devo. Lisboa, Junho de 2005 Bruno Bento Indíce 1 INTRODUÇÃO .....................................................................................................................6 1.1 1.2 1.3 1.4 APRESENTAÇÃO DO PROJECTO ............................................................................................... 7 INSTITUIÇÃO LINK ................................................................................................................. 7 ESTRUTURA DO RELATÓRIO .................................................................................................... 9 RESUMO DO TRABALHO REALIZADO ...................................................................................... 9 2 OBJECTIVOS DO PROJECTO E CONTEXTO DO TRABALHO .............................10 2.1 2.2 2.3 2.4 OBJECTIVOS DO PRÉ-PROJECTO ........................................................................................... 11 OBJECTIVOS DO PROJECTO ................................................................................................... 11 PLANO INICIAL DO PROJECTO ............................................................................................... 12 CONTEXTO DO TRABALHO..................................................................................................... 13 3 METODOLOGIA E CALENDARIZAÇÃO DO TRABALHO......................................16 3.1 3.2 3.2.1 3.2.2 3.2.3 3.2.4 3.2.5 3.3 3.3.1 3.3.2 3.4 3.4.1 3.4.2 3.4.3 3.5 METODOLOGIA DE GESTÃO DE PROJECTOS ......................................................................... 17 MODELO DE DESENVOLVIMENTO ......................................................................................... 17 FASE DE VISÃO..................................................................................................................... 18 FASE DE CONCEPÇÃO ........................................................................................................... 18 FASE DE IMPLEMENTAÇÃO................................................................................................... 19 FASE DE TRANSIÇÃO ............................................................................................................ 19 FASE DE OPERAÇÃO ............................................................................................................. 20 ANÁLISE DO RISCO ................................................................................................................. 20 IDENTIFICAÇÃO DOS RISCOS ................................................................................................ 21 GESTÃO DOS RISCOS ............................................................................................................ 21 RECURSOS ............................................................................................................................... 22 ORGANIZAÇÃO E CONTROLO DO PROJECTO ........................................................................ 23 RECURSOS DE HARDWARE ..................................................................................................... 25 RECURSOS DE SOFTWARE...................................................................................................... 25 CALENDARIZAÇÃO FINAL DO TRABALHO ............................................................................. 27 4 TRABALHO REALIZADO ...............................................................................................28 4.1 TRABALHO REALIZADO NO PRÉ-PROJECTO ......................................................................... 29 4.1.1 NA SONAE MCH .................................................................................................................. 29 4.1.2 NO PEP ................................................................................................................................ 30 4.1.3 NO EBANKA ......................................................................................................................... 30 4.2 TRABALHO REALIZADO NO PROJECTO ................................................................................. 32 4.2.1 ARQUITECTURA TECNOLÓGICA ........................................................................................... 32 4.2.2 .NET FRAMEWORK E LINGUAGEM C# .................................................................................... 33 4.2.3 ARQUITECTURA FÍSICA ........................................................................................................ 36 4.2.4 ARQUITECTURA LÓGICA ...................................................................................................... 36 4.2.5 PLANO DE TESTES................................................................................................................. 47 4.2.6 TRABALHO REALIZADO POR MIM ......................................................................................... 48 5 SUMÁRIO E CONCLUSÕES............................................................................................49 5.1 SUMÁRIO ................................................................................................................................. 50 Relatório do Projecto em Engenharia Informática Página 4 de 62 Indíce 5.2 CONCLUSÕES .......................................................................................................................... 50 6 GLOSSÁRIO .......................................................................................................................51 7 BIBLIOGRAFIA E REFERÊNCIAS................................................................................53 7.1 7.2 ENDEREÇOS WEB .................................................................................................................... 54 LIVROS E DOCUMENTOS ........................................................................................................ 54 8 ANEXOS ..............................................................................................................................56 8.1 8.2 ANEXO I – MODELO DE DADOS .............................................................................................. 57 ANEXO II – FIGURAS .............................................................................................................. 58 Relatório do Projecto em Engenharia Informática Página 5 de 62 1 INTRODUÇÃO Relatório do Projecto em Engenharia Informática Página 6 de 62 Introdução Este documento relata o estágio efectuado por mim, aluno da Licenciatura em Informática da Faculdade de Ciências da Universidade de Lisboa, na empresa link consulting (LINK). Neste capítulo faço a apresentação do estágio, uma descrição da estrutura do relatório e uma pequena apresentação daquilo que fiz durante o estágio. 1.1 APRESENTAÇÃO DO PROJECTO Este projecto visa a integração de alunos da FCUL, que tenham concluído os primeiros quatro anos da Licenciatura em Informática, numa empresa do país, com o objectivo de aí efectuar um Projecto em Engenharia Informática do Curso de especialização profissional em Engenharia da FCUL. A LINK foi uma das empresas que solicitou um estágio à FCUL no qual fui integrado. O estágio desenrolou-se na Unidade de Portais & Intranets (UPI), durante um período de 9 meses, desde 1 de Setembro de 2004 a 31 de Maio de 2005. O projecto em causa é para o cliente Sistema Mutimunicipal do rio Lis do Saneamento Integrado (SIMLIS), que pretende que seja construído um Sistema de Informação com o objectivo de fazer a gestão de todo o seu processo de negócio. O SIMLIS é uma empresa concessionária do Sistema Multimunicipal de Saneamento do Lis com vista à recolha, tratamento e rejeição de efluentes dos municípios de Batalha, Leiria, Marinha Grande, Ourém e Porto de Mós. Um projecto de execução SIMLIS pode ser encontrado na Internet em http://www.iambiente.pt/IPAMB_DPP/docs/SE131.pdf . 1.2 INSTITUIÇÃO LINK Como já foi dito o estágio desenrolou-se na LINK, nomeadamente na UPI. Importa referir, de forma resumida, a origem e quais as funções da LINK. A LINK está situada na Av. Duque D’Ávila, 23, em Lisboa. Esta empresa teve origem na transformação em estrutura empresarial dos Centros de Transferência de Tecnologia do INESC da área de Informática e Computadores. Estes Centros tinham sido criados em 1991 com base num contrato estabelecido com o PEDIP, no âmbito dos Programas PEDIP. No espírito original do contrato com o PEDIP existia o objectivo de que as actividades dos Centros de Transferência de Tecnologia viessem a ser totalmente suportadas por mecanismos de mercado. Dado ser essa a situação dos Centros da área de Informática e Computadores, no contexto da reorganização das actividades do INESC, decidiram os respectivos sócios efectuar o “spin-off” destas actividades numa única empresa, que veio a dar origem à LINK, cujo propósito foi procurar desenvolver este património técnico. A LINK, criada em 1999, é uma empresa de consultoria e serviços que intervém nas áreas de consultoria, desenvolvimento e operacionalização de modelos de negócio electrónico e em consultoria e desenvolvimento de infra-estruturas de Telecomunicações, bem como soluções de Comunicações móveis e de Portais de Voz e WAP. A LINK tem como “Missão” tornar os clientes líderes no alinhamento, integração, eficácia e segurança dos seus processos com as Tecnologias de Informação, através da sua Relatório do Projecto em Engenharia Informática Página 7 de 62 Introdução experiência, competência e continua inovação em consultoria e engenharia de sistemas de informação. E como “Visão” ser reconhecida entre as melhores empresas de consultoria e engenharia no sector das Tecnologias de Informação no país; procurada pelos clientes que têm problemas complexos, pelos profissionais que aspiram a grandes desafios e pelos investidores que pretendem um investimento sólido. Os principais clientes são os seguintes: Figura 1 – Principais clientes da LINK. A LINK também aposta na penetração de novos mercados. Figura 2 – Novos mercados onde a LINK aposta. Relatório do Projecto em Engenharia Informática Página 8 de 62 Introdução 1.3 ESTRUTURA DO RELATÓRIO 9 O primeiro capítulo é constituído pela a Introdução, onde é apresentado o estágio, a apresentação da instituição onde decorreu, a estrutura do relatório e um resumo do trabalho realizado; 9 O segundo capítulo apresenta os Objectivos do Projecto e o plano inicial que foi elaborado para se atingir os mesmos. Adicionalmente desenvolve o Contexto de Trabalho do Projecto, tratando-se no essencial de uma introdução técnica ao tema; 9 No terceiro capítulo é relatada a Metodologia de Trabalho usada no desenvolvimento do mesmo e a respectiva Calendarização; 9 O quarto capítulo apresenta o Trabalho Realizado em fase de pré-projecto, do qual resultou na integração em equipas de projecto e liberdade de autonomia, e na fase de projecto, documentando aquilo que foi feito e quais as ferramentas utilizadas. Apresenta as várias abordagens estudadas para atingir os objectivos definidos e detalha aquela que foi escolhida. Refere também qual a minha colaboração concreta no projecto; 9 O quinto capítulo apresenta um Sumário daquilo que foi feito e adicionalmente relata a Conclusão do Relatório; 9 Por fim, são apresentados o Glossário, a Bibliografia e os Anexos usados. 1.4 RESUMO DO TRABALHO REALIZADO De uma forma breve e sucinta, podemos dividir o estágio em duas fases. Na primeira, com a duração de cerca de 2 meses, para autoformação (com acompanhamento) em novas tecnologias e integração em equipas de projectos para a realização de pequenas tarefas. E a segunda, para a construção da aplicação para gestão de todo o processo de negócio do SIMLIS. Por fim, o último mês de estágio, foi passado a realizar um relatório sobre todo o trabalho efectuado no período de estágio. Relatório do Projecto em Engenharia Informática Página 9 de 62 2 OBJECTIVOS DO PROJECTO E CONTEXTO DO TRABALHO Relatório do Projecto em Engenharia Informática Página 10 de 62 Objectivos do Projecto e Contexto do Trabalho 2.1 OBJECTIVOS DO PRÉ-PROJECTO Esta secção encarrega-se de apresentar os objectivos da fase de pré-projecto de uma forma resumida. Os objectivos focaram com aspectos tecnológicos bem como os relativos a questões de metodologia de trabalho. Do mencionado anteriormente destacam-se: 9 Aprendizagem da plataforma .Net, em particular dos WebServices; 9 Desenvolvimento de competências de programação; 9 Interiorizar a metodologia de desenvolvimento de projectos. Em termos da integração na equipa de projecto, foram definidos os seguintes objectivos: 9 Análise de documentos de requisitos a fim de alcançar o desenvolvimento de componentes; 9 Autonomia na realização de tarefas de desenvolvimento; 9 Realização de testes unitários aos componentes desenvolvidos; 9 Elaboração do manual do utilizador. 2.2 OBJECTIVOS DO PROJECTO Nesta secção serão descritos os objectivos da fase de projecto. Sabe-se que o objectivo principal é o resultado prático do projecto, ou seja, uma aplicação informática útil para o SIMLIS e que siga as especificações efectuadas e aprovadas. Contudo, é importante mencionar outros objectivos que estiveram sempre presentes e que são: 9 A integração numa equipa de projecto; 9 Contacto com a documentação funcional e técnica; 9 Aprofundamento da capacidade de redacção de relatórios; 9 Adquirir experiência profissional. De seguida será efectuada a descrição, de uma forma mais pormenorizada, os principais objectivos deste projecto, no que toca ao aplicativo a implementar. Actualmente os colaboradores do SIMLIS têm a necessidade de aceder a diversa informação díspar e não relacionada, contida nos imensos volumes de processos existentes. Relatório do Projecto em Engenharia Informática Página 11 de 62 Objectivos do Projecto e Contexto do Trabalho Por vezes alguns processos podem estar entregues a uma entidade externa por um determinado período de tempo, tornando impossível a sua consulta e mesmo tornando difícil o controlo dos prazos estipulados. Por outro lado, os processos que se encontram no SIMLIS nem sempre se encontram à disposição e em bom estado de conservação ou não se sabe onde estão armazenados, demorando por vezes muito tempo até que se encontrem. Estes problemas são facilmente ultrapassados, com a ajuda de uma Base de Dados Relacional e uma aplicação para gerir a mesma. A solução apresentada tem como objectivo reduzir a circulação do volume de papel em que assentam os processos, diminuir o tempo de apreciação dos processos de constituição de expropriação e ter um registo sobre os contactos efectuados, registo da documentação e controlo de pagamentos, e que sirva de apoio à decisão com base em toda a informação e historial que a Base de Dados disponibiliza. No que toca a aspectos técnicos, a interface da aplicação perante o utilizador é baseada em HTML produzido por ASP.NET. A partir das páginas ASP.NET pode-se aceder a toda a informação armazenada na Base de Dados (SQL Server 2000 SP2 com Reporting Services), bem como efectuar a gestão dos dados. Uma das grandes vantagens de se ter utilizado documentos ASP.NET no sistema WWW é que permite o acesso à informação através de diversos locais e podendo eventualmente aceder com diversos dispositivos. Deste modo, os utilizadores podem aceder à informação a partir de qualquer PC instalado no interior do SIMLIS ou através de um PC externo com ligação à Intranet (caso sejam cumpridos todos os requisitos em termos de configuração de rede e segurança). Com este sistema a SIMLIS pretende atingir os seguintes resultados: 9 Importar a informação contida em Excel para um repositório único; 9 Registar, Pesquisar e Consultar informação relativa a Parcelas e Interessados; 9 Registar e controlar os pagamentos a titulo de indemnização e compensatórios efectuados aos proprietários; 9 Registar a obtenção de licenças RAN, REN, DH; Este projecto foi elaborado por uma equipa de consultores. No capítulo 4.2.6, são apresentadas as funcionalidades implementadas por mim durante o projecto. As funcionalidades a implementar no futuro são descritas no capítulo 5.1. 2.3 PLANO INICIAL DO PROJECTO O planeamento de um projecto é algo bastante importante e que nos dá uma perspectiva do tempo necessário, recursos e riscos envolvidos na elaboração do mesmo. O plano do projecto é algo que será actualizado ao longo do tempo. O modelo de desenvolvimento da aplicação é constituído por diversas fases que serão abordadas com maior detalhe no capítulo 3.2. Relatório do Projecto em Engenharia Informática Página 12 de 62 Objectivos do Projecto e Contexto do Trabalho ID Task Name 22 1 2 '04 Dec 29 06 13 20 27 '05 Jan 03 10 17 '05 Feb 24 31 07 SMLS_04_0269 Gestão do Projecto 3 Planeamento 4 Start Up 5 Controlo 01-27 6 Encerramento 01-28 7 Desenho e Concepção 8 Levantamento das Interfaces Aplicacionais 9 Elaboração da Arquitectura de Informação 10 Arquitectura de Informação Aprovada 11 Especificação de Requisitos Funcionais 12 Especificação de Requisitos Funcionais Aprovada 13 Elaboração do Guião Interactivo 14 Guião Interactivo Aprovado 15 Concepção do Design Gráfico 16 Design Gráfico Aprovado 17 Desenho dos Ambientes e Sistemas 18 Desenho dos Ambientes e Sistemas Aprovado 19 Especificação de Testes de Aceitação 20 21 11-26 12-02 12-03 12-07 12-09 Desenho Técnico Desenvolvimento 22 Desenvolvimento e Parametrização 33 Importação de dados 34 Fim do Desenvolvimento 35 Testes de Integração 36 11-24 01-10 Transição 37 Infra Estrutura 38 Documentação 39 Formação 40 Testes de Aceitação 41 Correcções 42 Entrada em Produção 01-27 Figura 3 – Calendarização Inicial A Calendarização apresentada anteriormente trata-se da Calendarização Inicial proposta pela equipa LINK tendo em conta os requisitos e envolvimento da equipa do cliente. No capítulo 3.5 é apresentada a Calendarização Final, que corresponde ao verdadeiro tempo despendido no projecto. 2.4 CONTEXTO DO TRABALHO Em termos de localização, o projecto desenrolou-se na UPI (instalações da LINK) e por fim é instalado nas instalações do cliente SIMLIS em Leiria. Ao longo deste capitulo, vou desenvolver o principal objecto de trabalho, Servidões e Expropriações, sobre o qual incidiu o trabalho. Dizer que o processo de Expropriação consiste na aquisição de uma propriedade privada mediante o pagamento de uma indemnização e o processo de Servidão consiste na autorização de passagem de tubagens pelo terreno de outrem, é algo demasiado vago. É preciso referir todas as entidades que são envolvidas e como funcionam. Relatório do Projecto em Engenharia Informática Página 13 de 62 Objectivos do Projecto e Contexto do Trabalho De seguida irei descrever, detalhadamente, o propósito de cada um dos tipos de entidades envolvidas e como funcionam. 9 Subsistema é um conjunto de todas as infra-estruturas com unidades finais de tratamento (bastar ter uma ETAR para já ser um subsistema, no entanto, poderá ainda ser constituído por Estações Elevatórias, ETAR e Emissários), do sistema de saneamento da área de intervenção do SIMLIS. 9 Projecto é uma empreitada de execução de determinadas infra-estruturas dos diversos subsistemas. Um mesmo projecto poderá envolver obras em diversos subsistemas. 9 Infra-estrutura responsável pelo transporte efluente. Uma infra-estrutura pertence a um único subsistema e projecto e pode ser construída em várias parcelas. 9 Parcela representa uma área de terreno necessário para a implantação da infraestrutura. Numa parcela é construída somente uma infra-estrutura e pode ser possuída por vários interessados. Se não existir acordo para a utilização da parcela com pelo menos um dos interessados então a parcela encontra-se em litígio. 9 Confrontações consiste na identificação de objectos/terrenos que confinam com a parcela. 9 Litigio é o conjunto dos processos legais para a entrada no terreno e registo da servidão no caso de não existir acordo. O processo de litígio é único por parcela e é decomposto em dois processos sequencias, Vistoria e Arbitragem, que pode ser resolvido a qualquer altura. 9 Vistoria é a identificação de todas as características da parcela por um perito nomeado pelo tribunal. Se após este processo se mantiver o litígio então será despoleta a arbitragem. 9 Arbitragem é a avaliação da parcela por um perito nomeado pelo tribunal, onde o perito vai avaliar a parcela e emitir o relatório a enviar para o tribunal, para o SIMLIS e para os proprietários. Após este processo o valor de indemnização será estabelecido pelo tribunal. O processo de litígio é concluído sem no entanto se ter chegado a acordo com os interessados. 9 DUP é a Declaração de Utilidade Pública emitida pelo Ministério do Ambiente. Para este processo é necessário juntar determinados documentos dos quais vão ficar registados os seguintes: o Licenças de RAN e REN no caso de existir alguma parcela com estas naturezas; o Publicação dos Editais; o Garantias Bancárias; o Primeira notificação aos interessados das parcelas que não têm acordo. Relatório do Projecto em Engenharia Informática Página 14 de 62 Objectivos do Projecto e Contexto do Trabalho A DUP é pedida para cada infra-estrutura com parcelas sem acordo e todos os interessados dessas parcelas notificados. Após a obtenção de DUP, é associada às parcelas, da infra-estrutura, que ainda não tenham DUP definida, a identificação da DUP obtida. 9 Interessados são todas as entidades envolvidas na parcela (proprietário, arrendatário, procuradores e outros utilizadores) . Um interessado só existe no contexto de uma parcela. A mesma entidade se associada a mais de uma parcela, é tratada como sendo interessados diferentes. Um interessado pode ser contactado pelo SIMLIS várias vezes. 9 Contacto identifica uma comunicação entre o SIMLIS e um interessado. Um contacto somente é efectuado a um interessado, se uma mesma carta for enviada a múltiplos interessados de uma parcela, resulta em vários contactos efectuados. Cada contacto contem as referências dos documentos enviados ao interessado. Um contacto pode ter mais do que um documento enviado. 9 Pagamento identifica um pagamento efectuado pelo SIMLIS no âmbito de obtenção de contracto de servidão para uma parcela. Um pagamento somente é efectuado para uma parcela. Cada pagamento contem referências dos documentos associados ao pagamento. Um pagamento pode ter mais do que um documento associado. Pagamentos com valores negativos são recebimentos. 9 Pedido Pagamento é o conjunto de todos os documentos que comprovam a ocorrência das despesas elegíveis das respectivas candidaturas aos fundos comunitários e que permitem receber os respectivos subsídios. Um pedido pagamento é o conjunto de todas as despesas. 9 Despesa é o conjunto de todos os documentos que comprovam a ocorrência das despesas elegíveis por parcela e tipo de pagamento. Uma despesa é associada a um pedido de pagamento. Para um mesmo pedido de pagamento e parcela uma despesa de uma dado tipo é única. 9 Correspondência é a entidade que representa um contacto de correspondência do SIMLIS. Correspondência é de entrada, do exterior para o SIMLIS. Correspondência é de saída, do SIMLIS para o exterior identificada por nº de ordem interno indexado ao ano. Correspondência é sempre dirigida a um destinatário. 9 Referência Documento identifica a referência para um documento físico arquivado. Várias entidades contêm referências a documentos nomeadamente: o Parcela – documentos associados a uma parcela; o Pedido DUP – documentos manipulados no âmbito de um pedido DUP; o Contacto – notificações, documentos enviados a interessados de parcelas; o Pagamento – documentos associados a pagamentos. Relatório do Projecto em Engenharia Informática Página 15 de 62 3 METODOLOGIA E CALENDARIZAÇÃO DO TRABALHO Relatório do Projecto em Engenharia Informática Página 16 de 62 Metodologia e Calendarização do Trabalho 3.1 METODOLOGIA DE GESTÃO DE PROJECTOS A LINK, consciente da importância da gestão dos seus projectos, engloba na sua estrutura organizacional uma área designada por Project Support Office (PSO). O PSO tem como missão garantir a qualidade da gestão dos projectos LINK, desenvolveu uma metodologia para esse efeito e tem vindo a desenvolver sistemas de informação de suporte à mesma. O modelo de gestão de projectos da LINK, encontra-se representado na Figura 4 Metodologia de Gestão de Projectos da LINK, no anexo II - Figuras. Este modelo resulta da adaptação do modelo seguido pelo Project Management Institute (PMI) e é aplicável a qualquer tipo de projecto, independente da tecnologia envolvida. Podemos observar que o modelo divide-se em cinco macro-processos que respeitam ao arranque do projecto, ao planeamento, execução, controlo e encerramento do projecto. Entre os processos de execução e de controlo verifica-se um ciclo que só é quebrado quando estão criadas as condições, de acordo com o plano de projecto, para se passar ao processo de encerramento, ou quando é assegurada pelos fluxos de reporting de progresso da execução dos trabalhos, dos quais é obtido feedback que se poderá traduzir na aprovação dos trabalhos executados ou em pedidos de correcção. Cada um dos macro-processos acima referenciados encontra-se detalhado no documento de referência da Link Consulting (2004) - “Metodologia de Gestão de Projectos”, que não está disponível*. 3.2 MODELO DE DESENVOLVIMENTO O desenvolvimento de software é um processo complexo, que não deverá ser realizado ao acaso, sendo tomadas decisões apenas quando preciso, ou dependendo totalmente na qualidade das tecnologias disponíveis. Pelo contrário, deve seguir uma metodologia que combine métodos compreensivos para todas as fases do trabalho, ferramentas de desenvolvimento, técnicas para assegurar a qualidade do software e uma filosofia de coordenação, controle e gestão dos recursos disponíveis. Esta metodologia tem como objectivo ajudar ao planeamento das tarefas de cada fase do desenvolvimento, bem como a definição da melhor forma de as realizar. O modelo de desenvolvimento usado foi o Modelo da LINK que é uma metodologia iterativa que segue uma instanciação do RUP, aplicável a qualquer tecnologia escolhida. Este modelo é apresentado esquematicamente na Figura 5 - Metodologia de desenvolvimento da LINK, no anexo II - Figuras. O modelo apresentado processa-se em ciclos, como se pode observar, e cada ciclo resulta numa nova release da aplicação. Isto processa-se usualmente de acordo com um plano de releases, definido quer devido à necessidade de lançamentos faseados com funcionalidade incremental, quer por ser exigida a construção prévia de protótipos que têm que ser evoluídos para os produtos finais. Relatório do Projecto em Engenharia Informática Página 17 de 62 Metodologia e Calendarização do Trabalho A passagem da Fase de Visão para a Fase de Concepção dá-se sempre que há uma definição de objectivos a desenvolver. A passagem para a Fase de Implementação ocorre no final da fase de desenho. Quando a aplicação está pronta a entrar em operação, inicia-se a fase de Transição, normalmente com uma release beta (também conhecida como piloto), apenas disponível a um conjunto restrito de utilizadores. Esta fase termina com o roll-out (entrega) definitivo da aplicação e a sua disponibilização aos utilizadores em geral. Retoma-se então a fase de Visão, para o desenvolvimento da próxima release da aplicação. 3.2.1 Fase de Visão A primeira Fase de Visão coincide normalmente com a elaboração da proposta, esta deve assegurar o acordo relativamente aos objectivos a serem desenvolvidos. É durante a Fase de Visão que se estabelecem as regras de negócio para a aplicação a desenvolver e se define o âmbito do projecto. Os resultados expectáveis desta fase são apresentados de seguida: 9 Uma visão genérica dos requisitos fundamentais, características chave e constrangimentos principais da aplicação a desenvolver; 9 Elaboração de um ou mais protótipos. Alguns dos principais critérios a ter em conta na Fase de Visão são: 9 A concordância dos vários intervenientes relativamente ao âmbito e estimativas; 9 A compreensão dos requisitos essenciais, por vezes evidenciada com alguns casos de uso iniciais; 9 A credibilidade das estimativas, prioridade, riscos e o processo de desenvolvimento. 3.2.2 Fase de Concepção A Fase de Concepção tem como objectivo a análise e desenho da aplicação. As actividades desta fase asseguram a estabilidade da arquitectura e requisitos e a minimização dos riscos, de forma a ser possível predizer com certeza o esforço necessário para completar o desenvolvimento. Os principais critérios de avaliação da Fase de Concepção são normalmente os seguintes: 9 A estabilidade da visão da aplicação; 9 A estabilidade da arquitectura; 9 O tratamento e resolução dos maiores riscos técnicos. Genericamente, os resultados da Fase de Concepção são em geral os seguintes: Relatório do Projecto em Engenharia Informática Página 18 de 62 Metodologia e Calendarização do Trabalho 9 O modelo de casos de uso e a captura de requisitos suplementares, não funcionais, não associados a um caso de uso especifico; 9 Levantamento das entidades; 9 O desenho da interface com o utilizador; 9 A revisão da lista de riscos e do caso de negócio apresentado na visão; Nesta fase, são produzidos um conjunto de documentos que descrevem o resultado da análise de concepção da aplicação. A Fase de Concepção termina com as estimativas dos tempos de implementação por parte da equipa de desenvolvimento. As estimativas por caso de uso devem incluir as fases de análise, desenho, codificação, testes unitários, integração e documentação. 3.2.3 Fase de Implementação Durante a fase de implementação, todas as componentes e funcionalidades da aplicação são desenvolvidas, integradas numa release e cuidadosamente testadas. O resultado desta fase é “uma aplicação” pronta a ser disponibilizada aos seus utilizadores finais. Este deverá no mínimo compreender os seguintes aspectos: 9 Estar integrado nas plataformas adequadas; 9 Ser acompanhado de uma primeira versão dos manuais de utilização e instalação; 9 O desenho detalhado, conteúdo a descrição de release. Os critérios de avaliação para esta Fase de Implementação são: 9 A estabilidade e maturidade do desenvolvimento, por forma a ser disponibilizado à comunidade de utilizadores; 9 Resultados dos testes; 9 A preparação de todos os intervenientes para a transição da aplicação. 3.2.4 Fase de Transição O objectivo principal da Fase de Transição é fazer transitar a aplicação para a sua comunidade de utilizadores, ou seja conseguir: 9 A autonomia dos utilizadores fase ao suporte; 9 A concorrência dos intervenientes de que a aplicação está consciente com a visão inicial; 9 Disponibilizar a release final da aplicação, da forma mais rápida e prática. Relatório do Projecto em Engenharia Informática Página 19 de 62 Metodologia e Calendarização do Trabalho A Fase de Transição inicia-se sempre que o desenvolvimento se encontra “maduro” o suficiente para ser disponibilizado aos seus utilizadores finais. Isto requer tipicamente que um subconjunto das funcionalidades sejam completadas a um nível aceitável de qualidade, e que a documentação para os utilizadores esteja disponível de forma que a transição forneça resultados positivos a todas as partes. A Fase de Transição inclui o seguinte: 9 Testes para validar o sistema relativamente às expectativas dos utilizadores; 9 Se é o caso, a operação paralela com as aplicações que está substituir; 9 Se é o caso, conversação de base de dados operacionais; 9 Formação dos utilizadores e administradores. No final desta fase decide-se se os objectivos da visão foram atingidos e se deve iniciar outro ciclo de desenvolvimento. Os critérios de avaliação para esta fase centram-se exclusivamente na satisfação dos seus utilizadores. 3.2.5 Fase de Operação No caso da metodologia de desenvolvimento de aplicações da LINK, a fase de operação compreende a garantia da aplicação, que assegura apenas a manutenção correctiva dos desenvolvimentos efectuados pela LINK. A garantia exclui os aspectos como os seguintes: 9 O suporte a anomalias de sistemas externos; 9 Alterações que resultem de mudanças face aos requisitos especificados nos documentos produzidos na Fase de Concepção; 9 Testes. Cada uma das fases mencionadas anteriormente encontra-se detalhada no documento de referência de Assunção, João (2003) - “Metodologia de Desenvolvimento de Aplicações Workflow”, que não se encontra disponível*. 3.3 ANÁLISE DO RISCO Sempre que somos confrontados com um projecto de desenvolvimento de software, temos que ter em conta a análise do risco relacionada com processo de desenvolvimento. A análise do risco é constituída por duas actividades, sendo a primeira, a identificação dos riscos inerentes ao projecto em questão, porque nem todos os projectos estão sujeitos aos mesmos riscos, a segunda é a gestão dos riscos identificados na actividade anteriormente, ou seja, é o estudo e escolha de medidas alternativas que permitam minimizar e controlar os riscos. Relatório do Projecto em Engenharia Informática Página 20 de 62 Metodologia e Calendarização do Trabalho De seguida são apresentados os que foram mais importantes no projecto e como foram abordados. 3.3.1 Identificação dos Riscos Os riscos que vamos enfrentar são de três tipos: riscos de projecto, riscos técnicos e riscos de negócio. Os que mais poderão influenciar o projecto a ser desenvolvido são: 9 Riscos de projecto o Interpretação incorrecta dos requisitos do cliente; o Desenvolver um produto cujo custo final seja muito elevado; o Atraso na entrega do produto final. 9 Riscos técnicos o Interface inapropriada para o tipo de utilizador; o Impossibilidade de garantir a manutenção do sistema; o Tecnologia inadequada. 9 Riscos de negócio o Falta de formação dos utilizadores; o Perder o apoio da direcção do SIMLIS; o Desenvolver um produto que não venha a ser utilizado. 3.3.2 Gestão dos Riscos Finalmente, são apresentadas as medidas que poderão permitir minimizar e controlar cada um dos riscos indicados. 9 Riscos do projecto o Interpretação incorrecta dos requisitos do cliente. O contacto por parte da direcção do SIMLIS com a aplicação que estava a ser desenvolvida permitiu que qualquer erro resultante de má interpretação fosse corrigido de imediato; o Desenvolver um produto cujo custo final seja muito elevado. No inicio do projecto foram definidos os recursos de hardware e software necessários. Entretanto foi utilizada tecnologia sobre a qual nunca tinha sido usada e como tal não se sabia dar uma estimativa exacta. Contudo foi atribuída uma Relatório do Projecto em Engenharia Informática Página 21 de 62 Metodologia e Calendarização do Trabalho tarefa para autoformação na tecnologia em questão tendo em conta os recursos monetários disponíveis; o Atraso na entrega do produto final. Para evitar este risco foi necessário levar a sério a calendarização do projecto, certificar-se das tarefas já concluídas, preparar adequadamente as restantes e controlar os prazos definidos para a realização de cada uma, de acordo com a calendarização. 9 Riscos técnicos o Interface inapropriada para o tipo de utilizador. Quanto a este risco, só quando os utilizadores começarem a utilizar a aplicação é que podemos tirar conclusões. No entanto tentou-se identificar o melhor possível o domínio da aplicação, assim como o grau de conhecimento e objectivos dos utilizadores da aplicação. Também será fornecido um Manual do Utilizador para ajudar os utilizadores na utilização do sistema. Contudo, as aplicações da Web, hoje em dia, têm vindo a ser muito populares daí que se opta-se pela criação de ecrãs da aplicação sob a forma de páginas HTML; o Impossibilidade de garantir a manutenção do sistema. A melhor maneira de combater este risco foi a criação de documentação, para auxiliar os programadores e informar sobre todos os passos do processo de desenvolvimento de software; o Tecnologia inadequada. Este risco foi combatido com a escolha das tecnologias mais poderosas que existem actualmente no mercado. No entanto, sabe-se que no futuro aparecerão novas tecnologias mais potentes. Este risco poderá ser superado no futuro com a adaptação da nova tecnologia através do processo de migração. 9 Riscos de negócio o Falta de formação dos utilizadores. Este risco é travado com o fornecimento do Manual do Utilizador e através de formação dada pelos responsáveis da LINK aos utilizadores finais; o Perder o apoio da direcção do SIMLIS. É conveniente manter a direcção informada em relação ao estado do processo de desenvolvimento de software; o Desenvolver um produto que não venha a ser utilizado. Este risco segue as medidas a serem tomadas no risco da “Interface inapropriada para o tipo de utilizador”. 3.4 RECURSOS Para que o planeamento efectuado seja cumprido é necessário dispor de recursos humanos, de hardware e de software. Relatório do Projecto em Engenharia Informática Página 22 de 62 Metodologia e Calendarização do Trabalho 3.4.1 Organização e Controlo do Projecto 3.4.1.1 Organização do Projecto A Organização do Projecto apresentada tem como objectivo definir os níveis de responsabilidade e decisão, bem como os canais e processos de comunicação, capazes de assegurarem o sucesso do projecto. Figura 6 – Organização do Projecto O Gestor de Projecto, Engº João Assunção, da LINK tem como responsabilidades: 9 O planeamento e controlo dos objectivos do projecto, nomeadamente âmbito, tempo, custos, qualidade e organização; 9 A garantia da correcta identificação e quantificação dos riscos do projecto, bem como o planeamento das acções de resposta aos mesmos; 9 A constituição e gestão da equipa de projecto e a direcção das reuniões com a equipa de projecto; 9 O controlo do projecto, comparando a situação actual face ao planeado, identificando desvios e propondo acções correctivas; 9 A elaboração e distribuição de relatórios periódicos de situação do projecto, assegurando a comunicação com os vários stakeholders. O gestor de projecto do cliente tem como responsabilidades: Relatório do Projecto em Engenharia Informática Página 23 de 62 Metodologia e Calendarização do Trabalho 9 Assegurar e coordenar o envolvimento dos elementos da sua organização de acordo com o definido no plano do projecto; 9 Assegurar, conjuntamente com o gestor de projecto da LINK, o controlo do projecto, especialmente nos componentes definidos sendo da responsabilidade da sua organização; 9 Colaborar, conjuntamente com o gestor de projecto da LINK, na elaboração dos relatórios de progresso do projecto. O Responsável Técnico, Engº Paulo Mateus, da LINK tem como responsabilidades: 9 O planeamento e controlo do processo de desenvolvimento de software; 9 A garantia da qualidade do software desenvolvido; 9 A decisão sobre as opções tecnológicas que melhor se enquadrem face aos requisitos da solução a desenvolver; 9 A distribuição da execução das tarefas de garantia de qualidade (especificação de requisitos, especificação de testes) e de controlo de qualidade (testes de unidade; testes de integração, testes de carga e desempenho); 9 A elaboração e distribuição de relatórios periódicos de progresso do projecto, assegurando a comunicação com a Gestão do Projecto. A Equipa de Consultores, constituída por Engº Paulo Mateus, Engº Carlos Dias e por mim, Bruno Bento, tem como responsabilidades: 9 A equipa de consultores, coordenada pelo Responsável Técnico na vertente de execução técnica e pelo Gestor de Projecto da LINK na vertente de gestão de recursos humanos, assegurará a execução de todas as actividades de acordo com o planeamento acordado. A Equipa do Cliente tem como responsabilidades: 9 A Equipa do Cliente, cuja coordenação é da exclusiva responsabilidade do Gestor de Projecto do Cliente, pode contar com Utilizadores Chave, aptos a definirem os requisitos funcionais e de desempenho da solução, bem como de verificarem a conformidade da solução final face aos requisitos. 3.4.1.2 Controlo do Projecto Para efectuar o Controlo do Projecto foram usados os seguintes procedimentos de comunicação: 9 Relatórios de controlo de projecto; 9 Reuniões de controlo de projecto. Relatório do Projecto em Engenharia Informática Página 24 de 62 Metodologia e Calendarização do Trabalho Ao longo do Ciclo de Vida do projecto foram produzidos periodicamente relatórios de progresso. Estes relatórios, destinados ao Gestor de Projecto, reflectem a situação de cada componente do projecto relatada pelos coordenadores de cada um dos pacotes de trabalho. As reuniões de controlo de progresso tiveram uma periodicidade semanal, tendo por objectivo a revisão dos relatórios de progresso. Evidenciam: 9 O trabalho concluído desde a última reunião; 9 O trabalho em curso; 9 O trabalho em atraso; 9 O planeamento do trabalho para o próximo período; 3.4.2 Recursos de hardware Os recursos de hardware utilizados no desenvolvimento da aplicação foram os seguintes: 9 Máquina servidor de Base de Dados; 9 Máquina servidor de web; 9 Máquinas clientes de desenvolvimento. 3.4.3 Recursos de software O software instalado nestas máquinas para o desenvolvimento da aplicação pretendida é: 9 Microsoft Visual Source Safe o O VSS é uma ferramenta de colaboração para programadores de aplicações. Com esta ferramenta é possível dentro da equipa de desenvolvimento, controlar os acessos e versões. A grande vantagem de usar este software e não outro semelhante existente no mercado prende-se com a integração com os produtos Microsoft. Esta ferramenta foi adoptada para controlar o código fonte do projecto. 9 Concurrent Version System o O CVS é também uma ferramenta de controlo de versões e acessos de um sistema durante o processo de desenvolvimento. Esta é a ferramenta de eleição na LINK para controlo de versões de documentos. Os documentos em questão são a especificação técnica e funcional, o manual do utilizador e de instalação, entre outros. 9 Visual Studio 2003 Relatório do Projecto em Engenharia Informática Página 25 de 62 Metodologia e Calendarização do Trabalho o O VS 2003 é o ambiente de desenvolvimento das aplicações .NET. 9 .NET Framework o Trata-se da infra-estrutura básica sobre a qual as aplicações correm. 9 Microsoft Internet Information Services o O IIS é um servidor Web da plataforma Microsoft. 9 Microsoft SQL Server 2000 o O SQL Server é uma base de dados de referência do mercado proporcionando uma base sólida e escalável do sistema. 9 Microsoft Office Visio 2003 o É uma ferramenta simples e flexível para criar com facilidade gráficos e fluxogramas para entender, visualizar conceitos mais rapidamente e comunicar informações com maior eficiência. 9 Microsoft Office Word 2003 o Processador de texto escolhido para processar todos os documentos realizados para o projecto. 9 Internet Explorer v6.0 o Ferramenta utilizada para visualizar as páginas web. 9 SQL Server Query Analyzer o Ferramenta que oferece um ambiente extremamente flexível para correr ad hoc queries. Esta ferramenta faz parte do pacote do SQL Server. 9 SQL Server Enterprise Manager o Ferramenta que oferece um ambiente para criar e gerir Base de Dados, bem como navegar pelos dados. Esta ferramenta faz parte do pacote do SQL Server. 9 Microsoft Windows XP Professional Version 2002 Service Pack 2 o Sistema operativo sobre o qual todas as ferramentas mencionadas anteriormente correm. Os produtos anteriormente seleccionados para a realização do projecto foram aqueles que têm em conta o valor que trazem para o SIMLIS quer para este projecto quer a médio e longo prazo. Na decisão da escolha do software pesou o SIMLIS ter um contrato com a Microsoft no que toca aos produtos. Relatório do Projecto em Engenharia Informática Página 26 de 62 Metodologia e Calendarização do Trabalho 3.5 CALENDARIZAÇÃO FINAL DO TRABALHO Apesar do esforço feito para cumprir à risca a calendarização inicial, é sempre de esperar que aconteçam sempre imprevistos que levem ao atraso das tarefas definidas. A falta de experiência da minha parte, nomeadamente na resolução de bugs (problemas), levou a que pontualmente fosse notado algum atraso, que mais tarde foi recuperado com um esforço adicional da minha parte. Este contratempo permitiu que mais tarde o desenvolvimento do código para a aplicação fosse mais rápido. Sendo considerada informação sensível no que toca à sua divulgação ao exterior, o plano de projecto final não será aqui exposto. Relatório do Projecto em Engenharia Informática Página 27 de 62 4 TRABALHO REALIZADO Relatório do Projecto em Engenharia Informática Página 28 de 62 Trabalho Realizado 4.1 TRABALHO REALIZADO NO PRÉ-PROJECTO Esta secção encarrega-se de relatar o trabalho realizado durante a fase de préprojecto de uma forma resumida. Como já foi mencionado no capítulo 2.1, os objectivos do pré-projecto consistiam na adaptação ao trabalho em equipas de trabalho segundo a Organização e Controlo do Projecto, e também no enriquecimento de conhecimentos das novas tecnologias. De seguida são apresentados os projectos em que estive inserido nesta fase. 4.1.1 Na Sonae MCH A minha primeira colaboração foi dada no projecto que era para o cliente Sonae Distribuição – Modelo Continente Hipermercados e consistiu num processo de uniformização dos layouts das aplicações WF (WorkFlow). Pretendia-se alterar o design e as cores para corresponder ao conteúdo do Guião Interactivo Genérico que entretanto fora actualizado. As vantagens deste desenvolvimento são várias: 9 Restabelecimento de um padrão uniforme de interface para o utilizador, que está de acordo com o grafismo da Worklist Única e da própria NGI (Nova Geração do INSITE). Este ponto é especialmente importante tendo em conta o crescente número de utilizadores deste WF. 9 Enriquecimento de algumas componentes do WF Bens e Serviços, que permitem no futuro uma maior rapidez na alteração das interfaces. 9 Melhoria significativa na usabilidade de alguns dos ecrãs que serão alterados. 9 Adopção de desenvolvimento. alguns componentes comuns, reduzindo esforço de Na Figura 7 - Exemplo de um ecrã do WF Bens e Serviços, no anexo II - Figuras, encontra-se um exemplo que ilustra os resultados que se pretendem obter com este desenvolvimento. A minha participação no projecto foi nas seguintes etapas definidas na metodologia: 9 Desenvolvimento o Alterações das Interfaces o Passagens a Staging (pré-produção) 9 Transição o Preparação da Passagem a Produção Relatório do Projecto em Engenharia em Informática Página 29 de 62 Trabalho Realizado Neste trabalho também tive a oportunidade de aprofundar os meus conhecimentos em folhas de estilo CSS, JavaScript e HTML. 4.1.2 No PEP Noutra aplicação da Sonae, PEP, “Planeamento de Eventos Promocionais”, o objectivo era desenvolver novas funcionalidades, utilizando a tecnologia VBA em Excel onde pude aprofundar os meus conhecimentos académicos. O PEP é um sistema de informação, cuja principal base é o sistema Retek, que permite a gestão centralizada das lojas, com destaque para a gestão de produtos, fornecedores e encomendas. A Figura 8 - Folha “Definição de Promoções” da aplicação PEP, no anexo II Figuras, mostra um dos ecrãs da aplicação PEP. A proposta de desenvolvimento do PEP que me foi pedido para implementar encontra-se no documento de referência de Monteiro, Paulo (2004) - “Proposta Desenvolvimento: PEP - Desenvolvimento da template v1.18”, o qual não se encontra disponível*. 4.1.3 No eBanka Terminei a primeira fase do estágio num projecto que se chama eBanka (http://ebanka.promosoft.com/) que é um produto constituído por Home Banking com componente de portal institucional e tem como objectivo responder às necessidades das instituições bancárias que pretendem utilizar a Internet como mais um canal de comunicação com os seus actuais e potenciais clientes. Desta maneira permite que os clientes efectuem operações de transferências internas e externas, consulta de saldos, pedidos de cheques, extravio de cheques, consulta de movimentos, consulta de câmbios, etc. A figura seguinte mostra o ambiente da aplicação eBanka na sua vertente de Home Banking: Relatório do Projecto em Engenharia Informática Página 30 de 62 Trabalho Realizado Figura 9 – Aplicação eBanka A equipa deste projecto era constituída por um gestor de projecto, um responsável técnico e um consultor. Eu desempenhei a função de consultor, onde executei as tarefas que me foram atribuídas. A minha contribuição neste projecto consistia em desenvolver um WebService que é responsável por receber as operações dos clientes, verificar se os clientes estão registados no sistema e invocar um Componente COM, utilizando a tecnologia C# sobre WebServices do .Net. Este WebService também é responsável por manipular todas as mensagens XML retornadas pelo Componente COM, esta manipulação foi feita com a ajudas das classes de manipulação de XML do .Net. WebServices são uma nova e inovadora técnica para a troca de dados via Web que se tem utilizado muito para fornecer e consumir serviços na Web. Toda a comunicação entre os servidores WebServices e os seus clientes é através de mensagens XML sobre o protocolo HTTP. Mas para a comunicação ser baseada em XML é necessário um protocolo que seja responsável por encapsular as chamadas dos métodos e propriedades dos objectos em XML, este protocolo chama-se SOAP. Contudo, para um cliente invocar os serviços fornecidos por um servidor é necessário que conheça a assinatura desses serviços e isto é conseguido através do padrão WSDL, que fornece a descrição de tudo que um WebService possui. Relatório do Projecto em Engenharia Informática Página 31 de 62 Trabalho Realizado 4.2 TRABALHO REALIZADO NO PROJECTO 4.2.1 Arquitectura tecnológica Este capitulo foi reservado ao relato das soluções tecnológicas abordadas e adoptadas para a realização do projecto. Antes da criação do projecto foi necessário decidir, em fase de especificação técnica quais as linguagens de programação a utilizar, e quais os mecanismos de comunicação da aplicação com a Base de Dados a implementar e qual a interface mais apropriada para o sistema. Para desenvolver a aplicação para o negócio do SIMLIS foi colocada a questão do tipo de interface, windows application ou web application. As windows applications consistem em aplicações com interface com o utilizador semelhante aos dos programas actuais para o Sistema Operativo Windows, pelo que, as web applications são aplicações destinadas a serem vistas sobre a Internet em browsers. A solução escolhida foi a interface das web applications, esta solução permite o acesso à informação através da Internet. Desta modo são apresentadas as seguintes vantagens no seu uso: 9 Os utilizadores SIMLIS podem aceder de uma forma fácil à informação a partir de qualquer PC instalado no interior do SIMLIS ou através de um PC externo com ligação à Internet; 9 Facilita a manutenção do sistema, uma vez que as actualizações reflectem para todos os utilizações sem afectar nada; 9 Não necessita de ser instalado nada no computador do cliente, somente ter um browser. No entanto para a concretização da interface web application é necessário ter uma infra-estrutura sobre o qual a aplicação corre. Como infra-estrutura, optou-se pela .Net Framework, embora exista outra concorrente forte como a J2EE da Sun. Dentro da .Net Framework optámos por escolher a linguagem de programação C#, porque é uma linguagem nova e moderna que visa facilitar o desenvolvimento de aplicações. O capítulo 4.2.2 foi reservado à .Net Framework e à linguagem C#, onde estas foram abrangidas de uma forma mais resumida. A escolha da interface anteriormente mencionada levou à necessidade de utilização de um servidor web para permitir o acesso às páginas ASP.NET e HTML criadas, por parte dos browsers instalados nas máquinas do SIMLIS e por qualquer máquina com acesso à Internet. No entanto, não só a escolha de um servidor web se tornou necessária, mas também a escolha do servidor de Base de Dados. Existiam duas soluções possíveis para resolver o problema. Relatório do Projecto em Engenharia Informática Página 32 de 62 Trabalho Realizado A solução passava pela implementação através da utilização do Servidor Web da Microsoft, chamado IIS. Relativamente ao servidor de Base de Dados tínhamos a oportunidade de escolher entre o SQL Server e o Oracle, decidimos escolher o SQL Server. Ambos os Sistemas de Gestão de Base de Dados referenciados são grandes potências no mercado, que podem ser usados para construir sistemas eficientes e estáveis. Apesar de tudo a escolha foi obvia já que o cliente com a escolha do SQL Server, não teria adição de custos. Mas o SQL Server tem algumas vantagens em comparação com Oracle e viceversa. Algumas vantagens do SQL Server são as seguintes: 9 É mais barato comprar que o Oracle; 9 É geralmente mais fácil de instalar, usar e gerir. O conjunto de produtos seleccionados para concretizar o projecto SIMLIS passou pelo facto de o SIMLIS possuir um acordo de licenciamento com a Microsoft para usar os seus produtos. Como ferramentas de controlo de versões e acessos do projecto durante o processo de desenvolvimento usou-se o VSS e o CVS. O VSS é uma ferramenta que permite de forma segura, dentro da equipa de desenvolvimento, controlar os acessos e versões. Esta ferramenta foi adoptada para controlar o código fonte do projecto. O CVS também permite o controlo de acesso e versões, mas decidiu-se usar este utilitário para manipular os documentos do projecto, pois a integração das ferramentas com o VSS é total. Como ferramenta de desenvolvimento de aplicações .NET utilizou-se o VS 2003. Este ambiente de desenvolvimento abrangente para múltiplas linguagens, destinada ao rápido desenvolvimento e integração de aplicações. Também oferece um ambiente altamente produtivo para o desenvolvimento de uma ampla variedade de aplicações e tecnologias conectadas com a plataforma .Net. Através do uso do ambiente de runtime de alta performance Microsoft .Net Framework, o VS 2003 .NET oferece aos programadores poderosas ferramentas de design, construção, testes e instalação de aplicações, permitindo também que as melhores práticas e orientações possam ser partilhadas num ambiente de trabalho em equipa. 4.2.2 .Net Framework e linguagem C# Este capitulo foi dedicado para explicar de forma resumida uma das partes preponderantes onde incidiu o projecto realizado. A .Net Framework trata-se da infra-estrutura, que visa obter uma forma simples e unificada de desenvolvimento de aplicações, e sobre a qual as aplicações correm. Esta infra-estrutura é constituída por diversas partes, tal como é ilustrado na figura 11. Relatório do Projecto em Engenharia Informática Página 33 de 62 Trabalho Realizado Figura 10 – Arquitectura da plataforma .NET Todas as aplicações escritas para a .NET correm dentro de uma máquina virtual chamada CLR. O código que se encontra a executar aqui dentro chama-se managed code e beneficia de várias características como: 9 Gestão automática de memória o O CLR dispõe de um garbage collector que se encarrega de limpar os objectos que já não estão a ser utilizados pelas aplicações. 9 Segurança o O CLR mecanismos que permitem atribuir permissões ao código baseadas na sua proveniência e em quem está a executar. Existem também mecanismos que permitem garantir que o código a executar é valido e não irá corromper outros programas que se encontrem a executar no CLR. 9 Tradução de código intermédio para código nativo o Ao compilar um programa na plataforma .NET, tipicamente este é traduzido de uma linguagem de alto nível para uma linguagem intermédia chamada MSIL. O CLR possui um compilador just-in-time que se encarrega de traduzir código intermédio para código nativo do processador, antes de o executar. 9 Carregamento dinâmico de classes o O CLR torna possível carregar em tempo de execução segmentos de código que antes não estavam presentes na máquina virtual. O CLR encontra-se a executar por cima do sistema operativo, utilizando os seus serviços. Por cima da máquina virtual básica, existe um conjunto de bibliotecas estandardizadas que permitem às aplicações tomar pedido de um rico conjunto de APIs. Existe um conjunto de bibliotecas básicas, denominadas por Base Class Relatório do Projecto em Engenharia Informática Página 34 de 62 Trabalho Realizado Library, que oferecem recursos como acesso a ficheiros, estruturas de dados básicas (hash tables, listas, etc.), acesso a recursos de rede e outras. Em seguida, encontram-se bibliotecas que permitem aceder a base de dados (ADO.NET) e manipular informação em geral (por exemplo, em XML). No topo da hierarquia estão as bibliotecas que permitem efectuar desenvolvimento web (ASP.NET) e criar interfaces com o utilizador em Windows (Windows Forms). Um ponto interessante é que o .NET foi pensado não apenas para aplicações que sejam programadas em C#, mas também noutras linguagens. Na .NET Framework, as linguagens de alto nível são compiladas para uma linguagem intermédia chamada MSIL. É esse código que é executado no CLR. A Common Language Specification constitui uma norma que especifica o que é que tem de ser suportado a nível de uma linguagem de programação para esta ser compatível com a infraestrutura .NET e com as aplicações que se encontram a correr no CLR. Quanto ao C# posso dizer que é uma linguagem nova e moderna que visa facilitar o desenvolvimento de aplicações. Combina as melhores características do C++, do Visual Basic e mesmo do Java. Eis as principais características desta nova linguagem, que acho que são dignas de referência: 9 Orientada aos componentes o Um dos grandes passos em termos de engenharia de software, foi o conceito de componente. Um componente é uma unidade binária de código que pode ser incluída numa aplicação. Tipicamente a manipulação de componentes faz-se de forma visual, por drag-and-drop e, configuração das suas propriedades e interligações. 9 Robusta e moderna o O C# é uma linguagem orientada aos objectos, possuindo mecanismos como, garbage collection, que liberta o programador da gestão explícita da memória; excepções, que permitem uma gestão robusta dos erros nos programas. 9 Familiar o O C# baseia a sua sintaxe na linguagem C++ e, em certa medida, na linguagem Java. Hoje em dia existem muitos programadores que já conhecem essas linguagens, fazendo com que a transição para o C# seja relativamente pacífica. No entanto uma nova linguagem por muito poderosa que seja não é verdadeiramente útil se não tiver um grande número de bibliotecas de funções directamente disponíveis. O C# em si não possui bibliotecas. Contudo os programas escritos nesta linguagem executam sobre a .NET Framework, que possui um vasto conjunto de bibliotecas, assim como outras funcionalidades que permitem uma grande versatilidade em C#. Relatório do Projecto em Engenharia Informática Página 35 de 62 Trabalho Realizado 4.2.3 Arquitectura física O conjunto de soluções escolhidas no capítulo 4.2.1, deu origem à seguinte arquitectura: Figura 11 – Arquitectura física Os componentes apresentados relacionam-se da forma apresentada a seguir. O servidor IIS recebe pedidos dos browsers das máquinas cliente e é responsável por dirigi-los ao servidor da Base de Dados. Para que tal seja possível é preciso efectuar uma conexão entre estes dois servidores, passando o IIS a ser cliente do servidor de Base de Dados. Essa conexão é realizada via SQL Server .Net Data Provider. Depois de executar a resposta ao pedido, o servidor da Base de Dados enviá-la-á para o IIS. Esta resposta é a informação que o IIS envia à aplicação C#, que constrói uma página ASP.NET e passa ao browser. 4.2.4 Arquitectura lógica A arquitectura de desenvolvimento da aplicação pode ser caracterizada num serviço de três camadas: 9 Camada de apresentação; 9 Camada de lógica de negócio; Relatório do Projecto em Engenharia Informática Página 36 de 62 Trabalho Realizado 9 Camada de base de dados. Figura 12 – Arquitectura lógica A arquitectura lógica apresentada permite que a interface com o utilizador apenas trate de aspectos de visualização de informação. Todos os pedidos de informação são efectuados à lógica de negócio. Assim, torna-se muito mais simples realizar a manutenção da interface do utilizador. Qualquer mudança neste componente da arquitectura não influência outros. A camada lógica de negócio permite separar a lógica de negócio da Base de Dados, deixando de estar dependente do Sistema de Gestão de Base de Dados utilizado. Esta camada é implementada utilizando tipicamente linguagens como o C#, VB ou outras semelhantes que permitem muito maior flexibilidade e complexidade em relação ao que está disponível nos Sistemas de Gestão de Base de Dados, onde as linguagens estão muito mais direccionadas por forma a permitir fácil e rápida implementação de consultas, actualizações, inserções e remoções. Por fim temos a camada de Base de Dados como base de toda a aplicação. Aqui residem os dados dos utilizadores. Ao exterior são oferecidas capacidades de execução de consultas, actualizações, inserções, remoções usando o standard SQL. As potencialidades disponíveis dependem sempre de qual o Sistema de Gestão de Base de Dados escolhido, sendo que a utilização de funcionalidades especificas do Sistema de Gestão de Base de Dados para melhoria de performance ou facilitação do desenvolvimento é totalmente independente e não afecta de forma alguma a implementação da lógica de negócio e da interface gráfica. Relatório do Projecto em Engenharia Informática Página 37 de 62 Trabalho Realizado 4.2.4.1 Camada de apresentação O primeiro componente do sistema é o único que é visível para o utilizador, o browser. A partir deste utilitário o utilizador pode efectuar operações de consultar, pesquisar, inserir, alterar e eliminar sobre a informação da Base de Dados de uma forma transparente, dando a sensação que a aplicação é constituída somente por este componente. Nesta secção faço uma explicação sobre o funcionamento da aplicação em geral, estruturas de dados e linguagens utilizadas para realizar esta camada. De seguida é abordada a validação de dados, terminando com a segurança da aplicação. 4.2.4.1.1 Modelo de programação Em ASP.NET existem dois modelos de programação: code behind e code in page. O modelo utilizado foi o code behind, aqui encontramos uma verdadeira separação do HTML e do código C#. Neste modelo, para cada ficheiro .aspx, extensão dos ficheiros ASP.NET, existe um ficheiro .aspx.cs onde está escrito todo o código. No ficheiro aspx, existe apenas, a parte HTML e a parte da declaração dos componentes do ASP.NET, onde o reaproveitamento do código é grande e facilita muito a programação. Os componentes utilizados foram: 9 HTML Controls o São os controlos HTML básicos (Div, B, Table, ...). 9 HTML Server Controls o São controlos HTML executados no servidor Web (Calendar, Datagrid, ...). 9 Web Server Controls o São os controlos ASP.NET. 9 Web User Controls o São Web Server Controls definido pelo programador. 9 Validation Controls o São Web Server Controls que contêm lógica para validar o input de outros Server controls. No ficheiro .aspx.cs encontra-se o código C# correspondente às funcionalidades da interface. 4.2.4.1.2 Interface HTML Relativamente ao funcionamento da aplicação, para se utilizar a mesma o utilizador tem que ter um browser aberto e depois carregar sobre o menu Favorites e escolher a opção SIMLIS ou então escrever o URL da aplicação, http://localhost/SIMLIS_WEB/homepage.aspx, na caixa de texto Address. Relatório do Projecto em Engenharia Informática Página 38 de 62 Trabalho Realizado Figura 13 – Inicialização da aplicação a partir dos Favorites Após seleccionada a opção SIMLIS, a página principal da aplicação é exibida como mostra a Figura 14 - Ecrã principal da aplicação do SIMLIS, no anexo II - Figuras. O Menu SIMLIS permite ao utilizador aceder às seguintes opções: 9 Área de gestão de dados relativos a Pagamentos; 9 Área de gestão de dados relativos ao Cadastro; 9 Área de gestão de dados relativos a Candidatura a Fundos de Coesão; 9 Área de gestão de dados auxiliares. Em todas as páginas do SIMLIS existe a barra de funcionalidades que está exibida na Figura 15 do anexo II - Figuras. Nesta barra podemos encontrar funcionalidades que estão apresentadas na Figura 16 do anexo II - Figuras. Cada um dos itens apresentados no Menu SIMLIS quando seleccionados, exibem uma página semelhante à apresentada na Figura 17 do anexo II - Figuras. A página seleccionada é constituída por um Menu Lateral que permite navegar entre os vários dados relativos à área gestão de dados seleccionada, nesta caso, ao Cadastro; por um rodapé; por uma Área de Operação, reservada às operações de pesquisa, consulta, inserção, actualização e remoção de registos; para além da Barra de Funcionalidades. Para o efeito foram utilizados usercontrols (ficheiros .ascx), que foram desenhados para permitir reutilizar funcionalidades comuns da interface do utilizador: 9 <uc1:cabecalhopage id="Cabecalho" Tipo=”C” runat="server"></uc1:cabecalhopage> o Este usercontrol é responsável pela apresentação da barra de cabeçalho correspondente à área de gestão de dados seleccionada e servir como link para o Menu SIMLIS. Relatório do Projecto em Engenharia Informática Página 39 de 62 Trabalho Realizado Ver as Figuras 18, 19, 20, 21, 22, no anexo II - Figuras, que apresentam as várias barras de cabeçalho da aplicação. 9 <uc3:MenuCabecalho id="MenuCabecalho" runat="server"></uc3:MenuCabecalho> o Este usercontrol é responsável pela construção do menu do cabeçalho correspondente à Barra de Funcionalidades, e servir como link para cada área de dados. Ver a Figura 23 do anexo II - Figuras. 9 <uc5:Menu id="MenuLateral" runat="server" ElemId="C" ElemSelected="InterL" SubElemSelected="InterC"></uc5:Menu> ElemOpen="InterL" o Este usercontrol é responsável pela construção do menu lateral correspondente à área de dados seleccionada, neste caso, foi a área de dados relativos ao Cadastro. Ver a Figura 24 do anexo II - Figuras. 9 < uc2:FooterPage id="Footer" runat="server"></uc2:FooterPage> o Este usercontrol é responsável pela construção do rodapé comum a todas as áreas de dados. Na Área da Operação não foi mencionado nenhum usercontrol, porque esta varia consoante a operação escolhida, daí serem aplicados diversos usercontrols para cada uma das operações. No caso da operação escolhida tenha sido a pesquisa, foi utilizado um usercontrol de pesquisa, que agrupa um conjunto de outros usercontrols e de controlos ASP.NET, como por exemplo: 9 <asp:CheckBox> 9 <asp:Panel> 9 <asp:TextBox> 9 <asp:ValidationSummary> 9 <asp:Button> 9 <asp:CompareValidator> Os controlos de HTML utilizados foram: 9 <Div> 9 <A href> 9 <Br> 9 <Table> Relatório do Projecto em Engenharia Informática Página 40 de 62 Trabalho Realizado 9 <input> 9 <H3> 9 <Label> Os usercontrols usados dentro do usercontrol de pesquisa tem a função preencher DropDownLists (caixas de selecção), como por exemplo, preencher a DropDownList dos subsistemas com todos os subsistemas disponíveis no sistema; ou exibir um calendário para o utilizador seleccionar uma data. Ainda na operação de pesquisa foi utilizado outro usercontrol para apresentar a listagem das ocorrências encontradas segundo o critério de pesquisa escolhido. Este usercontrol recebe um objecto Pesquisa com os dados dos campos de pesquisa e depois é responsável por chamar os métodos da camada da lógica de negócio para receber os dados da Base de Dados e por fim apresenta-os ao utilizador através dum controlo <asp:DataGrid>, este controlo apresenta um grande número de funcionalidades para formatar a listagem dos dados apresentados. A Figura 25 do anexo II - Figuras, ilustra a utilização do controlo <asp:DataGrid>. Na operação de inserção, actualização, consulta e remoção foi utilizado um usercontrol responsável por encapsular um conjunto de controlos ASP.NET, que constroem a página de inserção, actualização, consulta e remoção. Os controlos utilizados servem para exibir os campos a preencher e para validar os dados digitados ou seleccionados pelo utilizador nesses campos. De seguida são exibidos alguns controlos utilizados: 9 <asp:ValidationSummary> 9 <asp:Panel> 9 <asp:Hyperlink> 9 <asp:RequiredFieldValidator> 9 <asp:Label> 9 <asp:Button> Alguns controlos de HTML utilizados foram: 9 <Table> 9 <Label> 9 <Input> 9 <Div> A Figura 26 no anexo II - Figuras, ilustra o uso dos controlos referenciados . A área da operação de inserção está disponível a partir da selecção do tópico inserir do menu lateral, dentro da área de dados seleccionada. Relatório do Projecto em Engenharia Informática Página 41 de 62 Trabalho Realizado As operações de actualização e remoção estão disponíveis a partir da listagem das ocorrências ou da operação de consulta. Por fim a operação de consulta está disponível a partir da listagem. Todos os outros itens quer desta área de dados quer das restantes, seguem o mesmo raciocínio. O documento de referência de Bento, Bruno (2005) - “SMLS_04_0269 Manual Utilizador”, onde se encontra o funcionamento da interface com maior detalhe, não está disponível*. 4.2.4.1.3 Validação de dados Um aspecto muito importante a nível da camada de apresentação é a validação de dados. Nunca podemos ficar na expectativa que o utilizador insira valores coerentes com os da Base de Dados, porque, por exemplo, pode digitar dados numéricos no nome de uma pessoa para criar um novo registo, sem aperceber-se do acontecido. Na aplicação desenvolvida existem vários formulários de inserção e actualização referentes a diversos tipos de informação; nomes, moradas, telefones, nº de contribuintes e bilhetes de identidade, datas, idades, etc.; pelo que se torna obrigatório analisar a coerência dos valores digitados pelo utilizador. É obvio que os erros ortográficos não são apanhados pelos validadores. Contudo, numa actualização posterior desse registo, o utilizador pode corrigi-lo. Existem duas formas de validar os dados introduzidos pelo utilizador. Validações feitas no lado do cliente (clientside), ou seja pelo browser, através da linguagem JavaScript ou do lado do servidor (serverside) pelo código C#. Das duas formas apresentadas, a primeira é a preferível porque não requer o consumo de recursos do servidor e por isso sempre que foi possível optou-se pelo uso desta linguagem. Mas o que acontece é que por vezes não é possível fazer as validações do lado do cliente, como por exemplo, antes de inserir um dado identificador na Base de Dados temos de verificar se já lá existe. De seguida na Figura 27 no anexo II - Figuras, é apresentado um ecrã com o uso da linguagem JavaScript. 4.2.4.1.4 Segurança Outro aspecto que requer destaque neste documento é a segurança, mais propriamente dito, a validação de utilizadores que entram na aplicação ASP.NET desenvolvida. A .Net Framework juntamente com o IIS disponibilizam sistemas de autenticação, optou-se pelo método de Windows Integrated Authentication e Digest Authentication pelo facto de estes tipos de autenticação já se encontrarem implementados. Relatório do Projecto em Engenharia Informática Página 42 de 62 Trabalho Realizado Figura 28 – Métodos de Autenticação fornecidos pelo IIS No método Windows Integrated Authentication a autenticação é feita através do sistema operativo Windows que vai utilizar os utilizadores registados no sistema operativo que, normalmente, já existem no sistema das empresas. Por outro lado, no método Digest Authentication os utilizadores fornecem um username e password para se conectarem, no entanto, a password é cifrada antes de ser enviada sobre a rede. Após ter sido feita a autenticação no IIS, o processo é encaminhado para a aplicação ASP.NET, cujas verificações são feitas com base no ficheiro de configuração, web.config, da aplicação. Para concretizar o nosso objectivo tivemos que definir no web.config o tipo de autenticação, Windows, recorrendo ao uso das tags que se segue: <system.web> <authentication </system.web> mode=”Windows” /> Depois de termos indicado o tipo de autenticação, tivemos de definir as autorizações tanto de utilizadores (users) como de grupos (roles) de utilizadores. <authorization> <deny users=”[comma separated list of users]” roles=”[comma separated list of roles]” /> <allow users=”[comma separated list of users]” roles=”[comma separated list of roles]” /> </authorization> O método Digest Authentication só é utilizado caso o método Windows Integrated Authentication falhe. Relatório do Projecto em Engenharia Informática Página 43 de 62 Trabalho Realizado 4.2.4.2 Camada de lógica de negócio A lógica de negócio estabelece a ligação entre a camada de interface e o Sistema de Gestão de Base de Dados, via SQL Server .Net Data Provider, tratando os dados de modo a que estes se encontrem de acordo com as regras de negócio do sistema. A linguagem de programação eleita para o desenvolvimento desta camada foi o C# pelas razões mencionadas no capítulo 4.2.2. A .Net Framework fornece um conjunto de classes para facilitar o acesso das aplicações às Base de Dados de diversos tipos, cujo nome é ADO.NET. Um exemplo de como usar estas bibliotecas é mostrado de seguida. Comentários em C# //importar o conjunto de classes fornecidas pelo SqlServer .Net Data Provider para acesso à Base de Dados using System.Data.SqlClient; Os principais objectos utilizados do SqlServer .Net Data Provider são: 9 SqlConnection o Representa um única conexão persistente ao SQL Server data source. 9 SqlParameter o Representa um parâmetro a ser passado, neste caso numa ad hoc query (instrução SQL executada directamente). 9 SqlCommand o Representa alguma coisa que pode ser executada, neste caso uma ad hoc query. 9 SqlDataReader o Representa a maneira mais rápida para ir buscar um conjunto de dados a partir de uma Base de Dados. Os objectos mencionados anteriormente foram utilizados nas operações de pesquisar, inserir, consultar, eliminar e actualizar informação das diversas entidades sobre a Base de Dados. 9 Para realizar a camada de lógica de negócio da operação de pesquisa definimos um objecto Pesquisa, com o valor dos campos digitados pelo utilizador, de seguida foi necessário utilizar um objecto SqlConnection para abrir uma ligação com o data source. Quando se abre uma conexão é preciso que se defina a propriedade ConnectionString do objecto SqlConnection. SqlConnection myConnection = new SqlConnection(); Relatório do Projecto em Engenharia Informática Página 44 de 62 Trabalho Realizado myConnection.ConnecyionString “UserID=sa;” + “Pwd=;”; = “Server=SQLSRV01;” + “Database=SMLS_04_0269;” + Connection String De seguida, foi necessário preparar um objecto SqlCommand com a ad hoc query a ser executada mediante um dado critério de pesquisa definido pelo utilizador através da interface. SqlCommand myCommand = new SqlCommand(); Para definir um critério foi necessário recorrer à utilização do objecto SqlParameter, como podemos observar a seguir. Criar um atributo do critério de pesquisa, neste caso subsistemaId SqlParameterCollection Params = myCommand.Parameters; Params.Add(new SqlParameter("@subsistemaId", SqlDbType.Int)); Params["@subsistemaId"].Value = “S1”; Propriedade do objecto SqlCommand que define a ad hoc query a executar myCommand.CommandText = “SELECT nome FROM Interessado”; Associar um comando à conexão definida anteriormente myCommand.Connection = _ctx.Dados.Connection; Executar a ad hoc query sob o efeito de transacção myCommand.Transaction = _ctx.Dados.Transaction; Por fim, utilizou-se o objecto SqlDataReader para ir buscar o conjunto de dados devolvidos pelo critério definido na operação pesquisar sobre a Base de Dados. O conjunto de resultados, resultset, contido num SqlDataReader é forwardonly e read-only, isto significa que, somente se pode ler as linhas dentro de um resultset sequencialmente a partir do inicio ao fim, não se pode modificar quaisquer dados. SqlDataReader myReader = myCommand.ExecuteReader(); while(myReader.Read()){ myReader.GetInt32(0), //INTERESSADO_ID -> InteressadoId myReader.GetString(1), //SUB_SISTEMA_ID -> SubSistemaId } Cada resultado do conjunto de resultados é colocado num objecto Info, este objecto foi criado por nós para guardar os dados vindos da Base de Dados para posterior manipulação. 9 Na camada de lógica de negócio da operação de inserção criámos um objecto Info com o valor do campos digitados pelo utilizador. Para além do objecto Info foi também necessário utilizar um objecto SqlConnection, SqlCommand, SqlParameter e definir as suas propriedades, tal como na operação de pesquisa. Ao invés da operação de pesquisa, onde se utilizou o método ExecuteReader() do objecto SqlCommand, na operação de inserção utiliza-se o ExecuteScalar(), este método retorna a primeira coluna da primeira linha do resultset, neste caso, retorna o identificador atribuído à nova ocorrência. object ret = myCommand.ExecuteScalar(); Ou utiliza-se o ExecuteNonQuery(), este método não retorna um resultset, neste caso, não pretendemos obter o identificador atribuído à nova ocorrência a quando da inserção. Relatório do Projecto em Engenharia Informática Página 45 de 62 Trabalho Realizado myCommand.ExecuteNonQuery(); 9 Para a operação de consulta foram utilizados as mesmas propriedades e métodos dos objectos mencionados na operação de pesquisa. 9 Para a operação de actualização foram utilizados as mesmas propriedades e métodos dos objectos mencionados na operação de pesquisa, com excepção do método ExecuteReader(), do objecto SqlCommand, que foi substituído pelo método ExecuteNonQuery() e do objecto Pesquisa que foi substituído por dois objectos Info, um com os novos dados actualizados, o outro com os dados não actualizados, isto para saber quais os campos a actualizar. myCommand.ExecuteNonQuery(); 9 Para a operação de eliminação foram utilizados as mesmas propriedades e métodos dos objectos mencionados na operação de actualização, com excepção dos objectos Info. 4.2.4.3 Camada de Base de Dados Esta camada é responsável pela persistência dos dados da aplicação, isto foi conseguido com a utilização de uma Base de Dados. O Sistema de Gestão de Base de Dados foi o SQL Server. A informação foi organizada em tabelas, atributos e registos. E de seguida foi definido o modo como estas tabelas se relacionam entre si. Para aceder e manipular os dados da Base de Dados SQL Server usou-se ad hoc queries. As Ad hoc queries fornecem uma maneira rápida de ir buscar dados á Base de Dados ou de fazer alterações na Base de Dados. As quatro principais instruções T-SQL usadas para manipular os dados SQL Server foram: 9 SELECT o Instrução que permite ir buscar os dados armazenados na Base de Dados. 9 INSERT o Instrução permite adicionar novos dados à Base de Dados. 9 UPDATE o Esta instrução permite modificar dados que já se encontram na Base de Dados. 9 DELETE o Através desta instrução é possível eliminar dados a partir da Base de Dados. Para construir as ad hoc queries foi utilizada a ferramenta SQL Server Query Analyzer. Relatório do Projecto em Engenharia Informática Página 46 de 62 Trabalho Realizado O ambiente de desenvolvimento usado para gerir tabelas, campos e dados; relacionamentos de tabelas; e criar diagramas de base de dados. foi o SQL Server Enterprise Manager. No Anexo I encontra-se o Modelo de Dados da aplicação. 4.2.5 Plano de testes Este capitulo foca sobre o plano de testes a executar sobre a aplicação desenvolvida anteriormente. O objectivo dos testes é avaliar a conformidade da aplicação desenvolvida relativamente aos requisitos especificados e ao desenho, garantindo deste modo a qualidade do código produzido. Para a aplicação em questão foram escolhidos fazer Testes Funcionais (caixa preta), tendo em conta o baixo orçamento e a importância que estes trazem para o SIMLIS. Por exemplo, os Testes de Carga não são de tanta importância, uma vez que, o tempo de resposta não é importante e a quantidade de dados é baixa. Cada especificação de testes é identificada por: 9 Ref. Teste o Por exemplo, 1. 9 Classe Teste o Por exemplo, FU – Funcional e UI – User Interface. 9 Teste a executar o Por exemplo, inserir interessado já existente. 9 Passos/detalhe do teste o Por exemplo, Escolher Parcela e de seguida inserir novo registo usando o NOME de um interessado já existente. 9 Requisitos/Pré-Condições o Por exemplo, Perfil Cadastro. 9 Resultado esperado o Por exemplo, o sistema não permite e apresenta uma mensagem a informar. 9 Responsável pela execução 9 Data execução Relatório do Projecto em Engenharia Informática Página 47 de 62 Trabalho Realizado 9 Resultado Após a realização destes testes, efectuados por uma equipa, sempre que possível, distinta da de desenvolvimento, serão feitos os testes pelo cliente para se dar a aceitação da aplicação. 4.2.6 Trabalho realizado por mim No projecto em questão, a minha contribuição foi dada nas Fases de Implementação, Transição e Operação onde fui um dos elementos da equipa responsável pela implementação da aplicação Web. Quando entrei no projecto o meu trabalho foi ler os documentos da especificação funcional e técnica que tinha de seguir para realizar o trabalho, para depois ser feita uma reunião com o Responsável Técnico para tirar dúvidas que eventualmente surgissem. Passada esta altura fui integrado na equipa de desenvolvimento. O documento de referência de Mateus, Paulo (2004) - “SMLS_04_0269 Especificação Técnica” e Mateus, Paulo (2004) - “SMLS_04_0269 Especificação Funcional”, onde se encontra a especificação técnica e funcional do projecto, não está disponível*. Durante a fase de planeamento decidiu-se que eu na Fase de Implementação iria ter a oportunidade de fazer um pouco de tudo excepto o Modelo de Dados que iria ser feito por outro elemento experiente nessa área. Eu fiquei responsável por desenvolver a camada de interface, as páginas ASP.NET, e a camada da lógica de negócio, os ficheiros de acesso à Base de Dados, para as entidades Interessado, Contacto, Pagamentos, Gestão de Pedidos Dup, Gestão de Referências Documentos da Pedido Dup, Gestão de Referências de Documentos de Contacto, Gestão de Despesas, Gestão de Correspondência e Gestão de Pedidos de Pagamento. Na Fase de Transição, fui responsável pela elaboração do Manual de Utilização da aplicação. Por fim também fui integrado na Fase de Operação onde terei como funções assegurar a manutenção correctiva dos desenvolvimentos efectuados. Relatório do Projecto em Engenharia Informática Página 48 de 62 5 SUMÁRIO E CONCLUSÕES Relatório do Projecto em Engenharia em Informática Página 49 de 62 Sumário e Conclusões 5.1 SUMÁRIO Este capitulo apresenta uma síntese do trabalho que foi realizado neste estágio. O resultado deste estágio foi o desenvolvimento de uma Web Application que permite efectuar as operações inserir, actualizar, pesquisar, consultar e eliminar sobre a informação que se encontra numa Base de Dados, que permitirá aos colaboradores SIMLIS obter um registo de vários pontos fulcrais como, contactos efectuados, registo de documentação e controlo de pagamentos. A aplicação em questão foi desenvolvida de forma a ser acedida através da Internet. Para o efeito, foi necessário configurar o IIS para criar uma Web que receba os pedidos dos clientes e envie-os à aplicação para respectivo processamento e que devolva o resultado do processamento ao cliente. 5.2 CONCLUSÕES Durante este período de estágio na LINK tive a oportunidade de trabalhar com um conjunto diversificado de tecnologias na área das Web Applications, que revolucionaram o mercado quer pelo ambiente de execução quer pelas linguagens que dispõe, muito poderosas para a criação de aplicações. Tive o privilégio de prestar os meus serviços numa das grandes empresas deste país na área de consultoria informática, quer pela diversidade de áreas de competência, quer pelos clientes, onde destaco a unidade em que estive inserido durante este período, a UPI.. Aqui foi-me dada a possibilidade de integração em ambientes de produção, a aquisição de novos conhecimentos, ganhar autonomia e experiência profissional. Este estágio foi a ponte entre a vida académica e a vida profissional. A parte curricular da licenciatura teve papel preponderante na minha formação, onde destaco as cadeiras de Fundamentos de Sistemas de Informação, Tecnologias de Base de Dados, Programação Imperativa, Interfaces Pessoa-Máquina e Projecto de Sistemas de Informação que contribuíram de forma decisiva para a angariação de outros conhecimentos fundamentais para a realização deste projecto. Por fim, este estágio permitiu-me realizar uma certificação “Microsoft 70-315: Developing and Implementing Web Applications with Microsoft Visual C#.NET”, nas tecnologias que utilizei para a realização do projecto, passando assim a possuir um titulo de MCP (Microsoft Certified Professional). Relatório do Projecto em Engenharia Informática Página 50 de 62 6 GLOSSÁRIO Relatório do Projecto em Engenharia em Informática Página 51 de 62 Glossário A lista de siglas e abreviaturas utilizadas neste documento encontram-se organizadas por ordem alfabética ascendente. * ** ADO API ASP ASP.NET BCL CLR CLS CSS CVS ETAR HTML IE IIS INESC FCUL LINK MCH MSIL PC PEDIP PL/SQL PMI PSO RUP SIMLIS SOAP T-SQL UPI URL VBA VS VSS XML XSL WAP WBS WSDL WWW Documento interno que não pode ser divulgado. Alguns dados não podem ser divulgados, por serem dados pessoais. Access Data Objects Application Programming Interface Active Server Pages Active Server Pages .NET Base Class Library Common Language Runtime Common Language Specification Cascading Style Sheets Concurrent Version System Estação de Tratamento de Águas Residuais HyperText Markup Language Internet Explorer Internet Information Services Instituto de Engenharia de Sistemas de Computadores Faculdade de Ciências da Universidade de Lisboa Link Consulting – Tecnologias de Informação, S.A. Modelo Continente Hipermercados Microsoft Intermediate Language Personal Computer Programa Estrutural de Desenvolvimento para a Indústria Portuguesa Procedural Language / Structured Query Language Project Management Institute Project Support Office Rational Unified Process Saneamento Integrado dos Municípios do Lis Simple Object Access Protocol Transact-Structured Query Language Unidade de Portais & Intranets Uniform Resource Locator Visual Basic for Applications Visual Studio Visual Source Safe Extensible Markup Language Extensible Stylesheet Language Wireless Application Protocol Work Breakdown Structure WebServices Description Language World Wide Web Relatório do Projecto em Engenharia Informática Página 52 de 62 7 BIBLIOGRAFIA E REFERÊNCIAS Relatório do Projecto em Engenharia em Informática Página 53 de 62 Bibliografia e Referências 7.1 ENDEREÇOS WEB http://msdn.microsoft.com/library - Portal de Documentação sobre Programação http://www.pontonetpt.com - Portal de Documentação sobre Programação .NET http://www.link.pt - Site da Link Consulting – Tecnologias de Informação, S.A. http://www.w3schools.com - Portal de Documentação sobre Programação para a Web http://www.codeproject.com/aspnet - Portal de Documentação sobre Programação para a Web http://www.hitmill.com/programming/dotnet/csharphtml - Site com uma série de Links para sites de C# http://www.softsteel.co.uk/tutorials/cSharp/contents.html - Site sobre programação C# http://www.adp.pt - Site das Águas de Portugal 7.2 LIVROS E DOCUMENTOS Kalani, Amit (2003) - “MCAD/MCSD Training Guide (70-315): Designing And Implementing Web Applications With Visual C# .NET” Microsoft - “Documentação do .NET Framework SDK” USA: Microsoft, 2000 Marques, Paulo e Cardoso, Hernâni (2002) - “C# Curso Completo” Assunção, João (2003) - “Metodologia de Desenvolvimento de Aplicações Workflow” Vieira, João (2003) - “Programação com ASP.NET” Falcão, Luís (2003) - “A plataforma .NET”, Centro de Cálculo do Instituto Superior de Engenharia de Lisboa Link Consulting (2004) - “Proposta nº SMLS_04_0269” Link Consulting (2004) - “Metodologia de Gestão de Projectos” Relatório do Projecto em Engenharia Informática Página 54 de 62 Bibliografia e Referências Mateus, Paulo (2004) - “SMLS_04_0269 Especificação Técnica” Mateus, Paulo (2004) - “SMLS_04_0269 Especificação Funcional” Bento, Bruno (2005) - “SMLS_04_0269 Manual Utilizador” Monteiro, Paulo (2004) - “Proposta Desenvolvimento: PEP - Desenvolvimento da template v1.18” Relatório do Projecto em Engenharia Informática Página 55 de 62