Introdução à Engenharia de
Software
Conceitos fundamentais
A situação do software
 A sofisticação do software ultrapassou nossa
capacidade de construir um software que extraia o
po...
A grandeza do software na atualidade
 A economia de todas as
nações desenvolvidas
são dependentes de
software
 Muitos si...
Custos de software
 Os custos de software geralmente determinam os
custos de sistemas.
 Em um PC:
 Windows 7 Profession...
Qualidade — Terminologias
 Erro: erro humano
 Defeito: resultado do erro evidenciado em algum
desenvolvimento ou manuten...
Perguntas frequentes
 O que é software?
 Qual a diferença entre Engenharia de Software e
Ciências da Computação?
 Qual ...
O que é Software?
 Programas de computador e documentação
associada.
 Produtos de Software podem ser, basicamente:
 Gen...
Participantes do desenvolvimento de
software sob encomenda
Qual é a diferença entre Engenharia de
Software e Ciências da Computação?
 A Ciência da Computação
se preocupa com as
teo...
Qual é a diferença entre Engenharia de
Software e Engenharia de Sistemas?
 Engenharia de sistemas se ocupa de todos os
as...
O que é um processo de software?
 Um conjunto de atividades cujo objetivo é o
desenvolvimento ou evolução do software.
 ...
O que é um modelo de processo de software?
 Uma descrição simplificada de um processo de software,
que é representada a p...
Quais são os custos de Engenharia de
Software?
 De maneira geral:
 60% dos custos são custos de desenvolvimento;
 40% s...
O que são métodos de Engenharia de
Software?
 Uma abordagem estruturada para o
desenvolvimento de software que inclui:
 ...
O que é CASE (Computer-Aided Software
Engineering)?
 Sistema de software cujo objetivo é fornecer suporte
automatizado pa...
Quais são os atributos de um bom
software?
 Atender aos requisitos solicitados pelo usuário
 Performance
 Manutenibilid...
Quais são os principais desafios
enfrentados pela Engenharia de Software?
 Sistemas legados – antigos, mas valiosos.
 He...
Leitura e discussão
 Governo fará censo para avaliar apagão de mão de
obra de TI
 Saídas para evitar o apagão de mão de ...
Construindo uma casa versus um software
 A casa
 Identificar e analisar os
requisitos
 Produzir e documentar todo
o pro...
Os papéis na equipe de desenvolvimento
Próximos SlideShares
Carregando em…5
×

02 Introdução à engenharia de software - conceitos fundamentais

693 visualizações

Publicada em

Tópicos para discussão em sala -

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
693
No SlideShare
0
A partir de incorporações
0
Número de incorporações
3
Ações
Compartilhamentos
0
Downloads
19
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

