engenharia da web prof. ilaim costa junior. engenharia da web

69
Engenharia da Web Engenharia da Web Prof. Ilaim Costa Junior Prof. Ilaim Costa Junior

Upload: internet

Post on 21-Apr-2015

107 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Prof. Ilaim Costa JuniorProf. Ilaim Costa Junior

Page 2: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Page 3: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Page 4: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Page 5: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Page 6: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Page 7: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Versão moderna da Engenharia de Versão moderna da Engenharia de SoftwareSoftware

O desafio de sempreO desafio de sempre Como definir um processo de software Como definir um processo de software

que implemente o software com os que implemente o software com os requisitos do cliente, atendendo prazo, requisitos do cliente, atendendo prazo, custo e qualidade?custo e qualidade?

Como juntar e trabalhar tantas Como juntar e trabalhar tantas tecnologias juntas: Web services, Web tecnologias juntas: Web services, Web semântica, Ontologias, Modelagem semântica, Ontologias, Modelagem conceitual, Linguagens para a Web, .....conceitual, Linguagens para a Web, .....

Page 8: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Aplicações Web não são um Aplicações Web não são um problema totalmente novo.problema totalmente novo.

Características novas: estrutura, Características novas: estrutura, dinâmica, navegação, apresentação, dinâmica, navegação, apresentação, entre outras.entre outras.

Existem modelos de processos que Existem modelos de processos que atendem às aplicações Web.atendem às aplicações Web. Destaque para modelos evolutivos e Destaque para modelos evolutivos e

ágeis.ágeis.

Page 9: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Aplicações WebAplicações Web

São desenvolvidas de forma São desenvolvidas de forma ad-hoc ad-hoc (processos informais), sem suporte (processos informais), sem suporte de modelagem, sem semântica.de modelagem, sem semântica.

É necessário definir a especificação É necessário definir a especificação clara da aplicação, seus conceitos, clara da aplicação, seus conceitos, para que o restante se junte para para que o restante se junte para fechar esse “quebra cabeça”.fechar esse “quebra cabeça”.

A definição da semântica da A definição da semântica da aplicação é fundamental.aplicação é fundamental.

Page 10: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Problemas dos sistemas WebProblemas dos sistemas Web

A maioria dos sistemas são desenvolvidos de A maioria dos sistemas são desenvolvidos de maneira maneira ad-hocad-hoc, resultando em sistemas Web , resultando em sistemas Web de baixa qualidade.de baixa qualidade.

Problemas como desatualização e informações Problemas como desatualização e informações irrelevantes dificultam o uso do site e a busca irrelevantes dificultam o uso do site e a busca por informações importantes, acarretando por informações importantes, acarretando respostas lentas, pane e quebra de segurança. respostas lentas, pane e quebra de segurança.

Esses problemas ocorrem porque os Esses problemas ocorrem porque os desenvolvedores não priorizam as desenvolvedores não priorizam as necessidades e características dos usuários necessidades e características dos usuários em termos de conteúdo, gerenciamento, em termos de conteúdo, gerenciamento, manutenção, desempenho, segurança e manutenção, desempenho, segurança e escalabilidade.escalabilidade.

Muitas vezes os desenvolvedores também Muitas vezes os desenvolvedores também priorizam questões não técnicas como priorizam questões não técnicas como copyrightcopyright e privacidade. e privacidade.

Page 11: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Problemas dos sistemas WebProblemas dos sistemas Web

Muitos desenvolvedores de aplicações Web Muitos desenvolvedores de aplicações Web acreditam que o desenvolvimento de acreditam que o desenvolvimento de aplicações Web se resume a simples páginas aplicações Web se resume a simples páginas usando HTML ou softwares do tipo usando HTML ou softwares do tipo Front PageFront Page ou ou DreamweaverDreamweaver e acrescentando algumas e acrescentando algumas imagens, alguns hiperlinks e páginas Web. imagens, alguns hiperlinks e páginas Web.

Apesar de algumas páginas pessoais, de Apesar de algumas páginas pessoais, de eventos, brochuras de anúncio entre outra eventos, brochuras de anúncio entre outra caiam nessa categoria muitas aplicações Web caiam nessa categoria muitas aplicações Web são complexas e requerem uma matriz de são complexas e requerem uma matriz de requisitos. Isso é muito mais que projeto visual requisitos. Isso é muito mais que projeto visual e interface com o usuário. e interface com o usuário.

Essas aplicações envolvem planejamento, Essas aplicações envolvem planejamento, arquitetura Web, projeto, teste, qualidade, arquitetura Web, projeto, teste, qualidade, avaliação do desempenho, atualização avaliação do desempenho, atualização constante e manutenção do sistema.constante e manutenção do sistema.

Page 12: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

A Engenharia da Web deve se preocupar A Engenharia da Web deve se preocupar com o estabelecimento e uso de princípios com o estabelecimento e uso de princípios da engenharia, bem como com o da engenharia, bem como com o gerenciamento de técnicas sistemáticas e gerenciamento de técnicas sistemáticas e disciplinadas para o desenvolvimento, disciplinadas para o desenvolvimento, implantação e manutenção de sistemas e implantação e manutenção de sistemas e aplicações Web de alta qualidade. aplicações Web de alta qualidade.

