O Documento discute os conceitos fundamentais de engenharia web, incluindo: (1) a importância de entender o problema antes de projetar uma solução; (2) os processos de engenharia web como comunicação, planejamento e construção; (3) a necessidade de modelos de análise e projeto para aplicações web complexas.
2. Introdução
O Você já sabe que a Web é grande (Cultural e social):
O Como compramos produtos (comércio eletrônico);
O Encontramos pessoas (encontros on-line);
O Entendemos o mundo (portais);
O Vemos noticia (mídia on-line);
O Expressamos nossas opiniões (blogs);
O Nos divertimos (desde downloads, até cassinos on-line).
Seminário Engenharia Web - Benedilson Lima 2
3. Discussões introdutórias
O O enfoque da escola antiga, de forma lamentável,
era um proposição do tipo acertar-ou-errar (ad hoc);
O O veículo que adquire informação, a estrutura,
mostra uma apresentação empacotada e a entrega
é chamado de aplicação Web (WebApp);
O Quando uma WebApp é combinada com hardware
cliente e servidor, SO, redes e navegadores, surge
um sistema baseado na Web.
Seminário Engenharia Web - Benedilson Lima 3
4. Discussões introdutórias
O WebApps são realmente softwares de computador?
O No sentido de que são uma coleção de instruções
executáveis e dados que oferecem informações e
funcionalidades para usuários finais.
Seminário Engenharia Web - Benedilson Lima 4
5. Os atributos a seguir são encontrados
na grande maioria das WebApps:
O Intensidade da rede: Cada WebApp reside em uma rede e
deve servir às necessidades de uma comunidade
diversificada de clientes;
O Simultaneidade: Um grande número de usuários poderá
acessar a WebApp ao mesmo tempo;
O Carga imprevisível: O número de usuários da WebApp
poderá variar por ordens de grandeza de um dia para o outro;
O Desempenho: Se um usuário de WebApp tiver que esperar
muito tempo ele ou ela poderá decidir ir para outro lugar;
O Disponibilidade: 24 h, 7 dias por semana, 365 dias por ano;
Orientada a dados – Sensível ao conteúdo – Evolução
continua – Urgência – Segurança – Estética
Seminário Engenharia Web - Benedilson Lima 5
6. Então você deseja montar uma WebApp?
O Logicamente, você poderia utilizar uma
combinação de informalidade, urgência, intuição e
arte (técnica da escola antiga);
O A WebApp pode:
O Não fazer o que deveria;
O Ser entregue atrasada ou nem ser entregue;
O Ser difícil, ou impossível de se corrigir, adaptar ou
melhorar.
O Se todas as coisas correrem bem, você e seus
colegas serão heróis e nascerá uma WebApp
significativa.
Seminário Engenharia Web - Benedilson Lima 6
7. O que é Engenharia Web?
O É uma alternativa que se opõem a técnica
da escola antiga – uma que reduz (mas
não elimina) o risco e tem uma
probabilidade mais alta de sucesso
quando WebApps de qualidade industrial
precisam ser montadas. Essa alternativa
chama-se: engenharia Web (WebE).
O A WebE propõe um arcabouço ágil,
porém disciplinado para a montagem de
WebApps de qualidade industrial.
Seminário Engenharia Web - Benedilson Lima 7
8. Engenharia Web não se trata
de ferramentas e tecnologia?
O São muito importantes, mas só
funcionarão bem se forem usadas dentro
do contexto de um arcabouço ágil para
engenharia Web e em conjunto com
métodos comprovados para entender o
problema, projetar uma solução e testa-la
completamente.
Seminário Engenharia Web - Benedilson Lima 8
10. Comunicação
Entre os princípios mais fundamentais da
engenharia de software está: entenda o
problema antes de começar a resolvê-lo e
certifique-se de que a solução que você
concebe é aquela que as pessoas
realmente desejam. É razoável sugerir que
esse princípio também deva se tornar um
pilar da engenharia Web.
Seminário Engenharia Web - Benedilson Lima 10
11. A atividade de comunicação
O É o local onde os engenheiros Web e os
interessados se engajam em uma série de ações
de WebE que:
O Formulação;
O Elicitação;
O Negociação.
Seminário Engenharia Web - Benedilson Lima 11
12. Planejamento
O Se o incremento da WebApp for simples,
o planejamento exigirá muito pouco
tempo;
O Se por outro lado, o incremento for
complexo – conteúdo, funcionalidade,
restrições e desempenho, o planejamento
exigirá maior esforço e abrangerá cada
uma das ações e tarefas discutidas a
seguir...
Seminário Engenharia Web - Benedilson Lima 12
13. A equipe da Engenharia Web
O Desenvolvedores/provedores de conteúdo:
O Geração e coleta de conteúdo;
O Oriundos de diversas áreas.
O Editor da Web:
O Organizador dos conteúdos gerados pelos
desenvolvedores/provedores.
O Elemento de ligação.
O Engenheiro da Web:
O Envolvido com atividades durante o desenvolvimento
de uma WebApp.
Seminário Engenharia Web - Benedilson Lima 13
14. A equipe da Engenharia Web
O Especialista do domínio de negócio:
O Deve ser capaz de responder a todas as questões
relativas às metas, aos objetivos e aos requisitos de
negócio.
O Especialista de suporte:
O WebApps evoluem continuamente;
O Correções, adaptações e aperfeiçoamentos do site;
O Atualizações do conteúdo;
O Implementação de novos procedimentos e formulários;
O Modificações no padrão de navegação.
O Administrador:
O Web Master;
O Pode se envolver com atividades técnicas realizadas
por engenheiros da Web e especialista de suporte.
Seminário Engenharia Web - Benedilson Lima 14
15. A diferença organizacional entre o
desenvolvimento terceirizado e o interno
Seminário Engenharia Web - Benedilson Lima 15
16. Como avaliamos os riscos?
Riscos Probabilidade Impacto
Pessoas
Pouca experiência com XML na equipe 80% 3
Interessados não cooperativos 60% 2
Gerente "sênior" pode mudar no meio do caminho 40% 1
Produto
Conteúdo informativo pode estar desatualizado 50% 2
Algoritmos podem não estar definidos adequadamente 80% 3
Segurança para WebApp mais difícil do que o esperado 80% 3
Integração do banco de dados mais difícil do que o esperado 40% 3
Capacidade de definição de espaço mais difícil do que o esperado 70% 3
Processo
Não há ênfase suficiente em comunicação 60% 2
Muitas tarefas de análise (muito tempo gasto) 30% 1
Não há ênfase suficiente no projeto de navegação 40% 2
... ... ...
Seminário Engenharia Web - Benedilson Lima 16
18. Estimando esforço e tempo
Conteúdo e funções Análise Projeto Codificação Teste Entrega Feedback Total
Paredes, portas e
janelas
1 2 2 2 0,5 0,25 7,75
Sensores 0,5 1,5 1 1 0,25 0,25 4,5
Especificar e desenhar
paredes, portas e
janelas
1,25 3 3 3 1 0,25 11,5
Calcular o tamanho do
cômodo
0,5 1 2 1 0,5 0,25 5,25
Salvar/recuperar
espaço nomeado
0 1 1 0,5 0,5 0,25 3,25
Atualizar/excluir espaço
nomeado
0 1 1 0,5 0,5 0,25 3,25
imprimir espaço
nomeado
0 1 1 0,5 0,5 0,25 3,25
Recomendar hardware
de segurança
0,5 3 2 2 0,5 0,25 8,25
Especificar hardware
de segurança
0,5 2 2 3 0,5 0,25 8,25
Totais 4,25 15,5 15 13,5 4,75 2,25 55,25
Seminário Engenharia Web - Benedilson Lima 18
19. Modelagem de análise para
aplicações da Web
O Temos observado que WebApps têm um
imediatismo e uma volatilidade que vão
contra a modelagem detalhada tanto no
nível de análise quanto de projeto.
Seminário Engenharia Web - Benedilson Lima 19
20. Essa modelagem de análise deve
existir apenas se....
O A WebApp a ser construída é grande e/ou
complexa;
O O número de interessados é grande;
O O número de engenheiros da Web e outros
colaboradores é grande;
O As metas e os objetivos (durante a formulação) da
WebApp vão afetar os fundamentos básicos do
negócio;
O O sucesso da WebApp terá um forte efeito no
sucesso do negócio.
Seminário Engenharia Web - Benedilson Lima 20
21. Casos de uso
O Casos de uso são o
catalisador de todas
as atividades de
análise e
modelagem de
requisitos
Hierarquia de usuários
Seminário Engenharia Web - Benedilson Lima 21
22. Modelos de análise
Análise de conteúdo:
O Identifica todo o
espectro de
conteúdo a ser
fornecido pela
WebApp.
Análise de interação:
O Descreve o modo
pelo qual o usuário
interage com a
WebApp.
Seminário Engenharia Web - Benedilson Lima 22
23. Modelos de análise
Análise funcional:
O Operações que
serão aplicadas ao
conteúdo da
WebApp;
O Funções de
processamento
independentes do
conteúdo.
Análise de configuração:
O Descreve o ambiente
e a infra-estrutura nos
quais a WebApp
reside.
Seminário Engenharia Web - Benedilson Lima 23
24. Modelagem de projeto para WebApps
• Para atingir esses atributos de qualidade, um bom projeto deve apresentar:
Simplicidade, consistência, identidade, robustez, navegabilidade e atração visual.
Segurança, escalabilidade e prazo para colocação no mercado.
Seminário Engenharia Web - Benedilson Lima 24
25. Projeto de interface
O Representação de leiaute de tela;
O Definição dos modos de interação;
O Descrição dos mecanismos de navegação.
Seminário Engenharia Web - Benedilson Lima 25
26. Projeto de estética
O Também chamado de projeto gráfico;
O Descreve o “aspecto” da WebApp;
O Esquemas de cor, leiaute geométrico,
tamanho de texto, fonte e colocação, uso
de gráficos e decisões estéticas
relacionadas.
Seminário Engenharia Web - Benedilson Lima 26
27. Projeto de conteúdo
O Define o leiaute, a estrutura e o esboço para todo o
conteúdo apresentado como parte da WebApp;
O Estabelece os relacionamentos entre objetos de
conteúdo.
Seminário Engenharia Web - Benedilson Lima 27
28. Projeto de conteúdo começa com a representação dos objetos
de conteúdo, sua associações e relacionamentos.
Seminário Engenharia Web - Benedilson Lima 28
29. Projeto de arquitetura
O Identifica a estrutura global de hipermídia de WebApp;
O Estilos arquiteturais de conteúdo incluem estrutura linear, em
malha, hierárquica e em rede.
Seminário Engenharia Web - Benedilson Lima 29
30. Projeto de arquitetura
O Identifica a estrutura global de hipermídia de WebApp;
O Estilos arquiteturais de conteúdo incluem estrutura linear, em
malha, hierárquica e em rede.
Seminário Engenharia Web - Benedilson Lima 30
31. Arquitetura da WebApp
Projeto de arquitetura em três camadas;
Desacopla a interfase da navegação e do
comportamento da aplicação;
Simplicidade a implementação e reuso aumentado.
Seminário Engenharia Web - Benedilson Lima 31
32. Projeto de componente
O Desenvolve a lógica de processamento detalhado
necessário para implementar componentes
funcionais de WebApps.
O Fornecem acesso e consulta a banco de dados
sofisticados;
O Estabelecem interfaces de dados a sistemas
externo à empresa.
Seminário Engenharia Web - Benedilson Lima 32
33. Padrões de projeto de WebApp
O Englobam padrões de projeto genéricos que se
aplicam a todos os tipos de software e padrões de
hipermídia especialmente relevantes para WebApps.
O Padrões:
O Arquiteturais;
O Construção de componentes;
O Navegação;
O Apresentação;
O Comportamento/usuário-interação.
Seminário Engenharia Web - Benedilson Lima 33
34. Método de Projeto de Hipermídia
Orientado a Objetos
O Object-Oriented Hypermedia Design Method;
O É um de vários métodos propostos para
projetos de WebApp;
O Sugere um processo de projeto que inclui:
O Projeto conceitual;
O Projeto navegacional;
O Projeto de interface abstrata;
O Implementação.
Seminário Engenharia Web - Benedilson Lima 34
35. Resumo do método OOHDM
Seminário Engenharia Web - Benedilson Lima 35
38. Construção
O Conjunto de ações de seleção, codificação,
gerenciamento de conteúdo, autoria de páginas,
integração, refatoração e teste.
O Ferramentas e tecnologia de WebE, são aplicadas
para construir a WebApp que foi modelada;
O Quando o incremento da WebApp tiver sido
construído, uma série de testes rápidos é realizada
para garantir que os erros no projeto sejam
descobertos.
Seminário Engenharia Web - Benedilson Lima 38
39. Seleção
O Envolve a identificação de componentes
relevantes preexistentes, que podem ser
reutilizados dentro do projeto proposto;
O Princípios:
O Levar em consideração as restrições do ambiente
técnico;
O Combinar os componentes com os ambientes de
informação e funcionais;
O Considerar as habilidades e o conhecimento dos
desenvolvedores e prováveis mantenedores.
Seminário Engenharia Web - Benedilson Lima 39
40. Codificação
O Cobre a adaptação de componentes
existentes ou a criação de novos
componentes;
O Pode envolver a criação direta de HTML,
ou código fonte em linguagem de script;
O Geração automática de código usando
uma representação de projeto
intermediária do componente a ser
construído.
Seminário Engenharia Web - Benedilson Lima 40
41. Princípios
O Escrever código que seja auto documentável;
O Restringir seus algoritmos seguindo práticas da
programação estruturada;
O Manter a lógica condicional o mais simples
possível e garantir que possa ser testada.
Seminário Engenharia Web - Benedilson Lima 41
42. Gerenciamento de conteúdo
O Criação, migração e estruturação do
conteúdo;
O Princípios:
O Selecionar estruturas de dados que
atendam às necessidades do projeto;
O Garantir a coerência nos formatos e
estruturas de dados;
O Evitar confiar em formatos de dados
proprietários.
Seminário Engenharia Web - Benedilson Lima 42
43. Autoria de páginas
O A integração do conteúdo bruto com o
projeto gráfico e o mapeamento do
conteúdo nas telas e páginas.
O Princípios:
O Considerar continuamente as questões de
usabilidade;
O Entender como seus usuários reagirão, e
não como você quer que eles reajam.
Seminário Engenharia Web - Benedilson Lima 43
44. Integração
O Vinculo do código, conteúdo e apresentação
nos componentes finais a serem liberados;
O Princípios:
O Procurar divergências ou inconsistências na
interface do componentes;
O Ter oportunidade de identificar componentes
que precisam de refatoração.
Seminário Engenharia Web - Benedilson Lima 44
45. Refatoração
O É uma ação interativa para “polir” os
componentes implantados a fim de
melhorar sua estrutura e esclarecer e
remover código redundante;
O Princípios:
O Refatore com frequência, e em pequenas
etapas, quando surgir a oportunidade;
O Garantir que a implementação comunica o
projeto de maneira óbvia.
Seminário Engenharia Web - Benedilson Lima 45
46. Teste
O Verificação de que os diversos
componentes e objetos estão corretos;
O Princípios:
O Realizar uma revisão exaustiva;
O Realizar testes unitários e corrigir os erros
encontrados;
O Selecionar testes que mais provavelmente
localizarão erros, em vez se oculta-los.
Seminário Engenharia Web - Benedilson Lima 46
47. Implantação
O A WebApp é configurada para o seu
ambiente operacional;
O Entregue aos usuários finais;
O Período de avaliação é iniciado;
O O feedback da avaliação é apresentado à
equipe de WebE;
O O incremento é modificado conforme a
necessidade.
Seminário Engenharia Web - Benedilson Lima 47
48. Ferramentas e tecnologias para WebApps
O Linguagens de descrição de conteúdo e
modelagem: HTML, VRML e XML;
O Linguagens de programação: Java;
O Recursos de desenvolvimento baseados
em componentes: CORBA, COM,
ActiveX, .NET;
O Navegadores, ferramentas de multimídia,
conectividade de banco de dados,
segurança, servidores, gerenciamento e
análise de sites.
Seminário Engenharia Web - Benedilson Lima 48
49. Tendências futuras
O É provável que o conteúdo e funcionalidade
da Web evolua à medida que aparecem mais
e mais WebApps mash-up;
O O acesso se tornará onipresente, abrindo
oportunidades para remessa de conteúdo
com valor em tempo real;
O A Web 2.0 trata da criação de uma
experiência Web mais comprometida,
interativa e coletiva, onde todos os usuários
são capazes de serem participantes ativos,
ao invés de passivos.
Seminário Engenharia Web - Benedilson Lima 49
50. Bibliografia
Seminário Engenharia Web - Benedilson Lima 50
PRESSMAN, Roger S. Engenharia de Software, 6ª edição, ed. Makron Books.
PRESSMAN, Roger S; LOWE, David. Engenharia Web, ed. Ltc.