Buscar

ENGENHARIA DE SOFTWARE II (DESAFIOS)

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 16 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

QUESTÃO 01 
O processo de desenvolvimento de um software é complexo e vem acompanhado de inúmeros 
problemas que devem ser solucionados ao longo do tempo. Para resolver este Desafio, você terá 
que utilizar as boas práticas de desenvolvimento de software. 
Imagine que você é desenvolvedor Web e tenha sido contratado por uma empresa do ramo 
bancário na qual buscava uma oportunidade há muito tempo. Você recebe a tarefa de 
implementar um sistema de controle de pagamentos para substituir um sistema legado. A 
primeira funcionalidade a ser implementada é um cadastro de clientes. 
a) Quais requisitos você julga necessários para fazer tal implementação? 
Pensando nesse cenário, os requisitos podem ser os seguintes: 
– O sistema deve cadastrar dados do cliente. 
– O sistema deve exibir os dados do cliente mediante código. 
– O sistema deve emitir relatórios para consulta. 
– O sistema deve permitir a consulta dos dados do cliente. 
 
b) Desenhe um diagrama de sequência (UML) que represente esse cadastro de clientes. 
Diagrama de sequência (UML) do requisito cadastrar dados do cliente: 
 
 
QUESTÃO 02 
A Engenharia de Requisitos, quando mal executada em projetos de software, pode ser a causa 
de diversos problemas, como, por exemplo, atrasos nas entregas, retrabalho, insatisfação do 
cliente, desgaste da imagem da empresa e erros que podem gerar prejuízos financeiros ou até 
mesmo a perda de vidas. 
 
 
 
 
Você, como novo contratado, precisa ajudar Paul na solução das questões levantadas. Para isso: 
Encontre pelo menos 3 problemas que foram observados e as suas possíveis soluções. 
Inicialmente, devem ser identificados todos os problemas que estão ocorrendo e que são 
provenientes de requisitos. De acordo com o cenário descrito, os seguintes problemas foram 
identificados: 
Problema 1: cada cliente quer funcionalidades específicas que atendam às suas necessidades, 
o que está fazendo com o que o desenvolvimento fique muito caro. 
Problema 2: os novos desenvolvedores estão cheios de ideias e saem implementando o que 
criam sem analisar se a funcionalidade é útil para o cliente. 
Problema 3: mudanças nas funcionalidades estão introduzindo erros em outras 
funcionalidades que antes funcionavam. 
Problema 4: a alteração de uma funcionalidade para um cliente fez parar a funcionalidade de 
outro cliente. 
Problema 5: como não existe nenhuma documentação de requisitos do produto, ninguém 
sabe os impactos das mudanças. 
 
Em seguida, deverá ser identificada uma forma de resolver os problemas identificados. 
Algumas ações a serem tomadas para cada um dos problemas: 
Solução para o problema 1: esse problema está mais relacionado com o modelo de negócios 
que vem sendo utilizado pela empresa, que permite que os clientes peçam alterações 
customizadas. Caso isso não seja desejável, o modelo de negócios deverá ser alterado, 
bloqueando solicitações específicas ou passando a cobrar de forma diferenciada por elas. 
Solução para o problema 2: quando a empresa era menor e a equipe era composta por apenas 
3 membros, a comunicação era fácil e as funcionalidades eram decididas entre eles. Agora que 
a equipe é maior e existem diversos clientes envolvidos, novas funcionalidades deveriam 
passar por um processo de priorização e entrar no planejamento das próximas versões, de 
acordo com a priorização. Você deveria implementar um processo de gerência de mudanças 
de requisitos. 
Solução para o problema 3: os requisitos não estão documentados e não é possível identificar 
o impacto das mudanças sobre as funcionalidades já implementadas. Esse é um problema 
típico de startups que evoluíram e cresceram sem práticas de Engenharia de Requisitos. Será 
necessário implementar a Especificação de Requisitos e a Rastreabilidade de Requisitos, de 
modo que os impactos possam ser identificados antes que as funcionalidades sejam alteradas. 
Solução para o problema 4: aparentemente, o produto é disponibilizado em versões 
diferentes para cada cliente, o que dificulta o gerenciamento dos requisitos. Uma forma de 
tratar esse assunto é implementar um controle mais efetivo de versões para que cada forma 
diferente de implementação seja entregue corretamente para cada cliente. 
Solução para o problema 5: novamente, está marcada a falta do Gerenciamento de Requisitos. 
É necessário definir procedimentos para documentar os requisitos e a rastreabilidade. 
 
