Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

INFORMÁTICA APLICADA 
 
 
A boa gestão de um projeto de aplicação para Web, ou WebApp, é um fator 
determinante para seu sucesso ou possível fracasso. O projeto de uma WebApp 
deve ser realizado por meio de uma série organizada de etapas, que são 
compostas por atividades metodológicas que fornecem as diretrizes (objetivos e 
metas) necessárias para o desenvolvimento efetivo da aplicação. 
As aplicações Web tem um caráter mais dinâmico; por isso, seu processo 
de desenvolvimento deve ser diferenciado, ainda que muitas das técnicas utilizadas 
nos projetos tradicionais possam ser aplicadas no desenvolvimento de WebApp. 
 
 
Bons Estudos! 
AULA 8 - PROJETOS 
DE SOFTWARE 
PARA WEBAPP 
 
 
Nesta aula, você aprenderá quais são os objetivos de um projeto de 
WebApp, as características esperadas de uma aplicação Web e os requisitos 
básicos da adaptação de um modelo tradicional para um modelo de projeto Web. 
Você também vai verificar quais são e como realizar as etapas do processo de 
desenvolvimento de uma WebApp e vai analisar como é subdividido um projeto de 
aplicações Web. 
Ao final deste desta aula, você será capaz de: 
• Identificar as necessidades de desenvolvimento de uma WebApp. 
• Discutir os objetivos de um projeto de WebApp. 
• Exemplificar o desenvolvimento de uma WebApp. 
8 PROJETOS DE SOFTWARE PARA WEBAPP 
8.1 Projeto de uma WebApp 
As aplicações Web, ou WebApp, têm o imediatismo como sua essência; por 
esse isso, muitos desenvolvedores acreditam que não é necessário colocar esforço a 
seu planejamento e gerenciamento, deixando as aplicações evoluírem naturalmente. 
Na verdade, isso funciona para aplicações de pequeno porte, porque seu 
desenvolvimento é rápido. 
No entanto, mesmo em aplicações de pequeno porte que pouco se 
assemelham aos projetos de desenvolvimento tradicionais, você precisa ser capaz de 
identificar com exatidão quais são as necessidades do projeto, bem como seus riscos. 
Esse entendimento diminui a possibilidade de falhas no projeto, conforme ensinam os 
autores Moraes e Werneck (2003) e Pinna e Carvalho (2008). Nesse caso, se o 
planejamento é indicado para pequenos projetos, ele é essencial para os grandes. 
A primeira atividade que deve ser realizada no planejamento de uma aplicação Web 
é responder as perguntas a seguir, conforme orientam Pressman e Maxim (2016). 
1. Qual é a motivação da WebApp, ou seja, quais são as necessidades do negócio? 
2. Quais são os objetivos que devem ser atendidos pela WebApp? 
3. Quem vai usar a WebApp? 
Para o sucesso, você deve encontrar respostas simples e sucintas para essas 
questões; a partir delas, você pode especificar os objetivos para o projeto de sua 
aplicação Web. Geralmente, os objetivos são especificados em dois grupos, como 
apontam Moraes e Werneck (2003), Pinna e Carvalho (2008) e Pressman e Maxim 
(2016): 
1. metas informacionais, cuja finalidade é o fornecimento de conteúdo específico ou 
informações ao usuário final; 
2. metas aplicativas, cuja intenção é a realização de alguma tarefa dentro da 
WebApp. 
Uma vez que as metas tenham sido estabelecidas, você pode definir o perfil de 
seus usuários. Após ser definido o perfil, você poderá levantar quais são as 
características mais relevantes para o atendimento das expectativas do usuário da 
sua WebApp. 
8.2 Levantamento de requisitos para aplicações Web 
Diversas técnicas de levantamento de requisitos da engenharia de software — 
aplicadas no desenvolvimento de aplicações tradicionais — podem ser 2 Projeto de 
software para WebApp também aplicadas no desenvolvimento de WebApp. Para isso, 
basta que os seus objetivos sejam adaptados, conforme apontam Pressman e Maxim 
(2016), passando a ser os seguintes: 
• Identificar requisitos de conteúdo; 
• Identificar requisitos funcionais; 
• Definir os cenários de interação para diferentes classes de usuários. 
 