Ela deve incorporar alguns dos princípios Ela deve incorporar alguns dos princípios bem sucedidos na Engenharia de Software bem sucedidos na Engenharia de Software tradicional, adaptando-os para a natureza tradicional, adaptando-os para a natureza mais aberta e flexível da Web e de suas mais aberta e flexível da Web e de suas aplicações, além de considerar outros aplicações, além de considerar outros elementos que são específicos do ambiente elementos que são específicos do ambiente Web.Web.

Page 13: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Web Engineering uses scientific, engineering, Web Engineering uses scientific, engineering, and management principles and systematic and management principles and systematic approaches to successfully develop, deploy, approaches to successfully develop, deploy, and maintain high-quality Web systems and and maintain high-quality Web systems and applications (Murugesan et al., 1999). It aims applications (Murugesan et al., 1999). It aims to bring Web-based system development to bring Web-based system development under control, minimise risks and improve under control, minimise risks and improve quality, maintainability, and scalability of Web quality, maintainability, and scalability of Web applications.applications.

The essence of Web engineering is to The essence of Web engineering is to successfully manage the diversity and successfully manage the diversity and complexity of Web application development, complexity of Web application development, and hence, avoid potential failures that could and hence, avoid potential failures that could have serious implications.have serious implications.

(Murugesan & (Murugesan & Ginige)Ginige)

Page 14: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Atributos de aplicações Atributos de aplicações baseadas na Webbaseadas na Web Concentração em redesConcentração em redes

Diversidade de clientesDiversidade de clientes ConcorrênciaConcorrência

Grande número de usuários acessam ao Grande número de usuários acessam ao mesmo tempomesmo tempo

Carga imprevisívelCarga imprevisível Número de usuários varia muitoNúmero de usuários varia muito

DesempenhoDesempenho Em caso de demora usuário desviaEm caso de demora usuário desvia

DisponibilidadeDisponibilidade 24x7x36524x7x365

Voltada a dadosVoltada a dados Uso de hipermídia e acesso a bancos de Uso de hipermídia e acesso a bancos de

dadosdados

Page 15: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Atributos de aplicações Atributos de aplicações baseadas na Webbaseadas na Web Sensível ao conteúdoSensível ao conteúdo

Determinante da qualidadeDeterminante da qualidade Evolução continuadaEvolução continuada

Cuidado e alimentação contínuaCuidado e alimentação contínua ImediatismoImediatismo

Tempo de desenvolvimento reduzidoTempo de desenvolvimento reduzido SegurançaSegurança

Implementação de fortes medidas de Implementação de fortes medidas de segurançasegurança

EstéticaEstética Aspecto é fator de atraçãoAspecto é fator de atração

Page 16: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 17: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 18: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Categorias das Aplicações (LEITE, 2002, apud VOLPI & CECHELERO, 2004, p.50).

Page 19: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Categoria Exemplos

Informacional Jornais e revistas On line, catálogos de produtos, classificados on line, livros on line.

Interativos Formulários de registro, apresentação de informações customizadas, jogos on line.

Transacional Lojas eletrônicas, oferecimento de bens e serviços, bancos online.

Workflow Sistemas de Gerência, planejamento, acompanhamento on line, controle de mercadorias.

Ferramentas colaborativas Sistemas diversos de autoria.

Comunidades on line, lugares de negócios. Salas de bate-papo, sistemas que recomendam produtos e serviços, e-marketplace.

Portais Compras On-line, fornecedores de conteúdo.

Categorias das aplicações web (GINIGE & MURUGESAN, apud LOCATELLI, 2003, p.13).

Page 20: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Características das aplicações WebCaracterísticas das aplicações Web

Aplicações Web estão em constante evoluçãoAplicações Web estão em constante evolução O conteúdo pode envolver textos, gráficos, O conteúdo pode envolver textos, gráficos,

imagens, áudio, vídeo, integrados com imagens, áudio, vídeo, integrados com processamento procedimental. A forma como processamento procedimental. A forma como esse conteúdo é apresentado e organizado esse conteúdo é apresentado e organizado influencia o desempenho e tempo de resposta.influencia o desempenho e tempo de resposta.

A aplicação é desenvolvida para um grupo A aplicação é desenvolvida para um grupo diverso de usuários e muitos usuários anônimos.diverso de usuários e muitos usuários anônimos.

A maioria é desenvolvida centrada no conteúdo A maioria é desenvolvida centrada no conteúdo o que exige constante atualização (às vezes de o que exige constante atualização (às vezes de hora em hora).hora em hora).

Muitas vezes a ênfase é na criatividade e na Muitas vezes a ênfase é na criatividade e na interface.interface.

O cronograma de desenvolvimento é sempre O cronograma de desenvolvimento é sempre apertado.apertado.

Page 21: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Características das aplicações WebCaracterísticas das aplicações Web

Os problemas de funcionamento, em geral, são mais Os problemas de funcionamento, em geral, são mais sentidos que nos sistemas convencionais.sentidos que nos sistemas convencionais.