QUESTÃO 03 
Uma empresa de software irá desenvolver um sistema para um banco. Este sistema deve ser 
bem documentado, já que o banco solicitou que todos os processos, decisões, diagramas e 
informações sejam apresentados ao final do projeto. O gerente do projeto decidiu que a melhor 
forma de modelar e documentar o sistema seria utilizando a UML. 
A UML (Linguagem de Modelagem Unificada) surgiu da união de métodos anteriores para 
análise e projeto de sistemas orientados a objetos e, em 1997, passou a ser aceita e reconhecida 
como um padrão potencial de notação para modelagem de múltiplas perspectivas de sistemas 
de informações. Hoje ela é muito utilizada durante a fase de projeto para deixar explícito como 
o sistema irá funcionar. A UML possui diversos diagramas, entre eles, o de casos de uso e de 
atividades. 
Durante uma das fases do projeto, a equipe que estava fazendo a modelagem do sistema 
precisou utilizar alguns diagramas. Veja a imagem de um destes diagramas abaixo. 
 
Informe qual diagrama da UML foi utilizado de acordo com a imagem apresentada e cite o que 
representam as setas do diagrama. 
Foi utilizado o Diagramas de classes, que é utilizado para fazer a representação de estruturas 
de classes de negócio, interfaces e outros sistemas e classes de controle. É uma representação 
da estrutura e relações das classes que servem de modelo para objetos. As setas servem para 
representar a relação entre as classes. 
 
QUESTÃO 04 
A verificação e a validação compõem juntas uma das vertentes que visam a garantia 
da qualidade dos softwares. Sendo assim, a fase de testes traz como complemento as diversas 
possibilidades de detecção de erros. 
 
Desta forma, qual tipo de teste seria mais adequado para que fosse analisado com o cliente, 
para saber se os requisitos foram atendidos? Cite outro tipo de teste que pode contribuir para 
o sucesso dessa etapa final, que é mostrar ao cliente o produto final. 
O tipo de teste em que o cliente é o protagonista é o teste de aceitação. Segundo Schach 
(2010), “o propósito do teste de aceitação é o cliente determinar se o produto atende, de fato, 
às suas especificações, conforme alegado pelo desenvolvedor. O teste de aceitação é realizado 
pelo cliente, pelo grupo de SQA na presença de representantes do cliente ou por um grupo de 
SQA independente contratado pelo cliente para esse fim.” 
Todo tipo de teste é importante, mas nesse caso um teste de requisitos ajudaria a ratificar que 
todas as funcionalidades do sistema estão de acordo com os requisitos, ou seja, com as 
necessidades do cliente. Uma outra opção poderia ser a de execução, a qual utiliza dados 
reais. 
 
QUESTÃO 05 
A garantia de qualidade de software é, juntamente com o controle de qualidade, um 
importante aliado do cliente para que ele possa confiar no produto que está adquirindo. A 
garantia de qualidade assegura que os processos da empresa estão sendo seguidos e ajuda 
a otimizá-los, adequando-os da melhor forma possível ao contexto da empresa. 
Você é estagiário da área de garantia de qualidade de uma empresa que desenvolve softwares e 
recebeu a seguinte demanda. 
 
Descreva este processo de forma textual e gráfica. Ele deve conter os seguintes elementos: 
- Nome do processo 
- Insumos (materiais necessários) 
- Resultado (o que será entregue ao final da execução do processo) 
- Passos para execução (o que deve ser feito) 
- Fluxos alternativos (desvios que o processo pode ter) 
- Fluxograma do processo (principal e alternativo) 
 
Nome do processo: imprimir documento. 
Insumos: impressora devidamenteinstalada e configurada, papel, tinta para impressão, cota 
de impressão disponível e em quantidade suficiente. 
Resultado: documento impresso. 
Passos para execução: 
1- Acessar o sistema de impressão. 
2- Informar as credenciais do colaborador da empresa (login e senha). 
3- Verificar a cota de impressão. 
4- Selecionar o documento que deseja imprimir. 
5- Realizar ajustes de tamanho de página, cor e qualidade da impressão. 
6- Imprimir o documento. 
7- Retirar o documento na impressora. 
Fluxo alternativo 1: 
1- Acessar o sistema de impressão. 
2- Informar as credenciais do colaborador da empresa (login e senha). 
3- Colaborador não tem senha válida, procurar o setor de recursos humanos para 
cadastro de nova senha. 
Fluxo alternativo 2: 
1- Acessar o sistema de impressão. 
2- Informar as credenciais do colaborador da empresa (login e senha). 
3- Verificar a cota de impressão. 
4- Colaborador não tem cota suficiente. 
5- Impressão é cancelada. 
Fluxograma do processo: 
 
 
 