A obtenção dos requisitos para a aplicação Web pode ser conduzida da 
seguinte forma: 
1. Solicite aos interessados para definirem as categorias de usuários e desenvolverem 
descrições de cada uma delas. 
2. Procure manter uma comunicação ativa com os interessados, para definir quais 
serão os requisitos básicos da WebApp. 
3. Analise a informação coletada e a utilize para realizar conferências com os 
interessados. 
4. Defina os casos de uso, que vão descrever os cenários de interação para cada uma 
das categorias de usuários 
Com relação às categorias de usuários, podemos dizer que a complexidade de 
uma WebApp é diretamente proporcional ao número de categorias de usuários que 
ela possuirá. Assim como ocorre no início do planejamento da aplicação, para a 
definição das categorias de usuários que vão interagir com a WebApp, uma série de 
questões deve ser respondida, conforme orientam Pressman e Maxim (2016). 
• Qual é o objetivo global do usuário quando ele utiliza a WebApp? A forma 
mais simples de entender essa questão é exemplificando-a. Imagine que você 
esteja desenvolvendo um e-commerce. Nesse tipo de sistema, alguns usuários 
podem querer realizar uma comparação de preços, outros podem desejar 
visualizar um produto específico, outros podem estar montando uma lista de 
produtos para a compra. Cada grupo de usuários terá uma necessidade 
diferente ao navegar pela aplicação. 
• Qual é o conhecimento e a sofisticação do usuário em relação ao 
conteúdo e à funcionalidade da WebApp? Caso seja um usuário com 
conhecimento e sofisticação avançados, então, conteúdo e funcionalidades 
elementares trarão pouco benefício para ele. Contudo, para um usuário novato, 
conteúdos e elementos sofisticados podem causar confusão durante a 
navegação. 
• Como o usuário chegará até a WebApp? A chegada do usuário ocorrerá de 
uma forma controlada ou por meio de outra aplicação Web? Entender como o 
usuário chegará ajuda a definir as regras de navegação. 
• Quais são as características genéricas da WebApp que poderiam 
agradar/desagradar ao usuário? Diferentes tipos de usuários têm gostos 
distintos, mas previsíveis. Assim sendo, é válido buscar determinar o que os 
usuários gostam ou não. Em alguns casos, esse gosto pode ser determinado 
perguntando-se ao usuário quais são as WebApp que ele mais gosta e as que 
menos gosta. 
Utilizando as respostas obtidas, você deve definir o menor conjunto razoável 
de classes de usuários. Tendo sido realizada a primeira atividade da coleta de 
requisitos, pode-se, então, seguir para a próxima, que é a comunicação com os 
interessados e usuários finais. 
A maior parte das WebApp tem muitos usuários finais, o que poderia ser um 
problema se não fossem criadas classes de usuários, que levam em consideração os 
requisitos mais gerenciáveis. Entretanto, não é aconselhável que se escolha um 
número muito pequeno de pessoas para a formulação da análise. Nesse ponto do 
levantamento de requisitos, você pode refinar ou compreender melhor os requisitos já 
adquiridos por meio de outras técnicas. O processo de comunicação pode ser 
realizado utilizando-se uma das técnicas elencadas a seguir, conforme lecionam 
Pressman e Maxim (2016). 
• Grupos focais tradicionais — nessa técnica, um moderador se reúne com um 
pequeno grupo de usuários ou interessados no sistema. O objetivo é discutir a 
WebApp e melhorar o entendimento em relação a seus requisitos. 
• Grupos focais eletrônicos — semelhante à técnica de grupos focais 
tradicionais, nesta, os grupos podem ser maiores, e as tecnologias aplicadas 
geralmente são chats e fóruns. 
• Levantamentos iterativos — consistem em uma série de levantamentos 
resumidos e voltados para os usuários e interessados pela WebApp. 
Apresentam-se em forma de perguntas que conduzem a respostas 
relacionadas à aplicação Web. 
• Levantamentos exploratórios — são baseados na Web e estão ligados a uma 
ou mais WebApp que possuem usuários semelhantes aos que utilizarão a 
WebApp em desenvolvimento. Nessa técnica, os usuáriosse conectam ao 
levantamento e respondem a diversas questões. 
• Construção de cenário — nessa técnica, alguns usuários são selecionados 
para a criação de casos de uso informais, capazes de fornecer alguma 
descrição sobre partes específicas da WebApp. 
Tendo sido concluídos os dois primeiros passos para obtenção dos requisitos, 
segue-se, então, para a análise da informação coletada. À medida que a informação 
é coletada, você deve categorizá-la por classe de usuário e tipo de transação; depois, 
ela deve ser avaliada quanto à sua relevância. Aqui, o objetivo é o desenvolvimento 
de listas de objetos de conteúdo, operações aplicadas dentro desses objetos em uma 
transação de usuário específica, funções fornecidas pelas WebApp e outros requisitos 
não funcionais. 
Como último passo do processo de coleta de requisitos para uma WebApp, 
desenvolvem-se os casos de uso. Os casos de uso deverão descrever como uma 
categoria de usuários vai interagir com a aplicação Web ao realizar uma operação 
específica (Figura 1). Você não pode esquecer que os casos de uso devem descrever 
a interação sob o ponto de vista do usuário. 
 
 
 
 
Figura 1 – Exemplo de caso de uso de um WebApp 
 