As equipes, na maioria das vezes, são jovens e com As equipes, na maioria das vezes, são jovens e com backgroundsbackgrounds diferenciados, o que provoca visões diferenciados, o que provoca visões diferenciadas da qualidade das aplicações.diferenciadas da qualidade das aplicações.

Novas tecnologias estão sempre sendo lançadas e na Novas tecnologias estão sempre sendo lançadas e na maioria das vezes instáveis.maioria das vezes instáveis.

O desenvolvimento Web utiliza diversas tecnologias e O desenvolvimento Web utiliza diversas tecnologias e padrões, integra componentes, incluindo software padrões, integra componentes, incluindo software tradicional e não tradicional, linguagens de script, tradicional e não tradicional, linguagens de script, HTML, arquivos, bancos de dados, imagens e outras HTML, arquivos, bancos de dados, imagens e outras multimídias.multimídias.

O meio de disponibilizar a aplicação é muito diverso e O meio de disponibilizar a aplicação é muito diverso e exige portabilidade em termos de hardware, software exige portabilidade em termos de hardware, software e redes.e redes.

Segurança e privacidade são mais exigidas.Segurança e privacidade são mais exigidas. A Web é um exemplo de arte e tecnologia, mais A Web é um exemplo de arte e tecnologia, mais

visível que as aplicações tradicionais.visível que as aplicações tradicionais.

Page 22: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

Diante da busca por metodologias Diante da busca por metodologias disciplinadas e por maior sucesso no disciplinadas e por maior sucesso no desenvolvimento de sistemas direcionados desenvolvimento de sistemas direcionados para a Web, surge a necessidade do para a Web, surge a necessidade do desenvolvimento de técnicas, métodos e desenvolvimento de técnicas, métodos e ferramentas para o desenvolvimento, ferramentas para o desenvolvimento, implantação e avaliação desses sistemas. implantação e avaliação desses sistemas.

Tais modelos devem levar em Tais modelos devem levar em consideração as características especiais consideração as características especiais que sistemas Web possuem:que sistemas Web possuem: Novas mídias e ambientes operacionais;Novas mídias e ambientes operacionais; Os cenários e multiplicidade de usuários;Os cenários e multiplicidade de usuários; O tipo, experiência e conhecimento das O tipo, experiência e conhecimento das

pessoas envolvidas no processo de pessoas envolvidas no processo de desenvolvimento.desenvolvimento.

Page 23: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Engenharia da WebEngenharia da Web

O processo de desenvolver um sistema Web deve levar O processo de desenvolver um sistema Web deve levar em consideração também que um software deste tipo, é em consideração também que um software deste tipo, é uma espécie de sistema híbrido e o processo de uma espécie de sistema híbrido e o processo de desenvolvimento não é somente uma questão desenvolvimento não é somente uma questão tecnológica, mas também uma questão organizacional, tecnológica, mas também uma questão organizacional, política e cultural e envolve uma mudança radical na política e cultural e envolve uma mudança radical na estruturação e apresentação da informação.estruturação e apresentação da informação.

Assim podem ser identificadas características que Assim podem ser identificadas características que diferenciam o processo de desenvolvimento de sistemas diferenciam o processo de desenvolvimento de sistemas tradicionais dos sistemas Web. tradicionais dos sistemas Web.

Estas características se agrupam em três categorias: Estas características se agrupam em três categorias: NavegaçãoNavegação Organização da interfaceOrganização da interface Implementação.Implementação.

Page 24: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Atividades de Engenharia da WebAtividades de Engenharia da Web

Projeto do conteúdo e produçãoProjeto do conteúdo e produção Realizadas por membros não Realizadas por membros não

técnicostécnicos Objetivo de projetar, produzir e ou Objetivo de projetar, produzir e ou

adquirir todo o conteúdo de texto, adquirir todo o conteúdo de texto, gráfico, áudio e vídeográfico, áudio e vídeo

Projeto arquiteturalProjeto arquitetural Projeto de navegaçãoProjeto de navegação Projeto de interfaceProjeto de interface

Page 25: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Projeto ArquiteturalProjeto Arquitetural

O projeto arquitetural de sistemas e aplicações O projeto arquitetural de sistemas e aplicações Web focaliza a definição da estrutura global de Web focaliza a definição da estrutura global de hipermídia da aplicação Web e o uso de hipermídia da aplicação Web e o uso de padrões de projetos e gabaritos construtivos.padrões de projetos e gabaritos construtivos.

Uma atividade paralela, denominada projeto de Uma atividade paralela, denominada projeto de conteúdo cria a estrutura global e o layout conteúdo cria a estrutura global e o layout detalhado do conteúdo de informação que vai detalhado do conteúdo de informação que vai ser apresentado como parte da aplicação Web. ser apresentado como parte da aplicação Web.

Page 26: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Tipos de EstruturasTipos de Estruturas

O modelo de arquitetura é O modelo de arquitetura é relacionado a:relacionado a: Metas estabelecidasMetas estabelecidas Conteúdo a ser apresentadoConteúdo a ser apresentado Filosofia de navegaçãoFilosofia de navegação