QUESTÃO 06 
Em busca da melhoria de seus produtos, as empresas investem no aperfeiçoamento dos 
processos da organização e da qualidade do produto e/ou serviço. 
Sendo assim, os modelos de qualidade utilizados refletem as melhores práticas do mercado, 
auxiliando nas melhorias. 
Considere o seguinte cenário: 
 
Entre os modelos MPS-BR e CMMI, qual dos dois é a melhor opção nesse caso? Justifique a sua 
resposta. 
O modelo MPS-BR é a melhor opção. As justificativas são: 
— O custo da certificação é mais barato. 
— Foi criado para atender a necessidade de pequenas e médias empresas. 
— A implementação é mais simples. 
— É o modelo que mais se enquadra na realidade brasileira. 
 
QUESTÃO 07 
O processo de desenvolvimento de software, por ser complexo, exige um controle bastante 
efetivo em várias áreas do conhecimento e, mesmo assim, inúmeros problemas acontecem ao 
longo do processo, exigindo do gerente de projetos uma expertise que, muitas vezes, pode 
determinar o sucesso ou fracasso do projeto. 
Suponha que você está participando do planejamento inicial de um novo software. 
 
Foram passadas as seguintes tarefas para você: 
a) Fazer um mapa mental que mostre as macroetapas do projeto, tal como apresentadas no 
gráfico, e as principais atividades dentro de cada etapa. Tente colocar o maior número de 
atividades que lembrar. Essas atividades podem ser genéricas, mas são comuns a todo projeto 
de software bem estruturado. 
O desenvolvimento de um software bem estruturado pode passar por múltiplas etapas em sua 
construção, como: Iniciação, Planejamento, Execução, Controle e Encerramento. 
No mapa mental a seguir, é possível observar as principais atividades comuns a qualquer projeto 
de software: 
 
 
b) Criar uma lista com algumas das áreas de conhecimento do PMBOK e, para cada uma delas, 
descrever uma lista de ações que possam permitir um bom andamento ao projeto em questão. 
Abaixo estão listadas algumas áreas do conhecimento do PMBOK e ações que podem ser 
tomadas de acordo com o cenário apresentado: 
Gerenciamento de integração de projetos: 
–Diminuir a quantidade de horas das reuniões diárias. 
– Convidar as pessoas certas, ou seja, pessoas envolvidas diretamente com o assunto. 
– Definir a pauta das reuniões. 
– Garantir que na reunião sejam tratados somente os temas da pauta. 
Gerenciamento do escopo do projeto: 
– Gerar a EAP (Estrutura Analítica do Projeto). 
Gerenciamento do cronograma: 
– Remanejar tarefas. 
Gerenciamento de recursos do projeto: 
– Alocar recursos adicionais. 
Gerenciamento de comunicações: 
– Definição clara das pautas das reuniões diárias. 
Gerenciamento de aquisição do projeto: 
– Pressionar o fornecedor atrasado para que entregue os servidores o mais rápido possível. 
Gestão de partes interessadas do projeto: 
– Manter as partes interessadas cientes do que está ocorrendo com o projeto. 
 
QUESTÃO 08 
O plano de projeto de software trabalha com quatro elementos diferentes: arquitetura, 
interfaces, componentes e implantação. 
Imagine a situação a seguir: 
Uma empresa de desenvolvimento de software iniciou um projeto de criação de 
um game focado em pessoas com deficiência auditiva. Portanto, existe uma forte necessidade 
deste game possuir uma navegabilidade, didática e interfaces acessíveis, que permitam o uso 
sem a necessidade de sons. 
Utilizando os requisitos de software com informações coletadas de possíveis usuários do jogo, 
foi feita a modelagem e entendimento das melhores formas de apresentar as informações e 
levar uma boa experiência ao jogador. Neste elemento do projeto de software, a modelagem 
irá focar na experiência do usuário no game, ou seja, em como ele irá interagir com o software. 
Também modelará como o game irá se comunicar com outros sistemas por meio de APIs, redes 
sociais e fornecimento de informações para outros softwares. 
Sabendo quais são as necessidades do software, qual dos quatro elementos de plano de projeto 
você identifica nesta situação? E por quê? 
Nesta situação, o elemento de interfaces trabalha na forma como o jogo irá afetar a 
experiência com o usuário e também nas interfaces com outros sistemas e banco de dados. 
Neste elemento, são modeladas as interfaces internas e externas, bem como a interface do 
usuário. 
 