Fonte: Adaptado de Pressman e Maxim (2016). 
 
O desenvolvimento dos casos de uso pode ser uma tarefa relativamente 
demorada. Entretanto, os casos de uso são extremamente úteis para: 
• Ajudar o desenvolvedor a entender como seus usuários perceberão sua 
interação com a WebApp; 
• Fornecer os detalhes necessários para que seja possível criar um modelo de 
análise efetivo; 
• Proporcionar a compartimentalização do trabalho de engenharia para Web; e 
• Fornecer diretrizes muito importantes para os que vão testar a WebApp. 
8.3 Objetivos de um projeto de WebApp 
Até agora, foram apresentados alguns passos para iniciar o projeto de uma 
WebApp. Porém, uma WebApp vai muito além do levantamento de requisitos. Em um 
projeto de WebApp, também é necessário realizar atividades como análise e 
modelagem. Algumas características são extremamente importantes e devem ser 
observadas nesse tipo de aplicação, independentemente do seu tamanho e sua 
complexidade. 
Seja qual for o projeto Web que está sendo desenvolvido, as características a 
seguir serão desejáveis, pois representam os objetivos genéricos de um WebApp, 
conforme lecionam Moraes e Werneck (2003) e Pressman e Maxim (2016): 
• Simplicidade: entenda que uma aplicação deve fazer uso moderado de 
qualquer um de seus recursos, como conteúdo, aspectos visuais, animações, 
etc. 
• Consistência: é um objetivo aplicável a qualquer elemento do projeto. O 
conteúdo deve ser construído com consistência, o design gráfico deve 
apresentar aspectos semelhantes em todas as partes da aplicação Web, e 
assim por diante. 
• Identidade: o design, isto é, a apresentação gráfica de uma aplicação Web 
deve ser coerente com o domínio da aplicação para a qual está sendo 
desenvolvida. Uma aplicação de e-commerce certamente terá aspectos 
diferentes de uma aplicação de e-learning. 
• Robustez: você deve entender que o usuário espera que o conteúdo da 
WebApp seja robusto e relevante às suas necessidades. Caso os elementos 
estejam faltando, ou seja, sejam insuficientes, então, é provável que a WebApp 
fracasse. 
• Navegabilidade: a navegação deve ser projetada para ser intuitiva e previsível. 
Isso significa que o usuário deve saber navegar pela WebApp sem ter que 
buscar links ou instruções de navegação. 
• Apelo visual: de todas as categorias de software possíveis, as aplicações Web 
são inquestionavelmente as mais visuais, dinâmicas e estéticas. Contudo, a 
beleza de uma WebApp é algo que varia de acordo com a ótica de quem vê; 
sendo assim, o indicado é o equilíbrio entre os componentes. 
• Compatibilidade: uma aplicação Web deve ser utilizada em uma variedade de 
ambientes e deve ser projetada para ser executada perfeitamente em cada um 
deles. 
Então, para que os objetivos sejam alcançados, existe uma série de atividades a 
serem executadas. Ou seja, você precisa realizar um projeto para cada uma das 
etapas de construção da WebApp, e cada um dos projetos (microprojetos) tem suas 
próprias características, seus desafios e suas necessidades. 
8.4 Desenvolvimento de um projeto de WebApp 
Para conduzir o desenvolvimento de uma aplicação Web, deve-se realizar os 
seguintes projetos (ou microprojetos): projeto de interface, projeto estético, projeto de 
conteúdo, projeto de navegação, projeto de arquitetura e projeto de componente. 
8.4.1 Projeto de interface 
Um dos maiores desafios de um projeto de interface é determinar o ponto de 
entrada do usuário, ou seja, de onde virá o usuário. Segundo Pressman e Maxim 
(2016), os objetivos de um projeto de interface são: 
• Estabelecer uma janela para o conteúdo e a funcionalidade fornecidos pela 
interface; 
• Guiar o usuário com uma série de interações com a WebApp; 
• Organizar as opções de navegação e conteúdo disponíveis para o usuário. 
8.4.2 Projeto estético 
Também chamado de projeto gráfico, trata-se do esforço artístico que 
complementa os aspectos técnicos do projeto. Com o projeto estético, você deve atrair 
o usuário para um mundo que envolve elementos físicos e intelectuais. Para 
desenvolver um projeto estético de qualidade, assuma-o como um requisito, tentando 
responder a seguinte pergunta: “qual é o visual que os usuários desejam? ”. 
Segundo Pressman e Maxim (2016), um projeto estético envolve também 
questões relacionadas ao layout e ao design gráfico, questões muito importantes de 
serem observadas. Em relação ao leiaute, procure dar ênfase ao conteúdo de sua 
aplicação, e não aos demais elementos. Procure organizar os elementos da parte 
superior esquerda para a parte inferior direita, uma vez que as pessoas costumam 
observar a página assim como leem um livro. 
Deve-se também agrupar os conteúdos, a navegação e as funções 
geograficamente dentro de uma página, pois é costume do ser humano buscar por 
padrões. Evite barras de rolagem — apesar de muitas vezes necessárias, as pessoas 
ainda preferem abrir uma nova página a utilizar barras de rolagem. Além disso, 
considere a resolução do dispositivo do seu usuário quando estiver desenvolvendo o 
seu leiaute, mesmo se estiver desenvolvendo uma página que seja responsiva. 
Quanto ao design gráfico, leve em consideração a combinação entre as cores, 
os estilos e os tamanhos do texto, a tipografia e o uso de mídias complementares. 
Não se esqueça de que tudo deve ser feito com moderação e considere, acima de 
tudo, o propósito da aplicação. 
8.4.3 Projeto de conteúdo 
Um projeto de conteúdo aborda duas tarefas diferentes de projeto, devendo 
cada uma delas ser realizada por indivíduos distintos, com habilidades distintas. 
Primeiro, desenvolve-se uma representação de projeto para objetos de conteúdo e os 
mecanismos necessários para estabelecer suas relações. Em seguida, criam-se as 
informações para um objeto de conteúdo específico. 
No contexto de projetos de WebApp, um objeto de conteúdo possui grande 
consonância com os objetos de dados de um projeto de software tradicional. Objetos 
de conteúdo possuem atributos que incluem informações específicas do conteúdo e 
conteúdo de implementação exclusivo, específico, como parte do seu projeto. Os 
objetos de conteúdo podem ser representados por diagramas de linguagem de 
modelagem unificada (UML, do inglês unified modeling language), conforme lecionam 
Cockburn (2008) e Fowler (2004). Após serem concluídos, todos os objetos de 
conteúdo devem passar pelos processos de autoria e formatação. A tarefa de autoria 
consiste na inserção de resumos sobre as informações que estão sendo entregues e 
sobre os tipos de objetos de conteúdo genéricos utilizados para transmiti-las. 
 
