UNIP - Flamboyant
Ciência da computação
ENGENHARIA DE SOFTWARE
Prof. Me. Nelson batista leitão neto
Aluno: Alejandro Sasamoto Aragão - N0297G2
EXERCÍCIOS 02:
1) A reusabilidade é uma característica importante de um componente de software
de alta qualidade. Explique esta afirmativa.
A reusabilidade é a capacidade de um componente de software ser utilizado em
diferentes projetos ou contextos sem modificações significativas. Essa
característica é essencial para componentes de alta qualidade
Benefícios: Reduz custos, aumenta confiabilidade, facilita manutenção e
padronização.
Como alcançar: Baixo acoplamento, alta coesão, uso de design patterns e
princípios como DRY.
2) Quais são os problemas casuais e como podemos resolve-los, dentro da
engenharia de software? Identifique os mitos que devem ser quebrados.
Problemas comuns: Má gestão de requisitos, falta de planejamento,
comunicação ineficiente e testes insuficientes.
Soluções: Metodologias ágeis, documentação clara, gestão de riscos e
automação de testes.
Mitos a quebrar:
"Mais programadores = projeto mais rápido" (Lei de Brooks).
"Requisitos não mudam" (Software evolui).
"Testar é perda de tempo" (Bugs tardios custam mais).
3) Iniciando um projeto de Engenharia de Software, lidamos com:
Medidas e métricas: Dados quantitativos (ex.: complexidade do código).
Estimativa: Técnicas como Pontos de Função ou Planning Poker.
Análise de risco: Identificar e mitigar ameaças.
Prazos: Cronogramas realistas.
Monitoração: Acompanhamento contínuo (ex.: burndown charts).
4) O que compreendemos sobre Métricas de qualidade de software?
Avaliam corretude, manutenibilidade, eficiência, usabilidade e portabilidade. E
padrões como ISO 25010 que definem os critérios de avaliação.
5) Para que serve a coleta, computação e avaliação das métricas?
Coleta: Obter dados brutos (ex.: tempo para resolver bugs).
Computação: Transformar dados em indicadores (ex.: velocidade média de
desenvolvimento).
Avaliação: Interpretar resultados para tomar decisões (ex.: se a complexidade
do código está alta, priorizar refatoração).
Finalidade: Melhorar processos, prever falhas e garantir que o software atenda
aos padrões de qualidade.
06) Exemplifique sobre os seguintes itens de Engenharia de Software:
Planejamento / estimativas; Escopo do software; Recursos; Aplicação de
reusabilidade; Identificação dos riscos; Projeção dos riscos; Avaliação dos riscos;
Gerenciamento e monitoração dos riscos; Determinação de um cronograma para o
projeto de software.
1. Planejamento/Estimativas
o Exemplo: Uso de Planning Poker para estimar tarefas (ex.: "cadastro de
usuário = 5 pontos").
2. Escopo do Software
o Exemplo: Sistema escolar com matrículas e notas, excluindo finanças
(módulo futuro).
o Documento: Termo de Abertura (Project Charter).
3. Recursos
o Equipe: 1 PO, 3 devs, 1 QA.
o Tecnologia: React, [Link], AWS.
o Orçamento: R$ 150k (6 meses).
4. Reusabilidade
o Exemplo: Biblioteca de login com redes sociais, reduzindo tempo em
30%.
5. Identificação de Riscos
o Exemplos: Falha em API externa, atraso no design, custos subestimados.
6. Projeção de Riscos
o Matriz: Probabilidade x Impacto (ex.: API falhar = 20% chance, impacto
alto).
7. Avaliação de Riscos
o Priorização: Riscos críticos (ex.: API) vs. médios (ex.: atraso no design).
8. Gerenciamento de Riscos
o Ações: Fallback para API, designer reserva.
o Monitoramento: Dashboards no JIRA.
9. Cronograma
o Ferramenta: Gráfico de Gantt.
o Etapas: Requisitos (Mês 1), MVP (Mês 2-3), Testes (Mês 4), Deploy
(Mês 5).