Академический Документы
Профессиональный Документы
Культура Документы
Engenharia da WEB
Fernando Schütz
Especialização 2010
UTFPR
Vida moderna
Sistemas WEB
• Início
– Arquivos hipertexto
• Hoje
– Bancos!
• Powell
– “Sistemas WEB envolvem uma mistura de
publicação impressa e desenvolvimento de
software, de comercialização e computação, de
comunicações internas e relações externas, e de
arte e tecnologia”
1
06/11/2010
Atributos (1/3)
• Concentração em redes
– Internet e Intranet
• Concorrência
• Carga imprevisível
• Desempenho
• Disponibilidade
– 24/7/365
Atributos (2/3)
• Voltada a dados
– bancos, e‐commerce
• Sensível ao conteúdo
– Qualidade e natureza
• Evolução continuada
– “O desenvolvimento de sistemas WEB, está, com frequencia,
muito mais relacionado à criação de uma infra‐estrutura
(dispondo as linhas mestras do jardim) e depois ao “cultivo”
da informação, que cresce e floresce dentro deste jardim….
Uma boa arquitetura inicial deve permitir que esse
crescimento ocorra de um modo controlado e consistente”
(Lowe)
Atributos (3/3)
• Imediatismo
– Adaptação de técnicas de planejamento, análise,
projeto, implementação e teste em cronogramas
de tempo reduzido
• Segurança
• Estética
2
06/11/2010
A WebApp fornece um serviço ao
Orientada a serviços usuário (cálculos, p.ex.)
A aplicação orienta o usuário para
A aplicação orienta o usuário para
Portal outros contéudos ou serviços fora do
domínio de aplicação do portal
Consulta a grandes bases de dados e
Banco de dados extrai a informação
Consulta a uma coleção de grandes
Armazém de dados bancos de dados e extrai informação
Exercício
3
06/11/2010
Engenharia
Processo
• Filosofia do desenvolvimento ágil
– “A Internet modificou a principal prioridade do
desenvolvimento de software do o quê para
quando…. Mesmo assim o projeto deve ser
analisado, e usar um processo que:
• Acolhe modificações
• Encoraja a criatividade e independência da equipe de
desenvolvimento e forte interação com os clientes
• Pequenas equipes de desenvolvimento
• Ciclos curtos de desenvolvimento” (Aoyama)
Engenharia
Métodos
• Métodos de
– Comunicação
• Importantes durante a coleta de requisitos
– Análise de requisitos
q
• Base para o entendimento
– Projeto
• Conteúdo, arquitetura, interface, navegação, etc.
– Teste
• Quanto mais melhor!
Engenharia
Tecnologias
• HTML, VRML, XML, JAVA, CORBA, COM,
ActiveX, .NET
• Pesquisa em campo
– Web Developer
Web Developer’ss Virtual Encyclopedia
Virtual Encyclopedia
• www.wdlv.com
– WebDeveloper
• www.webdeveloper.com
– WebReference
• www.webreference.com
4
06/11/2010
O processo de Engenharia
WEB
Doug Wallace et all.
• Imediatismo e evolução
– Metodologias ágeis
• Grande aplicação de e‐commerce
Processo
• Organização!
– Arcabouço do processo
– Definição do arcabouço
1. WebApps
pp são entregues
g incrementalmente
2. Modificações ocorrerão frequentemente
3. Cronogramas são curtos
5
06/11/2010
1. Nossa maior prioridade é satisfazer o cliente desde o início por meio de entrega
contínua de software valioso.
2. Modificações de requisitos são bem‐vindas, mesmo que tardias no
desenvolvimento.
3. Entrega de software funcionando freqüentemente no menor espaço de tempo.
4. O pessoal de negócio e os desenvolvedores devem trabalhar juntos diariamente
durante todo o projeto.
5. Construção de projetos em torno de indivíduos motivados.
6. O método mais efetivo de levar informação para uma equipe de desenvolvimento
é por meio da conversa face a face.
7. Software funcionando é a principal medida de progresso.
8. Processos ágeis promovem desenvolvimento sustentável.
9. Atenção contínua à excelência técnica e ao bom projeto facilitam a agilidade.
10. Simplicidade: a arte de maximizar a qualidade de trabalho efetuado.
11. As melhores arquiteturas, requisitos e projetos surgem de equipes auto‐
organizadas.
12. Em intervalos regulares, a equipe reflete sobre como se tornar mais efetiva, então
sintoniza e ajusta adequadamente seu comportamento
XP
Pressmann, Roger S. Engenharia de Software
SCRUM
Pressmann, Roger S. Engenharia de Software
6
06/11/2010
Processo
• Comunicação com o cliente
– Análise
• Contexto
• Identificação dos interessados, requisitos, integração
com outras aplicações
– Formulação do negócio
• Coleta de requisitos que envolve todos os
interessados
Processo
– Planejamento
• Plano de projeto para o incremento
• Cronograma
– Modelagem
• Usa‐se os
Usa se os modelos e há
e há uma adaptação
– Construção
• Usando ferramental e tecnologia
• E testes incrementais para garantir que erros sejam
descobertos
– Implantação
• Configuração e entrega
Processo WebE
Pressmann, Roger S. Engenharia de Software
7
06/11/2010
Refinamento do arcabouço
• Questões:
– Quão importante é uma página principal? Deve
ter informações úteis ou apenas uma lista de
links?
– Qual
Q l é o lay‐out
é l t mais
i efetivo
f ti e ele
l varia?
i ?
– Que opções de mídia têm maior impacto?
Gráficos?
– Quanto de trabalho pode‐se esperar que um
usuário faça quando ele ou ela está procurando
a informação?
Refinamento do arcabouço
• Questões:
– Quão importantes são os apoios navegacionais?
– Quão complexo pode ser o formulário de
entrada antes que
q ele se torne irritante?
– Quão importantes são os recursos de busca?
Onde colocar páginas de acesso externo direto?
– A WebApp será projetada para que seja acessível
a pessoas com alguma deficiência física?
Melhores práticas
8
06/11/2010
Melhores Práticas
• Empregue tempo para entender as necessidade do
negócio e os objetivos do produto
• Descreva como os usuários irão interagir com a
WebApp usando uma abordagem baseada em
cenário
• Planejamento e acompanhamento
• Modelagem
• TEstes
• Desenvolva um plano de projeto, mesmo que ele
seja muito abreviado
Melhores Práticas
• Empregue algum tempo modelando o que você
está querendo construir
• Revise os modelos quanto à consistência e
qualidade
• Use ferramentas e tecnologia que lhe possibilitem
construir o sistema com tantos componentes
reusáveis quanto possível
• Não confie nos primeiros usuários para depurar a
WebAPP
Exercícios
• Usando um site real como exemplo, ilustre as
diferentes manifestações do “conteúdo” da WebApp