Você está na página 1de 3

P1 2022

1) Essas e outras questões demonstram a preocupação com o software e a maneira como é desenvolvido. Uma
preocupação que tem levado à adoção da prática da engenharia de software”. Quais são essas questões? Explique 3
delas.

1. Complexidade do software: A engenharia de software ajuda a gerenciar a complexidade do software, por meio da
decomposição em módulos menores, uso de padrões de projeto e práticas de teste. Isso contribui para a entrega de um
software mais confiável e fácil de manter.

2. Qualidade do software: A qualidade do software é um aspecto crítico para a satisfação dos usuários e o sucesso do
projeto. A engenharia de software fornece técnicas e métodos para garantir a qualidade do software, como padrões de
codificação, testes automatizados e revisões de código.

3. Produtividade do desenvolvimento: A pressão para entregar software de alta qualidade em prazos apertados é uma
realidade do mercado de software. A engenharia de software ajuda a aumentar a produtividade do desenvolvimento de
software, por meio de metodologias ágeis, automação de processos e ferramentas de desenvolvimento integrado. Isso
contribui para a entrega de software no prazo e dentro do orçamento.

- Possibilidade de automatizar diversas áreas e empresas, com muito espaço para aumentar a utilização de softwares cada vez
mais complexos.
É preciso saber projetar o sistema, não só programar. Necessário ter uma preocupação com a manutenção e desenvolvimento
do sistema. Após um tempo, o sistema precisa se adaptar a novas demandas que surgem.
- Matriz de rastreabilidade, facilitando a manutenção de softwares. Se vai fazer alguma alteração, saber quais áreas precisam
ser alteradas.

2) Explique o CMMI e como o processo e a garantia da qualidade é vista por esse modelo.

O CMMI (Capability Maturity Model Integration) é um modelo integrado de qualidade que ajuda as organizações a melhorar
seus processos de desenvolvimento de software e serviços. Ele descreve cinco níveis de maturidade que uma organização
pode alcançar em seus processos:

Nível 1 – Inicial (os processos pertencem a pessoas): Nesse estágio, os processos da organização são caóticos e não
documentados. Os projetos são executados com base em habilidades pessoais e experiências individuais. As atividades são
geralmente reativas e não há um processo gerenciado para o desenvolvimento de produtos.
Empresa não possui certificação. Há atraso nas entregas, gasto excessivo, os erros são sanados de maneira simplista.

Nível 2 - Repetível: Nesse estágio, a organização adota processos básicos de gerenciamento de projetos, incluindo
planejamento, monitoramento e controle. Os processos básicos são documentados e bem definidos, mas as
vezes apenas parte da equipe está padronizada. Gestores conseguem definir planejamento claro e eficaz, mas os recursos
ainda não são ideais e as empresas ainda têm muitas perdas e desperdícios.

Nível 3 – Definido (processos pertencem a empresa): A organização estabelece um conjunto padrão de processos para todos
os projetos. Esses processos são bem definidos e documentados, e são seguidos de forma consistente em toda a organização.
Já tem várias atividades metodológicas, toda a equipe é certificada.

Nível 4 – Gerenciado: A organização coleta dados e realiza análises estatísticas para controlar e gerenciar seus processos de
forma mais eficaz. Alta maturidade. Uso de análise quantitativa e estatística. Práticas bem mais detalhadas e
planejamento mais claro. Metas conhecida por todos os envolvidos. Dados confiáveis. O planejamento é mais claro e todos
conhecem as metas.

Nível 5 - Em otimização: Nesse estágio, a organização está focada na melhoria contínua e na otimização de seus processos.
Ela usa dados quantitativos para identificar áreas de melhoria, implementando soluções e acompanhando seus resultados. A
organização é altamente ágil e flexível, respondendo rapidamente às mudanças no ambiente de negócios e às necessidades
dos clientes.

No CMMI, a garantia da qualidade é vista como um dos principais componentes do processo de melhoria contínua. Para
atingir altos níveis de maturidade no modelo, a organização deve demonstrar um compromisso com a qualidade e com a
melhoria contínua dos processos. O modelo estabelece um conjunto de práticas recomendadas para garantir que os processos
sejam executados de forma consistente e controlada, com o objetivo de garantir que o produto final atenda aos requisitos do
cliente e seja entregue dentro do prazo e do orçamento.

3) Cite e explique as atividades genéricas do processo de software.


Comunicação.
Nessa etapa é feito o levantamento de requisitos, com a intenção de entender os objetivos dos envolvidos para o projeto e
reunir requisitos que ajudem a definir os recursos e as funções do software. É necessário examinar a solicitação, identificar os
envolvidos, conduzir entrevistas e descrever o problema e as oportunidades
Planejamento.
Consiste em definir a missão do sistema, documentar os objetivos de negócio (priorizando por ordem de importância e grau
de necessidade), criar diagramas e identificar restrições e riscos.
Modelagem.
Consiste na análise e o projeto do sistema atual, a obtenção da documentação existente e a criação do modelo conceitual de
processos e dados. criando modelos para entender melhor as necessidades do software e o projeto que vai atender a essas
necessidades. É importante testar cada etapa da modelagem para identificar possíveis inconsistências e anomalias. Além
disso, é necessário avaliar o nível de estabilidade dos modelos no contexto do ambiente do usuário, no presente e no futuro, e
ajustar os modelos para suportar futuros requisitos, se necessário.
Construção.
É realizada a instalação dos equipamentos, recursos de hardware, software e redes, garantindo que o local esteja adequado.
Também é criado o ambiente de testes do sistema, com diferentes conjuntos de bibliotecas para cada nível de teste. Os
programas da aplicação são codificados, testados e documentados. Em seguida, são executados os testes de unidade e, se não
forem encontrados erros, os programas testados são transferidos para as bibliotecas de teste de integração do sistema. Depois,
são realizados os testes de integração do sistema, testando procedimentos de cópia de segurança, recuperação de arquivos e
banco de dados, interface com outros sistemas, entre outros aspectos. Se não forem encontrados erros, os programas são
transferidos para a biblioteca de teste de aceitação do usuário.
Entrega.
Envolve a preparação dos manuais do sistema e treinamento dos usuários, realização de testes de aceitação e instalação do
sistema nos locais dos usuários. Também inclui a migração do sistema para a produção, otimização pós-implementação e
desenvolvimento da estratégia de manutenção do sistema. A manutenção pode ser de melhoria funcional ou alteração
ambiental, considerando as solicitações de mudança aprovadas durante o ciclo de desenvolvimento. A entrega é concluída
com a entrega do sistema para os usuários, junto com os manuais e a desativação do sistema antigo, se aplicável.

