1. Processo de Produção
de Software
Bacharelado em Engenharia de Software – Aula 10
Prof.ª M.ª Elaine Cecília Gatto
2. SWEBOK
• Desenvolvido com conhecimentos recolhidos
no período de 4 décadas e revisado por
inúmeros profissionais de diversos países
envolvidos com a Engenharia de Software
3. SWEBOK
• Estabelecer um conjunto apropriado de
critérios e normas para a prática profissional
da Engenharia de Software.
• 11 áreas de conhecimentos ou KAs
(Knowledge Areas)
4. Swebok
1. Requisitos de Software
2. Design de Software
3. Construção de Software
4. Teste de Software
5. Manutenção de
Software
6. Gerenciamento de
Configuração de
Software
7. Gerenciamento de
Engenharia de Software
8. Gerenciamento de Projeto
de Software
9. Engenharia de Processo de
Software
10. Ferramentas e Métodos
de Software
11. Qualidade de Software
5. Requisitos de Software
• A ENGENHARIA DE REQUISITOS ajuda os
engenheiros de software a compreender melhor o
problema que eles vão trabalhar para resolver.
• Ela inclui o conjunto de tarefas que levam a um
entendimento de qual será o impacto do software
sobre o negócio, do que o cliente quer e de como
os usuários finais vão interagir com o software.
6. Requisitos de Software
• Requisitos funcionais: definem as funcionalidade
do software e o que o sistema deve fazer.
• Requisitos não funcionais: definem as restrições e
as características que o software deve atender ou
ter.
• Requisitos inversos: definem estados e situações
que nunca podem acontecer.
7. Design de Software
• Os requisitos são analisados para produzir
uma descrição da arquitetura do software.
• É um processo iterativo através do qual os
requisitos são traduzidos num documento
para construção do software. (PRESSMAN)
8. Construção de Software
• Codificação do sistema a partir da descrição
computacional da fase de projeto em uma outra
linguagem, onde se torna possível a compilação e
geração do código-executável para o
desenvolvimento software.
• As funcionalidades do software devem ser
testadas durante todo o processo de
desenvolvimento, e não apenas na fase de testes.
9. Construção de Software
• Fundamentos: minimização da complexidade,
antecipação de mudanças, construção para
verificação e padrões de construção.
• Gerenciamento da construção: modelos,
planejamento e métricas.
• Considerações práticas: design, linguagens,
codificação, testes, reutilização, qualidade e
integração.
10. Teste de Software
• Atividade executada para avaliar a qualidade
do produto, buscando identificar os defeitos e
problemas existentes.
• Relevante para que os erros possam ser
encontrados e corrigidos antes que o software
seja entregue ao cliente.
11. Teste de Software
• Teste funcional: verificação das regras de negócio,
das condições válidas e inválidas.
• Teste de recuperação de falhas: falhas são
provocadas a fim de verificar a eficiência da
recuperação.
• Teste de desempenho: verificação do tempo de
resposta e processamento para configurações
diferentes.
12. Teste de Software
• Teste de segurança e controle de acesso:
verificação da funcionalidade dos mecanismos
de proteção de acesso e de dados.
• Teste de interfaces com o usuário: verificação
da navegação, da consistência e de padrões.
• Teste de volume: verificação de exaustão do
software.
13. Manutenção de Software
• Atividades requeridas para fornecer suporte custo-efetivo a
um sistema de software, que pode ocorrer antes ou depois
da entrega.
• Divisão do tempo uma empresa de desenvolvimento de
software:
• 40% = processo de produção do software em geral
• 60% = manutenção
• 20% = correção de falhas
• 80% = adaptações e melhorias
14. Manutenção de Software
• Manutenção corretiva: modificação do software para
correção de erros.
• Manutenção adaptativa: alteração do software para
acomodação de mudanças em seu ambiente externo.
• Manutenção perfectiva: aprimoramento do software,
atendendo a solicitações do cliente.
• Manutenção preventiva (reengenharia): modificação
do software a fim de torna-lo mais fácil de ser
corrigido, adaptado e melhorado.
15. Gerência de Configuração de Software
• É um conjunto de atividades de apoio que
permite a absorção ordenada das mudanças
inerentes ao desenvolvimento de software,
mantendo a integridade e a estabilidade
durante a evolução do projeto.
16. Gerência de Configuração de Software
• As atividades da GCS e as respectivas ferramentas
de apoio são:
• Controle de mudança: controle e
acompanhamento de mudanças.
• Controle de Versão: registro da evolução do
projeto.
• Integração Contínua: estabelece a integridade
do sistema.
17. Gerência de Engenharia de Software
• O gerenciamento de engenharia de software pode
ser definido como a aplicação de atividades de
gerenciamento
• planejamento, coordenação, medição,
monitoramento, controle e relatórios
• para garantir que os produtos de software e os
serviços de engenharia de software sejam
entregues de forma eficiente e eficaz.
18. Gerência de Engenharia de Software
• Dois aspectos da GES:
• Engenharia de Processo: são as atividades
empreendidas para geração de políticas,
padrões e objetivos organizacionais
consistentes.
• Engenharia de Mensuração: são as atribuições
de valores e rótulos às atividades referentes à
Engenharia de Software.
19. Gerência de Engenharia de Software
• As atividades de gerenciamento de
engenharia de software podem ocorrem em
três níveis:
• Gerenciamento organizacional e de
infraestrutura.
• Gerenciamento de projetos.
• Gerenciamento de medição.
20. Gerência de Projetos de Software
• É a aplicação de conhecimento, habilidades,
ferramentas e técnicas às atividades do projeto a
fim de atender aos seus requisitos.
• O objetivo é manter o equilíbrio entre escopo,
qualidade, custos, recursos e tempo.
• A GPS Auxilia as organizações a atenderem as
necessidades de seus clientes, padronizando
tarefas do dia a dia e reduzindo o número de
tarefas, que muitas vezes são esquecidas.
21. Engenharia de Processo de Software
• Trata da adaptação, da manutenção e do
desenvolvimento dos próprios processos, assim
como das tecnologias e do treinamento que dão
suporte a esses processos.
• O objetivo da Engenharia de Processo de Software
é implementar processos novos e melhores, seja
no escopo individual, de projeto ou
organizacional.
22. Ferramentas e Métodos de Software
• Criadas para auxiliar no ciclo de vida do software.
• Automatizam algumas atividades do processo de
desenvolvimento, permitindo que o analista se
concentre nas atividades que exigem maior
trabalho intelectual.
• O objetivo é pesquisar ferramentas e métodos que
aumentem a produtividade dos desenvolvedores
enquanto reduzem a ocorrência de falhas no
desenvolvimento.
23. Qualidade de Software
• Para se ter qualidade em um produto de
software é necessário ter um processo de
desenvolvimento bem definido, que deve ser
documentado e acompanhado.
• Modelos de qualidade
• Avaliação de qualidade
• Certificação de qualidade (selos)