Áreas de conhecimento da engenharia de software

23
Processo de Produção de Software Bacharelado em Engenharia de Software – Aula 10 Prof.ª M.ª Elaine Cecília Gatto

Upload: elaine-cecilia-gatto

Post on 12-Apr-2017

28 views

Category:

Education


1 download

TRANSCRIPT

Page 1: Áreas de Conhecimento da Engenharia de Software

Processo de Produção de Software

Bacharelado em Engenharia de Software – Aula 10

Prof.ª M.ª Elaine Cecília Gatto

Page 2: Áreas de Conhecimento da Engenharia de Software

SWEBOK

•Desenvolvido com conhecimentos recolhidosno período de 4 décadas e revisado porinúmeros profissionais de diversos paísesenvolvidos com a Engenharia de Software

Page 3: Áreas de Conhecimento da Engenharia de Software

SWEBOK

• Estabelecer um conjunto apropriado decritérios e normas para a prática profissionalda Engenharia de Software.

• 11 áreas de conhecimentos ou KAs(Knowledge Areas)

Page 4: Áreas de Conhecimento da Engenharia de Software

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

Page 5: Áreas de Conhecimento da Engenharia de Software

Requisitos de Software

• A ENGENHARIA DE REQUISITOS ajuda osengenheiros de software a compreender melhor oproblema que eles vão trabalhar para resolver.

• Ela inclui o conjunto de tarefas que levam a umentendimento de qual será o impacto do softwaresobre o negócio, do que o cliente quer e de comoos usuários finais vão interagir com o software.

Page 6: Áreas de Conhecimento da Engenharia de Software

Requisitos de Software

• Requisitos funcionais: definem as funcionalidadedo software e o que o sistema deve fazer.

• Requisitos não funcionais: definem as restrições eas características que o software deve atender outer.

• Requisitos inversos: definem estados e situaçõesque nunca podem acontecer.

Page 7: Áreas de Conhecimento da Engenharia de Software

Design de Software

•Os requisitos são analisados para produziruma descrição da arquitetura do software.

• É um processo iterativo através do qual osrequisitos são traduzidos num documentopara construção do software. (PRESSMAN)

Page 8: Áreas de Conhecimento da Engenharia de Software

Construção de Software

• Codificação do sistema a partir da descriçãocomputacional da fase de projeto em uma outralinguagem, onde se torna possível a compilação egeração do código-executável para odesenvolvimento software.

• As funcionalidades do software devem sertestadas durante todo o processo dedesenvolvimento, e não apenas na fase de testes.

Page 9: Áreas de Conhecimento da Engenharia de Software

Construção de Software

• Fundamentos: minimização da complexidade,antecipação de mudanças, construção paraverificaçã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 eintegração.

Page 10: Áreas de Conhecimento da Engenharia de Software

Teste de Software

•Atividade executada para avaliar a qualidadedo produto, buscando identificar os defeitos eproblemas existentes.

• Relevante para que os erros possam serencontrados e corrigidos antes que o softwareseja entregue ao cliente.

Page 11: Áreas de Conhecimento da Engenharia de Software

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ãoprovocadas a fim de verificar a eficiência darecuperação.

• Teste de desempenho: verificação do tempo deresposta e processamento para configuraçõesdiferentes.

Page 12: Áreas de Conhecimento da Engenharia de Software

Teste de Software

• Teste de segurança e controle de acesso:verificação da funcionalidade dos mecanismosde proteção de acesso e de dados.

• Teste de interfaces com o usuário: verificaçãoda navegação, da consistência e de padrões.

• Teste de volume: verificação de exaustão dosoftware.

Page 13: Áreas de Conhecimento da Engenharia de Software

Manutenção de Software

• Atividades requeridas para fornecer suporte custo-efetivo aum sistema de software, que pode ocorrer antes ou depoisda entrega.

• Divisão do tempo uma empresa de desenvolvimento desoftware:

• 40% = processo de produção do software em geral

• 60% = manutenção

• 20% = correção de falhas

• 80% = adaptações e melhorias

Page 14: Áreas de Conhecimento da Engenharia de Software

Manutenção de Software

• Manutenção corretiva: modificação do software paracorreção de erros.

• Manutenção adaptativa: alteração do software paraacomodaçã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çãodo software a fim de torna-lo mais fácil de sercorrigido, adaptado e melhorado.

Page 15: Áreas de Conhecimento da Engenharia de Software

Gerência de Configuração de Software

• É um conjunto de atividades de apoio quepermite a absorção ordenada das mudançasinerentes ao desenvolvimento de software,mantendo a integridade e a estabilidadedurante a evolução do projeto.

Page 16: Áreas de Conhecimento da Engenharia de Software

Gerência de Configuração de Software

• As atividades da GCS e as respectivas ferramentasde apoio são:

• Controle de mudança: controle eacompanhamento de mudanças.

• Controle de Versão: registro da evolução doprojeto.

• Integração Contínua: estabelece a integridadedo sistema.

Page 17: Áreas de Conhecimento da Engenharia de Software

Gerência de Engenharia de Software

• O gerenciamento de engenharia de software podeser definido como a aplicação de atividades degerenciamento

• planejamento, coordenação, medição,monitoramento, controle e relatórios

• para garantir que os produtos de software e osserviços de engenharia de software sejamentregues de forma eficiente e eficaz.

Page 18: Áreas de Conhecimento da Engenharia de Software

Gerência de Engenharia de Software

• Dois aspectos da GES:

• Engenharia de Processo: são as atividadesempreendidas para geração de políticas,padrões e objetivos organizacionaisconsistentes.

• Engenharia de Mensuração: são as atribuiçõesde valores e rótulos às atividades referentes àEngenharia de Software.

Page 19: Áreas de Conhecimento da Engenharia de Software

Gerência de Engenharia de Software

•As atividades de gerenciamento deengenharia de software podem ocorrem emtrês níveis:

•Gerenciamento organizacional e deinfraestrutura.

•Gerenciamento de projetos.

•Gerenciamento de medição.

Page 20: Áreas de Conhecimento da Engenharia de Software

Gerência de Projetos de Software

• É a aplicação de conhecimento, habilidades,ferramentas e técnicas às atividades do projeto afim 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 asnecessidades de seus clientes, padronizandotarefas do dia a dia e reduzindo o número detarefas, que muitas vezes são esquecidas.

Page 21: Áreas de Conhecimento da Engenharia de Software

Engenharia de Processo de Software

• Trata da adaptação, da manutenção e dodesenvolvimento dos próprios processos, assimcomo das tecnologias e do treinamento que dãosuporte a esses processos.

• O objetivo da Engenharia de Processo de Softwareé implementar processos novos e melhores, sejano escopo individual, de projeto ouorganizacional.

Page 22: Áreas de Conhecimento da Engenharia de Software

Ferramentas e Métodos de Software

• Criadas para auxiliar no ciclo de vida do software.

• Automatizam algumas atividades do processo dedesenvolvimento, permitindo que o analista seconcentre nas atividades que exigem maiortrabalho intelectual.

• O objetivo é pesquisar ferramentas e métodos queaumentem a produtividade dos desenvolvedoresenquanto reduzem a ocorrência de falhas nodesenvolvimento.

Page 23: Áreas de Conhecimento da Engenharia de Software

Qualidade de Software

• Para se ter qualidade em um produto desoftware é necessário ter um processo dedesenvolvimento bem definido, que deve serdocumentado e acompanhado.

•Modelos de qualidade

•Avaliação de qualidade

• Certificação de qualidade (selos)