Escolar Documentos
Profissional Documentos
Cultura Documentos
Serviços Web
4
3. Engenharia Web | Fundamentos
Engenharia de Software
5
Ferramentas automatizadas ou
semi-automatizadas para apoio ao
desenvolvimento
6
3. Engenharia Web | Fundamentos
Engenharia da Web
7
3. Engenharia Web | Fundamentos
Engenharia da Web – particularidades
8
3. Engenharia Web | Fundamentos
Engenharia da Web – particularidades
• Principais causas de uma mal projecto web:
• O desenvolvimento é "fácil“;
• A codificação como actividade principal;
• As técnicas que não devem ser usadas são mal
aplicadas;
• As técnicas que devem ser usadas não são;
• Notas importantes:
• A maioria dos projectos agora são baseados na web
(Web-based);
• Mais aplicações de "missão crítica" estão a migrar para
a web; 9
3. Engenharia Web | Fundamentos
Engenharia da Web – particularidades
10
3. Engenharia Web | Fundamentos
Engenharia da Web – particularidades
11
3. Engenharia Web | Fundamentos
Etapas Típicas do Processo de Engenharia de Software
12
3. Engenharia Web | Fundamentos
Modelo em cascata
13
3. Engenharia Web | Fundamentos
Modelos Evolutivos: Modelo em Espiral
14
3. Engenharia Web | Fundamentos
Modelo incremental
15
3. Engenharia Web | Fundamentos
Agilidade:
16
3. Engenharia Web | Fundamentos
Processo Ágil:
17
3. Engenharia Web | Fundamentos
O processo de WebE (Web Engineering):
● Deverá acomodar:
• Alterações frequentes
• Ciclos de desenvolvimento curtos, com entregas incrementais ou ciclos evolutivos
• Encorajar a criatividade e “independência” com a equipa de desenvolvimento
• Interacção forte entre todos os stakeholders
• Equipas de desenvolvimento pequenas
● Assim,
• Deverá ser usado em todas as situações um modelo incremental de
desenvolvimento de software
• Em muitas situações os modelos ágeis de desenvolvimento de software são os
mais apropriados.
18
3. Engenharia Web | Fundamentos
O processo de WebE (Web Engineering):
19
3. Engenharia Web | Fundamentos
O processo de WebE (Web Engineering):
Análise de negócios
Formulação
20
3. Engenharia Web | Fundamentos
O processo de WebE (Web Engineering):
21
3. Engenharia Web | Fundamentos
O processo de WebE (Web Engineering):
• Modelação
• Modelo de Análise — estabelece a base para a fase de desenho
• Análise do Conteúdo (Content Analysis).
• Análise da Interacção (Interaction Analysis).
• Análise Funcional (Functional Analysis).
• Análise da Configuração (Configuration Analysis).
• Construção
• As ferramentas e técnicas de WebE são aplicadas para a construção do que foi
modelado
• Após um novo incremento da WebApp são realizados testes de desenho (conteúdo,
arquitectura, navegação, interface…
• Avaliação e Entrega (Deployment)
• Configuração do ambiente operacional
• Entregue aos utilizadores finais e
• O retorno da avaliação é apresentado à equipa de WebE
• O incremento é modificado de acordo com o retorno (inicia-se o novo ciclo
incremental)
23
3. Engenharia Web | Fundamentos
WebE – Questões básicas
• Quão importante é a home page da Web site?
• Qual é o esquema da página mais eficaz (por exemplo, o menu na parte superior, no lado direito ou
esquerdo?) Será que isso variar, dependendo do tipo de WebApp a ser desenvolvido?
• Quais as opções de mídia têm o maior impacto?
• Quanto trabalho podemos esperar que um utilizador possa fazer quando está à procura de
informações?
• Qual a importância de ajudas à navegação quando WebApps são complexas?
• Quão complexo pode ser formas de entrada para que não possa irritar o utilizador? Como podem ser
os formulários de entrada acelerada?
• Quão importante são os recursos de pesquisa?
• Será que o WebApp será desenvolvido de maneira que o torna acessível para aqueles que têm
deficiências físicas?
24
3. Engenharia Web | Fundamentos
WebE – Boas práticas
25
3. Engenharia Web | Fundamentos
WebE – Boas práticas
26
3. Engenharia Web | Fundamentos
O processo de WebE (Web Engineering):
Análise de negócios
Formulação Plano de iteração 27
3. Engenharia Web | Fundamentos
Formulação
28
3. Engenharia Web | Fundamentos
Formulação - Questões
30
3. Engenharia Web | Fundamentos
Categoria de Utilizadores
33
3. Engenharia Web | Fundamentos
Casos de Uso
34
3. Engenharia Web | Fundamentos
Equipa de WebE
• Competências (skills)
• Engenharia de software baseado em componentes
• Sistemas e redes
• Desenho de arquitectura e de navegação
• Desenho de interfaces
• Linguagens e normas Internet
• Teste de Webapp
● Distribuídos pelos diversos membros que compõem uma equipa.
35
3. Engenharia Web | Fundamentos
Equipa de WebE
• Papéis de uma equipa de WebE
• Developer/Providers de conteúdos
37
3. Engenharia Web | Fundamentos
Diferenças com os Projectos Tradicionais
38
3. Engenharia Web | Fundamentos
Planeamento de WebApp
39
3. Engenharia Web | Fundamentos
WebE “As más práticas”
Codificação
Teste de componentes
Modelo de desenho
• Conteúdo
Modelo de análise
• Arquitectura
• Conteúdo
• Navegação
• Iteração
Análise de negócios • Interface
• Função
Formulação Plano de iteração • Configuração 41
3. Engenharia Web | Fundamentos
Modelo de Análise
42
3. Engenharia Web | Fundamentos
Quando é que realizamos a Análise?
43
3. Engenharia Web | Fundamentos
Hierarquia de Utilizadores
• Categorias de utilizadores
• É aconselhável construir uma hierarquia
de utilizadores quando o número de
categorias aumenta
44
3. Engenharia Web | Fundamentos
Diagrama de Casos de Uso
45
3. Engenharia Web | Fundamentos
Modelo de Casos de Uso
• Coesa
• o pacote trata de funções que estão intimamente relacionados entre si
• Fracamente acoplada
• funções ou classes dentro do pacote colaboram um com o outro, mas a colaboração fora do pacote são mantidos
a um mínimo.
• Hierarquicamente rasa
• hierarquias funcionais profundas são difíceis de navegar e difícil para os utilizadores finais entenderem, portanto,
o número de níveis dentro de uma hierarquia de caso de uso deve ser minimizado sempre que possível.
46
3. Engenharia Web | Fundamentos
Modelo de Conteúdos
47
3. Engenharia Web | Fundamentos
Árvore de Dados (Data Tree)
48
3. Engenharia Web | Fundamentos
Diagrama de Classes - UML
49
3. Engenharia Web | Fundamentos
Modelo de Interacção
50
3. Engenharia Web | Fundamentos
Modelo Funcional
51
3. Engenharia Web | Fundamentos
Diagrama de Actividade
52
3. Engenharia Web | Fundamentos
Modelo de Configuração
• Do lado do Servidor
• Especificação do hardware do servidor e SO
• Realização de considerações sobre a interoperabilidade
• Especificação de protocolos de comunicação …
• Do lado do Cliente
• Identificação dos aspectos de configuração do Browser
● Definição dos requisitos de teste - apesar dos standards é
necessário especificar os requisitos específicos de cada
browser
53
3. Engenharia Web | Fundamentos
Análise da Navegação
• Objectivo: identificar características e estabelecer relações que vão ter influência no desenho (design)
da navegação.
• Algumas questões chave:
• Existem elementos para os quais o acesso deverá ser mais fácil do que outros? (navegação exige menos etapas)
Qual é a prioridade de apresentação?
• Deverão realçar-se determinados elementos de forma a forçar os utilizadores a navegar na sua direcção?
• Como é que deverão ser tratados os erros de navegação?
• A navegação deverá ser realizada através de links, por meio de pesquisa, ou por outros meios?
• Certos elementos devem ser apresentados com base no contexto de anteriores acções de navegação?
• Deverá ser mantido um log de navegação para os utilizadores?
54
3. Engenharia Web | Fundamentos
Análise da Navegação
55
3. Engenharia Web | Fundamentos
Análise da Navegação
56
Desenho de WebApps
57
3. Engenharia Web | Fundamentos
Design e Qualidade da WebAPP
• Segurança
• Exclusão a acessos não autorizados e ataques externos
• Assegurar privacidade dos utilizadores e clientes
• Disponibilidade
• % de tempo na qual a AppWeb está disponível
• Escalabilidade
• Capacidade de gerir uma variação significativa no número de utilizadores e
no volume de transações
• Time to Market 58
3. Engenharia Web | Fundamentos
Dimensões da Qualidade para os utilizadores finais
• Tempo
• Quantas alterações desde o último upgrade do site Web?
• Como valoriza as partes que foram alteradas?
• Estrutura
• Todos os links internos e externos do site web estão a funcionar?
• Todas as imagens estão a funcionar?
• Existe alguma parte do Web site que não está a funcionar?
• Conteúdo
• O conteúdo das páginas criticas coincide com o que é suposto estar presente?
• A qualidade é mantida de vs para vs?
59
• e as páginas geradas dinamicamente?
3. Engenharia Web | Fundamentos
Dimensões da Qualidade para os utilizadores finais
• Consistência/Correcção
• Quais as diferenças entre as cópias de informação descarregadas entre hoje e ontem?
• Qual a correcção da informação? Como é que o utilizador sabe?
• Tempo de Resposta
• Depois do SUBMIT e num contexto de comércio electrónico (E-commerce) qual o tempo de
resposta?
• Existe alguma parte do site Web que se releva tão lenta que o utilizador desiste de trabalhar?
• Desempenho
• A ligação Browser-Web-Web site-Web-Browser é suficientemente rápida?
• Em que medida o desempenho varia com o período do dia e com a carga de utilização?
• O desempenho é adequado para aplicações de comércio electrónico? 60
3. Engenharia Web | Fundamentos
Objectivos – Desenho da Aplicação Web
• Simplicidade
• Consistência
• Identidade
• Estabelecer uma "identidade" que é apropriado para o propósito do negócio
• Robustez
• O utilizador espera que o conteúdo e as funções que são relevantes para as necessidades do utilizador sejam robusto
• Navegabilidade
• concebido de uma maneira que é intuitivo e previsível
• Apelo visual
• a aparência do conteúdo, layout da interface, coordenação de cores, o balanço de textos, gráficos e outros meios de
comunicação, mecanismos de navegação deve apelar aos utilizadores finais
• Compatibilidade
• Com todos os ambientes e configurações apropriadas 61
3. Engenharia Web | Fundamentos
Desenho da Aplicação Web
• Desenho da interface (interface design)
• Estrutura e organização da interface do utilizador.
• Representação do layout, definição dos modos de interacção e descrição dos mecanismos de navegação
63
3. Engenharia Web | Fundamentos
Desenho da Arquitectura
64
3. Engenharia Web | Fundamentos
Arquitectura de conteúdo
65
3. Engenharia Web | Fundamentos
Arquitectura de conteúdo
66
3. Engenharia Web | Fundamentos
Arquitectura MVC
• MVC (Model-View-Controller)
• Objectivo: modelo de infraestrutura para AppWeb com separação da interface, da funcionalidade e
do conteúdo.
• O modelo contém o processamento lógico e o conteúdo específico aplicacional, incluindo:
• todos os objectos de conteúdo,
• acesso a dados externos/recursos de informação,
• todo o processamento específico da aplicação
• O controlador gere o acesso entre o modelo e a vista e coordena o fluxo de informação entre eles.
67
3. Engenharia Web | Fundamentos
Arquitectura MVC
68
3. Engenharia Web | Fundamentos
Testes aplicados a WebAPP
69
3. Engenharia Web | Fundamentos
Testes a WebAPP
• Testes de Conteúdo
• Testes para encontrar erros sintácticos, semânticos e estruturais no conteúdo estático
• Execuções para encontrar erros no conteúdo gerado dinamicamente a partir de repositórios de
informação.
• Testes da Interface de Utilizador
• Testar os mecanismos da interface
• Scripts de validação de formulários, links, html dinâmico, etc.
• Testar a usabilidade
• Testar a compatibilidade
• Diferentes browsers, SO, monitores, …
70
3. Engenharia Web | Fundamentos
Testes a WebAPP
• Testes de Componentes
• Testar os módulos
• Testes de Navegação
• Sintaxe – verificar que os links funcionam como pretendido
• Semântica – garantir que a navegação permite atingir os objectivos definidos pelos casos de uso para cada categoria de
utilizadores
• Testes de Configuração
• Do lado do servidor: compatibilidade com SO, sistemas de ficheiros, firewalls, etc.
• Do lado do cliente: hardware, SO, browser,…
• Testes de Segurança
• Testes de Desempenho
• Recursos no servidor, largura de banda inadequada, …
• Testes de desempenho, carga e stress.
71
3. Engenharia Web | Fundamentos
O processo de WebE (Web Engineering):
Testes de aceitação
Entrada em Produção
Avaliação do Cliente Codificação
Teste de componentes
Incremento de Software
Modelo de desenho
• Conteúdo
Modelo de análise
• Arquitectura
• Conteúdo
• Navegação
• Iteração
Análise de negócios • Interface
• Função
Formulação Plano de iteração • Configuração 72
3. Engenharia Web (WebE) | Q&A
73
“Há Engenheiros de Software e
Pedreiros de Software”
74
Muito Obrigado !
75