0% acharam este documento útil (0 voto)
2 visualizações51 páginas

Pit e Software I

O documento apresenta um material teórico para a disciplina de Engenharia de Software, abordando conceitos fundamentais para a elaboração de requisitos e desenvolvimento de projetos. Ele enfatiza a importância de requisitos bem definidos, histórias de usuários, fluxos de trabalho e casos de uso para garantir a clareza e eficácia no desenvolvimento de software. Além disso, oferece orientações práticas e ferramentas para auxiliar os alunos na construção de suas aplicações.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
2 visualizações51 páginas

Pit e Software I

O documento apresenta um material teórico para a disciplina de Engenharia de Software, abordando conceitos fundamentais para a elaboração de requisitos e desenvolvimento de projetos. Ele enfatiza a importância de requisitos bem definidos, histórias de usuários, fluxos de trabalho e casos de uso para garantir a clareza e eficácia no desenvolvimento de software. Além disso, oferece orientações práticas e ferramentas para auxiliar os alunos na construção de suas aplicações.
Direitos autorais
© All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd

PDF Projeto Integrador Transdisciplinar em

Engenharia de Software I

Conteudista: Prof. Me. Artur Marques


Revisão Textual: Prof.ª Ma. Sandra Regina Fonseca Moreira

Material Teórico

DES AFIO

Situação-Problema 1

Situação-Problema 2

Situação-Problema 3

Problema em Foco

ATIVIDADE

Atividade de Entrega

R EFER ÊNC IAS


Referências
1/7

Material Teórico

Olá, estudante!

Vamos iniciar a disciplina abordando os conceitos


necessários para que você possa realizar a atividade
através de cada situação-problema mais à frente.

Atenção, estudante! Aqui, reforçamos o acesso


ao conteúdo online para que você assista à
videoaula. Será muito importante para o
entendimento do conteúdo.

Introdução
A ideia do desenvolvimento deste conteúdo didático é fazer com que você possa se
recordar do que você já aprendeu de forma a mantê-lo(a) focado no desafio e ter
praticamente tudo do precisa para desenvolvê-lo num lugar só.

Você também encontrará leituras e material complementares que, sinceramente te


alerto, serão essenciais no aprofundamento e desenvolvimento desse desafio. Muitas
pessoas e discentes comentam que muitos RH de empresas pedem experiência aos
candidatos. Com certeza, é bastante estranho pedir por algo dessa natureza a quem
está tentando entrar, ou desenvolver, uma carreira. Porém, com esses desafios você
tem a oportunidade de mostrar que desenvolveu seu aprendizado e que está pronto
para qualquer desafio de seleção de pessoas para concorrer de igual para igual com
qualquer outro candidato.

Vamos aproveitar para recordar agora?!

Requisitos Ágeis
Primeiramente, algumas constatações. Muitas vezes, no início de minha carreira vi

projetos com dificuldades porque seus requisitos eram mal elaborados, muitas vezes
sem sentido, e eu me sentia um completo inútil. Eu olhava para os “requisitos” e eles
não eram nada mais do que um quadro com uma infinidade de notas e postites. Eu era
desenvolvedor e tinha muitas dúvidas e, em geral, todas as pessoas envolvidas,
clientes, usuários, desenvolvedores, analistas de negócios, arquitetos de solução e

inclusive os testadores, não têm um bom entendimento do sistema como um todo e


quais são as várias personas que usam o sistema. Claro que faltava, também creio eu, a
todas essas pessoas, se apropriarem de verdade do conhecimento e dos processos do
negócio. Minha sorte foi que, o tempo e a dedicação sempre trazem frutos, para o bem
ou para o mal. No meu caso, foi para o bem!

Então respire fundo e se prepare para pensar e analisar muito em profundidade, pois
analistas de sistemas criados no raso jamais enfrentaram grandes tempestades e ondas
avassaladoras, acredite. Aqui serão apresentadas dicas preciosas para você

desenvolver seu trabalho com menos incerteza, vindas de um “velho marujo”.


Um bom requisito deve dizer a cada membro do público exatamente qual é a
funcionalidade esperada e nunca gerar uma miríade de perguntas de todos os
envolvidos. Frequentemente, é difícil solicitar informações a um cliente, mas

documentar para desenvolvedores nunca deve ser tão difícil. E nesse caso você vai
possuir múltiplos “chapéus”; ora será analista de negócios, ora desenvolvedor, ora etc.

Bons requisitos precisam de:

Histórias de usuários;

Testes de Aceitação do Usuário;

Fluxo de Trabalho;

Detalhes dos Requisitos;

Wireframes.

Sem nenhuma das seções mencionadas, os requisitos começam a perder valor e


sentido. Muitas vezes, quando sou chamado para dar consultoria, vejo times ágeis e

especificações de sistemas como um “punhado de gente bem-intencionada que não


consegue escrever ou muitas vezes ler o livro que ganharam”. Daí fica realmente difícil
construir algo se nem entendemos o português que está escrito, não é mesmo?! Cada
seção de análise traz muito para a mesa e muitas vezes são julgadas como uma "perda
de tempo", porém, quando vamos codificar, fazem toda a diferença.

Olhe só:

Histórias de Usuários
Indica todos os cenários dos usuários envolvidos. O padrão mundial disso é:
Como ALGUM PAPEL,
EU QUERO FAZER ALGUMA COISA, PARA
QUE POSSA OBTER ALGUNS BENEFÍCIOS.

Ou seja,

Como GERENTE DE CONTAS A RECEBER, EU QUERO ter uma