8.4.4 Projeto de arquitetura 
O projeto de arquitetura está diretamente relacionado aos objetivos 
estabelecidos para uma WebApp,ao conteúdo que deve ser apresentado, aos 
usuários que vão visitar a página e à filosofia de navegação que será estabelecida. O 
projeto de arquitetura do conteúdo tem seu foco na arquitetura geral da hipermídia da 
WebApp e, embora possa apresentar estruturas personalizadas, as mais comuns são 
as lineares, a grade, a hierárquica e a estrela. A primeira pode ser subdividida em 
linear, linear com fluxo opcional e linear com desvios. Um resumo de cada uma dessas 
arquiteturas pode ser observado no Quadro 1. 
 
 
Quadro 1 – Tipos de Arquitetura de conteúdo 
Estrutura Característica Esquema gráfico 
Linear 
Utilizada quando se pode determinar 
uma sequência previsível de passos 
a serem realizados pelo usuário. Um 
bom exemplo são tutoriais on-line 
 
Linear com 
fluxo 
opcional 
Neste caso, o usuário poderá seguir 
por um fluxo opcional, não 
obrigatoriamente pelo fluxo 
predeterminado, como ocorre no 
caso anterior 
Linear com 
desvios 
Diferentemente da estrutura anterior, 
os fluxos alternativos ocorrem não 
(diretamente) por opção do usuário, 
mas, sim, como consequência de 
alguma ação por ele realizada. 
Grade 
Neste caso, o conteúdo pode ser 
organizado por categorias com duas 
ou mais dimensões. É muito utilizada 
em e-commerce 
 
Hierárquica 
É a estrutura mais comumente 
utilizada, pois permite que o usuário 
navegue de forma totalmente 
orientada, aprofundando-se, sempre 
que necessário, na arquitetura e 
retornando à página anterior, quando 
necessário. 
Em estrela 
Os objetos de conteúdo deste tipo de 
arquitetura são projetados de forma 
que possam passar o controle para 
qualquer outro objeto, a qualquer 
momento. É similar à arquitetura de 
uma aplicação orientada a objetos. 
 Fonte: Adaptado de Pressman e Maxim (2006) 