4) Desenhe e explique os fluxos de processo linear, iterativo e evolucionário.

O fluxo de processo linear executa cada uma das cinco atividades metodológicas em sequência, começando com a
comunicação e terminando na entrega. Segue uma ordem pré-definida de atividades, e cada etapa só começa depois que a
anterior for concluída. Possui processos mais rígidos e inflexíveis.

Um fluxo de processo iterativo repete uma ou mais das atividades antes de prosseguir para a seguinte. Precisa de maior
controle e boa administração, pois é mais fácil se perder do escopo original do projeto.

Um fluxo de processo evolucionário executa as atividades de forma “circular”. Cada volta pelas cinco atividades
conduz a uma versão mais completa do software.

5) Cite exemplo de metodologia tradicional para cada item da 4.


Linear: cascata. Pode ser implementada quando requisitos são bem compreendidos e bem definidos, e razoavelmente
estáveis, ou em adaptações/ manutenção de um sistema. É mais simples e precisa de menos controle. Desvantagens: Projetos
reais raramente seguem o fluxo sequencial proposto pelo cascata. É difícil para o cliente estabelecer
explicitamente todas as necessidades. Dificuldade para adequar a incerteza natural existente no início de muitos projetos. Um
erro grave, se não detectado até o programa operacional ser revisto, pode ser desastroso. Um passo para trás implica em
refazer todo o serviço. Ocorrerá uma iteração forçada quando houver necessidade de mudanças.

Iterativo: Um exemplo de metodologia tradicional baseada em fluxo de processo iterativo é o RUP (Rational Unified
Process). Nessa metodologia, o desenvolvimento do produto é dividido em ciclos repetitivos de concepção, elaboração,
construção e transição, chamados de iterações. Cada iteração produz um incremento do produto, que é avaliado e refinado
para a próxima iteração. As mudanças podem ser incorporadas a qualquer momento do ciclo, mas devem ser gerenciadas
cuidadosamente para evitar o escopo fora do controle.

Evolucionário: Um exemplo de metodologia tradicional baseada em fluxo de processo evolucionário é o método Scrum.
Nessa metodologia, o desenvolvimento do produto é dividido em sprints, iterações curtas que duram de duas a quatro
semanas. A equipe trabalha em estreita colaboração com o cliente para priorizar as atividades que fornecem o maior valor de
negócio. No final de cada sprint, um incremento funcional do produto é entregue e avaliado pelo cliente. As mudanças podem
ser incorporadas a qualquer momento durante o processo, mas devem ser gerenciadas cuidadosamente para evitar
comprometer o cronograma.

6) Cite e comente as afirmações do manifesto ágil.

Indivíduos e interações acima de processos e ferramentas - destaca a importância de priorizar a colaboração e a comunicação
entre as pessoas em um projeto, em vez de se concentrar exclusivamente em seguir processos e usar ferramentas. É
fundamental valorizar as pessoas como a principal fonte de valor no desenvolvimento de software.
Software operacional acima de documentação completa - É essencial que o software entregue valor ao cliente, e a
documentação deve ser suficiente, mas não em excesso, para atender às necessidades do projeto.
Colaboração dos clientes acima de negociação contratual- ressalta a importância de envolver o cliente no processo de
desenvolvimento desde o início e trabalhar em estreita colaboração com ele para entender suas necessidades e expectativas.
Isso é fundamental para entregar valor ao cliente e garantir o sucesso do projeto.
Respostas a mudanças acima de seguir um plano- reconhece que os requisitos do projeto podem mudar com o tempo e que é
essencial ser flexível e adaptável para responder a essas mudanças. Os planos devem ser vistos como orientações e não como
contratos rígidos, e a equipe deve estar pronta para ajustar o curso do projeto conforme necessário.

7) Explique o conceito de escalabilidade da metodologia Scrum. Qual exemplo de projeto foi dado? -> Yahoo

Se refere à capacidade de expandir o uso do framework Scrum para equipes maiores ou projetos mais complexos, mantendo a
eficácia e eficiência da abordagem ágil. No Scrum, a escalabilidade é alcançada por meio da adoção de práticas de
coordenação e comunicação entre as equipes, bem como da implementação de estruturas de gerenciamento escaláveis

8) Quando não é possível aplicar a coleta de dados via observação? -> na tomada de decisão

A coleta de dados via observação pode não ser possível ou adequada em algumas situações, como quando o fenômeno a ser
observado é difícil de definir ou medir, a observação pode ser invasiva ou impraticável, o tempo e o custo podem ser um
problema ou quando o observador pode introduzir vieses.

Você também pode gostar