relação de devedores por safra (meses vencidos 0d, 60, 90d, 180,
360d), PARA QUE POSSA encaminhar às empresas de cobrança
por seguimento e especialidade delas.

Por exemplo,

Entendeu o que esperamos de você. Dezenas de cartões de história do usuário


completos, claros, concisos, especificando a ação e o que se espera, incluindo para

que serve.

Por favor, pense como um profissional, e você vai pensar, “mas sou aluno”, sim todos
nós somos alunos, incluindo o autor desse material, mas atitude é tudo e é isso que
queremos de você. Atitude positiva e construtiva!

As histórias de usuários são essenciais para definir exatamente quem fará o quê e por
quais razões.
Fluxo de Trabalho
Isso deve incluir uma imagem das telas envolvidas (você fará isso na IHC e no protótipo
das telas; riqueza de detalhes é fundamental). Os estados de erro (incluindo as telas
de mensagem de erros) e as alterações de visualização com base na função devem ser
documentados. Aqui, uma imagem vale mais que mil palavras, pois os detalhes do fluxo
através do recurso podem ser bastante complexos, e é difícil explicar os detalhes na
próxima seção (aqui, visão é tudo, me desculpem os sinestésicos e auditivos).

Segue uma lista de alguns para você usar na construção de sua aplicação. Eles ajudarão
a explicar o sistema através de fluxos e vão apoiar no desenvolvimento. Suas versões

demo vão permitir que você utilize pelo tempo desse desafio, tranquilamente, portanto,
não “durma no ponto”. São todos amigáveis e não precisam de curso para usar. Use e
abuse:

Gliffy Creately Lucidchart Canva Diagrams

Detalhamento dos Requisitos


Esses são os detalhes do recurso. Documente todas as telas e todos os campos,
rótulos, validações, mensagens e ações. Esta é essencialmente a especificação

funcional dos detalhes da(s) tela(s) envolvida(s). Por estar no contexto do wireframe
(próxima seção), é mais conciso. Você pode simplesmente fazer referência ao nome do
campo, em vez de declarar detalhadamente tudo sobre o campo. Você pode manter os
detalhes no comprimento do campo, obrigatório etc.

Casos de Uso
No início de um projeto, você precisa de vários dias para elicitar e, por que não, prever
os requisitos de alto nível e entender o escopo, nesse caso, é o que você acha que o

sistema deve fazer.


Seu objetivo é ter uma ideia do que é o projeto, não documentar em detalhes a
operacionalidade do sistema.

A documentação pode vir mais tarde, se você realmente precisar dela. Para seu modelo

de requisitos inicial, minha experiência é que você precisa de alguma forma de:

Modelo de uso: permite que você explore como os usuários


trabalharão com seu sistema. Pode ser uma coleção de casos de
uso essenciais ou uma coleção de histórias de usuário;

Modelo de domínio inicial: identifica os tipos de entidade de


negócios fundamentais e os relacionamentos entre eles. Os
modelos de domínio podem ser descritos como uma coleção de
cartões, um diagrama de classe macro, ou até mesmo um modelo
de dados geral. Este modelo de domínio conterá apenas
informações suficientes: as principais entidades do domínio, seus
principais atributos e os relacionamentos entre essas entidades.
Seu modelo não precisa ser completo, ele só precisa cobrir
informações suficientes para que você se sinta confortável com os
conceitos de domínio primário. (coloquei literatura de referência
na sessão de Material Complementar e deve ser mandatoriamente
lida, por gentileza);

Modelo de interface do usuário: para projetos intensivos de


interface de usuário, você deve considerar o desenvolvimento de
alguns esboços de tela, ou até mesmo um protótipo de interface
de usuário. (conforme coloquei no tópico Wireframe desse
material).

Mas afinal, que nível de detalhes você realmente precisa?

Minha experiência é que você precisa de artefatos de requisitos que sejam bons o
suficiente para lhe dar esse entendimento e nada mais, portanto, pense simples, porém

direto.
Veja esse exemplo de um caso de uso geral:

Nome do caso de uso geral (macro): Inscrever-se numa Disciplina

Curso Básico de Ação (trata-se de um caso de uso normal):


1 Aluno digita seu nome e número de aluno;

2 O sistema verifica se o aluno está qualificado para se inscrever no


curso. Se não for elegível, o aluno será informado e o caso de uso
será encerrado;

3 O sistema exibe uma lista de disciplinas do curso disponíveis


(naquele mês);

4 O aluno escolhe uma disciplina ou decide não se inscrever;

5 O sistema valida se o aluno está qualificado para se inscrever


naquela disciplina (pode haver disciplinas anteriores como pré-
requisito). Se não for elegível, o aluno é convidado a escolher
outra disciplina;

6 O sistema valida se a disciplina se encaixa na trilha de


aprendizagem do aluno;

7 O sistema calcula e exibe as taxas para que o aluno pague por


aquela disciplina;

8 O aluno verifica o custo e indica que deseja se inscrever ou não;

9 O sistema inscreve o aluno na disciplina e cobra por ela;

10 O sistema imprime o comprovante de inscrição na disciplina


quando o departamento de contas a receber der baixa no crédito.

A descrição acima contém informações suficientes para você entender o que o caso de
uso escrito faz e, na verdade, pode conter informações demais para este ponto do

ciclo de vida, já que apenas o nome do caso de uso pode ser suficiente para que o time
de desenvolvimento ou outra parte interessada entenda os fundamentos do que se
pede.

Porém, podemos detalhar isso, num caso de uso mais aprofundado, a que chamaremos

de caso de uso expandido.

Nome: Inscrever-se numa Disciplina