Page 27: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Tipos de EstruturasTipos de Estruturas

Estrutura linearEstrutura linear É encontrada uma seqüência de É encontrada uma seqüência de

interações previsívelinterações previsível A apresentação do conteúdo é A apresentação do conteúdo é

linear e pré-definida.linear e pré-definida.

Page 28: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 29: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Tipos de EstruturasTipos de Estruturas

Estruturas hierárquicasEstruturas hierárquicas São o tipo mais comum de estruturaSão o tipo mais comum de estrutura Permite o fluxo horizontal e verticalPermite o fluxo horizontal e vertical Permite navegação rápida, mas pode Permite navegação rápida, mas pode

causar confusão para o usuáriocausar confusão para o usuário

Page 30: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 31: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Tipos de EstruturasTipos de Estruturas

Estrutura em redeEstrutura em rede Os componentes arquiteturais podem Os componentes arquiteturais podem

acessar qualquer outro componente do acessar qualquer outro componente do sistema, através de links.sistema, através de links.

Possuem alta flexibilidade de Possuem alta flexibilidade de navegação.navegação.

Podem causar confusão para o usuário.Podem causar confusão para o usuário.

Page 32: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 33: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Tipos de EstruturasTipos de Estruturas

Estruturas compostasEstruturas compostas Combinam um ou mais tipos de Combinam um ou mais tipos de

estruturasestruturas A meta do projetista de arquitetura é A meta do projetista de arquitetura é

adaptar a estrutura da aplicação Web adaptar a estrutura da aplicação Web ao conteúdo a ser apresentado e ao ao conteúdo a ser apresentado e ao processamento a ser conduzido.processamento a ser conduzido.

Page 34: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Projeto de NavegaçãoProjeto de Navegação

Uma vez definida a arquitetura Uma vez definida a arquitetura da aplicação e identificados da aplicação e identificados seus componentes (páginas, seus componentes (páginas, scripts, applets e outras funções scripts, applets e outras funções de processamento) o projetista de processamento) o projetista deve definir caminhos de deve definir caminhos de navegação que permitam ao navegação que permitam ao usuário ter acesso ao conteúdo usuário ter acesso ao conteúdo e aos serviços.e aos serviços.

Page 35: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Projeto de NavegaçãoProjeto de Navegação

Para o projeto de navegação o projetista Para o projeto de navegação o projetista necessita:necessita: Identificar a semântica de navegação para Identificar a semântica de navegação para

diferentes usuáriosdiferentes usuários Em aplicações grandes existirão vários tipos de Em aplicações grandes existirão vários tipos de

usuáriosusuários Definir a mecânica (sintaxe) para realizar a Definir a mecânica (sintaxe) para realizar a

navegaçãonavegação O projetista deve escolher as ligações de O projetista deve escolher as ligações de

navegação adequadas ao conteúdo e navegação adequadas ao conteúdo e consistentes com o projeto de interface (botões, consistentes com o projeto de interface (botões, ícones, texto, etc)ícones, texto, etc)

Devem ser projetados auxílios à navegação Devem ser projetados auxílios à navegação (busca, índice, histórico, etc).(busca, índice, histórico, etc).

Page 36: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Projeto de InterfaceProjeto de Interface

Características gerais de projeto Características gerais de projeto de interface podem ser de interface podem ser aplicadasaplicadas

A interface deve ser bem A interface deve ser bem projetadaprojetada

Considerar que a primeira Considerar que a primeira impressão é muito importante.impressão é muito importante.

Page 37: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Projeto de InterfaceProjeto de Interface

Diretrizes:Diretrizes: Evitar erros do servidorEvitar erros do servidor Evitar grandes quantidades de material para Evitar grandes quantidades de material para

leituraleitura Evitar “em construção”Evitar “em construção” Não rolar imagemNão rolar imagem Menus de navegação e barras de título Menus de navegação e barras de título

devem estar disponíveis em todas as devem estar disponíveis em todas as páginas páginas

A estética nunca deve sobrepujar a A estética nunca deve sobrepujar a funcionalidadefuncionalidade

As opções de navegação devem ser óbvias.As opções de navegação devem ser óbvias.

Page 38: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Processo de Desenvolvimento de Processo de Desenvolvimento de Sistemas WebSistemas Web O desenvolvimento de um sistema direcionado O desenvolvimento de um sistema direcionado

para a Web envolve a fase de definição da para a Web envolve a fase de definição da equipe de desenvolvimento e a fase de equipe de desenvolvimento e a fase de definição do processo a ser seguido.definição do processo a ser seguido.

O processo de desenvolvimento deve ser O processo de desenvolvimento deve ser evolucionário.evolucionário.

O RUP (O RUP (Rational Unified ProcessRational Unified Process) apresenta ) apresenta características adequadas para o características adequadas para o desenvolvimento de sistemas Web.desenvolvimento de sistemas Web.