8.4.5 Projeto de navegação 
Uma vez que a arquitetura da WebApp está estabelecida, com todos os seus 
componentes identificados e desenvolvidos, deve-se, então, definir quais serão os 
percursos de navegação que permitirão que o usuário chegue a uma determinada 
informação. Isso é feito identificando-se qual será a semântica de navegação para os 
diferentes grupos de usuários da WebApp, bem como definindo-se a mecânica para 
obtenção da navegação. 
Assim como em diversas outras partes do projeto, essa etapa se inicia com a 
definição da hierarquia dos usuários e dos casos de uso relativos, que permitam 
ilustrar as diferentes necessidades de navegação de cada grupo de usuários (que 
podem ser representados por um ator, em um diagrama de casos de uso). À medida 
que um usuário interage com uma WebApp, surge uma série de novas unidades 
semânticas de navegação (NSU, do inglês navigation semantic unit), que são 
conjuntos de informações estruturadas de navegação e que colaboram para o 
cumprimento de um subconjunto de requisitos do usuário, conforme apontam Kalbach 
(2009) e Pressman e Maxim (2016). 
Os elementos que compõem uma NSU são chamados de modos de navegação 
(WoN, do inglês way of navigation) e representam o melhor percurso de navegação 
para que se possa atingir uma determinada meta de um usuário específico. Os WoN, 
por sua vez, são compostos de objetos conhecidos como nós de navegação 
(navigational nodes), que são interligados por links de navegação, segundo Kalbach 
(2009) e Pressman e Maxim (2016). 
À medida que se prossegue com o projeto, é preciso também definir qual será 
a mecânica de navegação. Essa é uma atividade que envolve a utilização de links, 
menus, barras, botões, imagens clicáveis e diversos outros recursos capazes de 
orientar a navegação do usuário pela WebApp. 
 
8.4.6 Projeto em nível de componentes 
• Conforme afirmam Pressman e Maxim (2016), as WebApp modernas oferecem 
funções de processamento que são cada vez mais sofisticadas, sendo capazes 
de: Executar processamento localizado, capaz de gerar recursos de navegação 
e conteúdo de forma dinâmica; 
• Fornecer recursos de cálculo ou processamento de dados apropriados para o 
campo de aplicação da WebApp; 
• Fornecer consultas sofisticadas e acesso a banco de dados; 
• Etabelecer interfaces de dados com sistemas corporativos externos. Para 
alcançar essas capacidades, você precisa projetar e construir componentes de 
programas que sejam idênticos, em sua forma, aos componentes para 
softwares tradicionais. 
Nesta aula, foram apresentadas diversas informações importantes 
relacionadas ao projeto de aplicações para Web, ou WebApp O conteúdo aqui 
apresentado permite que você seja capaz de desenvolver aplicações de qualidade, 
pautadas nos princípios da engenharia de software para Web, reduzindo 
significativamente as possibilidades de falhas e fracassos de um projeto e 
aumentando a qualidade de seu produto e a satisfação de seus usuários. Combinando 
o conhecimento adquirido neste capítulo com as leituras indicadas, as atividades 
propostas e demais conhecimentos adquiridos ao longo de sua vida acadêmica, 
certamente você se tornará um grande profissional da área de engenharia de 
desenvolvimento de WebApp. 
 
REFERÊNCIAS BIBLIOGRÁFICA 
COCKBURN, A. Escrevendo casos de usos eficazes: um guia prático para 
desenvolvedores de software. Porto Alegre: Bookman, 2008. 
FOWLER, M. UML essencial: um breve guia para a linguagem-padrão de 
modelagem de objetos. 3. ed. Porto Alegre: Bookman, 2004. 
KALBACH, J. Design de navegação Web: otimizando a experiência do usuário. 
Porto Alegre: Bookman, 2009. 
MORAES, E. A.; WERNECK, V. M. B. Uma abordagem de avaliação de qualidade de 
aplicações Web. Cadernos do IME, v. 14, p. 71–78, 2003. 
PINNA, C. C. A.; CARVALHO, M. M. Gestão de escopo em projeto de aplicações 
web. Revista Produção Online, v. 8, n. 1, 2008. 
PRESSMAN, R. S.; MAXIM, B. R. Engenharia de software: uma abordagem 
profissional. 8. ed. Porto Alegre: AMGH, 2016

Mais conteúdos dessa disciplina