Identificador: #C 49

Descrição: Inscrever um aluno existente em uma disciplina existente desde que ele

seja elegível.

Pré-condições: O aluno precisa estar regularmente matriculado e pagando


pontualmente a Universidade.

Pós-condições: O aluno matriculado na disciplina escolhida porque é elegível, pagante


e se ainda houver vagas.

Caso Básico de Ação:

1 O caso de uso começa quando um aluno deseja se inscrever em


uma disciplina;

2 O aluno insere seu nome e RGM no sistema por meio da TELA101 -


TELA DE LOGIN;

3 O sistema verifica se o aluno está qualificado para se inscrever na


disciplina de acordo com a regra de negócios RN32 - Determinar
Elegibilidade para Matrícula na Disciplina. <Curso Alternativo Alfa>;
4 O sistema exibe a TELA102 - MENU DE DISCIPLINAS, que indica a
lista de disciplinas disponíveis;

5 O aluno indica a disciplina em que deseja se inscrever. <Curso


Alternativo Beta: O aluno decide não se matricular>;

6 O sistema valida se o aluno está qualificado para se inscrever na


disciplina de acordo com a regra de negócios RN73 - Determinar a
elegibilidade do aluno para se inscrever na disciplina. <Curso
alternativo Delta>;

7 O sistema valida se a disciplina se encaixa na programação/trilha


de aprendizagem existente do aluno de acordo com a regra de
negócios RN97 - Validar Programação/Trilha da Disciplina do Aluno;

8 O sistema calcula as taxas da disciplina com base nas taxas


publicadas no catálogo das disciplinas, os descontos de estudante
aplicáveis e os impostos. Aplica as regras de negócios RN 143 -
Calcular Taxas de Alunos, RN 107 - Calcular Descontos para Alunos
e RN59 Calcular Impostos;

9 O sistema exibe as taxas via TELA189 - Exibir a tela de taxas da


disciplina;

10 O sistema pergunta ao aluno se ainda deseja se inscrever na


disciplina;

11 O aluno indica que deseja se inscrever na disciplina;

12 O sistema inscreve o aluno na disciplina;

13 O sistema informa ao aluno que a inscrição foi bem-sucedida por


meio da TELA68 - Resumo da Matrícula da Disciplina;

14 O sistema emite a fatura/boleto para o aluno pagar pela disciplina,


de acordo com a regra de negócios RN71 - Faturar o aluno pela
disciplina;

15 O sistema pergunta ao aluno se ele deseja um extrato impresso da


matrícula que será disponibilizado após confirmação do
pagamento;

16 O aluno indica que deseja uma declaração impressa;

17 O sistema imprime um pdf da declaração de inscrição TELA39 -


Relatório de resumo de inscrição (acessível somente após
confirmação do pagamento);

18 O caso de uso termina quando o aluno pega a declaração


impressa.

Curso alternativo Alfa: O aluno não é elegível para se inscrever na disciplina.

Alfa3: O algoritmo determina que o aluno não está qualificado para se inscrever na
disciplina.

Alfa4: O algoritmo informa ao aluno que ele não pode se inscrever.

Alfa5: O caso de uso termina.

Curso alternativo Beta: O aluno decide não se inscrever em uma disciplina disponível.

Beta5: O aluno visualiza a lista de disciplinas e não encontrou aquela em que ele deseja
se inscrever.

Beta6: O caso de uso termina.

Curso alternativo Delta: O aluno não possui os pré-requisitos para alguma disciplina.
Delta6: O algoritmo determina que o aluno não é elegível para se inscrever na disciplina
que ele escolheu.

Delta7: O algoritmo informa ao aluno que ele não possui os pré-requisitos.

Delta8: O algoritmo informa ao aluno sobre os pré-requisitos de que ele precisa para se
tornar elegível para aquela disciplina.

Delta9: O caso de uso continua, e é desviado para a linha 4 do curso básico de ação
deste mesmo caso de uso.

Bem, você percebeu como é importante ser analítico, crítico e lógico nessa nossa
profissão. A clareza e declaração sem ambiguidade são fundamentais quando estamos
elicitando requisitos e/ou desenvolvendo casos de uso.

Temos aqui a descrição do mesmo caso de uso totalmente documentado. Este é um


exemplo maravilhoso de um caso de uso bem construído, mas apresenta muito mais
detalhes do que você possivelmente precisa no primeiro momento.

Se você realmente precisa desse nível de detalhe e, na prática, raramente o faz, pode
capturá-lo quando realmente precisar.

Comunicação é tudo e, nesse caso, é preciso feedback com a equipe, porque quanto
mais tempo você passar sem pedir feedback para o cliente/usuário, maior será o perigo
de se modelarem coisas que não refletem o que as partes interessadas realmente
precisam.

Dessa forma, na fase inicial do planejamento, use casos de uso simples como o do

primeiro exemplo para completar ou ilustrar os cartões de história do usuário para dar
mais clareza.

Nas fases posteriores, declare analiticamente como no segundo exemplo, afinal, fica
difícil para um desenvolvedor saber o que ele tem que fazer sem as regras de negócios
ou as telas da interface do usuário (camada de apresentação) que foram criadas. Por
isso vemos tanta coisa sem sentido por aí, porque deixaram a critério do desenvolvedor
algo que não é missão dele fazer. Lembre-se, [interface do usuário, front end e back
end] são grandes atividade que se deve trabalhar seguindo padrões e metodologias
porque uma depende da outra.

Caso você esteja no nível mais inicial possível, ainda pode recorrer ao bom e velho, e
sem dúvida alguma, muito útil, diagrama de caso de uso.
Figura 1 – Diagrama de Caso de Uso macro de uma pizzaria

