Você está na página 1de 42

Aplicações e

Serviços Web

Docente: Hélio Santana, Lic.


Sumário 1. Apresentação
2. Aplicações e Serviços na web
3. Engenharia web (WebE)
4. Arquitectura da web
5. Serviços web (Web Services)
6. Web Semântica
3. Engenharia Web
(WebE)
“Desenvolvimento Web é um adolescente ... Tal como a maioria dos
adolescentes, ela quer ser aceite como um adulto, enquanto ele
tenta se afastar de seus pais. Se ele está indo para atingir seu pleno
potencial, ele deve tomar algumas lições do mundo mais experiente
Web
Development
de desenvolvimento de software.”, Doug Wallace et al.

4
3. Engenharia Web | Fundamentos
Engenharia de Software

• Processo de análise dos requisitos do utilizador e, em


seguida, desenhar, construir e testar o software que irá
satisfazer esses requisitos;
• Preocupa-se com todos os aspectos da produção de
software;
• É a ciência e a arte de construir um software bom e eficiente
que está no prazo, dentro do orçamento, com operações
correctas, aceitável e com bom desempenho.

5
Ferramentas automatizadas ou
semi-automatizadas para apoio ao
desenvolvimento

Orientações técnicas Agrega as diversas


para a construção do tecnologias para a
software, compreendem construção de
uma série de software. Organiza
actividades, inclusive as tarefas, a
modelagem aplicação dos
métodos e o uso
de ferramentas.

Base de tudo, factor motivador para


a Engenharia de Software

6
3. Engenharia Web | Fundamentos
Engenharia da Web

• Consiste no estudo de processos, conceitos, métodos e


técnicas utilizados para desenhar e construir aplicações web
de alta qualidade;
• É a aplicação de abordagens sistemáticas e computáveis
para análise de requisitos, desenho, implementação, teste,
operação e manutenção de aplicações web de alta
qualidade com custo reduzido;

7
3. Engenharia Web | Fundamentos
Engenharia da Web – particularidades

• A engenharia da web é multidisciplinar, e não uma disciplina


única;
• O processo de desenvolvimento web é diferente e único;
• É uma experiência individual;
• A economia de curto prazo leva a problemas de longo prazo
na operação, manutenção, usabilidade, etc.

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

• Principais armadilhas dos projectos web:

• 84% - Falha em cumprir os objectivos de negócios;


• 79% - Atrasos no cronograma do projecto;
• 63% - Orçamento excedido;
• 53% - Falta de funcionalidades.

10
3. Engenharia Web | Fundamentos
Engenharia da Web – particularidades

• Algumas soluções para projectos web:

• Metas e objectivos claramente definidos;


• Desenvolvimento sistemático em fases;
• Planeamento cuidadoso;
• Auditoria iterativa e contínua de todo o processo.

11
3. Engenharia Web | Fundamentos
Etapas Típicas do Processo de Engenharia de Software

• Compreender natureza e propósito do produto


• Seleccionar o processo de desenvolvimento e criar um plano
• Desenho e construção do produto
• Entregar e manter o produto
• Recolher requisitos
• Testar o produto

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:

• Efectiva resposta a alterações (rápida e adaptativa);


• Efectiva comunicação com todos os intervenientes stakeholders;
• O cliente faz parte da equipa;
• Organização de equipas de forma a controlar efectivamente o
trabalho realizado;
resumindo …
• Entrega rápida e incremental do software

16
3. Engenharia Web | Fundamentos
Processo Ágil:

• É orientado por descrições do cliente sobre o que é pretendido


(cenários)
• Reconhece que os planos têm uma “vida-curta”
• O software é desenvolvido iterativamente com ênfase nas
actividades de construção
• Entrega de múltiplos “incrementos de software”
• Adaptação à medida que as alterações ocorrem

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):

• Comunicação com o Cliente


• Análise de Negócio define o contexto de negócio /organizacional da
WebApp.
• Formulação actividade de recolha dos requisitos envolvendo todos os
stakeholders. O objectivo é a descrição do problema que a WebApp
pretende resolver.
• Planeamento
• Define um cronograma para cada um dos incrementos da WebApp,
estima o custo global do projecto e avalia os riscos associados..

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).

• Modelo de Desenho — representa os elementos essenciais de uma WebApp


• Desenho do Conteúdo (Content design))
• Desenho da arquitectura (Architectural design)
• Desenho da Interface (Interface design)
• Desenho da navegação (Navigation design)
• Desenho de Componentes (Component design)
22
3. Engenharia Web | Fundamentos
O processo de WebE (Web Engineering):

• 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

• Leve o tempo necessário para perceber as necessidades de negócio e


especifique objectivos mesmo que os detalhes da WebApp sejam vagos;
• Descreva a interacção dos utilizadores com a WebApp através de
uma aproximação baseada em cenários;
• Elabore um plano mesmo que “rudimentar”.

25
3. Engenharia Web | Fundamentos
WebE – Boas práticas

• Perca alguma tempo a modelar o que vai ser construído;


• Reveja a consistência e a qualidade dos modelos;
• Utilize ferramentas e tecnologia que lhe permitam construir a sua
WebApp com o máximo de componentes reutilizáveis;
• Não delegue no utilizador a tarefa de “debug” da WebApp – É
necessário desenhar testes e executá-los antes da sua entrega.

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

