22
Introdução à Engenharia de Software Wolley W. Silva [email protected]

Introdução à Engenharia de Software Wolley W. Silva [email protected]

Embed Size (px)

Citation preview

Page 1: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Introdução à Engenharia de Software

Wolley W. [email protected]

Page 2: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Objetivo

• Entender o que é Engenharia de Software e qual a sua importância;

Page 3: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Os Softwares então em todos os lugares!

Page 4: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Introdução : O que é um software?

• Instruções (programa de computador) que, quando executadas, fornecem características, funções e desempenho desejados;

• Estruturas de dados que possibilitam aos programas manipular informações adequadamente;

• E informações que descrevem a operação e uso dos programas;

Page 5: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Introdução: A crise do Software

• O termo “crise do software” vem sendo usado na indústria de software desde 1968, quando pela primeira vez se reconheceu as dificuldades no setor.– Projetos com orçamento estourado;– Projetos entregues fora do prazo;– Software com baixa qualidade;– Software que não atingem os requisitos;– Projetos ingerenciaveis e difícil de manter;

Page 6: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Introdução : A natureza do software

1. Software é desenvolvido ou passa por um processo de engenharia; não é fabricado no sentido clássico;

2. Software não “se desgasta”, mas se deteriora; 3. A maioria dos software são construídos de

forma personalidade (sob encomenda);

Pressman, 2011

Page 7: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Introdução : A natureza do software

1. Software é desenvolvido ou passa por um processo de engenharia; não é fabricado no sentido clássico;

Produção em Serie,Atividade repetitiva

Não se faz duas vezes o mesmo software,Paga-se pela engenharia.

Page 8: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Introdução : A natureza do software

2. Software não “se desgasta”, mas se deteriora;

Hardware com o tempo Se desgasta fisicamente Com o tempo deixa de atender as

necessidadesDo usuário

Page 9: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Introdução : A natureza do software

3. A maioria dos software são construídos de forma personalidade (sob encomenda);

Page 10: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Engenharia de Software

• Sommerville, 2011– É uma disciplina de engenharia cujo foco está em

todos os aspectos da produção de software, desde os estágios iniciais da especificação do sistema até sua manutenção, quando o sistema já está sendo utilizado.

Page 11: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Engenharia de Software

Camadas da engenharia de software. Pressman, 2011

Page 12: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Processo

• Define uma metodologia que deve ser estabelecida para a entrega efetiva de um produto de software;

• A base para o controle do gerenciamento de projetos;

• Define os artefatos a serem produzidos: modelos, documentação, relatórios, etc...

Page 13: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Processo

• Processo evolucionário• Processo incremental• Processo espiral

Processo cascata

Page 14: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Métodos

• Os métodos envolvem uma ampla gama de tarefas, que incluem: – Comunicação,– Análise de requisitos,– Modelagem de projeto,– Construção de programa,– Testes – Suporte

Page 15: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Métodos

• Método Estruturado• Método Orientado a Objetos• Métodos Ágeis– Scrum– XP

Page 16: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Ferramentas

• Fornecem suporte automatizado ou semiautomatizado para o processo e para os métodos.– Ambientes de Modelagem – Ambientes de Programação – IDEs (Integrated

Development Environment)

Page 17: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Qualidade de Software

• O software que satisfaz os requisitos solicitados pelo usuário.

• Deve ser fácil de manter, ter boa performance, ser confiável e fácil de usar.

Page 18: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Aplicações da Engenharia

• Não existe técnicas e métodos universais na engenharia de software adequados a todos os ambientes e todas as empresas.

• Existem muitos tipos diferentes de aplicações.

Page 19: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Aplicações da Engenharia

• Aplicações stand-alone– Executadas em computador local. Ex. Pacote Office.

• Aplicações Web– Múltiplos usuários. Ex. Internet Banking

• Aplicações de controle embarcados– Controle de dispositivos de hardware. Ex. microcontroladores

• Sistemas de processamento em Lote– Processam grande quantidade de dados. Ex. Sistemas de

cobrança e de pagamentos.• Entre outros....

Page 20: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Fundamentos da Engenharia de Software

• Apesar de diferentes aplicações, existem fundamentos que se aplicam a todos os tipos de sistemas de software.

Page 21: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Fundamentos da Engenharia de Software

• Desenvolvidos em um processo gerenciado e compreendido.– Ter ideia clara do que será produzido e quando estará finalizado.

• Confiança e desempenho.– Se comportar conforme o esperado, sem falhas e estar disponível.

• Gerenciar a especificação e os requisitos (o que o software deve fazer).– Saber o que os clientes e usuários esperam e gerenciar suas

expectativas.• Possibilitar o reuso.

– Reutilizar o sistema já desenvolvido, em vez de escrever um novo

Page 22: Introdução à Engenharia de Software Wolley W. Silva wolley@umc.br

Conclusão

• A engenharia de software engloba processos, métodos e ferramentas que possibilitam a construção de um sistema complexo dentro do prazo e com qualidade.