Recomendo que você crie, inicialmente, todos os diagramas de caso de uso, como o
demonstrado acima, para os cartões de história do usuário como requisitos e verifique
se não falta nada, se há lógica e complementaridade e principalmente se o “bicho tem
cabeça tronco e membros”.
Tome cuidado porque há desafios no processo de levantar requisitos e convertê-los
em artefatos. Abaixo listo alguns, mas dê muita atenção a todos eles para não cometer
essas faltas.

Acesso limitado às partes interessadas do projeto (clientes e


usuários);

Partes interessadas do projeto geograficamente dispersas (estão


distantes em outras cidades, países ou regiões de difícil acesso.
Nesse caso use reuniões remotas síncronas ou documentos como
questionários);

As partes interessadas do projeto não sabem o que querem (mais


comum do que parece, nesse caso, seja um guia ou “terapeuta”);

As partes interessadas do projeto mudam de ideia (negocie, eles


fazem isso por causa do item anterior, eles vão descobrindo
conforme pensam no próprio negócio, coisa que a rotina não
deixa);

Prioridades conflitantes (saiba negociar com o sponsor, usuário ou


product owner);

Muitos participantes do projeto desejam ter voz;

As partes interessadas do projeto prescrevem soluções de


tecnologia (faça-os aterem-se à área de domínio deles, ou seja,
negócios);

As partes interessadas do projeto são incapazes de ver além da


situação atual (em tecnologia, chamamos a isso de paralisia de
paradigma, crença limitante ou a popular);

As partes interessadas do projeto têm medo de ser fixadas (é uma


questão cultural, às vezes, é necessário tempo e confiança, afinal,
as partes interessadas devem ter responsabilidades pelo bom
andamento do projeto);

As partes interessadas do projeto não entendem os artefatos de


modelagem. (conte uma história, pessoas se encantam com
histórias, a técnica de story telling veio para ficar);

Os desenvolvedores não entendem o domínio do problema (é


importante os desenvolvedores estudarem o negócio em
profundidade, não existe mais desenvolvedor “trancado numa
sala”; eles precisam ter contato com a operação para
amadurecerem e melhorarem seu entendimento sobre o negócio e
sobre o mundo);

As partes interessadas do projeto estão excessivamente focadas


em um tipo de requisito (reuniões do tipo Delphy ou Brainstorming
ajudam a tirar essas travas);

As partes interessadas do projeto exigem formalidade significativa


em relação aos requisitos (evite essa armadilha, partes
interessadas muitas vezes não conhecem toda a solução e
querem garantias impossíveis, pedir por detalhamento é um tipo
de transferência de responsabilidade. Num projeto ágil, os
requisitos e a própria arquitetura vão se revelando aos poucos);

Os desenvolvedores não entendem os requisitos (convide os


desenvolvedores a passarem um tempinho na operação, de
preferência fazendo o papel do usuário, uma semana é o
suficiente para eles entenderem tudo).

Diagrama de Classes
Vamos recordar os diagramas de classes?! Bem, eles mostram as classes do sistema,
seus inter-relacionamentos, incluindo herança, agregação e associação e as operações
e atributos das classes. Eles são usados para uma ampla variedade de propósitos,
incluindo modelagem conceitual, de domínio e modelagem de projeto detalhado.

“Arquiteturas como diagramas de classe / pacote: A arquitetura é uma


apresentação estrutural de todo o sistema. Geralmente, é descrito por diagramas

de classe ou pacote, normalmente para mostrar camadas globais (camadas). Por


exemplo, em um aplicativo com IU e banco de dados, as camadas são geralmente
definidas horizontalmente da IU para o banco de dados e um caso de uso as

percorre para atingir seu objetivo. Outros padrões de arquitetura como “MVC”
(Model-View-Controller) também podem ser escolhidos como uma arquitetura

global. A Figura.4 é um exemplo de arquitetura desenhada como um diagrama de


pacote baseado na arquitetura MVC. Todos na equipe devem compreender as
funções e significados dos componentes da arquitetura para que os membros da

equipe possam escrever códigos que se encaixem no lugar certo na arquitetura


de forma consistente. “Dependências” são frequentemente expressas neste

diagrama entre pacotes para evitar acoplamentos indesejados ou dependências


circulares. Do ponto de vista arquitetônico, as dependências circulares entre
pacotes são o problema pior e resultam em testes mais difíceis e um tempo de

construção mais longo.

Modelos de domínio como diagramas de classe ou ER (entidade-relacionamento)

/ diagramas: Um Modelo de Domínio descreve a taxonomia de conceito do espaço


do problema no qual o aplicativo funciona. No nível de comunicação humana, o

vocabulário desse modelo de domínio deve se tornar a “linguagem ubíqua” usada


em toda a comunidade de partes interessadas, incluindo usuários, especialistas de
domínio, analistas de negócios, testadores e desenvolvedores. No nível de

programação, o Modelo de Domínio também é essencial para selecionar nomes de


construções de programação, como classes, dados, métodos e outras

convenções. Uma grande parte da taxonomia conceitual (frequentemente


chamada de “entidades”) é mapeada em uma estrutura de dados persistente no
banco de dados e geralmente tem uma vida útil mais longa do que o próprio
aplicativo. Normalmente, o modelo de domínio (ou entidades) reside no pacote
“M” na arquitetura lógica se você escolher uma arquitetura “MVC” para sua

aplicação. Um diagrama ER é mais adequado para expressar um modelo de domínio


