Metodologia RAD em Desenvolvimento de Software
PROPÓSITO
Compreender a aplicação da metodologia RAD para o desenvolvimento de um sistema.
PREPARAÇÃO
Antes de iniciar o conteúdo deste tema, o aluno precisa ter instalado o Python versão 3.8.5 e a
IDE Spyder.
OBJETIVOS
MÓDULO 1
Descrever as etapas para tratamento dos requisitos de um sistema na metodologia de
desenvolvimento rápido de software (RAD)
MÓDULO 2
MÓDULO 3
MÓDULO 4
INTRODUÇÃO
A metodologia de desenvolvimento rápido de software (RAD) é caracterizada por um processo
evolutivo em que usuários e desenvolvedores são engajados através de entregas de versões
funcionais do sistema que, apesar de incompletas, permitem que a colaboração seja otimizada.
Os usuários podem operar essas versões e fazer comentários, críticas e sugestões que
auxiliam bastante os desenvolvedores a direcionar seus esforços para atender, de fato, às
necessidades do cliente. Essas versões parciais são chamadas de protótipos e a ideia é que,
ao longo do processo, avancem no sentido de se tornarem a versão final do sistema.
MÓDULO 1
REQUISITOS
CONTEXTUALIZAÇÃO
COMENTÁRIO
Além disso, o progresso do desenvolvimento pode ser medido facilmente através da evolução
do protótipo, que é a principal forma de maximizar a comunicação entre desenvolvedores e
usuários sobre melhorias, ou mudanças do sistema. Os objetivos da RAD são bem definidos:
Maior eficiência no uso do tempo das partes envolvidas, comunicação mais produtiva e
processo de desenvolvimento otimizado.
CONCEITOS
SAIBA MAIS
A área que trata desse assunto é a Engenharia de Requisitos. Ela tem como metas a
identificação, modelagem, comunicação e documentação dos requisitos de um sistema e em
quais situações ele vai operar. O modo como os requisitos serão implementados é uma decisão
que deve ser tomada pela equipe de desenvolvimento.
Os requisitos do sistema basicamente descrevem o que deve ser feito. É importante garantir
que eles sejam completos, não se contradigam e que sejam relevantes para o desenvolvimento
do sistema.
REQUISITOS
Quanto maior o detalhamento dos requisitos logo no começo do projeto, menores serão
as chances de haver a necessidade de mudanças no sistema, quando o desenvolvimento
já estiver avançado.
ELICITAÇÃO DE REQUISITOS
Shutterstock
FECHADAS
autor/shutterstock
ABERTAS
CASOS DE USO:
São usados para descrever as interações entre os usuários e o sistema. Eles especificam uma
sequência de interações entre um sistema e um ator externo (por exemplo, uma pessoa, uma
peça de hardware, outro produto de software). Os requisitos funcionais do sistema de software
são representados pelos Casos de Uso, que são, portanto, um importante instrumento para que
analistas e usuários possam interagir e validar o entendimento dos requisitos.
OS CENÁRIOS:
Têm por objetivo simular situações de interações entre os usuários e o sistema. Na descrição
dos cenários, deve ser informado como o sistema estava antes de o usuário começar a
interação e como ficou depois de esta ter sido concluída.
OBSERVAÇÃO E ANÁLISE SOCIAL:
Aqui, um analista observa os usuários enquanto trabalham e faz anotações. A principal
vantagem desta técnica é mostrar o modo como os usuários realmente trabalham e não uma
descrição idealizada de como devem trabalhar.
GRUPOS FOCAIS:
É formado por grupos com visão de partes do sistema, os quais ajudam a identificar as
necessidades e percepções dos usuários.
BRAINSTORMING: A
Ou tempestade cerebral, é uma reunião em que os participantes podem desenvolver soluções
criativas para problemas específicos. Esse processo tem duas fases: A de geração, na qual as
ideias são coletadas, e a de avaliação, em que as ideias coletadas são discutidas.
PROTOTIPAGEM:
A ideia é desenvolver aplicações rápidas que ajudem a entender melhor os requisitos do
sistema como um todo. Os protótipos podem ser descartáveis e evolutivos.
ANÁLISE DE REQUISITOS
Todas as questões relacionadas aos requisitos são tratadas pela análise de requisitos, desde a
determinação das precedências, da consistência deles (ou seja, não devem ser contraditórios
entre si), da integridade dos requisitos (isto quer dizer que nenhum serviço ou restrição estará
ausente) até a viabilidade dos requisitos. Portanto, a análise preocupa-se em verificar se a
implementação dos requisitos é viável com o orçamento e cronograma disponíveis para o
desenvolvimento do sistema. A partir da negociação de priorização com as partes interessadas,
os conflitos são resolvidos. A principal técnica usada para análise de requisitos são sessões
JAD.
SAIBA MAIS
As sessões JAD ― Acrônimo do inglês para Joint Application Development ― são oficinas de
trabalho em que os desenvolvedores e clientes discutem sobre o sistema. O objetivo da JAD é
detalhar a solução, de modo que seja possível extrair elementos passíveis de monitoramento
até que o projeto seja concluído. Depois da extração dos requisitos, é necessário priorizá-los
para estabelecer um cronograma de trabalho que contemple o uso eficiente de recursos e
atenda às expectativas do cliente.
DOCUMENTAÇÃO DE REQUISITOS
GERENCIAMENTO DE REQUISITOS
Alguns dos problemas para aplicar técnicas de engenharia de requisitos dos modelos
tradicionais para a RAD são:
A RAD se caracteriza por ser um processo evolutivo no qual é incluída uma característica
para o projeto em cada ciclo de desenvolvimento. Isso ocorre porque existe a premissa
de que os usuários evoluem o seu entendimento do projeto com a análise das entregas,
portanto o modelo tradicional é inadequado quando tenta levantar todos os requisitos logo
no início do desenvolvimento.
O modelo tradicional não trata de forma específica dos conflitos que podem ocorrer com a
implementação dos requisitos ao longo do projeto, como é o caso da RAD em que o
projeto vai incorporando sugestões dos usuários ao longo das iterações.
Ao final da extração dos requisitos pela JAD, é necessário analisá-los. Isso é necessário para
garantir sua integridade e consistência. Uma das técnicas comumente utilizadas para análise
de requisitos é o gerenciamento de conflitos.
MODAL
A gestão de conflitos vai tratar das possíveis contradições que surgiram na JAD. Como a
RAD tem como característica desenvolver protótipos, é fundamental que os conflitos, se
existirem, sejam removidos, pois não faz sentido implementar um protótipo com requisitos
conflitantes.
Agora, depois da remoção dos conflitos entre os requisitos, é necessário fazer a priorização
deles para poder partir para o desenvolvimento do protótipo. Seguindo uma sequência lógica,
no protótipo, primeiro desenvolve-se as principais funcionalidades do sistema. Uma técnica
usada para isso é a classificação por cartões, que consiste na atribuição de “graus de
importância” para cada requisito. Dessa forma, é possível comparar as prioridades das
diferentes partes interessadas.
ETAPA 1
ETAPA 2
Cada um atribui a prioridade que acha ser a adequada para o requisito e mostra para os
demais. Após algumas rodadas, todos os cartões têm algumas prioridades. Em seguida, faz-se
a análise dos graus de todos os cartões para analisar os dados.
ETAPA 3
Depois de analisados, é feita a priorização das funcionalidades com as quais todas as partes
interessadas concordam. Trata-se de uma técnica colaborativa e orientada para atender às
necessidades do cliente.
Com a priorização dos requisitos definida, passa-se para a documentação deles. Trata-se da
formalização do acordo sobre o entendimento dos requisitos entre as partes interessadas. Uma
das técnicas para fazer a documentação dos requisitos é através da especificação de requisitos
de software. Essa técnica também é utilizada pelos modelos tradicionais para documentação
dos requisitos.
Shutterstock
Terminado o protótipo, ele é apresentado para ser validado pelo cliente. Essa é a etapa mais
importante em qualquer ciclo de vida de desenvolvimento, pois todo sistema tem um propósito
e, quem o avalia, é o usuário. Na RAD, a validação do protótipo é muito importante para
direcionar quais serão as ações a serem tomadas para a próxima iteração.
ATENÇÃO
O desenvolvimento rápido de software pode ser um método muito eficaz, desde que sejam
observados os pré-requisitos para sua aplicação. A RAD cria um ambiente colaborativo e
criativo em que as partes interessadas podem participar de um projeto muito detalhado. Com a
RAD, pode-se obter resultados rápidos e ideias de sucesso que, dificilmente, seriam
implementadas nos modelos tradicionais. É um fato, no entanto, que a RAD também tem suas
desvantagens. Seu uso depende de uma equipe de trabalho com diversas habilidades e
motivada que se adéque rapidamente a mudanças ao longo do projeto.
VÍDEO
Analisando os requisitos de um sistema
VERIFICANDO O APRENDIZADO
1. A RAD É UMA METODOLOGIA EVOLUTIVA BASEADA EM ITERAÇÕES
INCREMENTAIS COM FASES BEM DEFINIDAS. SOBRE AS FASES DA
RAD, SELECIONE A OPÇÃO CORRETA QUE DESCREVE O
DESENVOLVIMENTO DO PROTÓTIPO DE DESIGN DE INTERFACE COM O
USUÁRIO:
B) Tem foco na aparência do sistema, pois, desse modo, é mais fácil o usuário operá-lo.
C) Esta fase não está relacionada, necessariamente, com a confecção de um protótipo com
componentes interativos.
A) Desenvolvendo protótipos.
GABARITO
O protótipo de design gráfico faz parte da segunda fase da RAD. É muito importante para que o
usuário possa interagir com o sistema e verificar se os requisitos são atendidos.
2. A RAD tem como meta entregar sistemas rapidamente, mas só faz sentido entregar
rapidamente um sistema que tenha uma boa qualidade, caso contrário serão necessárias
novas iterações para fazer correções e ajustes. Em relação à metodologia RAD,
selecione a opção correta que indique como evitar retrabalho:
MÓDULO 2
Modelagem de negócios
Nessa fase, é feita a obtenção de informações a respeito dos requisitos funcionais do sistema,
reunidas por várias fontes relacionadas aos negócios. Essas informações são então
combinadas para criar uma documentação que será utilizada para modelar o ciclo de vida dos
dados: Como os dados podem ser usados, quando são processados e a sua transformação em
informações que serão utilizadas por alguma área, ou setor específico do negócio. Trata-se,
portanto, de uma análise com viés comercial.
Modelagem de dados
Nessa fase, todas as informações que foram obtidas durante a fase anterior são analisadas
para formar conjuntos de objetos de dados essenciais para os negócios. Através da análise, as
informações são agrupadas de modo que sejam úteis para a empresa. Por exemplo, na
determinação de quais são as entidades principais que serão tratadas pelo sistema. A
qualidade de cada grupo de dados, então, é examinada e recebe uma descrição precisa. Em
seguida, é feito mapeamento que relaciona esses grupos entre si e qual o significado desses
relacionamentos, conforme definido na etapa precedente. Avançando um pouco mais, agora
deve-se identificar e definir os atributos de todos os conjuntos de dados. Também é
estabelecida e definida em detalhes de relevância para o modelo de negócios a relação entre
esses objetos de dados.
COMENTÁRIO
A modelagem não é um método exato e exige muita atenção do analista, pois vai ter impacto
para todo o projeto. Quanto melhor for o entendimento do sistema, melhor será a qualidade da
modelagem e, portanto, mais eficiente será a tradução das demandas do cliente para a
implementação do sistema. Os modelos e as informações são representados por meio de
diagramas conectados.
MODELAGEM DE NEGÓCIOS
Uma das principais técnicas para representar a modelagem de negócios é utilizar o diagrama
de Casos de Uso da UML. Cabe lembrar que a UML (Unified Modeling Language) - que é
traduzida para o português como Linguagem Unificada de Modelagem - é uma linguagem
padrão para modelagem orientada a objetos. O objetivo dela é dar suporte para que analistas
de negócios e desenvolvedores visualizem os seus projetos em diagramas padronizados. Os
diagramas mais comuns são o de Casos de Uso e o de Classes.
A escolha do diagrama de Casos de Uso para modelagem de negócios ocorre porque esse
diagrama incorpora a dinâmica dos negócios sob várias perspectivas, descrevendo, assim,
como as partes interessadas ― chamadas de atores ― interagem com o sistema e entre si. Na
Figura 1, é apresentado um exemplo de caso de uso de um sistema simplificado de embarque
em um aeroporto.
Fonte: Autor
Além disso, o diagrama possui um nome, no exemplo do diagrama de Casos de Uso da Figura
1, o nome é “Aeroporto”, que ilustra o escopo do negócio que está sendo modelado. Outros
pontos a serem destacados são como os elementos do negócio interagem entre si
representando um fluxo de trabalho que será, posteriormente, implementado no sistema.
Processos Auxiliares
Processos de Gerenciamento
Os processos auxiliares: São atividades que precisam ser feitas de qualquer modo,
para que o negócio funcione.
Para ilustrar melhor os conceitos apresentados até agora, será dado o exemplo de um
restaurante: Os principais Casos de Uso de negócios são marketing e serviços de almoço e de
jantar, e o caso de uso auxiliar é a compra de itens de alimentação e limpeza.
ATENÇÃO
Fonte:Shutterstock
Trata-se de uma forma muito flexível de trabalho em que é possível fazer generalizações,
detalhamentos e reutilizações de Casos de Uso dependendo como ele se contextualiza dentro
do negócio.
O esforço de modelagem de negócios deve estar circunscrito às necessidades que serão
tratadas pelo sistema, ou seja, o escopo da modelagem não deve ultrapassar o que realmente
precisa ser modelado, sob o risco de perder o foco do que será tratado e perdendo, assim, a
vantagem da modelagem com um excesso de informações que acabam gerando confusão e
que, posteriormente, podem ser difíceis de ser eliminadas da modelagem.
Fonte:Shutterstock
Uma modelagem de Casos de Uso de negócios de boa qualidade deve ter como
características:
Ter poucos Casos de Uso torna o modelo mais fácil de entender, mas não podem deixar de
descrever algum fluxo de trabalho que seja relevante para o negócio. Outra coisa a ser
considerada é evitar a redundância de Casos de Uso. Caso perceba-se a ocorrência de uma
situação dessas, deve-se fazer uma generalização dos Casos de Uso, pois não fazer isso pode
provocar inconsistências na modelagem dos negócios.
TEORIA NA PRÁTICA
Como exemplo de generalização, seja um sistema de pagamento que permite que os
frequentadores de uma academia paguem de duas formas: Online e por telefone. Certamente,
esses dois cenários terão muitas coisas em comum e diferentes, reflita sobre esse contexto e
escreva alguns desses aspectos comuns entre esses dois cenários:
RESOLUÇÃO
Portanto, a melhor maneira de fazer essa modelagem é criar um Caso de Uso (o pai) que
contém o comportamento comum e, em seguida, criar dois Casos de Uso filho especializados
que herdam o comportamento do pai e que contêm as diferenças específicas para fazer o
pagamento online, ou por telefone.
MODELAGEM DE DADOS
A modelagem de dados é o processo que formaliza o ciclo de vida dos dados de modo que
possam ser tratados de um jeito formal, por exemplo, o armazenamento em um banco de
dados. Trata-se, portanto, de uma representação conceitual de objetos de dados, de suas
associações e regras de manipulação. Ela auxilia na representação visual dos dados e no
modo como as regras de negócios e demais imposições regulatórias devem ser cumpridas.
Um exemplo dessas imposições é a Lei Geral de Proteção de Dados ― mais conhecida pelo
acrônimo, LGPD ―, que impõe diversas regras sobre a transparência e a proteção do uso de
dados. Os modelos de dados aumentam a qualidade dos dados dos sistemas, uma vez que
fazem uso de convenções de nomenclatura e de segurança.
Fonte:Shutterstock
O modelo de dados indica quais são os dados necessários e como devem ser organizados,
ao invés de apontar quais operações precisam ser feitas. Os tipos de técnicas mais comuns
para representar os modelos de dados são:
MODELO DE DADOS
Na sua essência, o modelo de dados visa a garantir que todos os objetos de dados ―
que serão usados pelo sistema ― sejam representados com precisão. A ausência de
dados pode produzir inconsistências com grande impacto para o negócio do cliente.
Em relação aos bancos de dados dos sistemas, os modelos de dados ajudam a fazer os
projetos nos níveis conceitual, físico e lógico. O modo como o modelo é estruturado ajuda a
definir as tabelas relacionais, seus campos, chaves primárias e estrangeiras e o modo como
devem ser manipulados para atender às regras dos negócios. É um processo trabalhoso, mas
investir na construção de um modelo de dados de qualidade vai trazer benefícios no longo
prazo tanto sob o ponto de vista tecnológico, com a facilidade de manipulação e manutenção
dos dados, como do ponto de vista do negócio.
Conceitual
Define o que está contido no sistema. Seu objetivo é a organização, definição do escopo, dos
conceitos e das regras de negócios.
Lógico
Físico
Este modelo descreve a forma como o sistema será implementado usando um sistema de
banco de dados específico. O objetivo é a implementação do banco de dados que vai, de fato,
operar.
EXEMPLO
Exemplos de entidades são Escola e Aluno. O nome, matrícula e endereço são exemplos de
atributos da entidade Aluno. Um exemplo de relacionamento entre as entidades Escola e Aluno
é dado por “Uma Escola pode ter vários Alunos”.
Em relação aos modelos de dados lógicos, o foco está na definição da estrutura dos dados e
nas relações entre eles. Ele é iniciado a partir do modelo conceitual e da análise das
requisições técnicas e de desempenho das operações que serão realizadas com os dados.
Esse modelo cria a base para o modelo físico. Ele não está vinculado a nenhuma tecnologia
específica, mas a forma como os dados serão estruturados visa a obter a otimização do
desempenho e segurança deles apesar de sua estrutura de modelagem ser genérica.
Uma das técnicas mais comuns para representá-lo é através do diagrama Entidade-
Relacionamento, conforme pode ser visto na Figura 11.
Fonte: O Autor
SAIBA MAIS
A entidade Produto possui os atributos preço, descrição e código e a entidade Tipo de Produto
possui os atributos código e descrição. Além disso, as entidades são relacionadas entre si e os
atributos códigos são utilizados para identificar de forma única cada elemento de suas
respectivas entidades.
Existe outra etapa importante a respeito do modelo lógico, que é a normalização dos dados.
Trata-se de uma técnica de organizar os dados de modo a evitar problemas de inconsistências
entre eles.
ATENÇÃO
Na seção “Explore +”, são feitas algumas sugestões para você se aprofundar mais sobre o
tópico normalização de dados.
Por fim, o modelo de dados físicos descreve detalhadamente como será a implementação no
banco de dados. Com esse modelo, o desenvolvedor pode visualizar como os dados serão
armazenados no banco de dados e usá-lo para fazer geração do esquema do banco de dados.
Shutterstock
Na Figura 12, as entidades são representadas por tabelas com campos e seus respectivos
tipos de dados. Por exemplo, a tabela Produto possui os atributos “código”, que é do tipo
inteiro, e “descrição,” que é um tipo “cadeia de caracteres”.
CADEIA DE CARACTERES
RESPOSTA
A sequência correta é:
A evolução do sistema pode ter impacto significativo no que foi feito até então. No sentido de
construir um sistema que realmente atenda às expectativas do cliente é excelente, pois as
constantes interações fortalecem o entendimento e se concretizam em módulos que atendam
às requisições do negócio, por outro lado, para o desenvolvedor, torna-se um grande desafio
para que tenha tempo de reagir rapidamente e apresentar as melhorias e correções levantadas
para as próximas iterações através de incrementos no protótipo.
Shutterstock
VERIFICANDO O APRENDIZADO
A) Modelagem de dados, pois identifica o fluxo de dados no sistema que dão suporte para o
negócio.
D) Modelagem de processos, dado que faz a conexão entre a concepção do sistema até a sua
disponibilização para o usuário.
2. A FASE DE MODELAGEM DE DADOS TEM POR OBJETIVO FORMAR
CONJUNTOS DE OBJETOS DE DADOS ESSENCIAIS PARA OS
NEGÓCIOS. EM RELAÇÃO À FASE DE MODELAGEM DE DADOS, É
CORRETO AFIRMAR QUE:
A) Detalhes sobre como os dados serão implementados são tratados nesta fase.
B) Por ser uma etapa avançada da RAD, nela são tratados cenários de testes.
GABARITO
1. A RAD possui fases com propósitos específicos. Nesse sentido, selecione a opção
correta que tem como objetivo capturar todas as informações relevantes sobre o
propósito do sistema e como ele se contextualiza no negócio:
A modelagem de negócios levanta aspectos da dinâmica em que o sistema vai operar, ou seja,
atividades e pessoas relacionadas aos negócios sob análise.
2. A fase de modelagem de dados tem por objetivo formar conjuntos de objetos de dados
essenciais para os negócios. Em relação à fase de modelagem de dados, é correto
afirmar que:
Na fase de modelagem de dados, além da identificação das entidades do negócio, elas são
detalhadas e é feito o mapeamento de como se relacionam entre si, além de tratar o modo
como será feita a implementação do modelo de dados.
MÓDULO 3
Definir o design de interface com o usuário na RAD
Shutterstock
Questões relacionadas à forma, cor e espaço devem ser tratadas quando se considera um
sistema que deve resolver problemas e que será usado por diversos usuários. A interatividade
do usuário com um sistema é dinâmica, pois trata de eventos que são acionados a partir das
ações do usuário para atingir seus objetivos, logo é necessário que o sistema seja intuitivo e
que, além disso, leve em consideração restrições que o usuário possa ter tanto físicas, como
de ambiente tecnológico que o software vai operar.
Fonte:Shutterstock
Quando se fala sobre design de um sistema, o pensamento mais comum é fazer uma
associação com elementos de interface do usuário, normalmente, referenciados pelo acrônimo
do inglês UI (User Interface) , ou, ainda, GUI (Graphical User Interface) , que tratam de
componentes visuais com os quais o usuário vai interagir, tal como botões, janelas e barras de
rolagem.
Mas existe outro elemento muito importante que também compõe o projeto de interface de um
sistema, que é a experiência do usuário, conhecido pelo acrônimo em inglês UX (User
Experience). Ambos os conceitos serão tratados com mais profundidade mais adiante.
PROTÓTIPO DE INTERFACE
COMENTÁRIO
Um meio pelo qual todos os envolvidos no projeto podem usar como um ponto de
referência para se comunicarem.
Facilita o engajamento dos usuários, pois podem fazer comentários sobre algo com que
podem interagir, facilitando, assim, o trabalho posterior da equipe de desenvolvimento.
ATENÇÃO
A NECESSIDADE DA CONTEXTUALIZAÇÃO
A sociedade evoluiu em muitos aspectos, inclusive no acesso à informação. Atualmente, os
sistemas são usados para diversas aplicações, desde operações financeiras, educativas e de
entretenimento. Além disso, os sistemas operam em diversas plataformas, como aplicações
web e móveis.
O perfil do usuário também está mais abrangente, desde as pessoas que têm mais facilidade
de usar tecnologias, as que ainda não estão habituadas e aquelas que possuem restrições
visuais, por exemplo. Portanto, os desafios de projetar uma interface de usuário ficaram bem
mais complexos no sentido de que são muitas perspectivas que devem ser observadas. Por
outro lado, existem muitas ferramentas e frameworks disponíveis para apoiar o
desenvolvimento de protótipos.
Fonte:Shutterstock
Os elementos de interface, tais como os botões, barras de rolagem e menus devem ter um
comportamento previsível, isso significa dar previsibilidade para os usuários, de modo que a
interação com os componentes seja intuitiva.
A interface deve ser simples, ou seja, os elementos devem atender aos propósitos dos
usuários.
A organização dos elementos deve ser legível. Para obter isso, é importante que haja uma
hierarquia que os relacione, além da preocupação em fazer alinhamentos que priorizem o bem-
estar do usuário.
O uso de recursos de cores e contrastes deve ser moderado e sempre com o propósito de
guiar o usuário para realização de suas tarefas.
Os tamanhos das fontes, estilo ― negrito e itálico, por exemplo ―, maiúsculas e distância entre
letras também devem ser contextualizados com o objetivo de dar destaque para o usuário
sobre o significado de uma mensagem. Por exemplo, um texto em letras maiúsculas pode ser
usado para destacar o cuidado que o usuário deve ter ao realizar alguma ação específica no
sistema, como excluir um registro.
Por unidade de interação, por exemplo, telas, a quantidade de ações para executar tarefas
deve ser a menor possível. O foco sempre deve ser o usuário, portanto a interface deve ser um
guia, para que progridam na execução de tarefas complexas.
Os controles devem estar próximos dos objetos que os usuários desejam controlar. Por
exemplo, um botão para enviar um formulário deve estar próximo dele.
Fornecer informações para os usuários a respeito de suas ações do sistema, como mensagens
de confirmação de envio, por exemplo.
O design dos componentes deve ser contextualizado com o posicionamento do negócio a que
se destina. No caso de sistemas para empresas, é esperado que haja um estilo visual que deve
ser mantido.
A interface deve fornecer os próximos passos de como os usuários devem proceder para
navegar no sistema e atingir seus objetivos em qualquer contexto.
A RAD é adequada para situações em que os projetos não são complexos. Por exemplo,
funciona bem para criação, ou renovação de páginas de comércio eletrônico. Portanto, a
escolha da RAD para implementar o design de interface de usuário deve satisfazer:
ESCOPO DO PROJETO
Deve ser bem definido, para que seja viável visualizar como será a versão final do sistema e,
assim, estimar os esforços e recursos necessários para o desenvolvimento do projeto.
DADOS DO PROJETO
Para aplicar a RAD, o projeto já deve ter informações sobre os dados, evitando, assim, a
necessidade de aplicar processos de análise de dados que podem consumir bastante tempo e
esforços que são difíceis de dimensionar.
DECISÕES DO PROJETO
Apesar de as interações com as partes interessadas serem muito importantes, as decisões
sobre o projeto também precisam ser rápidas. Em um projeto em que a hierarquia das decisões
é muito forte, o uso da RAD é inadequado, especialmente na confecção de um protótipo de
interface com o usuário.
EQUIPE DE PROJETO
O dimensionamento das equipes deve ser pequeno.
Em relação ao último item, parece ser simples, mas a implicação imediata é que os
profissionais dessas equipes devem ter múltiplas habilidades, ou seja, além de trabalhar com
programação visual, é esperado que o profissional tenha conhecimento sobre banco de dados,
desenvolvimento de micro serviços e arquitetura de software. Portanto, a escolha da RAD deve
levar em consideração todas estas questões. Logo, depois de analisar esses pontos, e a RAD
for a melhor opção, o processo deve seguir as seguintes etapas:
ETAPA 1
Escolha de uma equipe com profissionais que serão capazes de desenvolver projetos de
interface e que contribuam sobre a escolha dos componentes.
ETAPA 2
Analisar as metas do projeto e entender o que precisa ser feito, como se encaixam no projeto e
o que é necessário fazer para cumprir as metas.
ETAPA 3
Criar um processo iterativo, onde podem ser desenvolvidos protótipos e testes de usabilidade
até que seja atingido um ponto que se alinhe com os objetivos do projeto.
TÉCNICAS DE PROTOTIPAGEM DE
INTERFACE COM O USUÁRIO
Em outras metodologias de desenvolvimento, faz-se o uso de protótipos também. No entanto,
elas se diferenciam da RAD em relação ao objetivo do protótipo. Nas demais metodologias, o
protótipo é usado para provar conceitos e, ao longo do desenvolvimento, o sistema é
desenvolvido em características. No caso da RAD, a ideia é que o protótipo evoluirá para a
versão final do sistema. Portanto, é importante que a RAD trabalhe com o engajamento do
cliente por meio da experiência do usuário. Existem algumas técnicas para o desenvolvimento
de protótipos de interface, são elas:
SKETCHES
Trata-se de esboços de um projeto. Eles são fáceis de criar e úteis para verificar se os
conceitos e requisitos foram totalmente compreendidos sem consumir muito esforço. O seu uso
deve ser limitado ao início do projeto, pois é inadequado testar funcionalidades do sistema.
WIREFRAMES
São muito úteis para fazer uma abordagem mais complexa para mapear a interface do usuário.
Eles são mais detalhados do que os Sketches, além disso, algumas ferramentas permitem
adicionar componentes interativos. Desse modo, o usuário pode fazer navegações no protótipo
sem a implementação das funcionalidades.
MOCKUP
Também conhecida como “maquete”, é usada para refletir as opções de design para a escolha
de cores, layouts, tipografia, iconografia e aspectos visuais de navegação do produto.
PROTÓTIPOS
São modelos funcionais de sistema. São construídos para tratar tanto das funcionalidades do
produto, como também da aparência.
A escolha de uma ferramenta para desenvolver protótipos de interface com o usuário depende
de diversos fatores, mas, de um modo simples, entre os itens a serem considerados estão:
LICENÇA
A primeira preocupação de qualquer projeto deve ser a respeito dos direitos de uso de um
software. O risco de iniciar um projeto em uma versão de testes de uma ferramenta que
não poderá ser usada pela equipe posteriormente pode ser grande. Só faz sentido
analisar os demais quesitos se este item for satisfeito.
INTEGRAÇÃO
Algumas ferramentas de prototipagem geram código que pode ser usado diretamente por
algumas linguagens de programação.
FIDELIDADE
Os protótipos na RAD são essenciais para a versão final do sistema, portanto devem ser
levadas em consideração quais as diferenças entre os elementos de interface do
protótipo e o sistema esperado.
CURVA DE APRENDIZAGEM
COMPARTILHAMENTO
A tarefa de projetar o design de um sistema é complexa. Portanto, as escolhas que devem ser
tomadas logo no início do projeto RAD precisam considerar fatores que apoiem o
desenvolvimento.
VÍDEO
Projetando a interface com o usuário
VERIFICANDO O APRENDIZADO
C) Ter um ambiente que sirva como referência para que as partes envolvidas possam interagir.
GABARITO
A interface gráfica fornece um ponto de referência para que os usuários possam interagir com o
sistema e fazer comentários que vão auxiliar os desenvolvedores no direcionamento do projeto.
MÓDULO 4
A entrega de protótipos para os usuários permite que eles possam interagir com o
sistema e, portanto, munir os desenvolvedores com comentários que darão suporte para
implementarem melhorias e fazer ajustes.
Shutterstock
Ser uma metodologia voltada para entregas rápidas não quer dizer que o desenvolvedor não
precisa saber programar bem, ao contrário, pois o perfil dos profissionais de desenvolvimento
na RAD exige que tenham domínio em linguagens de programação e ferramentas/frameworks,
além de serem adaptáveis e motivados.
Muitas linguagens de programação podem ser aplicadas para um projeto RAD. Neste trabalho,
o foco está na linguagem Python por se tratar de uma escolha natural por diversos motivos.
Entre eles, estão: A simplicidade da sintaxe, disponibilidade de muitos pacotes, ampla
aceitação no mercado, uma grande comunidade engajada na resolução de problemas e licença
de software livre.
O exemplo escolhido para apresentar a RAD na prática é de um sistema simples que faz o
cadastro das informações pessoais básicas sobre um estudante e de suas notas. Ao final do
cadastro, o sistema exibe os dados que foram cadastrados, a média das notas e a situação do
estudante, ou seja, se foi aprovado, ou reprovado, ou se está em recuperação.
REQUISITOS
Aqui serão apresentados os requisitos do sistema, que são:
PROPÓSITO
Apresentar uma descrição do Sistema Simplificado de Cadastro de Notas de Alunos. Esta
descrição destina-se tanto aos usuários como aos desenvolvedores do sistema.
ESCOPO
Este software será um Sistema de Cadastro de Notas de Aluno. Ele será projetado para
informar se os alunos estão aprovados, em recuperação, ou reprovados. Além disso, os dados
são gravados em um arquivo Excel para facilitar a integração com outros sistemas. O sistema
atenderá às necessidades básicas da coordenação da escola para orientar os alunos enquanto
permanece fácil de entender e usar.
INTERFACES DO SISTEMA
O sistema foi projetado para operar no Windows.
INTERFACES DE USUÁRIO
A GUI do sistema possui botões, caixas de texto e grades, facilitando o controle por teclado e
mouse.
INTERFACES DE SOFTWARE
O software permite importar e exportar dados em um documento estruturado do MS Excel via
formato de dados XLSX.
ESPECIFICAÇÃO DE REQUISITOS FUNCIONAIS
O usuário deve ser capaz de cadastrar o nome do aluno e suas notas.
O usuário deve ser capaz de visualizar os dados cadastrados do aluno, sua média e sua
situação: Aprovado, ou reprovado, ou em recuperação.
MODELAGEM DE NEGÓCIOS
A escola RAD decidiu construir um novo aplicativo para facilitar a visualização da situação
escolar dos seus alunos. Dados como nome e notas dos alunos serão cadastrados no sistema.
Com isso, serão calculadas automaticamente as médias dos alunos e apresentada a sua
situação escolar: Aprovado, ou reprovado, ou em recuperação.
Fonte: O autor
Para poder usar os componentes gráficos do Tkinter no código é necessário escrever logo no
início do sistema as seguintes linhas de código:
import tkinter as tk
Rótulo: Que é usado para textos estáticos. No caso do sistema, foi usado para os textos
“Nome do Aluno”, “Nota 1” e “Nota 2”. Para referenciá-los no código, é necessário
escrever: [Link](janela, text='Texto estático').
Caixa de texto: São usadas para os usuários entrarem com os dados dos alunos. No
caso do sistema, foi usado para entrar com o “nome do aluno”, a “nota 1” e a “nota 2”.
Para referenciá-los no código, é necessário escrever: [Link]().
Botão: Usado para iniciar uma ação. No caso do sistema, foi aplicado para cadastrar os
dados dos alunos, calcular suas respectivas médias e determinar situação escolar em
que o aluno se encontra. Para referenciá-los no código, é necessário escrever:
[Link]();
Visão de árvore: Bastante útil para visualizar os dados. No sistema, foi usado para uma
visualização em grade dos dados dos alunos, suas médias e respectivas situações. Para
referenciá-lo no código, é necessário escrever: [Link]().
Barra de rolagem: É um componente útil para interagir com a tabela da “visão de grade”,
quando a quantidade de linhas de registros ultrapassa o limite inicial. Para usar no
código, é necessário escrever [Link]().
DETALHES DE IMPLEMENTAÇÃO
Agora, serão abordados aspectos que se referem à implementação do sistema em Python. Vá
até a seção “Explore +” e faça o download do arquivo “[Link]”, assim
será possível acompanhar a implementação.
A primeira parte está na escolha dos pacotes que foram utilizados no desenvolvimento do
sistema. No caso, foram escolhidos: Tkinter e Pandas. O Tkinter foi escolhido por ser a
biblioteca padrão de componentes gráficos do Python e poder ser utilizada em múltiplas
plataformas, apesar de o sistema, inicialmente, ter sido projetado para operar no Windows. O
pacote Pandas é útil para manipular conjuntos de dados, mais conhecidos pela expressão em
inglês de “datasets”. Para usar as bibliotecas/pacotes, foi necessário escrever no código as
seguintes linhas:
import tkinter as tk
import pandas as pd
Antes de continuar, é importante verificar se a instalação das bibliotecas está correta. Na linha
de comandos da IDE Spyder, digite a seguinte linha:
import tkinter
tkinter._test()
Pressione a tecla Enter novamente. Se tudo funcionar corretamente, aparecerá uma janela,
conforme a figura 20.
Fonte:Shutterstock
Caso não tenha aparecido a janela, houve algum problema de instalação e será necessário
corrigi-lo. Com os problemas de instalação resolvidos, passa-se à criação dos elementos de
interface gráfica.
Na parte principal do programa, escreva as seguintes linhas de código, conforme a figura 21:
Fonte:Shutterstock
A primeira linha trata da instanciação de um objeto “raiz” do Tkinter onde serão colocados os
demais componentes gráficos.
Na linha 2, é feita a instanciação do objeto principal do projeto, onde o ciclo de vida dos
componentes será gerenciado – isso inclui a criação, tratamento de ações e liberação para a
memória.
Na linha 5, por fim, o sistema começa a executar até que o usuário feche a janela principal.
Agora vem a construção do ciclo de vida do programa. Na figura 22, é apresentado o trecho
inicial do ciclo de vida dos componentes.
Shutterstock
Mesmo para um projeto pequeno, existem muitos detalhes a ser observados. Logo na linha 1
está a implementação da classe principal do sistema. É nessa classe que vai estar a lógica do
tratamento do ciclo de vida dos componentes gráficos. Das linhas 4 a 21, cada objeto que se
refere a um componente gráfico é instanciado. Em especial, merece atenção a linha 11:
Nessa linha, o objeto ‘btnCalcular’ do tipo ‘[Link]’ recebe o texto ‘Calcular Média’, que vai
aparecer no botão e, além disso, é associado à função “fCalcularMedia”.
Que é a função “construtora” da classe, ou seja, o primeiro método a ser acionado no ciclo de
vida do componente raiz principal.
Um trecho interessante de ser destacado é a linha 21. Nele, é feito uma chamada para o
método “carregarDadosIniciais”. Esse método é o responsável por carregar os dados que já
estão armazenados na planilha para o componente “treeview”, que é a grade que aparece na
tela principal. Na Figura 11, é apresentado o código do método “carregarDadosIniciais”.
Shutterstock
Como dito anteriormente, o objetivo desse método é carregar os dados da planilha para o
componente “treeview” que é a grade que aparece na janela principal. Um dos problemas que
podem ocorrer nessa tentativa de carregar os dados é que ainda não existem dados, ou
mesmo, uma planilha de onde carregá-los.
SAIBA MAIS
Caso não seja dado um tratamento explícito para essa situação de exceção, o programa vai
apresentar uma mensagem de erro, caso a planilha não exista. O ideal é detectar todas as
situações de exceção logo no começo do projeto, pois isso evitará o consumo de horas de
testes que podem ser mais bem direcionadas para tentar descobrir problemas mais complexos
que podem ser vulnerabilidades para o sistema. O tratamento de exceção foi dado pela
aplicação das cláusulas “try-except” (linhas 2 e 21).
Com apenas um único comando, os dados da planilha de dados dos alunos são carregados
para a variável “dados”. Isso ocorre com o uso da função “read_excel” da biblioteca “pandas”.
Com isso, esses dados podem ser facilmente manipulados no código. O nome pelo qual esse
tipo de dado é conhecido é “datasets”. Das linhas 6 a 20, os dados são obtidos da variável
“dados” e inseridos no componente “treeview”. Caso ocorra algum problema, será enviada a
mensagem “Ainda não existem dados para carregar”.
Novamente, deve ser destacado o bloco “try-except” nas linhas 2 e 17, pois o sistema está
esperando um nome ― que é um campo texto ― e duas notas ―, que são campos numéricos.
Caso o usuário entre com um dado inválido, ao invés de gerar uma falha o sistema vai exibir a
mensagem “Entre com dados válidos”. Além disso, esse método ainda possui a cláusula
“finally” que vai ser executada de qualquer modo. No caso, os campos de entrada serão
“limpos”.
Fonte: O autor
ATENÇÃO
Outro ponto que precisa ser observado, mais no sentido da sintaxe do Python, é o uso da
palavra reservada “self”. Esse projeto foi programado orientado a objetos (POO). Na POO, a
classe é formada por atributos e métodos. Quando são feitas referências aos métodos e
atributos na própria classe, é necessário indicar sua origem com o uso da palavra “self”
seguida de “.” (ponto-final).
EVOLUÇÕES
O sistema “simplificado de cadastro de notas de alunos” é funcional. Ou seja, com o que foi
construído até agora, é possível ter reuniões com os usuários para apresentar resultados,
detectar vulnerabilidades, fazer ajustes e propor avanços.
RESPOSTA 1
RESPOSTA
Portanto, tem uma série de questões nesse exemplo que se encaixam em uma metodologia
evolutiva como a RAD. Mas é importante que fique claro que a parte mais importante da RAD
está na qualidade dos profissionais envolvidos no processo, portanto investir em qualificação
técnica e acadêmica é fundamental e no ambiente colaborativo entre as partes interessadas.
VÍDEO
Construindo o protótipo
VERIFICANDO O APRENDIZADO
1. NO INÍCIO DE UM PROJETO, É NECESSÁRIO COMPREENDER QUAIS
SÃO OS REQUISITOS QUE DEVEM SER TRATADOS PARA ATENDER ÀS
DEMANDAS DO NEGÓCIO. NESSE SENTIDO, SELECIONE A OPÇÃO
CORRETA RELACIONADA À DESCRIÇÃO DOS REQUISITOS DE UM
SISTEMA:
D) Interfaces de usuário: Identifica com quais sistemas do usuário será feita a integração do
software.
A) Propósito: Descrever as funcionalidades do sistema e como deve ser sua operação no dia a
dia.
GABARITO
CONCLUSÃO
CONSIDERAÇÕES FINAIS
No decorrer do texto, apresentamos aspectos práticos das fases da metodologia RAD, tais
como as etapas para identificar os requisitos de um sistema, as modelagens de negócios e de
dados, o design de interface com o usuário e o desenvolvimento de uma aplicação utilizando a
linguagem de programação Python.
Os benefícios da aplicação da RAD têm impacto desde a melhor utilização do tempo das partes
envolvidas até a minimização dos riscos do projeto, através de um processo colaborativo. A
escolha da linguagem Python para projetos RAD é natural devido à vasta disponibilidade de
documentação e de pacotes de componentes gráficos e de manipulação de dados que facilitam
o desenvolvimento.
AVALIAÇÃO DO TEMA:
REFERÊNCIAS
ALAVI, M. An assessment of the prototyping approach to information systems
development. In: Communications of the ACM, 27, 556-563, 1984.
KERR, J.; HUNTER, R. Inside RAD: How to Build Fully Functional Computer Systems in 90
Days or Less. New York: McGraw-Hill, 1994.
EXPLORE+
Para saber mais sobre os assuntos tratados neste tema, visite os seguintes sites na internet:
O site oficial do Python e leia sobre conceitos da linguagem e de aplicações GUI, além de
poder fazer downloads de diversos pacotes para desenvolvimento rápido.
O site oficial do Planalto do Governo Federal e procure pela lei nº 13.709. Veja também
mais detalhes sobre a Lei Geral de Proteção de Dados.
CONTEUDISTA
Sérgio Assunção Monteiro
CURRÍCULO LATTES
RAD mitigates project risks through its iterative requirement engineering process, which incorporates continuous reassessment and refinement of requirements based on stakeholder feedback during prototyping. This dynamic approach ensures that any misalignments or misunderstandings are quickly addressed and corrected before progressing further, unlike traditional methods where any discovered requirement issues can lead to costly rework due to their linear nature . Additionally, RAD's focus on frequent stakeholder involvement through JAD sessions and feedback loops enhances transparency and clarity, reducing uncertainty and risks related to requirements misunderstanding .
In RAD, prioritization occurs iteratively as part of each development cycle, rather than being set once at the project's start as in traditional models. This is due to RAD's incremental nature, where user feedback on prototypes continually influences the prioritization of requirements for each subsequent iteration . Unlike traditional methods, which often struggle with incorporating ongoing user feedback, RAD's dynamic prioritization allows for continuous adaptation to evolving user needs and project insights .
JAD sessions provide a collaborative environment where stakeholders such as users and developers discuss and define system requirements. This is essential in RAD to clarify ambiguities and ensure that the requirements are accurately captured, which helps in speeding up the software development process by eliminating misunderstandings and aligning expectations . Additionally, JAD sessions facilitate requirement prioritization, allowing for efficient resource utilization and meeting client expectations, which are critical for managing the iterative nature of RAD .
Traditional software development models struggle with the RAD methodology primarily due to their linear approach to requirements engineering. These models typically attempt to gather all requirements at the onset, which is mismatched with RAD’s iterative and evolutionary process where user understanding evolves throughout the project . Additionally, traditional models lack specific handling of continuous change management and prioritization of requirements that are necessary as RAD progresses through repeated prototype iterations and evolves user feedback, making them less adaptable than the RAD approach .
Data modeling in RAD is integral in formalizing the lifecycle of data so that it's consistently and efficiently managed throughout development iterations. It involves creating a conceptual representation of data objects, their associations, and manipulation rules, which fosters high data quality and adherence to business rules . Through visual representations, such as UML diagrams and ER models, it ensures that requirements are accurately translated into system functionality, minimizing inconsistencies and ensuring that all data needs are met accurately, thereby enhancing overall system quality .
The requirements document serves as a critical communication tool in the system development lifecycle, conveying system requirements to stakeholders such as customers and developers. In RAD, it acts as a reference for system evaluation, enabling the construction of various tests, verification, and validation processes, and assisting in change control management . Although RAD focuses on rapid iterations, having a clear documentation of requirements helps maintain alignment and provides a basis for validating prototype compliance against defined requirements during stakeholder reviews .
Prototype validation in RAD supports agility by fostering flexibility and customer collaboration through continuous user feedback and iterative development. Each prototype serves as a tangible representation of the system, allowing customers to provide immediate feedback, thus ensuring that the development is closely aligned with user requirements and needs . This ongoing validation process also enables quick adjustments to the prototype, promoting flexibility in accommodating changes and new insights without extensive project delays. Such iterative involvement of customers ensures their active engagement and ultimately leads to higher satisfaction and system alignment with intended objectives, which aligns well with agile principles .
In RAD, prototyping is a key tool used to engage stakeholders directly by allowing them to interact with a functional, albeit limited-scope, version of the system. This hands-on interaction fosters clearer communication and understanding of requirements and system objectives, while also providing an opportunity for stakeholders to provide immediate feedback, which is then used to iteratively improve the prototype in subsequent cycles . This iterative validation process ensures that the final system aligns closely with user expectations and requirements, reducing the risk of project failure .
Card sorting is an effective technique for prioritizing requirements in RAD as it involves stakeholders directly in the decision-making process, ensuring that varied opinions and insights are considered. Participants individually rank requirements on cards, and through collaborative rounds, a consensus on priorities is reached. This method not only promotes engagement and buy-in from all parties involved but also helps to highlight differing perspectives and priorities, creating a more balanced and well-rounded prioritization of features that need immediate attention . This collaborative approach aids in achieving a clear, agreed-upon prioritization essential for RAD's iterative cycles .
Conflict management in requirements is crucial during the RAD process to ensure that the developed prototypes align with user needs and do not reflect inconsistent or contradictory requirements. Techniques such as JAD sessions and prioritization via card sorting help stakeholders collaboratively resolve conflicting requirements . By addressing and removing conflicts upfront, RAD can efficiently progress through iterations without the risk of rework due to conflicting requirements, thereby adhering to project timelines and quality expectations .