• Identifique a necessidade de negócio;


• Passe para a descrição dos objectivos da WebApp;
• Defina as características e funcionalidades principais;
• Estabeleça uma actividade de recolha de requisitos que contribuirá
para o modelo de análise;
• Permita que os stakeholders e a equipa da engenharia de web
estabeleçam um conjunto de objectivos comuns para a construção da
WebApp.

28
3. Engenharia Web | Fundamentos
Formulação - Questões

• Qual é a motivação principal para a (necessidade de negócio)


WebApp?
• Quais são os objectivos que a WebApp satisfaça?
• Quem é que vai utilizar a WebApp? As respostas
disponibilizam …
• Objectivos de conteúdo — indica a intenção de disponibilizar
conteúdos/informação específicos para o utilizador final
• Objectivos da aplicação — indica as tarefas que a WebApp deve
oferecer
29
3. Engenharia Web | Fundamentos
WebE – Recolha de Requisitos

• Peça aos stakeholders para definirem as categorias de utilizadores e


descrições para cada categoria
• Comunique com os stakeholders para definir os requisitos de uma
WebApp
• Defina os casos de uso que descrevam cenários de interacção para
cada categoria de utilizador

30
3. Engenharia Web | Fundamentos
Categoria de Utilizadores

• Qual é o objectivo global do utilizador quando utiliza a


WebApp?
• Qual é o background dos utilizadores relativamente ao
conteúdo e funcionalidade de uma WebApp?
• Como é que o utilizador acede à WebApp?
• Quais as características gerais da WebApp que o utilizador
aprecia/não aprecia?
• Solução possível: webapps favoritas ou menos favoritas
31
3. Engenharia Web | Fundamentos
Comunicação com os Stakeholders
• Grupos de discussão tradicionais - moderador treinado reúne-se com um pequeno
grupo de representante de utilizadores finais (ou stakeholders internos no papel
de utilizadores finais).
• Grupos de discussão electrónicos - uma discussão moderada electrónica realizada
com um grupo de representante de utilizadores finais e as partes interessadas.
• Pesquisas Iterativas - uma série de pesquisas breve, dirigida aos utilizadores
representativos e as respostas pedindo para perguntas específicas sobre o
WebApp
• Pesquisas exploratórias - uma pesquisa baseada na Web que está vinculado a um
ou mais WebApps que os seus utilizadores são semelhantes aos que usarão o
WebApp a ser desenvolvido.
• Criação de cenários - utilizadores seleccionados são convidados a criar casos de
uso informais que descrevem interacções específicas com o WebApp. 32
3. Engenharia Web | Fundamentos
Análise Preliminar

• Categorizar a informação recolhida por tipo de utilizador ou por tipo de transacção


• Desenvolver lista de …
• Objectos conteúdo
• Operações que são aplicadas aos objectos conteúdo durante uma transacção
• Funções (e.g., lógica, computacional, orientadas à ajuda, …. computacional, logical,
and help-oriented) disponibilizadas aos utilizadores finais pela WebApp
• Outros requisitos não funcionais

33
3. Engenharia Web | Fundamentos
Casos de Uso

• Disponibilizam o detalhe necessário para a criação de um modelo de análise


• Ajudam a equipa de desenvolvimento a perceber como é que os utilizadores
interagem com a WebApp
• Ajudam a compartimentar o trabalho de engenharia
• Fornecem orientações importantes para quem vai testar a WebApp

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

• Oriundos de áreas muito diversas


• Editor (Web Publisher)
• Responsável pela organização de conteúdos
• Actua como elemento de ligação entre equipa técnica de engenharia da Webapp e a equipa não técnica

• Engenheiro da Web (Web Engineer)


• Responsável em todas as actividades de desenvolvimento da Webapp: recolha de requisitos, análise, desenho da
arquitectura, navegação e da interface…
• Competências: arquitectura cliente/servidor, HTML/XML, tecnologias BD, segurança, …..

• Especialistas de negócio (Business domain experts)


• Especialistas de suporte (Support Specialist)
• Administrador (a.k.a. “Webmaster”) 36
3. Engenharia Web | Fundamentos
Diferenças com os Projectos Tradicionais

37
3. Engenharia Web | Fundamentos
Planeamento de WebApp

• Entender o escopo, as dimensões da mudança as restrições do projecto.


• Definir uma estratégia de projecto incremental.
• Realizar análise de risco.
• Desenvolver uma estimativa rápida.
• Selecione um conjunto de tarefas (descrição do processo).
• Estabelecer um cronograma.
• Definir mecanismos de monitoramento do projecto.
• Estabelecer uma abordagem de gestão de mudança.

38
3. Engenharia Web | Fundamentos
WebE “As más práticas”

• Temos uma óptima ideia, então vamos começar a construir o WebApp –


agora.
• Coisas que mudam constantemente, então não há nenhum ponto em tentar
entender os requisitos WebApp.
• Programadores cuja experiência dominante tem sido no desenvolvimento de
software tradicional pode desenvolver WebApps imediatamente. Não é
necessário uma formação.
• Seja burocrática.
• Testar? Por que se preocupar?
39
3. Engenharia Web (WebE) | Q&A

40
“’O trabalho em equipa reúne forças,
experiências e conhecimentos”

41
Muito Obrigado !

42

Você também pode gostar