porque está vinculado mais diretamente a bancos de dados relacionais. Observe

também que esse modelo de domínio cresce com o tempo. Como o domínio está
no cerne da compreensão e comunicação do problema, manter os modelos de
domínio em crescimento na equipe (ou mais amplo, na comunidade) é muito

importante. ”

- JOBA, 2016, p.5-6

Figura 2 – Exemplo de Classes levantadas e ao lado


Diagrama de Classes Completo

Backlog de Produto
Para recordarmos, um backlog de produto é uma lista priorizada de entregas e isso
inclui novos recursos, que devem ser implementados como parte de um projeto ou
desenvolvimento de produto de software. É um artefato de tomada de decisão que
ajuda a estimar, refinar e priorizar tudo o que você pode querer concluir no futuro.

Isso ajuda a garantir que a equipe esteja trabalhando nos recursos mais importantes e
valiosos, corrigindo os bugs mais importantes ou fazendo outro trabalho importante e
crítico para o desenvolvimento do produto.

O backlog, portanto, é extremamente útil em situações em que você não consegue


fazer tudo o que está sendo solicitado, ou em contextos em que mesmo uma pequena
quantidade de planejamento ajudará muito. Muitos pensam nesta “lista” como uma lista
de tarefas pendentes e a definem exatamente dessa forma, como uma lista de coisas

que você deve fazer para entregar seu produto de software ao mercado. Na verdade,
não é necessariamente uma lista de tarefas pendentes. Pense nisso como uma lista de
desejos.

Figura 3 – Exemplo de product backlog


Fonte: Reprodução
Saiba Mais
Como você pode ver, é bom utilizar uma ferramenta para organizar o

backlog do produto. Sugiro aqui que você use o Trello porque é


simples, intuitivo, online, colaborativo e grátis.

Trello

ACESSE

Sprint Backlog
É o conjunto de itens que uma equipe multifuncional de produtos seleciona de
seu product backlog para trabalhar durante o próximo sprint.

Normalmente, a equipe concorda com esses itens durante a sessão de planejamento


do sprint. Na verdade, o backlog do sprint representa a principal saída do planejamento
desse.

Se a equipe não for capaz de completar, ou mesmo começar certos itens do sprint
backlog até o final do sprint, a equipe pode escolher adicionar esses trabalhos
inacabados ao próximo sprint backlog, caso eles ainda forem considerados de alta
prioridade, ou para o backlog do produto.

De acordo com a estrutura do scrum, toda a equipe ágil, incluindo o scrum master, o
product owner e o time de desenvolvimento, compartilhará a propriedade do sprint
backlog. Isso ocorre porque todos os membros da equipe trarão conhecimentos e
percepções exclusivas para o projeto no início de cada sprint.

Sprint backlogs são geralmente planilhas embutidas, mas também podem ser
desenvolvidas e mantidas em ferramentas de software projetadas para gerenciamento
ágil de projetos. Como essas listas incluem apenas trabalhos que podem ser concluídos
em um curto espaço de tempo, a que chamamos de SPRINT, que dura de 2 a 4
semanas, os backlogs de sprint costumam ser muito simples.

Diagrama de Atividades
Usamos Diagramas de Atividades para ilustrar o fluxo de controle em um sistema e
fazer referência às etapas envolvidas na execução de um caso de uso. Modelamos

atividades sequenciais e concorrentes usando diagramas de atividades. Portanto,


basicamente representamos os fluxos de trabalho visualmente usando um diagrama de
atividades. Um diagrama de atividades enfoca a condição do fluxo e a sequência em
que ele acontece. Descrevemos ou representamos o que causa um determinado
evento usando um diagrama de atividades.

Um diagrama de atividades é usado por desenvolvedores para entender o fluxo de


programas em alto nível. Também permite que eles descubram restrições e condições
que causam eventos específicos. Geralmente usamos o diagrama e a documentação
textual para tornar a descrição do nosso sistema o mais clara possível.

TDD E Testes
Testes de Aceitação do Usuário: Eles devem incluir todos os cenários descritos nas
histórias de usuário. Eles não devem ser muito detalhados (eles não precisam
mencionar telas específicas ou uma lista completa de ações para executar as etapas).
Devem ler:
DADA essa condição 1 e condição 2….
QUANDO eu faço a etapa 1 e a etapa 2…
ENTÃO, resultado desejado 1, resultado desejado 2….

Eles definem um conjunto de cenários reais que um testador pode percorrer para
garantir que o recurso está completo.

Esses não são scripts de teste detalhados, pois o objetivo deles é transmitir um
conjunto de testes que todos os envolvidos podem percorrer para entender como o
recurso funcionará.

Vamos conhecer um pouco de TDD – Desenvolvimento Orientado a Testes. É uma


abordagem evolutiva do desenvolvimento que requer disciplina e habilidades
significativas e, claro, boas ferramentas.

A primeira etapa é adicionar rapidamente um teste, ou seja, um código básico o


suficiente para falhar.

Em seguida, você executa seus testes, frequentemente, o conjunto de testes


completo, ainda que, por uma questão de velocidade, você possa decidir executar
apenas um subconjunto, para garantir que o novo teste de fato falhe.

Depois, você atualiza seu código funcional para que ele passe nos novos testes.

A quarta etapa é executar seus testes novamente. Se eles falharem, você precisará
atualizar seu código funcional e testar novamente.

Depois que os testes forem aprovados, a próxima etapa é começar de novo, aproveite
para refatorar qualquer duplicação de seu código conforme o necessário.

Wireframe, Mapa Conceitual e Mapa Navegacional