Os modelo ágeis enfatizam uma abordagem Os modelo ágeis enfatizam uma abordagem de desenvolvimento simples que incorpora de desenvolvimento simples que incorpora ciclos rápidos de desenvolvimento, por isso ciclos rápidos de desenvolvimento, por isso são adeuqdos ao desenvolvimento de algumas são adeuqdos ao desenvolvimento de algumas aplicações Web.aplicações Web.

Page 39: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Equipe de desenvolvimentoEquipe de desenvolvimento

As equipes desenvolvedoras de sistemas para As equipes desenvolvedoras de sistemas para a Web são multidisciplinares e devem integrar a Web são multidisciplinares e devem integrar profissionais especializados em informática, profissionais especializados em informática, profundos conhecedores do ambiente Web, e profundos conhecedores do ambiente Web, e especialistas no conteúdo. especialistas no conteúdo.

Entre os profissionais destacam-se: Entre os profissionais destacam-se: Desenvolvedor/provedor de conteúdoDesenvolvedor/provedor de conteúdo Web designer (editor da Web)Web designer (editor da Web) Engenheiro da Web (elicitação de Engenheiro da Web (elicitação de

requisitos,modelagem, projeto arquitetural, requisitos,modelagem, projeto arquitetural, navegacional e de interface, implementação e teste)navegacional e de interface, implementação e teste)

Especialista no domínio do negócioEspecialista no domínio do negócio Especialista de suporteEspecialista de suporte Web Master (administrador)Web Master (administrador)

Page 40: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Equipe de desenvolvimentoEquipe de desenvolvimento

Considerando que, muitas Considerando que, muitas vezes a equipe de vezes a equipe de desenvolvimento é formada na desenvolvimento é formada na verdade por diferentes equipes, verdade por diferentes equipes, uma coordenação intergrupos uma coordenação intergrupos se faz necessáriose faz necessário

Page 41: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Etapas de desenvolvimentoEtapas de desenvolvimento

As principais etapas que deverão As principais etapas que deverão compor o processo de compor o processo de desenvolvimento de aplicações Web:desenvolvimento de aplicações Web: Definição dos ObjetivosDefinição dos Objetivos Levantamento dos RequisitosLevantamento dos Requisitos Análise e ProjetoAnálise e Projeto Planejamento da InterfacePlanejamento da Interface ImplementaçãoImplementação AvaliaçãoAvaliação ValidaçãoValidação Manutenção.Manutenção.

Page 42: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Definição dos objetivosDefinição dos objetivos

Como um sistema direcionado para a Web Como um sistema direcionado para a Web não dissemina somente informação, como não dissemina somente informação, como é o caso dos é o caso dos WebsitesWebsites, mas também , mas também aproxima usuários, processos e suas aproxima usuários, processos e suas tarefas para realização de metas de tarefas para realização de metas de negócio é necessário a definição clara dos negócio é necessário a definição clara dos objetivos do sistema de acordo com o objetivos do sistema de acordo com o propósito do seu uso. propósito do seu uso.

Pode-se identificar três classes de Pode-se identificar três classes de sistemas para a Web, que apesar de sistemas para a Web, que apesar de possuírem características semelhantes, possuírem características semelhantes, diferem substancialmente no objetivo, e diferem substancialmente no objetivo, e nas preocupações e princípios nos quais nas preocupações e princípios nos quais se baseiam. se baseiam.

Page 43: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Definição dos objetivosDefinição dos objetivos

As classes são:As classes são: Aplicações de páginas de informaçãoAplicações de páginas de informação: este tipo de : este tipo de

software Web é composto basicamente de páginas de software Web é composto basicamente de páginas de informação. Tem a função de prover/disseminar informação. Tem a função de prover/disseminar informações, priorizando o conteúdo e a forma de informações, priorizando o conteúdo e a forma de apresentação.apresentação.

Aplicações centradas em banco de dadosAplicações centradas em banco de dados: este tipo de : este tipo de software manuseia dados armazenados em banco de software manuseia dados armazenados em banco de dados, não possuindo fluxo de processos ou dados, não possuindo fluxo de processos ou transações complexas. A prioridade é a organização do transações complexas. A prioridade é a organização do banco de dados e a forma como os dados serão banco de dados e a forma como os dados serão apresentados.apresentados.

Aplicações que suportam a realização de transações Aplicações que suportam a realização de transações de negóciode negócio: formado por componentes de software : formado por componentes de software responsáveis pela execução de algum tipo de responsáveis pela execução de algum tipo de computação que auxilie a realização de negócios, computação que auxilie a realização de negócios, integrados a páginas de informação. A prioridade nesta integrados a páginas de informação. A prioridade nesta categoria é a definição da arquitetura do sistema e do categoria é a definição da arquitetura do sistema e do software, e o projeto dos componentes da aplicação.software, e o projeto dos componentes da aplicação.

Page 44: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Levantamento dos requisitosLevantamento dos requisitos

