Prof. Ilaim Costa Junior - ppt carregar
Prof. Ilaim Costa Junior
PublicouMelissa Alegria Alterado mais de 3 anos atrás
Apresentação em tema: "Prof. Ilaim Costa Junior"— Transcrição da apresentação:
1 Prof. Ilaim Costa Junior
Engenharia da Web Prof. Ilaim Costa Junior
2 Engenharia da Web
3 Engenharia da Web
4 Engenharia da Web
5 Engenharia da Web
6 Engenharia da Web
7 Engenharia da Web Versão moderna da Engenharia de Software
O desafio de sempre Como definir um processo de software que implemente o software com os requisitos do cliente, atendendo prazo, custo e qualidade? Como juntar e trabalhar tantas tecnologias juntas: Web services, Web semântica, Ontologias, Modelagem conceitual, Linguagens para a Web, .....
8 Engenharia da Web Aplicações Web não são um problema totalmente novo.
Características novas: estrutura, dinâmica, navegação, apresentação, entre outras. Existem modelos de processos que atendem às aplicações Web. Destaque para modelos evolutivos e ágeis.
9 Aplicações Web São desenvolvidas de forma ad-hoc (processos informais), sem suporte de modelagem, sem semântica. É necessário definir a especificação clara da aplicação, seus conceitos, para que o restante se junte para fechar esse "quebra cabeça". A definição da semântica da aplicação é fundamental.
10 Problemas dos sistemas Web
A maioria dos sistemas são desenvolvidos de maneira ad-hoc, resultando em sistemas Web de baixa qualidade. Problemas como desatualização e informações irrelevantes dificultam o uso do site e a busca por informações importantes, acarretando respostas lentas, pane e quebra de segurança. Esses problemas ocorrem porque os desenvolvedores não priorizam as necessidades e características dos usuários em termos de conteúdo, gerenciamento, manutenção, desempenho, segurança e escalabilidade. Muitas vezes os desenvolvedores também priorizam questões não técnicas como copyright e privacidade.
11 Problemas dos sistemas Web
Muitos desenvolvedores de aplicações Web acreditam que o desenvolvimento de aplicações Web se resume a simples páginas usando HTML ou softwares do tipo Front Page ou Dreamweaver e acrescentando algumas imagens, alguns hiperlinks e páginas Web. Apesar de algumas páginas pessoais, de eventos, brochuras de anúncio entre outra caiam nessa categoria muitas aplicações Web são complexas e requerem uma matriz de requisitos. Isso é muito mais que projeto visual e interface com o usuário. Essas aplicações envolvem planejamento, arquitetura Web, projeto, teste, qualidade, avaliação do desempenho, atualização constante e manutenção do sistema.
12 Engenharia da Web A Engenharia da Web deve se preocupar com o estabelecimento e uso de princípios da engenharia, bem como com o gerenciamento de técnicas sistemáticas e disciplinadas para o desenvolvimento, implantação e manutenção de sistemas e aplicações Web de alta qualidade. Ela deve incorporar alguns dos princípios bem sucedidos na Engenharia de Software tradicional, adaptando-os para a natureza mais aberta e flexível da Web e de suas aplicações, além de considerar outros elementos que são específicos do ambiente Web.
13 Engenharia da Web Web Engineering uses scientific, engineering, and management principles and systematic approaches to successfully develop, deploy, and maintain high-quality Web systems and applications (Murugesan et al., 1999). It aims to bring Web-based system development under control, minimise risks and improve quality, maintainability, and scalability of Web applications. The essence of Web engineering is to successfully manage the diversity and complexity of Web application development, and hence, avoid potential failures that could have serious implications. (Murugesan & Ginige)
14 Atributos de aplicações baseadas na Web
Concentração em redes Diversidade de clientes Concorrência Grande número de usuários acessam ao mesmo tempo Carga imprevisível Número de usuários varia muito Desempenho Em caso de demora usuário desvia Disponibilidade 24x7x365 Voltada a dados Uso de hipermídia e acesso a bancos de dados
15 Atributos de aplicações baseadas na Web
Sensível ao conteúdo Determinante da qualidade Evolução continuada Cuidado e alimentação contínua Imediatismo Tempo de desenvolvimento reduzido Segurança Implementação de fortes medidas de segurança Estética Aspecto é fator de atração
18 Categorias das Aplicações (LEITE, 2002, apud VOLPI & CECHELERO, 2004, p.50).
19 Categorias das aplicações web (GINIGE & MURUGESAN, apud LOCATELLI, 2003, p.13).
20 Características das aplicações Web
Aplicações Web estão em constante evolução O conteúdo pode envolver textos, gráficos, imagens, áudio, vídeo, integrados com processamento procedimental. A forma como esse conteúdo é apresentado e organizado influencia o desempenho e tempo de resposta. A aplicação é desenvolvida para um grupo diverso de usuários e muitos usuários anônimos. A maioria é desenvolvida centrada no conteúdo o que exige constante atualização (às vezes de hora em hora). Muitas vezes a ênfase é na criatividade e na interface. O cronograma de desenvolvimento é sempre apertado.
21 Características das aplicações Web
Os problemas de funcionamento, em geral, são mais sentidos que nos sistemas convencionais. As equipes, na maioria das vezes, são jovens e com backgrounds diferenciados, o que provoca visões diferenciadas da qualidade das aplicações. Novas tecnologias estão sempre sendo lançadas e na maioria das vezes instáveis. O desenvolvimento Web utiliza diversas tecnologias e padrões, integra componentes, incluindo software tradicional e não tradicional, linguagens de script, HTML, arquivos, bancos de dados, imagens e outras multimídias. O meio de disponibilizar a aplicação é muito diverso e exige portabilidade em termos de hardware, software e redes. Segurança e privacidade são mais exigidas. A Web é um exemplo de arte e tecnologia, mais visível que as aplicações tradicionais.
22 Engenharia da Web Diante da busca por metodologias disciplinadas e por maior sucesso no desenvolvimento de sistemas direcionados para a Web, surge a necessidade do desenvolvimento de técnicas, métodos e ferramentas para o desenvolvimento, implantação e avaliação desses sistemas. Tais modelos devem levar em consideração as características especiais que sistemas Web possuem: Novas mídias e ambientes operacionais; Os cenários e multiplicidade de usuários; O tipo, experiência e conhecimento das pessoas envolvidas no processo de desenvolvimento.
23 Engenharia da Web Navegação Organização da interface Implementação.
O processo de desenvolver um sistema Web deve levar em consideração também que um software deste tipo, é uma espécie de sistema híbrido e o processo de desenvolvimento não é somente uma questão tecnológica, mas também uma questão organizacional, política e cultural e envolve uma mudança radical na estruturação e apresentação da informação. Assim podem ser identificadas características que diferenciam o processo de desenvolvimento de sistemas tradicionais dos sistemas Web. Estas características se agrupam em três categorias: Navegação Organização da interface Implementação.
24 Atividades de Engenharia da Web
Projeto do conteúdo e produção Realizadas por membros não técnicos Objetivo de projetar, produzir e ou adquirir todo o conteúdo de texto, gráfico, áudio e vídeo Projeto arquitetural Projeto de navegação Projeto de interface
25 Projeto Arquitetural O projeto arquitetural de sistemas e aplicações Web focaliza a definição da estrutura global de hipermídia da aplicação Web e o uso de padrões de projetos e gabaritos construtivos. Uma atividade paralela, denominada projeto de conteúdo cria a estrutura global e o layout detalhado do conteúdo de informação que vai ser apresentado como parte da aplicação Web.
26 Tipos de Estruturas O modelo de arquitetura é relacionado a:
Metas estabelecidas Conteúdo a ser apresentado Filosofia de navegação
27 Tipos de Estruturas Estrutura linear
É encontrada uma seqüência de interações previsível A apresentação do conteúdo é linear e pré-definida.
29 Tipos de Estruturas Estruturas hierárquicas
São o tipo mais comum de estrutura Permite o fluxo horizontal e vertical Permite navegação rápida, mas pode causar confusão para o usuário
31 Tipos de Estruturas Estrutura em rede
Os componentes arquiteturais podem acessar qualquer outro componente do sistema, através de links. Possuem alta flexibilidade de navegação. Podem causar confusão para o usuário.
33 Tipos de Estruturas Estruturas compostas
Combinam um ou mais tipos de estruturas A meta do projetista de arquitetura é adaptar a estrutura da aplicação Web ao conteúdo a ser apresentado e ao processamento a ser conduzido.
34 Projeto de Navegação Uma vez definida a arquitetura da aplicação e identificados seus componentes (páginas, scripts, applets e outras funções de processamento) o projetista deve definir caminhos de navegação que permitam ao usuário ter acesso ao conteúdo e aos serviços.
35 Projeto de Navegação Para o projeto de navegação o projetista necessita: Identificar a semântica de navegação para diferentes usuários Em aplicações grandes existirão vários tipos de usuários Definir a mecânica (sintaxe) para realizar a navegação O projetista deve escolher as ligações de navegação adequadas ao conteúdo e consistentes com o projeto de interface (botões, ícones, texto, etc) Devem ser projetados auxílios à navegação (busca, índice, histórico, etc).
36 Projeto de Interface Características gerais de projeto de interface podem ser aplicadas A interface deve ser bem projetada Considerar que a primeira impressão é muito importante.
37 Projeto de Interface Diretrizes: Evitar erros do servidor
Evitar grandes quantidades de material para leitura Evitar "em construção" Não rolar imagem Menus de navegação e barras de título devem estar disponíveis em todas as páginas A estética nunca deve sobrepujar a funcionalidade As opções de navegação devem ser óbvias.
38 Processo de Desenvolvimento de Sistemas Web
O desenvolvimento de um sistema direcionado para a Web envolve a fase de definição da equipe de desenvolvimento e a fase de definição do processo a ser seguido. O processo de desenvolvimento deve ser evolucionário. O RUP (Rational Unified Process) apresenta características adequadas para o desenvolvimento de sistemas Web. Os modelo ágeis enfatizam uma abordagem de desenvolvimento simples que incorpora ciclos rápidos de desenvolvimento, por isso são adeuqdos ao desenvolvimento de algumas aplicações Web.
39 Equipe de desenvolvimento
As equipes desenvolvedoras de sistemas para a Web são multidisciplinares e devem integrar profissionais especializados em informática, profundos conhecedores do ambiente Web, e especialistas no conteúdo. Entre os profissionais destacam-se: Desenvolvedor/provedor de conteúdo Web designer (editor da Web) Engenheiro da Web (elicitação de requisitos,modelagem, projeto arquitetural, navegacional e de interface, implementação e teste) Especialista no domínio do negócio Especialista de suporte Web Master (administrador)
40 Equipe de desenvolvimento
Considerando que, muitas vezes a equipe de desenvolvimento é formada na verdade por diferentes equipes, uma coordenação intergrupos se faz necessário
41 Etapas de desenvolvimento
As principais etapas que deverão compor o processo de desenvolvimento de aplicações Web: Definição dos Objetivos Levantamento dos Requisitos Análise e Projeto Planejamento da Interface Implementação Avaliação Validação Manutenção.
42 Definição dos objetivos
Como um sistema direcionado para a Web não dissemina somente informação, como é o caso dos Websites, mas também aproxima usuários, processos e suas tarefas para realização de metas de negócio é necessário a definição clara dos objetivos do sistema de acordo com o propósito do seu uso. Pode-se identificar três classes de sistemas para a Web, que apesar de possuírem características semelhantes, diferem substancialmente no objetivo, e nas preocupações e princípios nos quais se baseiam.
43 Definição dos objetivos
As classes são: Aplicações de páginas de informação: este tipo de software Web é composto basicamente de páginas de informação. Tem a função de prover/disseminar informações, priorizando o conteúdo e a forma de apresentação. Aplicações centradas em banco de dados: este tipo de software manuseia dados armazenados em banco de dados, não possuindo fluxo de processos ou transações complexas. A prioridade é a organização do banco de dados e a forma como os dados serão apresentados. Aplicações que suportam a realização de transações de negócio: formado por componentes de software responsáveis pela execução de algum tipo de computação que auxilie a realização de negócios, integrados a páginas de informação. A prioridade nesta categoria é a definição da arquitetura do sistema e do software, e o projeto dos componentes da aplicação.
44 Levantamento dos requisitos
A etapa de definição de requisitos é considerada crítica para o desenvolvimento de sistemas de software, em especial para sistemas direcionados para a Web, isso por causa da quantidade e variedade de usuários e sua distribuição geográfica. Desta forma pessoas de todo o mundo com os mais diferentes níveis de habilidades poderão fazer parte do conjunto de usuários do sistema e deverão ter suas necessidades sanadas. A variedade e a distribuição geográfica destes usuários exigem novas técnicas de elicitação e interação, fazendo com que tais usuários façam parte do processo de desenvolvimento. A utilização da Web como meio de comunicação e disseminação de informação acaba por solucionar alguns destes problemas, através de questionários on-line, fóruns de discussão e até mesmo chats.
45 Levantamento dos requisitos
Como os sistemas direcionados para a Web podem ser classificados em uma das três classes citadas deve haver identificação dos requisitos referentes a cada um dos tipos. Adicionalmente surgem novas características e restrições que devem ser consideradas e elicitadas que se referem especificamente a estes tipos de software, tais como, localização de possíveis usuários na rede (análise de backbone e gateways) e plataforma padrão (browsers), entre outras.
46 Análise A fase de análise constará da definição do escopo do sistema (conteúdo, contexto, etc), suas funções, objetivos e desempenho esperado, dados sobre os usuários (habilidades por exemplo), restrições externas (como largura da banda passante e distribuição geográfica dos usuários), limitações do produto e outros fatores relevantes. Ainda na fase de análise deve-se considerar estimativas de esforço necessário para o desenvolvimento do sistema, tais como recursos de software, humanos e de hardware, custos e cronograma. Muitos recursos são necessários para a produção de bom software, sendo relevante o fornecimento de um ambiente de trabalho adequado ao desenvolvimento pelas pessoas. Deve-se ter disponível equipamentos e espaço físico apropriados, ferramentas e técnicas, além de ser fornecido tempo suficiente para o trabalho.
47 Projeto A fase de projeto é o processo de transformação do problema em solução. Nesta etapa os requisitos especificados para a definição do problema serão usados na construção da solução em forma de projeto. O modelo de ciclo de vida a ser utilizado para sistemas Web é evolutivo, permitindo assim o projeto de protótipos que devem ser executados em ambiente similar ao real para a obtenção de dados realísticos. Estes protótipos permitirão a detecção de deficiências e/ou falhas no sistema em desenvolvimento. Sempre que possível este modelo de ciclo de vida deve considerar a reutilização de componentes ou artefatos.
48 Projeto Devem ser projetados também nesta fase o conteúdo e a navegação. Com relação ao conteúdo a informação a ser apresentada no sistema é determinada com base na análise do domínio da aplicação. Já com relação à navegação, o modelo navegacional é criado com um conjunto de estruturas navegacionais bem organizadas que levem em consideração os papéis e perfis dos usuários em potencial. A estrutura deve apresentar o melhor caminho navegacional para que um usuário com um certo perfil alcance a meta desejada, e descrever os serviços que o sistema oferece ao usuário.
49 Projeto de interface No projeto de uma interface a forma como os elementos da interação usuário/site vão atuar é definida. Isto significa definir de que forma os diferentes objetos navegacionais aparecem, quais objetos da interface ativarão a navegação e outras funcionalidades da aplicação, e quais e quando as transformações da interface ocorrerão. A aparência do sistema é determinada e o uso padronizado de componentes gráficos através deste é garantido.
50 Projeto de interface Devem ser considerados os sentidos visual, táctil e auditivo, os níveis de habilidade pessoais e as diferenças individuais entre usuários. Os recursos devem se basear no uso de recursos sonoros e visuais, uso de ícones, mouse, menus, entre outros. No projeto da interface devem ser considerados ainda alguns requisitos como consistência, eficiência no diálogo, facilidade de ajuda integradas no contexto, cores adequadas, mensagens de erros significativas e controle do fluxo de interação pelo usuário.
51 Implementação Nesta etapa deve-se considerar duas atividades paralelas e complementares: a implementação da aplicação e a implementação das páginas de informação. A construção das páginas de informação poderia e deveria ser realizada de imediato, para poder ser disponibilizada na Web tão logo fique pronta, isto até por questões de marketing. A construção dessas páginas pode ser considerada uma atividade mais adequada para designers gráficos do que para o pessoal técnico.
52 Implementação Em relação à implementação da aplicação, questões relevantes à tecnologia de implementação, devido à plataforma que será utilizada, devem ser consideradas. Devido ao cumprimento do cronograma, deve-se analisar de maneira exaustiva a possibilidade de reuso de componentes implementados por terceiros e até mesmo componentes de protótipos desenvolvidos durante o projeto.
53 Avaliação Esta etapa visa assegurar que a qualidade do produto e o atendimento aos requisitos foram atingidos. A avaliação do sistema deve ser feita em duas etapas: Durante o processo de projeto e desenvolvimento do sistema, podendo ser feita pelos desenvolvedores do mesmo. Sobre o produto final, por pessoas não envolvidas na produção do sistema.
54 Validação Esta etapa assegura que os objetivos e metas do sistema foram alcançados. Garante a qualidade do modelo navegacional, da aparência da interface e da informação pesquisada.
57 Manutenção É importante neste tipo de sistema além da manutenção corretiva a manutenção evolutiva, que contemple as mudanças dos requisitos, notadamente as de ordem tecnológica, negócios e usuários. Para que esta etapa seja efetiva, é necessária uma revisão periódica do projeto. Gerentes e desenvolvedores devem fazer as seguintes perguntas: Os objetivos são os mesmos? As prioridades são as mesmas? O público alvo é o mesmo? Existem novos recursos tecnológicos que podem ser incorporados? O modelo navegacional precisa ser revisto para incorporar novos links?
58 Processo ágil e incremental
PRESSMAM (2006, p.381) afirma que um processo para webE é frequentemente ágil e incremental. Porém outros modelos existentes na literatura, dependendo do projeto a ser construído e para a maioria dos principais projetos de engenharia da web, podem ser adotados. As vantagens da utilização de uma metodologia ágil de desenvolvimento é que estas abordagens incorporam ciclos rápidos. Desta forma, a característica do imediatismo com que as informações precisam ser dispostas na rede, pode ser satisfeita. O desenvolvimento de forma incremental favorece o suporte a várias modificações e versões, que poderão ser geradas durante o desenvolvimento deste tipo de aplicação. SOUSA & FALBO (2005, apud BAGLIONI & SOUZA, 2007, p.56) concordam que é provável que os modelos de processos sigam o padrão ágil, já que é necessário atender às exigências ditadas pela forma como as aplicações web devem comportar e ao mesmo tempo disponibilizar o sistema em menor período de tempo. Levando em consideração estes princípios favoráveis à implantação de um modelo ágil para desenvolvimento de aplicações web, PRESSMAN (2006, p.384) propõe a definição de um arcabouço genérico que adota a filosofia do desenvolvimento ágil, enfatizando uma abordagem simples que incorpora ciclos rápidos de desenvolvimento. Este arcabouço engloba atividades como: comunicação, planejamento, modelagem, construção e implantação.
60 Processo ágil e incremental
As atividades que caracterizam a fase de projeto da modelagem antecedem a construção da aplicação. Estas atividades, guiadas pelas informações obtidas na fase de análise, segundo PRESSMAN (2006, p.430), devem nos levar a um modelo que combine adequadamente a estética, o conteúdo e a tecnologia. A figura 6 retrata os seis tipos de projetos gerados nesta etapa.