Baixe o app para aproveitar ainda mais
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:
Compartilhar