Date post: | 09-Jul-2015 |
Category: |
Technology |
Upload: | benedilosn |
View: | 689 times |
Download: | 2 times |
Engenharia WEB
Benedilson Lima
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
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
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
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
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
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
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
Processos de Engenharia Web
Seminário Engenharia Web - Benedilson Lima 9
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
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
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
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
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
A diferença organizacional entre o desenvolvimento terceirizado e o interno
Seminário Engenharia Web - Benedilson Lima 15
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
Cronograma
Seminário Engenharia Web - Benedilson Lima 17
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
Resumo do método OOHDM
Seminário Engenharia Web - Benedilson Lima 35
Esquema conceitual parcial
Seminário Engenharia Web - Benedilson Lima 36
Construção e Implantação
Seminário Engenharia Web - Benedilson Lima 37
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
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
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
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
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
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
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
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
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
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
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
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
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.