A A etapa de definição de requisitos é considerada etapa de definição de requisitos é considerada crítica para o desenvolvimento de sistemas de crítica para o desenvolvimento de sistemas de software, em especial para sistemas direcionados software, em especial para sistemas direcionados para a Web, isso por causa da quantidade e para a Web, isso por causa da quantidade e variedade de usuários e sua distribuição variedade de usuários e sua distribuição geográfica. Desta forma pessoas de todo o geográfica. Desta forma pessoas de todo o mundo com os mais diferentes níveis de mundo com os mais diferentes níveis de habilidades poderão fazer parte do conjunto de habilidades poderão fazer parte do conjunto de usuários do sistema e deverão ter suas usuários do sistema e deverão ter suas necessidades sanadas. A variedade e a necessidades sanadas. A variedade e a distribuição geográfica destes usuários exigem distribuição geográfica destes usuários exigem novas técnicas de elicitação e interação, fazendo novas técnicas de elicitação e interação, fazendo com que tais usuários façam parte do processo com que tais usuários façam parte do processo de desenvolvimento. A utilização da Web como de desenvolvimento. A utilização da Web como meio de comunicação e disseminação de meio de comunicação e disseminação de informação acaba por solucionar alguns destes informação acaba por solucionar alguns destes problemas, através de questionários problemas, através de questionários on-lineon-line, , fóruns de discussão e até mesmo fóruns de discussão e até mesmo chatschats. .

Page 45: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Levantamento dos requisitosLevantamento dos requisitos

Como os sistemas direcionados para a Como os sistemas direcionados para a Web podem ser classificados em uma Web podem ser classificados em uma das três classes citadas deve haver das três classes citadas deve haver identificação dos requisitos referentes a identificação dos requisitos referentes a cada um dos tipos. Adicionalmente cada um dos tipos. Adicionalmente surgem novas características e surgem novas características e restrições que devem ser consideradas e restrições que devem ser consideradas e elicitadas que se referem elicitadas que se referem especificamente a estes tipos de especificamente a estes tipos de software, tais como, localização de software, tais como, localização de possíveis usuários na rede (análise de possíveis usuários na rede (análise de backbonebackbone e e gatewaysgateways) e plataforma ) e plataforma padrão (padrão (browsersbrowsers), entre outras.), entre outras.

Page 46: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

AnáliseAnálise

A fase de análise constará da definição do escopo do A fase de análise constará da definição do escopo do sistema (conteúdo, contexto, etc), suas funções, objetivos e sistema (conteúdo, contexto, etc), suas funções, objetivos e desempenho esperado, dados sobre os usuários desempenho esperado, dados sobre os usuários (habilidades por exemplo), restrições externas (como (habilidades por exemplo), restrições externas (como largura da banda passante e distribuição geográfica dos largura da banda passante e distribuição geográfica dos usuários), limitações do produto e outros fatores relevantes.usuários), limitações do produto e outros fatores relevantes.

Ainda na fase de análise deve-se considerar estimativas de Ainda na fase de análise deve-se considerar estimativas de esforço necessário para o desenvolvimento do sistema, tais esforço necessário para o desenvolvimento do sistema, tais como recursos de software, humanos e de hardware, custos como recursos de software, humanos e de hardware, custos e cronograma. Muitos recursos são necessários para a e cronograma. Muitos recursos são necessários para a produção de bom software, sendo relevante o fornecimento produção de bom software, sendo relevante o fornecimento de um ambiente de trabalho adequado ao desenvolvimento de um ambiente de trabalho adequado ao desenvolvimento pelas pessoas. Deve-se ter disponível equipamentos e pelas pessoas. Deve-se ter disponível equipamentos e espaço físico apropriados, ferramentas e técnicas, além de espaço físico apropriados, ferramentas e técnicas, além de ser fornecido tempo suficiente para o trabalho.ser fornecido tempo suficiente para o trabalho.

Page 47: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

ProjetoProjeto

A fase de projeto é o processo de transformação do A fase de projeto é o processo de transformação do problema em solução. Nesta etapa os requisitos problema em solução. Nesta etapa os requisitos especificados para a definição do problema serão especificados para a definição do problema serão usados na construção da solução em forma de usados na construção da solução em forma de projeto.projeto.

O modelo de ciclo de vida a ser utilizado para O modelo de ciclo de vida a ser utilizado para sistemas Web é evolutivo, permitindo assim o projeto sistemas Web é evolutivo, permitindo assim o projeto de protótipos que devem ser executados em de protótipos que devem ser executados em ambiente similar ao real para a obtenção de dados ambiente similar ao real para a obtenção de dados realísticos. Estes protótipos permitirão a detecção de realísticos. Estes protótipos permitirão a detecção de deficiências e/ou falhas no sistema em deficiências e/ou falhas no sistema em desenvolvimento. Sempre que possível este modelo desenvolvimento. Sempre que possível este modelo de ciclo de vida deve considerar a reutilização de de ciclo de vida deve considerar a reutilização de componentes ou artefatos.componentes ou artefatos.

Page 48: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

ProjetoProjeto