Wireframes: Uma imagem é necessária para cada tela envolvida. Eles podem ser
desenhos simples em um quadro branco, que são digitalizados e postos no documento
em word, ou um conjunto de caixas criadas em softwares para isso, e que depois

podem gerar imagens para serem coladas no word ou algum outro software de
documentação.

Alguns softwares para isso são:

Omni
A versão trial de 15 dias é mais que suficiente para você desenvolver todos
os wireframes do desafio.

ACESSE

Balsamiq
A versão trial de 15 dias é mais que suficiente para você desenvolver todos
os wireframes do desafio.

ACESSE

Visio
Nesse caso, veja no seu pacote de estudante (cada universidade tem o seu)
se está disponível, ou se no site da Microsoft há versões livres para
estudantes.

ACESSE
Na pior hipóteses, você pode usar algum software livre do pacote BR Office para
Ubuntu, o Microsoft Paint, ou ainda o Power Point. Caso, por fim, tenha conhecimento,
pode fazer direto em HTML5, o que vai te poupar tempo depois na hora de codificar o

front do projeto, já pensando no CSS3 inclusive.

As seguintes leituras são muito importantes para o desenvolvimento dos wireframes e


mapas:

Guia sobre wireframing para iniciantes


LIN, W. Guia Sobre Wireframing Para Iniciantes. 2020.

ACESSE

Como fazer um Mapa Conceitual

ASSISTA

Aula 15. Mapa do Site

ASSISTA
2/7

Situação-Problema 1

Caro(a), estudante.

Agora, vamos compreender o cenário que será abordado


na primeira situação-problema da disciplina.

Atente-se à situação profissional que você precisará


entender para poder realizar a atividade.

Entender o Negócio
Era uma segunda-feira daquelas, trânsito, chuva e frio. Você chegou cedo, todavia,
tinha dormido pouco porque seu smartphone havia tocado às 2h15 com o pessoal de
negócios avisando que pela manhã haveria uma reunião para discutir a implementação
de um novo sistema para um cliente que possui uma loja de cup cakes gourmet e que
quer um aplicativo mobile para incrementar suas vendas pela internet.

Tudo bem, você entra na sala de reunião e vários stakeholders estão presentes,
inclusive o cliente, com cara de poucos amigos, também pudera, na última empresa que
ele contratou, os analistas não souberam elicitar os requisitos, desprezaram a opinião
dele e construíram um APP que não funcionava; as reclamações dos clientes foram
tantas que ele simplesmente retirou do ar e, claro, teve a imagem de sua empresa

arranhada. Assim, isso vai demandar uma abordagem extremamente cautelosa e uma
análise minuciosa.

Por isso seu diretor, logo de início, na parte de apresentações, já dispara seu nome
como sendo o analista responsável por levantar os cartões de história dos usuários,

transformar em requisitos ágeis completos e apresentar os produtos para a aprovação


do cliente e sua equipe para evoluirmos para a fase de planejamento do sistema. Isso
foi uma exigência do cliente porque como já escrevemos, na última vez em que ele
tentou fazer esse APP, foi uma catástrofe atrás da outra.

O que se espera de você nesse projeto:

Utilize esse documento como sendo o seu briefing descrevendo o


negócio e as oportunidades, leia-o atentamente e anote o que for
importante;

Stands ou Loja de Cupcakes: Quanto Custa, Receitas e como Montar

ACESSE

A partir do texto e vídeo com as ideias e os comentários sobre o


negócio, você deverá criar os cartões de história do usuário para
criar um sistema para uma loja virtual de cupcakes. Foco na vitrine
virtual, pedido eletrônico, pagamento e entrega – (na seção de
atividade de entrega, você encontrará um arquivo que servirá de
base para a atividade);

Crie um mapa de afinidade das histórias dos usuários;

Agrupe as histórias e crie um backlog de produto priorizado;


Extraia os requisitos das histórias e crie tarefas para realizá-las;

Apresente um documento contendo a sua especificação ágil para


esse projeto.
3/7

Situação-Problema 2

Vamos compreender o cenário que será abordado na


segunda situação-problema da disciplina.

Atente-se à situação profissional que você precisará


entender para poder realizar a atividade.

Fazer Artefatos UML


O seu diretor e o cliente adoraram seu material de requisitos ágeis e deram sinal verde
para que você prosseguisse com a próxima fase: a de construção dos artefatos básicos
da UML e os casos de uso expandidos.

Nessa fase, eles esperam de vocês as seguintes entregas:

Diagrama de caso de uso geral;

Casos de uso expandidos;

Diagrama de classes;
Diagrama de sequência;

Apresente o documento contendo todos esses documentos


conforme a ordem.
4/ 7

Situação-Problema 3

Por fim, vamos compreender o último cenário, abordado


na terceira situação-problema da disciplina.

Atente-se à situação profissional que você precisará


entender para poder realizar a atividade.

Fazer Protótipo das Telas


Parabéns, as coisas andaram bem para o seu lado.

Seus colegas acabaram contando sobre seu conhecimento em desenvolver wireframes,

mapas conceituais e mapas de aplicativos web para a diretoria e eles acabaram


“ventilando” isso ao cliente que até o momento vem gostando do seu trabalho. Ele deu
sinal verde para que você assuma agora o compromisso com a entrega de design da
interface humano computador. Todos estão confiantes e agora é o momento de você

mostrar sua criatividade aliando usabilidade, acessibilidade e uma excelente arquitetura


de informação.
O que eles esperam que você entregue:

Mockup/wireframe das telas do APP dos cupcakes;

Mapa conceitual;

Mapa navegacional (mapa do app).


