Análise Orientada a Objetos - facom.ufu.brbacala/DAW/Aula01-1 - Introdução.pdf · •Engenharia...
Transcript of Análise Orientada a Objetos - facom.ufu.brbacala/DAW/Aula01-1 - Introdução.pdf · •Engenharia...
MÓDULO
Análise Orientada a Objetos
Introdução
Prof. M.Sc. Sílvio Bacalá Júnior
OBJETIVO DO
MÓDULO
• Apresentação da disciplina
• Conteúdo Programático
• Sistema de Avaliação
• Bibliografia
DAW4 2
CURRÍCULO DO
PROFESSOR
• Formado em Engenharia Elétrica pela UFU
• Pós graduado em Tecnologia da Informação pela UFPE
• Mestre em Engenharia de Software pela UFU
• Atuou como Analista de Sistemas, Gerente de Divisão e, atualmente, é professor 20 hs na UFU
• Atua com Analista Tributário na RFB – Foi um dos criadores da versão Windows e Java do
programa IRPF, assumindo papéis de Arquiteto, Projetista, Desenvolvedor e Supervisor Técnico.
DAW4 3
CONTEÚDO
PROGRAMÁTICO
• Introdução
• Processo de Desenvolvimento de Sistemas
• Sistemas Web
• Engenharia de Software para Web
• Elicitação de Requisitos
• Análise dos Requisitos
• Projeto Web
DAW4 4
SISTEMA DE
AVALIAÇÃO
DAW4 5
• Trabalhos ao longo das aulas
• Prova final na última aula – (metade da aula)
REFERÊNCIAS
BIBLIOGRÁFICAS
• UML User’s Guide. Rumbaugh, Jacobson, Booch
• RUP. Rumbaugh, Jacobson, Booch
• Engenharia de Software. Sommerville
DAW4 6
Evolução do Computador
DAW4 7
• Imagine a vida sem computadores. Sem Web!
A Evolução da Web Tempo levado para chegar a 30% da
população americana (em anos)
4
19
20
26
35
40
Internet
Computador
Videocassete
Televisão
Rádio
Telefone
DAW4 8
No início:
DAW4 9
• Conteúdo estático e textual
• Interação limitada
• Navegabilidade fácil
• Desempenho não era essencial
• Sites desenvolvidos apenas por uma pessoa ou por um pequeno grupo
Atualmente:
DAW4 10
• Escopo e complexidade vêm aumentando
• Sons, imagens, animações, etc.
• Navegabilidade complexa
• Desempenho essencial
Alguns dados...
DAW4 11
• 84% dos sistemas entregues não atendem as necessidades do cliente
• 79% dos projetos sofrem com atrasos
• 63% tem custo maior que o previsto
• 50% dos sistemas prontos tem problemas: são de baixa qualidade e faltam funcionalidades necessárias
O cenário atual
DAW4 12
• Sites feitos com pouca disciplina, sem preocupação com técnicas e métodos padronizados ou maneiras de controlar a qualidade
• Muitos desenvolvedores acham que o desenvolvimento para a Web é apenas criação de páginas usando HTML, Frontpage ou Dreamweaver
• Muitos livros e revistas também tratam o desenvolvimento para a Web desta maneira
A convergência da
tecnologia de redes
Servidor Web
2
Internet
6
99
Usuário Web
2 modemmodem
Servidor Web
Qualquer
dispositivo
Qualquer
meio
Internet Qualquer
meio
Usuário Web
A representação tradicional do acesso a rede Internet
Uma representação atualizada do acesso a rede Internet
O crescimento da rede Web
Fonte: Nua Surveys <http://www.nua.com>
Características de
Aplicativos Web
DAW4 15
• Uso intenso de recursos de rede
• Dirigido a conteúdo
• Evolução contínua
Analogia da ponte
DAW4 16
Analogia do jardim
DAW4 17
Desenvolvimento de
software
DAW4 18
• Como é feito
– Análise de um problema/processo/sistema
– Desenvolvimento de uma solução
• Software + não-software
– Testes/validação
• Uma série de problemas!!
Como deveria ser
DAW4 19
A realidade
DAW4 20
A realidade
DAW4 21
• Modelagem é algo positivo...
• Arquitetos (algumas vezes) usam UML para criar modelos de alto nível – São usados em um primeiro momento
– Discussões, idéias, etc (análise)
• Porém logo são inúteis – Programadores criam código manualmente
– Manutenção é feita diretamente no código
– Modelos perdem a consistência
– Mesmo com engenharia reversa, acaba sendo um artefato desnecessário
Problemas a serem
resolvidos
DAW4 22
• Reduzir o “fardo” da modelagem
– Dificuldades da linguagem (UML)
– Inconsistências entre modelo-código
– Necessidade de ferramentas
– Achar que modelo é algo desnecessário
Reutilização
DAW4 23
• Conhecimento fica criptografado no código
Reutilização de
conhecimento
DAW4 24
Reutilização de
conhecimento
DAW4 25
• E se mudar o código?
Reutilização de
conhecimento
DAW4 26
• E se mudar o código?
Problemas a serem
resolvidos
DAW4 27
• Reduzir o “fardo” da modelagem
• Facilitar o reuso do conhecimento
– Formas mais eficientes para representar o conhecimento
– Menos dependentes do código final
– Mais próximas do domínio do problema
– Diferente da documentação
Produtividade
DAW4 28
• Um elemento conceitual corresponde a vários elementos do código
– Diferença no nível de abstração
– Mapeamento problema / solução
Produtividade
DAW4 29
Produtividade
DAW4 30
Produtividade
DAW4 31
• Muitas tarefas de implementação são repetitivas e exaustivas
– EJB 2.0
– CORBA
– Struts
– Hibernate
• Perde-se tempo precioso em trabalho braçal
– Poderia ser usado em tarefas mais conceituais
Problemas a serem
resolvidos
DAW4 32
• Reduzir o “fardo” da modelagem
• Facilitar o reuso do conhecimento
• Aproveitar o trabalho de forma mais produtiva – Foco em tarefas conceituais
– Evitar tarefas repetitivas
Manutenibilidade
DAW4 33
• Correções
– Erros
– Melhorias
• Evolução
– Novas funcionalidades
• Exigem nova análise, projeto, implementação, testes, etc...
• Normalmente o tempo é curto
Engenharia para a Web
DAW4 34
• Processo utilizado para criar aplicativos Web de alta qualidade
• Não é igual a Engenharia de Software tradicional, mas compartilham muitos conceitos e princípios fundamentais
• Incorpora novas abordagens, metodologias, ferramentas, técnicas e normas para atender os requisitos exclusivos dos sistemas para a Web
• Desenvolvimento para a Web é uma mistura de publicações impressas e desenvolvimento de software, entre marketing e computação, entre comunicações internas e relações externas, e entre arte e tecnologia
Manutenção – a realidade
DAW4 35
Manutenibilidade
DAW4 36
Manutenibilidade
DAW4 37
Exemplo de manutenção
DAW4 38
• Modificar um campo de um registro em uma • aplicação baseada em Struts
– Tabela, índices, visões, consultas, etc. (SQL) – Ação (classe Java) – Mapeamento (XML) – Formulário (XML) – Bean de dados (Java/XML) – DAO - Data Access Objects (Java) – Página (HTML) – Regras de validação (Javascript) – Arquivo de mensagens (.properties) – etc.
Manutenibilidade
DAW4 39
• Trabalho braçal para construir
– Re-trabalho braçal para modificar
• Rastreabilidade
– Um elemento conceitual
– Diversos artefatos de implementação
• Consistência das mudanças
– Entre os diversos artefatos
Manutenibilidade
DAW4 40
• Erros de programação podem ser facilmente encontrados
– Compilador / IDE
– Checagens simples (método privado nunca é chamado, etc.)
• Erros conceituais
– Difíceis de identificar no código
– Conhecimento está “criptografado”
Manutenibilidade
DAW4 41
Manutenibilidade
DAW4 42
Manutenibilidade
DAW4 43
Manutenibilidade
DAW4 44
• Uma vez realizada a alteração
– Atualizar os modelos
• (Quase) nunca acontece
– Uma vez que os desenvolvedores tenham um modelo mental...
– ... começam a descartar o modelo físico (documentação)
• Resultado = modelos desatualizados
– Faz parte do “fardo” da modelagem
Problemas a serem
resolvidos
DAW4 45
• Reduzir o “fardo” da modelagem
• Facilitar o reuso do conhecimento
• Aproveitar o trabalho de forma mais produtiva
• Facilitar a manutenção – Aproveitar o retrabalho de forma mais produtiva
– Possibilitar que mudanças sejam realizadas no nível conceitual
– Facilitar a localização de erros e falhas
– Manter a consistência entre modelo e código
Validação
DAW4 46
• Verificações automáticas de restrições de alto nível
– Difíceis de se realizar diretamente no código
• Exemplos (máquina de estados):
– Estados inalcançáveis
– Transições infinitas
– Estados “mortos”
• Facilita manutenção
– Evitando introdução de erros
Validação
DAW4 47
Otimização
DAW4 48
• Nível de código
– Pré-calcular expressões
– Utilização de macros
– Remoção de expressões redundantes
• Em nível mais alto não é possível sem a existência de um modelo
– Remover estados redundantes
– Normalizar base de dados
– Indexar tabelas de acordo com as consultas existentes
Problemas a serem
resolvidos
DAW4 49
• Reduzir o “fardo” da modelagem
• Facilitar o reuso do conhecimento
• Aproveitar o trabalho de forma mais produtiva
• Facilitar a manutenção
• Validação / otimização – Fazer uso de checagem automática
– Utilizar o conhecimento de especialistas do domínio
Portabilidade
DAW4 50
• Acompanhar a evolução das plataformas de hardware/software
• Novas tecnologias surgem
– Aumenta a pressão para a migração
• Custo do porte:
– Esforço gasto em tarefas específicas da plataforma
Portabilidade
DAW4 51
• Requisitos • Modelos • Regras de negócio • Otimizações
• Código • Arquivos de configuração • Scripts (sql, make, etc) • Código específico da plataforma • Bibliotecas da plataforma
Software dependente da plataforma
Software independente da
plataforma
1 mes
6 meses
Portabilidade
DAW4 52
• Requisitos
• Modelos
• Regras de negócio
• Otimizações
• Código
• Arquivos de configuração
• Scripts (sql, make, etc)
• Código específico da plataforma
• Bibliotecas da plataforma
Software dependente da plataforma
Software independente da
plataforma
3 meses
3 meses
Problemas a serem
resolvidos
DAW4 53
• Reduzir o “fardo” da modelagem
• Facilitar o reuso do conhecimento
• Aproveitar o trabalho de forma mais produtiva
• Facilitar a manutenção
• Validação / otimização
• Portabilidade – Reduzir o esforço específico de plataforma
– Concentrar no trabalho conceitual
Alta complexidade do
software atualmente
DAW4 54
• Exemplo:
– LBS – Location-Based Systems
– GIS –Geographical Information Systems
• Múltiplas plataformas
• Múltiplas interfaces
• Diversas fontes de dados
• Interoperabilidade
• Usuário final leigo
DAW4 55
• Rastreamento (radiofrequência, GPRS)
• Visualização (Java SWING, Web, JME, Palm)
• Localização • Roteamento • Telemetria • Acionamento
remoto
Tecnologias envolvidas
DAW4 56
• Hardware dedicado (veículos) – GPS, sensores, atuadores
• Software embarcado (C) – Geoposicionamento – Leitura/escrita sinais – Protocolo de comunicação – Transmissão – Criptografia
• Central (C++) – Armazenamento dos dados – Autenticação
Tecnologias envolvidas
DAW4 57
• Monitoramento/rotas (Java/SWING) – Visualização dos veículos – Sobreposição no mapa – Cálculo de rotas
• Servidor de mapas (Java) – http://geoserver.org – Visualização em camadas – Caching
• Base de dados – PostgreSQL + PostGIS – Funções de consulta / geometria – Diferentes fornecedores de mapas
Tecnologias envolvidas
DAW4 58
• Dispositivos móveis – Celular (JME) – PND – Personal Navigation Device (C# / .NET) – Android – IOS
• Visualização Web – Portal de mapas (Javascript) – http://openlayers.org
• Edição de mapas (Java/SWING) – Nomes de ruas – Sentido/mão de direção
Problemas a serem
resolvidos
DAW4 59
• Reduzir o “fardo” da modelagem • Facilitar o reuso do conhecimento • Aproveitar o trabalho de forma mais produtiva • Facilitar a manutenção • Validação / otimização • Portabilidade • Lidar com a alta complexidade do software atual
– Diferentes especialistas (TI vs domínio) – Necessidade de integração / interoperabilidade
Resultado
DAW4 60
• Complexidade exige – Diversos profissionais – Diversos especialistas – Comunicação é crítica
• Especialistas em TI x Especialistas no domínio – Cada um em seu território!
• Porém, com a alta complexidade – Torna-se uma tarefa difícil
• Além disso – Constantes mudanças nas plataformas/requisitos/tecnologias
disponíveis
Solução
DAW4 61
• Modelagem
• Reutilização
• Produtividade
• Manutenibilidade
• Validação / otimização
• Portabilidade
• Alta complexidade
Desenvolvimento usando Modelos
Processo de Software
PROCESSOS DE SOFTWARE
DAW4 62
Áreas envolvidas:
DAW4 63
• Análise de sistemas e projetos • Engenharia de software • Engenharia de hipermídia e hipertexto • Engenharia de requisitos • Interação humano-computador • Desenvolvimento de interface de usuário • Engenharia de informação • Indexação e recuperação de informações • Teste • Modelagem e simulação • Gerenciamento de projetos • Projeto gráfico e apresentação
Desenvolvimento para a
Web X Desenvolvimento
tradicional
DAW4 64
• Imediatismo: o tempo em que um site completo precisa ficar pronto pode ser apenas alguns poucos dias ou semanas
• Segurança: aplicativos para a Web estão disponíveis via rede, é difícil ou até mesmo impossível limitar a população de usuários que irão acessar o aplicativo
• Estética: é inegável que boa parte do apelo dos aplicativos para a Web é o seu visual
Tipos de aplicativos Web
DAW4 65
• Informacional. – Conteúdo apenas para leitura é fornecido com navegação simples e
links.
• Download. – Um usuário faz o download de informações dos servidores apropriados
• Personalizável. – O usuário personaliza o conteúdo para suas necessidades específicas
• Interação. – Comunicação entre uma comunidade de usuários ocorre em salas de
bate-papo, fóruns ou mensagens instantâneas.
• Entrada de Usuário. – Entradas baseadas em formulários são os mecanismos primários para a
comunicação necessária.
Tipos de aplicativos Web
DAW4 66
• Orientado a transações. – O usuário faz um pedido que é atendido pelo aplicativo
• Orientado a serviços. – O aplicativo fornece um serviço para o usuário.
• Portal. – O aplicativo direciona o usuário para outros conteúdos ou serviços fora
do domínio do portal do aplicativo.
• Acesso a Banco de Dados. – O usuário faz uma consulta em um grande banco de dados e extrai
informações.
• Data warehousing. – O usuário consulta uma coleção de grandes bancos de dados e extrai
informações.
Modelo de Processo
DAW4 67
Atividades do Modelo de
Processo
DAW4 68
• Formulação: atividade que identifica as metas e objetivos do aplicativo e determina um escopo para o primeiro incremento
• Planejamento: estima os custos do projeto, avalia riscos associados com o desenvolvimento, e define um cronograma bem definido para o primeiro incremento, e um menos definido para os demais
• Análise: são estabelecidos os requisitos técnicos e identificados os itens de conteúdo que serão incorporados. Requisitos para projeto gráfico (estética) também são definidos.
Atividades do Modelo de
Processo
DAW4 69
• Engenharia:
– Projeto de Conteúdo e Produção: projetar, produzir e/ou obter todos os textos, gráficos, conteúdo de áudio e vídeo que serão integrados ao aplicativo.
• Geração de Páginas: conteúdo definido na atividade de engenharia é fundido com os projetos de arquitetura, navegação e interface para produzir páginas
Atividades do Modelo de
Processo
DAW4 70
• Teste: tenta descobrir erros em applets, scripts e formulários; e ajuda a garantir que o aplicativo irá funcionar corretamente em diferentes ambientes
• Avaliação do Cliente: mudanças são pedidas e serão integradas ao sistema no próximo ciclo do processo incremental.
Problemas que
normalmente ocorrem:
DAW4 71
• Inconsistência das informações;
• Manutenção normalmente utiliza muitos recursos e tempo;
• Falta de escalabilidade;
• Necessidade de um “visual” comum;
• No início, requisitos são muito vagos;
• Os requisitos irão mudar consideravelmente durante o desenvolvimento e especialmente quando o aplicativo já estiver em uso;
• A tecnologia também vem mudando muito rapidamente.
Cenário atual
DAW4 72
• Grande parte dos desenvolvedores para a Web não utilizam um processo de desenvolvimento bem definido e documentado
• Dos poucos que estão utilizando processos bem definidos e documentados, apenas alguns estão utilizando modelos padronizados pela indústria de software
• Na maioria dos casos o processo se foca na Implementação. Análise de Requisitos e Projeto normalmente estão combinadas no começo do projeto, e as atividades de Teste são conduzidas em conjunto com a implementação.
Formulação
DAW4 73
• As seguintes perguntas devem ser feitas:
• Qual o principal motivo para desenvolvermos este aplicativo?
• Por que este aplicativo é necessário?
• Quem vai usar este aplicativo?
Formulação
DAW4 74
• As respostas destas perguntas servirão para definir:
• Metas de informação: Indicam a intenção de fornecer conteúdo específico e/ou informação para o usuário
• Metas de aplicativo: Indicam a habilidade de executar tarefas do aplicativo
Formulação
DAW4 75
• Quando todas as metas de ambos os tipos forem identificadas, um perfil de usuário é desenvolvido
• Quando todas as metas e perfis de usuários estiverem desenvolvidos, a atividade de formulação irá focar a declaração de escopo do aplicativo para a Web
Análise
DAW4 76
• Análise de Conteúdo: todo o conteúdo a ser fornecido pelo aplicativo é identificado
• Análise de Interação: a maneira pela qual o usuário interage com o aplicativo é descrita em detalhes
• Análise Funcional: os cenários de uso criados na análise de interação irão definir operações que irão ser utilizadas no aplicativo, que implicam outras funções de processamento
• Análise de Configuração: O ambiente e a infra-estrutura na qual o aplicado reside são descritos em detalhe
Análise: cenário atual
DAW4 77
• especificação detalhada de requisitos raramente é feita
• argumentação mais comum é que a evolução contínua dos aplicativos para a Web torna os documentos de requisitos obsoletos antes mesmo de completar o desenvolvimento
Projeto
DAW4 78
• O dilema do projetista:
• O projeto deve resolver os problemas imediatos
• É preciso criar uma arquitetura que comporte uma evolução rápida
Elementos técnicos para
um projeto efetivo:
DAW4 79
• Métodos e Princípios de Projeto: Modularidade eficiente (alta coesão e baixo acoplamento) e outras heurísticas da construção de software devem ser utilizadas também para a Web. Pode-se utilizar inclusive os métodos de projetos para sistemas orientados a objetos, pois a hipermídia define “objetos” que interagem através de um protocolo de comunicação que é bem parecido com o utilizado na orientação a objetos.
• Regras de Ouro (Golden Rules): Sistemas para a Web já vêm sendo construídos há uma década. Neste tempo, os projetistas desenvolveram um conjunto de heurísticas que podem ser reaplicadas durante o projeto de novos aplicativos.
Elementos técnicos para
um projeto efetivo:
DAW4 80
• Padrões de Projetos (Design Patterns): São abordagens genéricas utilizadas para resolver problemas genéricos que podem ser adaptadas para resolverem uma grande variedade de problemas mais específicos.
• Modelos (Templates): um modelo pode ser utilizado para fornecer um esqueleto para qualquer tipo de padrão de projeto que será utilizado no aplicativo.
Projeto de Arquitetura
DAW4 81
• Tem foco na definição da estrutura hipermídia do aplicativo, na aplicação de padrões e na construção de modelos (templates) para montar a estrutura e permitir reuso
• A atividade paralela chamada de Projeto de Conteúdo, deriva a estrutura geral e o esboço detalhado do conteúdo que será apresentado no aplicativo
• Nesta etapa é definida a estrutura que será utilizada
Estrutura Linear
DAW4 82
Estrutura de Grade
DAW4 83
Estrutura Hierárquica
DAW4 84
Estrutura de Rede (Pure
Web)
DAW4 85
Projeto de Navegação
DAW4 86
• Objetivo:
– definir caminhos que permitam ao usuário acessar conteúdos e serviços
– identificar as semânticas de navegação para diferentes usuários e definir os mecanismos para realizar a navegação
Tarefas do Projeto de
Navegação
DAW4 87
• Definir tipos de usuários
• Criar uma unidade semântica de navegação (semantic navigation unit – SNU) para cada objetivo associado a cada tipo de usuário – SNU é composta de um conjunto de sub-estruturas navegáveis
que podemos chamar de caminhos (ways of navigating – WoN)
– Cada um desses caminhos representará a melhor maneira de navegar para que um determinado usuário atinja sua meta ou sub-meta.
• Escolher como os links serão identificados. Dentre as opções estão: textos, ícones, botões, etc
Projeto de Interface
DAW4 88
• Métodos utilizados na Engenharia de Software podem ser utilizados, porém são necessárias algumas considerações adicionais
• Na Web a interface tem um papel fundamental
Recomendações para
construção de uma boa
interface:
DAW4 89
• Erros no servidor, mesmo os menores, podem fazer com que um usuário deixe o site e procure a informação ou serviço que deseja em outro lugar;
• Não se deve forçar o usuário a ler grandes quantidades de texto, principalmente se for texto explicando como operar o aplicativo ou navegar por ele;
• Avisos de “Em Construção” devem ser evitados, são links desnecessários que causam uma expectativa do usuário que com certeza irá se desapontar;
Recomendações para
construção de uma boa
interface:
DAW4 90
• Usuários não gostam de rolar a tela, informações importantes devem ser colocadas no topo, de forma que apareça logo que a página é carregada;
• Menus e barras de navegação devem ser projetados de forma consistente, e devem estar disponíveis em todas as páginas que o usuário irá navegar. Não se deve contar com as funcionalidades do browser;
• Opções de navegação devem ser óbvias, mesmo para o usuário casual. O usuário não pode ficar procurando pela tela até encontrar o que deseja.
Considerações
DAW4 91
• Pessoas gastam horas clicando em um site para encontrar uma simples informação.
• “Surfar” na Web é muito mais difícil do que parece.
• Os usuários (potenciais clientes) estão conseguindo navegar no seu site?
• Por que os humanos têm que se adaptar a tecnologia? Por que a tecnologia não se adapta aos humanos?
• Sua empresa não é o público-alvo.
• Você deve escrever seu site em uma linguagem que seus usuários compreendam.
Considerações
DAW4 92
• Grandes erros continuam acontecendo na Web: links quebrados, cores não padronizadas, URLs que mudam e fazem com que links externos para seu site fiquem quebrados.
• Na Internet, sobrevive o mais fácil de usar.
• Se o usuário não consegue achar o produto, ele não irá comprá-lo.
• Atenção com a usabilidade aumenta a porcentagem de visitantes que se tornam clientes.
Testes
DAW4 93
• Assim como na Engenharia de Software, na Engenharia para a Web as atividades de teste também visam encontrar erros
• Na Web o desafio é ainda maior, pois os aplicativos podem ser acessados utilizando diferentes browsers, sistemas operacionais, plataformas de hardware, etc
Testes
DAW4 94
• O modelo de conteúdo é revisto para descobrir erros
• O modelo de projeto é revisto para descobrir erros de navegação
• Componentes selecionados passam por um processo de teste de unidade
• A arquitetura é construída e testes de integração são conduzidos
Testes
DAW4 95
• O aplicativo já integrado é testado em sua funcionalidade geral e conteúdo fornecido
• O aplicativo é implementado em diferentes configurações de ambientes e testado em sua compatibilidade com cada configuração
• O aplicativo é testado por uma população controlada de usuários
Gerenciamento
DAW4 96
• Muitos desenvolvedores acabam optando por pouco ou nenhum gerenciamento por causa do curto período de desenvolvimento e da constante evolução de aplicativos para a Web
• A combinação de tarefas técnicas e não técnicas que ocorrem são um desafio para qualquer grupo de profissionais
• Para evitar confusões, frustrações e falhas, um planejamento precisa ocorrer, riscos precisam ser considerados, um cronograma precisa ser estabelecido e acompanhado, e mecanismos de controle precisam ser definidos
Equipe de
Desenvolvimento
DAW4 97
• normalmente menores que as equipes de desenvolvimento de software tradicional
• no desenvolvimento de software tradicional
– as equipes divididas em unidades menores para resolver diferentes problemas e executar diferentes tarefas
• no desenvolvimento para a Web,
– as equipes divididas em grupos multidisciplinares, que construirão diferentes seções do aplicativo para a Web, mas em geral irão trabalhar em problemas similares
Equipe de Desenvolvimento
Papéis
DAW4 98
• Desenvolvedores e Provedores de Conteúdo: coleta e geração de conteúdo, vem de diversas áreas não relacionadas com software
• Web Publisher: organiza conteúdo, faz a conexão entre o pessoal técnico que constrói o aplicativo e o pessoal não-técnico que desenvolve o conteúdo
• Web Engineer: se envolve em várias atividades durante o desenvolvimento (levantamento de requisitos; análise; projeto arquitetural, de navegação e de interface; implementação; e teste)
Equipe de Desenvolvimento
Papéis
DAW4 99
• Especialista de Suporte: serão responsáveis por dar continuidade no suporte ao aplicativo para a Web, responsável pelas correções, adaptações e melhorias no site
• Administrador (WebMaster): responsável pela operação do site no dia-a-dia, incluindo desenvolvimento e implementação de regras para operação do aplicativo; fixação de procedimentos de suporte; implementação de procedimentos de segurança e direitos de acesso; medição e análise de tráfego; coordenação de mudanças de procedimentos; coordenação de especialistas de suporte
Gerenciamento de
Projeto
DAW4 100
• O desenvolvimento de aplicativos para a Web é uma área relativamente nova e há poucos dados históricos que podem ser utilizados para fazer estimativa
• Nenhum tipo de métrica publicado e há pouca discussão de como elas devem ser
• Estimativas baseadas apenas em experiências com projetos similares
• Quase todo aplicativo para a Web quer inovar em alguma coisa, isto acaba fazendo com que estimativas baseadas em experiência com outros projetos, apesar de úteis, estejam sujeitas a uma alta margem de erro.
• Grande parte dos aplicativos na Web é construída por terceiros, especializados neste tipo de desenvolvimento
Tarefas da empresa
contratante
DAW4 101
• Muitas das atividades de análise devem ser feitas internamente, – a definição do público-alvo; – dos objetivos; – das informações e serviços a serem fornecidos; – e das medidas quantitativas e qualitativas que serão utilizadas para medir
o sucesso.
• Um esboço do projeto deve ser criado – economizará tempo e custo para o desenvolvedor, – permite uma ideia melhor de como deverá ser o aplicativo.
• Um esboço do cronograma deve ser definido e acompanhado. • Os níveis de interação entre o contratante e o contratado devem ser
identificados – definindo as responsabilidades de cada um.
Gerenciamento de
Configuração
DAW4 102
• estratégias utilizadas na Engenharia de Software são aplicáveis, porém táticas e ferramentas devem ser adaptadas para as características dos aplicativos para a Web
Limitações a serem
consideradas:
DAW4 103
• Conteúdo: um aplicativo para a Web típico possui bastante conteúdo. O desafio é organizá-lo em um conjunto racional de objetos e então estabelecer mecanismos de controle de configuração apropriados.
• Pessoas: como o desenvolvimento do aplicativo para a Web é contínuo, qualquer pessoa pode criar conteúdo, muitas delas não têm conhecimentos em engenharia de software e desconhecem as necessidades de gerenciamento de configuração.
Limitações a serem
consideradas:
DAW4 104
• Escalabilidade: as técnicas e controles aplicados a aplicativos para a Web pequenos não são bem escaláveis, é comum ver aplicativos crescendo em tamanho e complexidade, e com isso pequenas mudanças acabam tendo efeitos inesperados e problemáticos.
• Política. Quem é o dono do aplicativo? Esta questão é bastante discutida em grandes e pequenas companhias, e a resposta tem impacto significativo nas atividades de gerenciamento e controle.
Conclusão
DAW4 105
• A maneira desordenada com que a maior parte dos aplicativos para a Web são construídos é preocupante, principalmente quando analisamos as pesquisas que mostram que a grande maioria dos sites tem problemas de funcionalidade e/ou usabilidade
• As técnicas criadas e já consolidadas na Engenharia de Software podem ser utilizadas e isto é uma vantagem. Porém, é preciso fazer algumas adaptações, tendo muito cuidado com todas as características específicas de sistemas para a Web
Conclusão
DAW4 106
• Poucos desenvolvedores utilizam as técnicas de engenharia, normalmente, de forma restrita ou errônea.
• Problema que também ocorre na Engenharia de Software, mas na Engenharia para a Web a incidência é ainda maior
• Os problemas ocorrem principalmente nas áreas de Análise, Requisitos, Testes, Validação e Manutenção, que são áreas importantes que ainda não recebem a atenção necessária, pois a maior parte dos desenvolvedores concentram-se apenas na fase de Implementação
Conclusão
DAW4 107
• Os estudos mostram que o uso de técnicas de engenharia é eficaz e eficiente, portanto os esforços devem ser concentrados nesta adaptação das técnicas utilizadas na Engenharia de Software, incluindo o desenvolvimento de métricas e técnicas para o gerenciamento de projeto.
• Paralelamente precisa haver um trabalho para conscientizar desenvolvedores da importância do uso destas técnicas, mostrando como as mesmas poderiam tornar seu trabalho mais eficiente, trazendo também melhores resultados
REFERÊNCIAS
BIBLIOGRÁFICAS
DAW4 108
• [BIE98] BIEBER, Michael. “Web Engineering”. New Jersey Institute of Technology, 1998. <http://www-ec.njit.edu/~bieber/web-engineering.html>
• [GIN01] GINIGE, Athula e MURUGESAN, San. “Web Engineering: An Introduction”. IEEE Multimedia. Janeiro-Março 2001.
• [GIN01b] GINIGE, Athula. “Engineering A Better Website”. University Of Western Sydney. Austrália, Outubro de 2000. <http://aeims.uws.edu.au/talks/eng-web-sites.pdf>
• [GIN01c] GINIGE, Athula. “Web Engineering in Action”. University Of Western Sydney. Austrália, Outubro de 2000 <http://aeims.uws.edu.au/talks/Webe-in-action.pdf>
• [MCD01] MCDONALD, Andrew e WELLAND, Ray. The University, Glasgow G12 8QQ, Scotland. 2001. <http://www.dcs.gla.ac.uk/~andrew/webe2001.pdf>
• [MUR00] MURUGESAN, San. “Web Engineering For Sucessful Web Application Development”. University Of Western Sydney. Austrália, Outubro de 2000. <http://aeims.uws.edu.au/Talks/Web-ApWeb2000.PDF>
• [NIE00] NIELSEN, Jakob. “Designing Web Usability”. New Riders Publishing, 2000.
• [PRE01] PRESSMAN, Roger S. “Software Engineering: A Practioner’s Approach”. McGraw-Hill. 5ª edição. 2001.