Devem ser projetados também nesta fase Devem ser projetados também nesta fase o conteúdo e a navegação. Com relação o conteúdo e a navegação. Com relação ao conteúdo a informação a ser ao conteúdo a informação a ser apresentada no sistema é determinada apresentada no sistema é determinada com base na análise do domínio da com base na análise do domínio da aplicação. Já com relação à navegação, o aplicação. Já com relação à navegação, o modelo navegacional é criado com um modelo navegacional é criado com um conjunto de estruturas navegacionais bem conjunto de estruturas navegacionais bem organizadas que levem em consideração organizadas que levem em consideração os papéis e perfis dos usuários em os papéis e perfis dos usuários em potencial. A estrutura deve apresentar o potencial. A estrutura deve apresentar o melhor caminho navegacional para que um melhor caminho navegacional para que um usuário com um certo perfil alcance a meta usuário com um certo perfil alcance a meta desejada, e descrever os serviços que o desejada, e descrever os serviços que o sistema oferece ao usuáriosistema oferece ao usuário..

Page 49: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Projeto de interfaceProjeto de interface

No projeto de uma interface a forma como No projeto de uma interface a forma como os elementos da interação usuário/os elementos da interação usuário/sitesite vão vão atuar é definida. Isto significa definir de atuar é definida. Isto significa definir de que forma os diferentes objetos que forma os diferentes objetos navegacionais aparecem, quais objetos da navegacionais aparecem, quais objetos da interface ativarão a navegação e outras interface ativarão a navegação e outras funcionalidades da aplicação, e quais e funcionalidades da aplicação, e quais e quando as transformações da interface quando as transformações da interface ocorrerão. A aparência do sistema é ocorrerão. A aparência do sistema é determinada e o uso padronizado de determinada e o uso padronizado de componentes gráficos através deste é componentes gráficos através deste é garantido.garantido.

Page 50: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Projeto de interfaceProjeto de interface

Devem ser considerados os sentidos Devem ser considerados os sentidos visual, táctil e auditivo, os níveis de visual, táctil e auditivo, os níveis de habilidade pessoais e as diferenças habilidade pessoais e as diferenças individuais entre usuários. Os recursos individuais entre usuários. Os recursos devem se basear no uso de recursos devem se basear no uso de recursos sonoros e visuais, uso de ícones, mouse, sonoros e visuais, uso de ícones, mouse, menus, entre outros.menus, entre outros.

No projeto da interface devem ser No projeto da interface devem ser considerados ainda alguns requisitos como considerados ainda alguns requisitos como consistência, eficiência no diálogo, consistência, eficiência no diálogo, facilidade de ajuda integradas no contexto, facilidade de ajuda integradas no contexto, cores adequadas, mensagens de erros cores adequadas, mensagens de erros significativas e controle do fluxo de significativas e controle do fluxo de interação pelo usuário.interação pelo usuário.

Page 51: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

ImplementaçãoImplementação

Nesta etapa deve-se considerar duas Nesta etapa deve-se considerar duas atividades paralelas e complementares: a atividades paralelas e complementares: a implementação da aplicação e a implementação da aplicação e a implementação das páginas de implementação das páginas de informação. A construção das páginas de informação. A construção das páginas de informação poderia e deveria ser realizada informação poderia e deveria ser realizada de imediato, para poder ser disponibilizada de imediato, para poder ser disponibilizada na Web tão logo fique pronta, isto até por na Web tão logo fique pronta, isto até por questões de marketing. A construção questões de marketing. A construção dessas páginas pode ser considerada uma dessas páginas pode ser considerada uma atividade mais adequada para designers atividade mais adequada para designers gráficos do que para o pessoal técnico. gráficos do que para o pessoal técnico.

Page 52: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

ImplementaçãoImplementação

Em relação à implementação da Em relação à implementação da aplicação, questões relevantes à aplicação, questões relevantes à tecnologia de implementação, devido à tecnologia de implementação, devido à plataforma que será utilizada, devem plataforma que será utilizada, devem ser consideradas. Devido ao ser consideradas. Devido ao cumprimento do cronograma, deve-se cumprimento do cronograma, deve-se analisar de maneira exaustiva a analisar de maneira exaustiva a possibilidade de reuso de componentes possibilidade de reuso de componentes implementados por terceiros e até implementados por terceiros e até mesmo componentes de protótipos mesmo componentes de protótipos desenvolvidos durante o projeto. desenvolvidos durante o projeto.

Page 53: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

AvaliaçãoAvaliação

Esta etapa visa assegurar que a Esta etapa visa assegurar que a qualidade do produto e o qualidade do produto e o atendimento aos requisitos foram atendimento aos requisitos foram atingidos. A avaliação do sistema atingidos. A avaliação do sistema deve ser feita em duas etapas:deve ser feita em duas etapas: Durante o processo de projeto e Durante o processo de projeto e

desenvolvimento do sistema, podendo desenvolvimento do sistema, podendo ser feita pelos desenvolvedores do ser feita pelos desenvolvedores do mesmo.mesmo.

Sobre o produto final, por pessoas não Sobre o produto final, por pessoas não envolvidas na produção do sistema.envolvidas na produção do sistema.

Page 54: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

ValidaçãoValidação

Esta etapa assegura que os Esta etapa assegura que os objetivos e metas do sistema objetivos e metas do sistema foram alcançados. Garante a foram alcançados. Garante a qualidade do modelo qualidade do modelo navegacional, da aparência da navegacional, da aparência da interface e da informação interface e da informação pesquisada.pesquisada.