02 Introdução à engenharia de software - conceitos fundamentais

  1. 1. Introdução à Engenharia de Software Conceitos fundamentais
  2. 2. A situação do software  A sofisticação do software ultrapassou nossa capacidade de construir um software que extraia o potencial do hardware.  Nossa capacidade de construir programas não pode acompanhar o ritmo da demanda de novos programas.  Nossa capacidade de manter os programas existentes é ameaçada por projetos ruins e recursos inadequados
  3. 3. A grandeza do software na atualidade  A economia de todas as nações desenvolvidas são dependentes de software  Muitos sistemas são controlados por software  Veja – Agosto 2009
  4. 4. Custos de software  Os custos de software geralmente determinam os custos de sistemas.  Em um PC:  Windows 7 Professional – R$629,00  MS Office 2010 Professional – R$1399,00  MS Visual Studio .NET 2010 Professional – R$1899,00  Licença de acesso para um usuário SAP – R$999,00 (por ano!)  O maior custo de software é a manutenção.  A engenharia de software se preocupa com custo/benefício (ROI)
  5. 5. Qualidade — Terminologias  Erro: erro humano  Defeito: resultado do erro evidenciado em algum desenvolvimento ou manutenção do produto  Falha: divergência entre o comportamento requerido para o sistema e o comportamento real.
  6. 6. Perguntas frequentes  O que é software?  Qual a diferença entre Engenharia de Software e Ciências da Computação?  Qual é a diferença entre Engenharia de Software e Engenharia de Sistemas?  O que é um processo de software  O que é um modelo de processo de software?  Quais são os custos da Engenharia de Software?  O que são métodos de Engenharia de Software?  O que é CASE (Computer-Aided Software Engineering)  Quais são as características de um software bom?  Quais são os principais desafios da Engenharia de Software?
  7. 7. O que é Software?  Programas de computador e documentação associada.  Produtos de Software podem ser, basicamente:  Genéricos: produzidos e vendidos no mercado a qualquer cliente  Produtos sob encomenda: são desenvolvidos para um cliente em particular – MySoftware.
  8. 8. Participantes do desenvolvimento de software sob encomenda
  9. 9. Qual é a diferença entre Engenharia de Software e Ciências da Computação?  A Ciência da Computação se preocupa com as teorias e os métodos fundamentais.  A Engenharia de Software se dedica aos problemas práticos da produção de software.  As teorias da Ciência da Computação não são suficientes por si só.
  10. 10. Qual é a diferença entre Engenharia de Software e Engenharia de Sistemas?  Engenharia de sistemas se ocupa de todos os aspectos de desenvolvimento e da evolução de sistemas baseado em computadores, incluindo hardware, software e engenharia do processo.  A Engenharia de Software é parte deste processo.  Engenheiros de sistemas estão envolvidos na especificação do sistema, na definição de sua arquitetura geral, integração e desenvolvimento.
  11. 11. O que é um processo de software?  Um conjunto de atividades cujo objetivo é o desenvolvimento ou evolução do software.  Atividades comuns a todo processo de desenvolvimento de software são:  Especificação – o que o sistema deveria fazer (ou não - constraints);  Desenvolvimento – produção do software;  Validação – verificação de que o software é o que o cliente quer;  Evolução – modificações do software em resposta às mudanças de requisitos.
  12. 12. O que é um modelo de processo de software?  Uma descrição simplificada de um processo de software, que é representada a partir de uma perspectiva específica.  Exemplos de tipos de modelos de processos de software:  Workflow – sequência de atividades;  Fluxo de dados ou atividades – demonstra o fluxo da informação;  Papel/Ação – quem faz o que.  Modelos genéricos de desenvolvimento  Waterfall;  Desenvolvimento evolucionário;  Especificação formal;  Modelagem a partir de componentes reutilizáveis.
  13. 13. Quais são os custos de Engenharia de Software?  De maneira geral:  60% dos custos são custos de desenvolvimento;  40% são custos de teste.  Para software personalizado, o custo de evolução frequentemente ultrapassa os custos de desenvolvimento.  Custos podem variar, dependendo do tipo de software que está sendo desenvolvido e os requisitos de atributos como performance e confiabilidade.  A distribuição dos custos depende do modelo de desenvolvimento que está sendo utilizado.
  14. 14. O que são métodos de Engenharia de Software?  Uma abordagem estruturada para o desenvolvimento de software que inclui:  Descrição de modelos – gráficos, textuais, documentais, etc.  Regras – restrições aplicadas a modelos de sistemas.  Padrões de design - recomendações de melhores práticas.  Guias de processo – quais atividades seguir,
  15. 15. O que é CASE (Computer-Aided Software Engineering)?  Sistema de software cujo objetivo é fornecer suporte automatizado para as atividades de processo de software. Sistemas CASE são frequentemente utilizados para apoiar a aplicação dos métodos.
  16. 16. Quais são os atributos de um bom software?  Atender aos requisitos solicitados pelo usuário  Performance  Manutenibilidade – o software precisa evoluir para atender a novos requisitos.  Confiabilidade – em caso de falha o software não pode causar danos significativos ao usuário.  Eficiência – usar os recursos do sistema com parcimônia.  Usabilidade – o software deve poder ser utilizado pelos usuários para os quais ele foi desenhado.
  17. 17. Quais são os principais desafios enfrentados pela Engenharia de Software?  Sistemas legados – antigos, mas valiosos.  Heterogeneidade – diversidade crescente de plataformas, de software distribuído, mistura muito grande de software e hardware.  Demanda x Tempo de entrega
  18. 18. Leitura e discussão  Governo fará censo para avaliar apagão de mão de obra de TI  Saídas para evitar o apagão de mão de obra em TI  CIOs sofrem com a falta de talentos de TI no Brasil  Jogos Olímpicos de Londres geram 60 GB de informações por segundo
  19. 19. Construindo uma casa versus um software  A casa  Identificar e analisar os requisitos  Produzir e documentar todo o projeto  Detalhar as especificações  Identificar e projetar os componentes  Construir cada componente  Testar cada componente  Integrar os componentes  Fazer as modificações finais  Manutenção contínua  O software  Análise e definição dos requisitos  Projeto do sistema  Projeto do programa  Escrever os programas  Testes das unidades  Teste de integração  Teste do sistema  Entrega do sistema  Manutenção
  20. 20. Os papéis na equipe de desenvolvimento

×