5/7

Problema em Foco

Caro(a) aluno(a), vamos lá!

Temos 3 desafios que são sinérgicos e complementares entre si, portanto, 3 etapas do
mesmo projeto.

A primeira parte é fazer você escrever as histórias do usuário a partir do texto e vídeo
indicados (estão ambos no mesmo link), explore sua criatividade e imaginação. Com
certeza, cada aluno criará o seu e não pode haver projetos iguais.

Os requisitos iniciais nos projetos Ágeis são obtidos nas escritas das User Story
(histórias do usuário) e, consequentemente, as tarefas que serão executadas ou,
nesse primeiro momento, conhecidas.

Cada história de usuário carrega consigo uma coleção de tarefas, onde a história
descreve a necessidade do usuário e a tarefa descreve como a funcionalidade será
implementada. Como a tarefa representa o trabalho real, teremos um nível de
granularidade muito maior.

A definição das tarefas para cada história ocorre quando alocamos a história na iteração
atual (SPRINT se estivermos falando de SCRUM) e isso é muito bom, pois teremos
maior feedback e detalhes para assim melhor elaborar as tarefas a serem executadas
para aquela história.
As tarefas são estimas em horas, é recomendado estimar o tamanho das tarefas entre
2-12 horas, para tarefas que requerem mais que 12 horas quebre estas em várias
tarefas menores que 12 horas.

Veja um exemplo abaixo das entregas esperadas:

Copie e cole essa Tabela abaixo num documento do Word, por exemplo, e escreva as
histórias neles, no mínimo umas 15, o máximo dependerá de quão preciso você quer
ser nesse APP dos cupcakes.

Tabela 1 – Template de Cartão de História do Usuário

ID:

Título:

Requerente:

Ação:

Comentários:

Critérios de aceitação:
CA#1...

Regras de negócio:
RN #1...

Requisito não funcional:


RN F#1...
Prioridade: [A] [B] [C] [D] [E]

Pontos de história:

Agrupe as histórias que você escrever por afinidade como você aprendeu.

Figura 4

Veja que se trata de um agrupamento por eixo temático para concentrar cartões de
história do usuário e facilitar a visualização do trabalho a ser feito.

Monte um Backlog de Produto já priorizando as histórias e colocando os cartões de

história do usuário organizados por tema. Lembre-se, isso quer dizer que todos os
cartões de história do bibliotecário comporão um tema, assim como, por exemplo, os
cartões que se refiram a função do usuário (quem pega o livro emprestado) e demais
funções.

O seu artefato de backlog terá a seguinte aparência e poderá ser feito até mesmo no
Excel, se for o caso.
Tabela 2 –Template de backlog de histórias dos usuários

História do Estimativa
ID Prioridade
usuário em pontos

Isso vai ficar mais ou menos assim:

ID História do Usuário Estimativa Prioridade

Como um usuário não


cadastrado eu quero criar
7 3 1
uma conta (login e senha)
para acesso.

Como usuário cadastrado


1 1 2
eu quero efetuar login

Como usuário cadastrado


1 1 3
eu quero efetuar logout

Criar script para apagar o


0 1 4
banco de dados
Como usuário autorizado
eu quero ver uma lista de
9 2 5
itens para que eu possa
selecionar algum

Como usuário cadastrado