Page 55: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 56: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 57: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

ManutençãoManutenção

É importante neste tipo de sistema além da É importante neste tipo de sistema além da manutenção corretiva a manutenção evolutiva, manutenção corretiva a manutenção evolutiva, que contemple as mudanças dos requisitos, que contemple as mudanças dos requisitos, notadamente as de ordem tecnológica, notadamente as de ordem tecnológica, negócios e usuários. Para que esta etapa seja negócios e usuários. Para que esta etapa seja efetiva, é necessária uma revisão periódica do efetiva, é necessária uma revisão periódica do projeto. Gerentes e desenvolvedores devem projeto. Gerentes e desenvolvedores devem fazer as seguintes perguntas:fazer as seguintes perguntas:

Os objetivos são os mesmos?Os objetivos são os mesmos? As prioridades são as mesmas?As prioridades são as mesmas? O público alvo é o mesmo?O público alvo é o mesmo? Existem novos recursos tecnológicos que Existem novos recursos tecnológicos que

podem ser incorporados?podem ser incorporados? O modelo navegacional precisa ser revisto O modelo navegacional precisa ser revisto

para incorporar novos para incorporar novos linkslinks??

Page 58: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Processo ágil e incrementalProcesso ágil e incremental

PRESSMAM (2006, p.381) afirma que um processo paraPRESSMAM (2006, p.381) afirma que um processo para webE webE é é frequentemente ágil e incremental. Porém outros modelos existentes frequentemente ágil e incremental. Porém outros modelos existentes na literatura, dependendo do projeto a ser construído e para a na literatura, dependendo do projeto a ser construído e para a maioria dos principais projetos de engenharia da web, podem ser maioria dos principais projetos de engenharia da web, podem ser adotados.adotados.

As vantagens da utilização de uma metodologia ágil de As vantagens da utilização de uma metodologia ágil de desenvolvimento é que estas abordagens incorporam ciclos rápidos. desenvolvimento é que estas abordagens incorporam ciclos rápidos. Desta forma, a característica do imediatismo com que as Desta forma, a característica do imediatismo com que as informações precisam ser dispostas na rede, pode ser satisfeita. O informações precisam ser dispostas na rede, pode ser satisfeita. O desenvolvimento de forma incremental favorece o suporte a várias desenvolvimento de forma incremental favorece o suporte a várias modificações e versões, que poderão ser geradas durante o modificações e versões, que poderão ser geradas durante o desenvolvimento deste tipo de aplicação. SOUSA & FALBO (2005, desenvolvimento deste tipo de aplicação. SOUSA & FALBO (2005, apud BAGLIONI & SOUZA, 2007, p.56) concordam que é provável apud BAGLIONI & SOUZA, 2007, p.56) concordam que é provável que os modelos de processos sigam o padrão ágil, já que é que os modelos de processos sigam o padrão ágil, já que é necessário atender às exigências ditadas pela forma como as necessário atender às exigências ditadas pela forma como as aplicações aplicações webweb devem comportar e ao mesmo tempo disponibilizar o devem comportar e ao mesmo tempo disponibilizar o sistema em menor período de tempo. sistema em menor período de tempo.

Levando em consideração estes princípios favoráveis à implantação Levando em consideração estes princípios favoráveis à implantação de um modelo ágil para desenvolvimento de aplicações web, de um modelo ágil para desenvolvimento de aplicações web, PRESSMAN (2006, p.384) propõe a definição de um arcabouço PRESSMAN (2006, p.384) propõe a definição de um arcabouço genérico que adota a filosofia do desenvolvimento ágil, enfatizando genérico que adota a filosofia do desenvolvimento ágil, enfatizando uma abordagem simples que incorpora ciclos rápidos de uma abordagem simples que incorpora ciclos rápidos de desenvolvimento. Este arcabouço engloba atividades como: desenvolvimento. Este arcabouço engloba atividades como: comunicação, planejamento, modelagem, construção e implantação. comunicação, planejamento, modelagem, construção e implantação.

Page 59: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 60: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Processo ágil e incrementalProcesso ágil e incremental

As atividades que caracterizam a fase As atividades que caracterizam a fase de projeto da modelagem antecedem de projeto da modelagem antecedem a construção da aplicação. Estas a construção da aplicação. Estas atividades, guiadas pelas informações atividades, guiadas pelas informações obtidas na fase de análise, segundo obtidas na fase de análise, segundo PRESSMAN (2006, p.430), devem PRESSMAN (2006, p.430), devem nos levar a um modelo que combine nos levar a um modelo que combine adequadamente a estética, o adequadamente a estética, o conteúdo e a tecnologia. A figura 6 conteúdo e a tecnologia. A figura 6 retrata os seis tipos de projetos retrata os seis tipos de projetos gerados nesta etapa.gerados nesta etapa.

Page 61: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web

Pirâmide de projeto para webApp ( PRESSMAN, 2006, p.431).

Page 62: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 63: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 64: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 65: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 66: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 67: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 68: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web
Page 69: Engenharia da Web Prof. Ilaim Costa Junior. Engenharia da Web