QUESTÃO 09 
Ferramentas de gestão de configuração de software automatizam as atividades de 
desenvolvimento de software, gestão de manutenções e garantia da qualidade de software. O 
processo de configuração de software torna-se mais ágil, confiável e rastreável, garantindo aos 
líderes dos projetos mais tempo para desenvolverem outras atividades mais gerenciais. E, como 
no caso de todas as aplicações, a todo momento surgem novas ferramentas de gestão de 
configuração de software, além de outras plataformas compatíveis. 
 
 
 
 
 
Caso nenhuma seja compatível, qual outra ferramenta poderia ser utilizada? 
As duas ferramentas seriam boas opções, pois ambas são facilmente instaláveis e 
configuráveis no Puppet como pequenos módulos. 
Atualmente, a única coisa que aponta um pouco mais de vantagens para o Kubernetes é sua 
difusão no mercado em relação ao Docker. Há muito mais instalações rodando de Kubernetes 
do que de Docker. 
Porém, ambas as ferramentas, além de compatíveis com Puppet, auxiliam no sucesso da 
construção de aplicações escaláveis, servindo de grande auxílio para profissionais de DevOps. 
Observação: o profissional de DevOps (Desenvolvedor e Operações) se responsabiliza pela 
otimização da produtividade da equipe de desenvolvedores, bem como de todas as operações 
do desenvolvimento de software. 
QUESTÃO 10 
As métricas de confiabilidade são utilizadas para especificar a probabilidade de ocorrência de 
falha em um sistema quando este estiver em uso no ambiente especificado. Ou seja, é um 
método de quantificar quantas falhas podem ocorrer em um determinado número de 
transações de um sistema. 
Existem duas métricas importantes para especificar a confiabilidade, e também mais uma 
métrica utilizada para especificar os atributos de confiabilidade do sistema. Essas métricas se 
chamam POFOD, ROCOF e AVAIL. 
Imagine que você faz parte de uma equipe que está atuando no projeto de atualização de um 
sistema de transações imobiliárias. Seu trabalho será extrair informações que permitam a 
definição da POFOD, ROCOF e AVAIL. Explique quais informações subsidiam essas métricas. 
 
Para que seja possível definir a probabilidade de uma demanda do sistema resultar em falhas 
(POFOD), é preciso verificar a quantidade de falhas do sistema diante de um certo número de 
requisições de serviço. Caso seja detectada uma falha a cada mil requisições de serviço do 
sistema, pode-se dizer que o POFOD= 0,001. 
Para a definição da taxa de ocorrência de falhas (ROCOF), será necessário observar o tempo 
entre as falhas, além do tempo total observado. 
Por exemplo, caso sejam observadas duas falhas a cada 24 horas do sistema em 
funcionamento, a ROCOF é definidacomo sendo de 12 horas entre cada falha. 
Também é importante observar o tempo de reparação ou de reestabelecimento do sistema 
após uma falha, pois o tempo que o sistema leva pra voltar ao funcionamento também está 
relacionado com a disponibilidade. 
 
QUESTÃO 11 
O foco principal dos desenvolvedores e gestores da Tecnologia da Informação (TI) é um código 
de alta qualidade; porém, a urgência nos projetos e nas cobranças de prazos impossibilita que 
essa tarefa seja executada com êxito. Um item que pode ajudar a alcançar esse objetivo é 
a revisão de software. 
Baseado nessa afirmativa, considere o seguinte cenário: 
Você é o gestor de TI de uma pequena empresa e está trabalhando com revisão 
de software de projetos em andamento. 
Você recebeu um checklist iniciado: 
 
Sua missão é analisar o checklist e complementar com outros itens para a realização da 
inspeção. 
O checklist pode ser completado com os seguintes itens: 
 
 
QUESTÃO 12 
Após o processo de desenvolvimento de um software, ele é promovido à produção. Depois 
disso, tudo o que aparecer de alteração é considerado manutenção. Sistemas legados 
são softwares que estão em produção há muito tempo e que ainda estão sendo utilizados, 
porém apresentam problemas que devem ser corrigidos para que a empresa não tenha que 
investir em um novo processo de desenvolvimento de sistemas. 
Por isso, seu desafio é fazer uma análise da manutenção de um sistema legado de contas a pagar. 
 
Portanto, organize todas as informações apresentadas aqui. Em seguida, construa a matriz 
SWOT, colocando esses dados em cada parte da matriz. 
Considerando esse cenário e as informações contidas no enunciado, a matriz SWOT pode ser 
construída da seguinte maneira:

Continue navegando