eu quero adicionar,
apagar ou editar um novo
2 4 6
item à lista e ele dever[a
aparecer ou desaparecer
na mesma

Como administrado eu
8 quero ver uma lista de 8 7
contas logadas

Organize as coisas, veja nesse exemplo o que esperamos que você faça para
reconhecer as atividades envolvidas em cada cartão de história além dos artefatos
acima.
Figura 5

É apenas um exemplo, há dezenas de histórias de usuários num APP e centenas de


tarefas. É delas que tiraremos as sprints depois.

Já para o segundo desafio, vamos trabalhar a base da UML com os diagramas


essenciais.

Para ajudar você a se lembrar, aqui vai um exemplo para sua leitura, reciclagem e
exemplo de elaboração de um diagrama de sequência bem completo, levando em

consideração cenários normais e os cenários alternativos de forma simples.

Primeiramente, você deverá pensar no caso de uso geral do APP de cupcakes, abaixo
coloco um exemplo desse com outro aplicativo para servir de inspiração.
Figura 6 – Exemplo de caso de uso geral

Depois do caso de uso geral, você deverá expandir os casos de uso e descrevê-los
como coloquei na parte teórica desse documento. Lembra do exemplo? Vejamos
novamente.

Nome: inscrever-se em uma disciplina.


Identificador: #C 49.
Descrição: inscrever um aluno existente em uma disciplina existente desde que ele
seja elegível.

Pré-condições: o aluno precisa estar regularmente matriculado e pagando


pontualmente à Universidade.
Pós-condições: o aluno é matriculado na disciplina escolhida porque é elegível,
pagante e havia vagas.
Caso básico de ação:

1 O caso de uso começa quando um aluno deseja se inscrever em


uma disciplina;
2 O aluno insere o seu nome e Registro Geral de Matrícula (RGM) no
sistema por meio da TELA101 – TELA DE LOGIN;

3 O sistema verifica se o aluno está qualificado para se inscrever na


disciplina, de acordo com a Regra de Negócios (RN) 32 –
determinar elegibilidade para matrícula na disciplina; <Curso
Alternativo Alfa>

4 O sistema exibe a TELA102 – MENU DE DISCIPLINAS, que indica a


lista de disciplinas disponíveis;

5 O aluno indica a disciplina em que deseja se inscrever; <Curso


Alternativo Beta: o aluno decide não se matricular>

6 O sistema valida se o aluno está qualificado para se inscrever na


disciplina de acordo com a RN 73 – determinar a elegibilidade do
aluno para se inscrever na disciplina; <Curso alternativo Delta>

7 O sistema valida se a disciplina se encaixa na programação/trilha


de aprendizagem existente do aluno de acordo com a RN 97 –
validar programação/trilha da disciplina do aluno;

8 O sistema calcula as taxas da disciplina com base nas taxas


publicadas no catálogo das disciplinas, os descontos de estudante
aplicáveis e os impostos. Aplica as RN 143 – calcular taxas de
alunos –, 107 – calcular descontos para alunos – e 59 – calcular
impostos;

9 O sistema exibe as taxas via TELA189 – Exibir a tela de taxas da


disciplina;

10 O sistema pergunta ao aluno se ainda deseja se inscrever na


disciplina;

11 O aluno indica que deseja se inscrever na disciplina;


12 O sistema inscreve o aluno na disciplina;

13 O sistema informa ao aluno que a inscrição foi bem-sucedida por


meio da TELA68 – Resumo da Matrícula da disciplina;

14 O sistema emite a fatura/boleto para o aluno pagar pela disciplina,


de acordo com a RN 71 – faturar o aluno pela disciplina;

15 O sistema pergunta ao aluno se ele deseja um extrato impresso da


matrícula que será disponibilizado após confirmação do
pagamento;

16 O aluno indica que deseja uma declaração impressa;

17 O sistema imprime um Portable Document Format (PDF) da


declaração de inscrição TELA39 – Relatório de resumo de inscrição
(acessível somente após confirmação do pagamento);

18 O caso de uso termina quando o aluno pega a declaração


impressa.

Curso alternativo Alfa: o aluno não é elegível para se inscrever nas disciplinas.

Alfa3: o algoritmo determina que o aluno não está qualificado para se inscrever
nas disciplinas.

Alfa4: o algoritmo informa ao aluno que ele não pode se inscrever.

Alfa5: o caso de uso termina.

Curso alternativo Beta: o aluno decide não se inscrever em uma disciplina disponível.

Beta5: o aluno visualiza a lista de disciplinas e não encontrou aquela à qual ele
deseja se inscrever.

Beta6: o caso de uso termina.


Curso alternativo Delta: o aluno não possui os pré-requisitos para alguma disciplina.

Delta6: o algoritmo determina que o aluno não é elegível para se inscrever na


disciplina que ele escolheu.

Delta7: o algoritmo informa ao aluno que ele não possui os pré-requisitos.

Delta8: o algoritmo informa ao aluno sobre os pré-requisitos de que ele precisa


para se tornar elegível para aquela disciplina.

Delta9: o caso de uso continua e é desviado para a linha 4 do curso básico de


ação deste mesmo caso de uso.

Você deverá também fazer um diagrama de classes para persistência do APP dos
cupcakes. Abaixo dou um exemplo que foi utilizado para modelar uma pizzaria express.
Figura 7 – Modelagem de classes de uma pizzaria express –
Exemplo

O mais importante aqui é que você pense nas classes, organize os atributos e o tipo de
dependência, se agregação, composição etc.

O diagrama de sequência é um elemento essencial no desenvolvimento do APP. Para


ajudar você a se lembrar como faz, coloquei um outro exemplo. A partir dele
desenvolva os diagramas para o APP do cupcake.

Figura 8

Para o terceiro desafio, o importante é criar a interface gráfica do APP dos cupcakes e
apresentar protótipos de média resolução, isso incluirá as telas de mensagens de erro
entre outras coisas.
Primeiramente, crie todos os WIREFRAMES de sua aplicação, ou seja, a “cara” do
produto de seu projeto.

A ideia é que você complete todo o arcabouço arquitetônico visual de sua aplicação.

O ideal é que você gere um pdf ou uma apresentação ppt com os wireframes do APP.

Você pode utilizar o [Link] gratuitamente on-line, e criar todos os wireframes. Faça
isso para toda a aplicação, portanto, teremos muitos. Para tanto, utilize a opção
wireframe do website.

Figura 9 – Tela do [Link]


Fonte: Reprodução
Figura 10 – Exemplo de wireframe
Fonte: Reprodução

Veja o exemplo abaixo que eu fiz para um aplicativo. A partir da página central, todas as
outras vão para alguma outra página ou camada do APP. Isso é um tipo de mapa
navegacional.
Figura 11 – Exemplo simples de mapa navegacional
Fonte: Reprodução

Caso você queira pode fazer em um nível um pouco mais profundo e sofisticado, como
no exemplo abaixo, eu fiz para cada setor (tela de login à home page)

Figura 12 – Exemplo de mapa navegacional feito a mão


Fonte: Acervo do Conteudista

Depois disso, está na hora de preparar os mockups de média-alta qualidade já usando


as cores para a aplicação. Gere um pdf ou uma apresentação ppt com eles.

Aqui logo abaixo deixo um exemplo do que você deve fazer, baseado no projeto.
Figura 13 – Exemplo de mockup feito para aplicação.
Fonte: Acervo do Conteudista
6/7

Atividade de Entrega

Muito bem, estudante!

Agora que você já leu todas as situações-problema, você


pode acessar o Ambiente Virtual de Aprendizagem para
realizar a atividade de entrega.
7/7

Referências

JOBA, S. Modelagem na era do Agile - O que manter próximo ao código para escalar as
equipes do Agile. 2016. Disponível em: [Link]
the-agile-age/ Acesso em: 10/09/2021.

Você também pode gostar