SlideShare uma empresa Scribd logo
1 de 113
Baixar para ler offline
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
1 
Introdução à Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Conceitos de Engenharia de Software. 
Produto e processo de desenvolvimento 
de software. Extração, análise e especificação 
de requisitos. Métodos de desenvolvimento de 
software. Verificação, validação e manutenção 
de especificações de software. Planejamento 
e gestão de projetos. Estimativas: métricas e 
modelos de custo, estudo de viabilidade 
Engenharia de Software Ementa 
2
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Engenharia de Software Programa 
1. INTRODUÇÃO 1.1 Definições e Objetivos 1.2 Conceitos Básicos 1.3 Características do Software 1.4 Componentes e Aplicações do Software 
3
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Engenharia de Software Programa 
2. PROCESSO DE SOFTWARE 2.1 Modelo de Processo 2.2 Ciclo de Vida Clássico/Modelo Cascata 2.3 Modelo Evolucionário 2.4 Modelo Espiral 2.5 Técnicas de Quarta Geração 2.6 Desenvolvimento Rápido de Software 2.7 Combinando Paradigmas 
4
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
3. REQUISITOS DE SOFTWARE 3.1 Classificação de requisitos 3.2 Técnicas de extração de requisitos 3.3 Documento de requisitos de software 3.4 Processos de Engenharia de Requisitos 
Engenharia de Software Programa 
5
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
4. GERENCIAMENTO DE CUSTO 4.1 Planejamento 4.2 Estudo de Viabilidade 4.3 Estimativa 4.4 Métricas de Software 4.5 Gerenciamento de Pessoal 4.6 Gerenciamento de Grupos 
Engenharia de Software Programa 
6
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
5. MODELOS DE SISTEMA 5.1 Modelos de Contexto 5.2 Modelos de Comportamento 5.3 Métodos Estruturados 5.4 Métodos Orientado a Objeto – Casos de Uso 
Engenharia de Software Programa 
7
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
6.MODELO PARA PROJETO 6.1 Hierarquia de módulos e objetos 6.2 Estratégias para derivar o projeto 6.3 Qualidade do projeto: coesão, acoplamento 
Engenharia de Software Programa 
8
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
7. MODELO DE DADOS 7.1 Diagrama de Entidade e Relacionamento 7.2 Tipos de Entidades 7.3 Tipos de Relacionamento 7.4 Normalização 
Engenharia de Software Programa 
9
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
8.VERIFICAÇÃO, VALIDAÇÃO E TESTE 8.1 Planejamento de verificação e validação 8.2 Inspeções de Software 8.3 Teste de Software 
Engenharia de Software Programa 
10
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
9. EVOLUÇÃO DE SOFTWARE 9.1 Manutenção de Software 9.2 Tipos de Manutenção 9.3 Previsão de mudanças 9.4 Processo de Evolução 9.5 Evolução de Sistemas Legados 
Engenharia de Software Programa 
11
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
10. GERENCIAMENTO DE QUALIDADE 10.1 Qualidade de Processo e de Produto 10.2 Padrões de Qualidade 10.3 Controle de Qualidade 
Engenharia de Software Programa 
12
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Engenharia de Software 
Bibliografia Básica 
―Sommerville, Ian, Engenharia de Software. Ed. Addison Wesley, 8º Edição 
―PRESSMAN, ROGER, Engenharia de Software. Ed. Mc-Graw Hill, 6º Edição, 2006. 
―POMPILHO, S. Análise Essencial – Guia Prático de Análise de Sistemas. Ed. Infobook, 1995. 
13
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Engenharia de Software 
Bibliografia de Apoio 
―http://wps.prenhall.com/br_pfleeger_engsoftware_2 
― www.aw.com/sommerville_br 
―http://www.computer.org/portal/web/swebok/html/copyright 
14
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Engenharia de Software 
15 
Data 
Assunto 
10 Avaliação 
18/12/2012 Trabalho 1 – projeto parte1 Prova 1  cap1 – cap2 – cap3 – cap4 
20 Avaliação 
29/01/2013 Trabalho 2 – projeto parte2 Prova 2  cap5 – cap6 – cap7 
30 Avaliação 
26/02 a 05/03 
07/03/2013 Trabalho 3 – seminário Prova 3  cap8 – cap9 – cap10 – assunto do seminário 
Reposição 
12/03/2012 
Prova Final 
14/03/2012
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Objetivos 
•Compreender o que é Engenharia de Software e por que ela é importante. 
•Mostrar as distinções e relacionamentos entre sistema e software. 
•Mostrar as principais questões sobre engenharia software. 
•Compreender questões profissionais e éticas relevantes para os engenheiros de software. 
16
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Por que? 
•Por que tanta demora para entregar o sistema? 
•Por que os prazos se atrasam? 
•Por que os custos são altos? 
•Por que não achar todos os erros antes de entregar? 
•Por que é difícil medir o progresso do desenvolvimento de um software? 
17
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
No mercado atual, não há dúvida de que os profissionais de TI envolvidos com projetos de desenvolvimento de software e soluções corporativas têm um claro desafio: 
18 
Desafio
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
19 
PRODUZIR soluções mais rápidas, melhores e mais baratas que antes (melhor ainda ser mais rápidas, melhores e mais baratas que a concorrência) 
Desafio
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Desenvolver software é um problema de métodos e técnica, em suma, de atividade humana. 
•Gerenciar projetos de TI é gerenciar riscos assumidos e vencidos por seres humanos inteligentes. 
20 
Desafio
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Evolução do Software 
Período 
Evolução 
1950-1960 
Orientação a batch 
Software totalmente customizado 
Distribuição limitada 
1960-1970 
Multiusuários 
Tempo Real 
Banco de Dados 
21
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Desafio 
Período 
Evolução 
1980-1990 
Sistemas distribuídos 
Inteligência Embutida 
Hardware de baixo custo 
1990-2000 
Sistemas de desktop poderosos 
Tecnologia orientada a objeto 
Sistemas Especialistas.... 
22
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Desafio 
Período 
Evolução 
2000 - atual 
As tecnologias orientadas a objetos 
Uso das técnicas de "quarta geração" para o desenvolvimento de software 
Os sistemas especialistas e o software de inteligência artificial. 
23
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Aplicação do Software 
Básico 
Coleção de programas escritos para apoio a outros programas. 
Tempo Real 
Software que monitora / analisa / controla eventos do mundo real. 
Comercial 
Processa informações comerciais, reestruturação de dados para tomada de decisões. 
Científico 
e de engenharia 
Algoritmos de processamento de números(astronomia,vulcanologia). 
24
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Aplicação do Software 
Embutido 
usado para controlar produtos e sistemas para os mercados industriais e de consumo. 
Computador Pessoal 
Processamento de textos, planilhas, computação gráfica. 
Inteligência Artificial 
faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta. 
25
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
O que é Sistema? 
é um conjunto de elementos inter- 
dependentes que realizam 
operações visando atingir metas 
especificadas. 
26
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Sistema de Computação 
é aquele destinado ao suporte ou 
automação de tarefas através de 
processamento de informações. 
27
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Componentes de Sistemas de Computação 
Hardware 
Computadores,periféricos e redes. 
Software 
Os programas e arquivos de dados. 
Usuários 
Usuários e operadores que realizam as tarefas e procedimentos. 
28
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Componentes de Sistemas de Computação (cont.) 
Procedimentos 
Atividades realizadas pelos usuários e operadores, bem como pelos programas. 
Documentação 
Manuais e formulários que descrevem as operações do sistema. 
29
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Exemplos de Sistemas Computacionais 
• Automação Bancária 
• Frequência e Folha de Pagamento 
• Controle de Tráfego Urbano 
• Controle Acadêmico 
• Editoração de Jornais e Revistas 
• Controle de Elevadores 
• Automação de Biblioteca 
30
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
O que é Software? 
•Programas de computadores associados a documentação. 
•É um conjunto de soluções algorítmicas, codificadas numa linguagem de programação, executado numa máquina real. 
31
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Tipos de produtos de software 
•Genéricos (COTS – Commercial Off- The Shelf) - tipo stand-alone, pacotes de software, como por exemplo, processadores de texto, ferramentas de gerenciamento. 
•Sob encomenda ( personalizado) – desenvolvido para um cliente em particular. 
32
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Componentes do Software 
Plano Especificação 
de Requisitos 
Projeto Listagem 
Plano de 
Testes 
Estruturas 
de Dados 
Programa 
Funcionando 
33
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Características do Software 
•Complexidade 
•Conformidade 
•Mutabilidade 
34
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Características do Software 
•Complexidade 
– Software é mais complexo do que qualquer outro produto construídos por seres humanos. 
35
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Características do Software 
•Conformidade 
– O software deve ser desenvolvido conforme o ambiente. Não é o ambiente que deve se adaptar ao software. 
–Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (industrial). 
–Sucesso é medido pela qualidade e não quantidade. 
36
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Características do Software 
•Mutabilidade 
– Existe sempre uma pressão para se fazer mudanças em um software. 
–Não se “desgasta”, mas se deteriora devido as mudanças. 
–A maioria é feita sob medida em vez de ser montada a partir de catálogos de componentes existentes (reusabilidade de software). 
37
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Falhas do Hardware 
tempo 
“desgaste” 
“mortalidade infantil” 
índice de falhas 
Defeitos de projeto e manufatura 
Problemas 
Ambientais 
(poeira, vibração, abuso, temperaturas, ...) 
38
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Falhas do Software 
mudanças 
índice de falhas 
curva real 
curva idealizada 
tempo 
39
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Falhas do Hardware/Software 
•Quando um componente de hardware se desgasta é substituído por uma “peça de reposição” 
•Não existe “peça de reposição” para software 
–Toda falha indica um erro no projeto ou no processo de tradução para o código executável 
–Manutenção do software é mais complexa do que a do hardware 
40
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Formas do Software 
41
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Crise do Software 
•Refere-se a um conjunto de 
problemas encontrados no 
desenvolvimento de software. 
•Problemas não se limitam a 
softwares que não funcionam adequadamente. 
42
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Crise do Software 
•Prazos ultrapassados 
•Custos acima do previsto 
•Não atendimento dos requisitos do usuário 
43
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Elevado custo de manutenção 
–1/3 dos projetos são cancelados 
–2/3 dos projetos extrapolam o orçamento 
•Custo hardware x software 
– 1970 = 8:2 
– 1991 = 2:8 
– Hoje = 1:9 
44 
Crise do Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•As estimativas de prazo e de custo são imprecisas: 
– Não dedicamos tempo para coletar 
dados sobre o processo de 
desenvolvimento de software 
– Estimativas são feitas a olho, com 
resultados ruins 
–Os prazos arrastam-se por meses 
45 
Crise do Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•As estimativas de prazo e de custo são imprecisas (cont.) 
– Causa insatisfação para o cliente e 
falta de confiança. 
– Sem nenhuma indicação sólida de 
produtividade, não podemos avaliar 
com precisão a eficácia de novas 
ferramentas, métodos ou padrões. 
46 
Crise do Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Crise do Sofware 
•A produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviços 
– Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente 
47
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Crise do Sofware 
•O software existente é muito difícil de manter: 
– A tarefa de manutenção devora o orçamento destinado ao software 
– A facilidade de manutenção não foi 
enfatizada como um critério 
importante. 
48
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Crise do Sofware 
Solução para a Crise do Sofware  
Engenharia de Software aliada a: 
TÉCNICAS E FERRAMENTAS 
49
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Causas dos problemas associados à crise de software 
•Filosofia do Software. 
•Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software. 
•Mitos do Software. 
50
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Filosofia do Software 
O software é um elemento de sistema 
lógico e não físico. 
Consequentemente, o sucesso é medido 
pela qualidade de uma única entidade e 
não pela qualidade de muitas entidades 
manufaturadas. 
51
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software 
– Gerentes sem nenhum background em software. 
– Os profissionais da área de software 
têm recebido pouco treinamento 
formal em novas técnicas para o 
desenvolvimento de software. 
– Resistência a mudanças. 
52
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos do Software 
Mitos do Administrativos, do Cliente e do Profissional 
53
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Problemas Administrativos 
•Gerentes se encontram sob pressão 
– manter orçamentos 
– evitar que os prazos sejam 
ultrapassados 
– melhorar a qualidade 
54
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos Administrativos 
•Mito: Já temos um manual repleto de padrões e procedimentos para a construção de software. 
55
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos Administrativos 
•Realidade: 
– Será que o manual é usado? 
– Os profissionais sabem que ele 
existe? 
– Ele reflete a prática moderna de desenvolvimento de software? 
–Ele é completo? 
56
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos Administrativos 
•Mito: Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal compramos para eles os mais novos computadores. 
57
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos Administrativos 
•Realidade: 
—É preciso muito mais do que os mais recentes computadores para se fazer um desenvolvimento de software de alta qualidade. 
—Ferramentas de Engenharia de Software Auxiliada por Computador - CASE (Computer-Aided Software Engineering) são mais importantes do que o hardware. 
58
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos Administrativos 
•Mito: 
Se nós estamos atrasados nos 
prazos, podemos adicionar mais 
programadores e tirar o atraso. 
59
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos Administrativos 
•Realidade: 
–O desenvolvimento de software não é um processo mecânico igual à manufatura. 
–Acrescentar pessoas em um projeto torna-o ainda mais atrasado. Pessoas podem ser acrescentadas. 
60
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos dos Clientes 
•Mito: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde. 
61
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Realidade: 
–Uma definição inicial ruim é a principal causa de fracassos dos esforços de desenvolvimento de software. 
–É fundamental uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação. 
62 
Mitos dos Clientes
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos dos Clientes 
•Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível. 
63
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Realidade: 
– Requisitos podem ser mudados, mas o impacto varia de acordo com o tempo que é introduzido (projeto e custo). 
– Uma mudança, quando solicitada tardiamente num projeto, é mais dispendiosa do que a mesma mudança solicitada nas fases iniciais. 
64 
Mitos dos Clientes
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos do Profissional 
•Mito: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo. 
65
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos do Profissional 
•Realidade: 
– Os dados da indústria indicam que entre 50 e 70% de todo esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente 
66
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos do Profissional 
•Mito: Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade. 
67
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos do Profissional 
•Realidade: 
– Mecanismo (Revisão Técnica Formal) de garantia de qualidade de software é aplicado desde o começo do projeto. 
–Revisões de software são um “filtro de qualidade” - descobre erros/defeitos. 
68
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos do Profissional 
•Mito: A única coisa a ser entregue em um projeto bem sucedido é o programa funcionando. 
69
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Mitos do Profissional 
•Realidade: 
–Um programa funcionando é somente uma parte de uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software. 
A DOCUMENTAÇÃO é o alicerce 
70
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Categorias de Tamanho de Softwares 
Categoria 
Tamanho da 
Equipe 
Duração 
Tamanho do Fonte 
(linhas de código) 
Trivial 
1 
1-4 semanas 
500 
Pequeno 
1 
1-6 meses 
1000 a 2000 
Médio 
2-5 
1-2 anos 
5 mil a 50 mil 
Grande 
5-20 
2-3 anos 
50 mil a 100 mil 
Muito grande 
100-200 
4-5 anos 
1 milhão 
Extremamente 
grande 
2000-5000 
5-10 anos 
1 a 10 milhões 
ex: O Win 95: teve 11 milhões de linhas e 200 programadores / O Nestscape teve 3 milhões de linhas e 120 programadores 
71
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Solução 
•Reconhecer os problemas e suas causas e desmascarar os mitos do software são os primeiros passos 
•Métodos e Técnicas para disciplinar o processo de desenvolvimento do software. 
. 
72
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
SOLUÇÃO 
•Reconhecer os problemas e suas causas e desmascarar os mitos do software são os primeiros passos 
•Métodos e Técnicas para disciplinar o processo de desenvolvimento do software. 
. 
73
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Aspectos históricos da Engenharia de Software 
•1968 Conferência da OTAN 
•Objetivo: resolver a “Crise do Software” 
•Software é entregue 
– Atrasado 
– Com orçamento estourado 
– Com falhas residuais 
74
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Eles não encontraram uma solução, mas definiram uma meta: Engenharia de Software. 
•Custo do hardware decrescente e custo do software em ascensão. 
75 
Aspectos históricos da Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
O que é Engenharia de Software? 
•Fritz Bauer – 1969 ( primeira definição) 
“O estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais” 
76
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•IEEE, 1993 
“A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software. O estudo de abordagens e princípios a fim de obter economicamente softwares confiáveis e que executem de forma eficiente nas máquinas reais” 
77 
O que é Engenharia de Software?
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Programador (técnicas) 
Engenheiro (técnicas) 
1.Paradigma de tentativa e erro 
1. Paradigma adaptado ao escopo do sistema 
2. Estrutura de Dados 
2. Análise e Projeto 
3. Linguagens de Programação 
3. Ferramentas CASE e SGBD´s 
78 
O que é Engenharia de Software?
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•É uma disciplina que integra métodos, ferramentas e procedimentos para o desenvolvimento de software de computador. 
•Possibilitar ao gerente o controle do processo de desenvolvimento. 
•Oferecer ao profissional uma base para a construção de software de alta qualidade. 
79 
O que é Engenharia de Software?
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Engenharia de Software - Método 
•Proporcionam os detalhes de “como fazer” para construir o software. 
•Envolvem um amplo conjunto de tarefas. 
•Um método de ES é uma aproximação estruturada para o desenvolvimento de software. 
80
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Todos os métodos pretendem 
–Criar modelos do sistema que possam ser representados graficamente; 
–Usar estes métodos como especificação. 
81 
Engenharia de Software - Método
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Década de 70 (DeMarco e Jackson): 
–Orientado à função. 
•80s-90s (Booch e Rumbaugh): 
–Métodos orientados a objeto. 
•Atualmente os diferentes métodos estão integrados numa aproximação unificada baseada em Unified Modeling Language (UML). 
82 
Engenharia de Software - Método
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
83 
Engenharia de Software - Método
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Métodos devem incluir os seguintes componentes: 
–Descrição gráficas 
–Regras 
–Recomendações 
–Diretrizes de processo 
84 
Engenharia de Software - Método
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Descrição gráficas. 
Descrições dos modelos do sistema que deverão ser desenvolvidos e da notação usada para os definir. 
Ex. Modelos de objetos, fluxos de dados etc. 
85 
Engenharia de Software - Método
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Regras 
Restrições que se aplicam a modelos de 
sistema. 
Ex.Cada entidade deve ter um único nome. 
•Recomendações 
Conselho em prática de projeto. 
Ex.Nenhum objeto deve ter mais que sete subobjetos. 
86 
Engenharia de Software - Método
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Diretrizes de processo 
– Descrição das atividades que podem ser seguidas. 
– 
–Atributos de objetos devem ser documentados. 
87 
Engenharia de Software - Método
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
• Fornecem suporte automatizado ou semi- automatizado aos métodos. 
•Existem atualmente ferramentas para sustentar cada um dos métodos. 
•Quando as ferramentas são integradas é estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE. 
Engenharia de Software - Ferramentas 
88
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
O que é CASE (Computer-Aided Software Engineering) 
•Upper-CASE - Ferramenta para dar apoio às fases iniciais do processo de software. 
•Lower-CASE - Ferramenta para dar apoio à implementação a aos testes. 
–Ex.(Poseidon para UML , ArgoUML ..) 
89
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
– Constituem o elo de ligação que mantém juntos os métodos e as ferramentas para desenvolvimento do software. 
– Sequência em que os métodos serão aplicados. 
–Controles que ajudam assegurar a qualidade e coordenar as alterações. 
–Marcos de referência que possibilitam administrar o progresso do software. 
90 
Engenharia de Software - Procedimentos
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Procedimentos 
Engenharia de Software - Procedimentos 
Métodos 
Ferramentas 
Resultados 
91
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Princípios da Engenharia de Software 
•Todo engenheiro de software deve desenvolver com: 
– Rigor e Formalidade 
– Separação de interesses 
– Modularidade 
– Abstração 
– Antecipação de mudanças 
– Generalidade 
– Possibilidades de evolução 
92
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Rigor e Formalidade 
O rigor é a abordagem que produz produtos mais confiáveis pelo controle das variáveis envolvidas. Formalidade é o requisito de que o processo seja dirigido e avaliado por leis matemáticas. 
93 
Princípios da Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Separação de interesses 
Separar conceitos permite-nos trabalhar com aspectos individuais e diferentes de um mesmo problema. Esta separação facilita o entendimento, focando a atenção em certas características mais significativas. 
94 
Princípios da Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Modularidade 
Consiste na divisão de sistemas complexos em partes menores e mais simples (módulos) com características desejáveis (coesão e acoplamento). 
95 
Princípios da Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Modularidade (cont.) 
– Decomposição é o ato de dividir um problema original em subproblemas recursivamente. 
– Composição é o ato de juntar os elementos componentes de um problema até chegar ao sistema completo. Ajuda na manutenção do sistema. 
96 
Princípios da Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Antecipação de mudanças 
Sistemas de softwares são desenvolvidos enquanto seus requisitos ainda não estão totalmente claros. Quando o sistema é finalmente liberado, novos requisitos podem ser descobertos e velhos requisitos atualizados através do “feedback” do usuário. 
97 
Princípios da Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Generalidade / Especialidade 
Soluções genéricas tendem a ser mais caras em termos de recursos e em tempo de desenvolvimento, ao contrário das soluções específicas. No processo de produção de software estas questões devem ser cuidadosamente analisadas. 
98 
Princípios da Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Incrementabilidade 
Caracteriza o processo em modo passo a passo, incrementalmente. O objetivo desejado é atingido por aproximações sucessivas. Útil quando os requisitos iniciais não foram todos obtidos antes do início do desenvolvimento da aplicação. 
99 
Princípios da Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Quais os custos da Engenharia de Software? 
•A distribuição dos custos através do processo de software depende do processo usado e do tipo de software a desenvolver. 
•Custos de desenvolvimento de um software complexo quando se conseguem definir custos separadamente para especificação, desenho, implementação, integração e testes. 
100
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
101 
Quais os custos da Engenharia de Software?
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
0 
25 
50 
75 
100 
Especificação 
Desenho 
Desenvolvimento 
Integração e Teste 
Custos segundo aproximação evolutiva 
0 
25 
50 
75 
100 
Especificação 
Desenvolvimento Evolutivo 
Testes do Sistema 
102 
Quais os custos da Engenharia de Software?
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
 Custos de desenvolvimento de produtos de software genéricos: 
0 
25 
50 
75 
100 
Especificação 
Desenvolvimento 
Teste 
103 
Quais os custos da Engenharia de Software? 
Custos relativos entre desenvolvimento e manutenção do software 
0 
25 
50 
75 
100 
Desenvolvimento 
Manutenção
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Custo em relação a falhas 
104
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Impacto dos custo de manutenção 
• Manutenção corretiva [aproximadamente 20%] 
– 60 a 70% das necessidades de correção são falhas de especificação ou design. 
• Manutenção evolutiva (melhoria) 
– Aperfeiçoamento [aproximadamente 60%] 
– Adaptação [aproximadamente 20%] 
105
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Principais desafios enfrentados pela Engenharia de Software 
•Sistemas de legado - Devem ser mantidos e devem ser atualizado. 
•Heterogeneidade - Operar com sistemas distribuídos e incluem uma mistura de hardware e software. 
•Fornecimento - Entrega mais rápida de software. 
106
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Responsabilidade profissional e ética 
•Confiabilidade – respeitar a confiabilidade de seus empregadores ou clientes. 
•Competência – os engenheiros não devem aceitar serviços que estejam for a do seu limite de competência. 
107
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•Direito de propriedade intelectual – os engenheiros devem estar cientes das leis locais que regulam o uso da propriedade intelectual, como patentes e direitos autorais. 
108 
Responsabilidade profissional e ética
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Resumindo Engenharia de Software 
•Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software. 
•Produção da documentação formal destinada a comunicação entre os membros da equipe de desenvolvimento bem como aos usuários. 
109
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Resumindo Engenharia de Software 
•Encontrar caminhos para se "construir" softwares de qualidade. 
•Fatores externos, perceptíveis aos usuários e clientes, devem ser distinguidos dos fatores internos, perceptíveis aos projetistas e implementadores. 
110
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
•A manutenção de software, que consome grande parte dos custos do software, é penalizada pela dificuldade em se implementar mudanças no software produto, e pela excessiva dependência dos programas da estrutura física dos dados que eles manipulam. 
111 
Resumindo Engenharia de Software
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Pesquisa 
•Visualizando a informática em uma empresa, cite exemplos de: 
–Mitos utilizados pelo analista ou pelo administrador de uma empresa específica. 
–Falhas que ocasionaram grandes custos. 
–Falhas que ocasionaram mudanças de projetos. 
112
Profa. Maria Auxiliadora 
Fonte: 
PRESSMAN, ROGER - Engenharia de Software - 6° Edição 
SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 
Pesquisa 
•Quais são os quatro atributos que todo software profissional deve possuir? Sugira outros atributos que podem ser significantes. 
•Debater com os seus colegas o código de ética na Engenharia de Software. 
113

Mais conteúdo relacionado

Mais procurados

Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Marcello Thiry
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentaisWaldemar Roberti
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareCloves da Rocha
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02Franklin Matos Correia
 
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Marcello Thiry
 
1 engenharia de software
1   engenharia de software1   engenharia de software
1 engenharia de softwareFelipe Bugov
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareVinicius Garcia
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Softwareelliando dias
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de softwareJoao Johanes
 
Es aula01
Es   aula01Es   aula01
Es aula01Itaú
 
Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1André Phillip Bertoletti
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIvanFontainha
 
Engenharia de Software - Unimep/Pronatec - Aula 2
Engenharia de Software - Unimep/Pronatec - Aula 2Engenharia de Software - Unimep/Pronatec - Aula 2
Engenharia de Software - Unimep/Pronatec - Aula 2André Phillip Bertoletti
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareCamilo de Melo
 
Engenharia de Software
Engenharia de SoftwareEngenharia de Software
Engenharia de SoftwareSm3nd3s29
 
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACESLIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACESOs Fantasmas !
 

Mais procurados (20)

Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)Princípios da engenharia de software (marcello thiry)
Princípios da engenharia de software (marcello thiry)
 
02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais02 Introdução à engenharia de software - conceitos fundamentais
02 Introdução à engenharia de software - conceitos fundamentais
 
Aula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de SoftwareAula - Introdução a Engenharia de Software
Aula - Introdução a Engenharia de Software
 
Introdução a engenharia de software aula 02
Introdução a engenharia de software   aula 02Introdução a engenharia de software   aula 02
Introdução a engenharia de software aula 02
 
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)Engenharia de Software - Introdução e Motivação (Marcello Thiry)
Engenharia de Software - Introdução e Motivação (Marcello Thiry)
 
1 engenharia de software
1   engenharia de software1   engenharia de software
1 engenharia de software
 
Uma Introdução a Engenharia de Software
Uma Introdução a Engenharia de SoftwareUma Introdução a Engenharia de Software
Uma Introdução a Engenharia de Software
 
Fundamentos da Engenharia de Software
Fundamentos da Engenharia de SoftwareFundamentos da Engenharia de Software
Fundamentos da Engenharia de Software
 
Introdução à Engenharia de Software
Introdução à Engenharia de SoftwareIntrodução à Engenharia de Software
Introdução à Engenharia de Software
 
Engenharia de software
Engenharia de softwareEngenharia de software
Engenharia de software
 
Es aula01
Es   aula01Es   aula01
Es aula01
 
Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1Engenharia de Software - Unimep/Pronatec - Aula 1
Engenharia de Software - Unimep/Pronatec - Aula 1
 
Introdução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdfIntrodução a Engenharia de Software.pdf
Introdução a Engenharia de Software.pdf
 
Engenharia de Software - Unimep/Pronatec - Aula 2
Engenharia de Software - Unimep/Pronatec - Aula 2Engenharia de Software - Unimep/Pronatec - Aula 2
Engenharia de Software - Unimep/Pronatec - Aula 2
 
O Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de SoftwareO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software
 
Engenharia de Software
Engenharia de SoftwareEngenharia de Software
Engenharia de Software
 
Analise aula2
Analise aula2Analise aula2
Analise aula2
 
Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008Tudo são Dados - PHP Conference 2008
Tudo são Dados - PHP Conference 2008
 
Documento de requisitos
Documento de requisitosDocumento de requisitos
Documento de requisitos
 
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACESLIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
LIVRO PROPRIETÁRIO - ENGENHARIA DE USABILIDADE E INTERFACES
 

Semelhante a Cap1 introd-engenharia de software

Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixCris Fidelix
 
1 Qss
1 Qss1 Qss
1 Qsslcbj
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aLeonardo Molinari
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioAdriano Bertucci
 
Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Levi Germano
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Adriano Bertucci
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de softwareluacal
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfMichaelArrais1
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREErnesto Bedrikow
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASOs Fantasmas !
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009Ramon Durães
 
PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...
PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...
PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...Ricardo Leite
 

Semelhante a Cap1 introd-engenharia de software (20)

[CEFETMG][ESw] Aula 2 - Processos de software
[CEFETMG][ESw] Aula 2 - Processos de software[CEFETMG][ESw] Aula 2 - Processos de software
[CEFETMG][ESw] Aula 2 - Processos de software
 
Eng.ª do Software - 1. Introdução
Eng.ª do Software - 1. IntroduçãoEng.ª do Software - 1. Introdução
Eng.ª do Software - 1. Introdução
 
Engenharia de software
Engenharia de software Engenharia de software
Engenharia de software
 
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane FidelixApresentação de Engenharia de software I - Prof. Cristiane Fidelix
Apresentação de Engenharia de software I - Prof. Cristiane Fidelix
 
1 Qss
1 Qss1 Qss
1 Qss
 
Analise de Requisitos Software
Analise de Requisitos SoftwareAnalise de Requisitos Software
Analise de Requisitos Software
 
Gerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2aGerenciando Testes Com Qualidade V2a
Gerenciando Testes Com Qualidade V2a
 
Qualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual StudioQualidade de Software com Microsoft Visual Studio
Qualidade de Software com Microsoft Visual Studio
 
Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)Desenvolvimento de-robo-movel (1)
Desenvolvimento de-robo-movel (1)
 
Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?Qualidade - Porque testar seu software?
Qualidade - Porque testar seu software?
 
Engenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - IntroEngenharia de Software Aula 1 - Intro
Engenharia de Software Aula 1 - Intro
 
Es2 modelo de processo de software
Es2 modelo de processo de softwareEs2 modelo de processo de software
Es2 modelo de processo de software
 
152191 11993
152191 11993152191 11993
152191 11993
 
Aula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdfAula18_V&VTesteSoftware.pdf
Aula18_V&VTesteSoftware.pdf
 
Aula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWAREAula 1- ENGENHARIA DE SOFTWARE
Aula 1- ENGENHARIA DE SOFTWARE
 
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMASLIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
LIVRO PROPRIETÁRIO - METODOLOGIAS DE DESENVOLVIMENTO DE SISTEMAS
 
Application Lifecycle Management - Campus Party Brasil 2009
Application Lifecycle Management -  Campus Party  Brasil 2009Application Lifecycle Management -  Campus Party  Brasil 2009
Application Lifecycle Management - Campus Party Brasil 2009
 
Aula 6 - Qualidade de Software
Aula 6 - Qualidade de SoftwareAula 6 - Qualidade de Software
Aula 6 - Qualidade de Software
 
ES - 01
ES - 01ES - 01
ES - 01
 
PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...
PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...
PRODUCT LINE UML SYSTEM Uma aplicabilidade de desenvolvimento de uma linha de...
 

Cap1 introd-engenharia de software

  • 1. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 1 Introdução à Engenharia de Software
  • 2. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Conceitos de Engenharia de Software. Produto e processo de desenvolvimento de software. Extração, análise e especificação de requisitos. Métodos de desenvolvimento de software. Verificação, validação e manutenção de especificações de software. Planejamento e gestão de projetos. Estimativas: métricas e modelos de custo, estudo de viabilidade Engenharia de Software Ementa 2
  • 3. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Engenharia de Software Programa 1. INTRODUÇÃO 1.1 Definições e Objetivos 1.2 Conceitos Básicos 1.3 Características do Software 1.4 Componentes e Aplicações do Software 3
  • 4. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Engenharia de Software Programa 2. PROCESSO DE SOFTWARE 2.1 Modelo de Processo 2.2 Ciclo de Vida Clássico/Modelo Cascata 2.3 Modelo Evolucionário 2.4 Modelo Espiral 2.5 Técnicas de Quarta Geração 2.6 Desenvolvimento Rápido de Software 2.7 Combinando Paradigmas 4
  • 5. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 3. REQUISITOS DE SOFTWARE 3.1 Classificação de requisitos 3.2 Técnicas de extração de requisitos 3.3 Documento de requisitos de software 3.4 Processos de Engenharia de Requisitos Engenharia de Software Programa 5
  • 6. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 4. GERENCIAMENTO DE CUSTO 4.1 Planejamento 4.2 Estudo de Viabilidade 4.3 Estimativa 4.4 Métricas de Software 4.5 Gerenciamento de Pessoal 4.6 Gerenciamento de Grupos Engenharia de Software Programa 6
  • 7. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 5. MODELOS DE SISTEMA 5.1 Modelos de Contexto 5.2 Modelos de Comportamento 5.3 Métodos Estruturados 5.4 Métodos Orientado a Objeto – Casos de Uso Engenharia de Software Programa 7
  • 8. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 6.MODELO PARA PROJETO 6.1 Hierarquia de módulos e objetos 6.2 Estratégias para derivar o projeto 6.3 Qualidade do projeto: coesão, acoplamento Engenharia de Software Programa 8
  • 9. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 7. MODELO DE DADOS 7.1 Diagrama de Entidade e Relacionamento 7.2 Tipos de Entidades 7.3 Tipos de Relacionamento 7.4 Normalização Engenharia de Software Programa 9
  • 10. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 8.VERIFICAÇÃO, VALIDAÇÃO E TESTE 8.1 Planejamento de verificação e validação 8.2 Inspeções de Software 8.3 Teste de Software Engenharia de Software Programa 10
  • 11. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 9. EVOLUÇÃO DE SOFTWARE 9.1 Manutenção de Software 9.2 Tipos de Manutenção 9.3 Previsão de mudanças 9.4 Processo de Evolução 9.5 Evolução de Sistemas Legados Engenharia de Software Programa 11
  • 12. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 10. GERENCIAMENTO DE QUALIDADE 10.1 Qualidade de Processo e de Produto 10.2 Padrões de Qualidade 10.3 Controle de Qualidade Engenharia de Software Programa 12
  • 13. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Engenharia de Software Bibliografia Básica ―Sommerville, Ian, Engenharia de Software. Ed. Addison Wesley, 8º Edição ―PRESSMAN, ROGER, Engenharia de Software. Ed. Mc-Graw Hill, 6º Edição, 2006. ―POMPILHO, S. Análise Essencial – Guia Prático de Análise de Sistemas. Ed. Infobook, 1995. 13
  • 14. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Engenharia de Software Bibliografia de Apoio ―http://wps.prenhall.com/br_pfleeger_engsoftware_2 ― www.aw.com/sommerville_br ―http://www.computer.org/portal/web/swebok/html/copyright 14
  • 15. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Engenharia de Software 15 Data Assunto 10 Avaliação 18/12/2012 Trabalho 1 – projeto parte1 Prova 1  cap1 – cap2 – cap3 – cap4 20 Avaliação 29/01/2013 Trabalho 2 – projeto parte2 Prova 2  cap5 – cap6 – cap7 30 Avaliação 26/02 a 05/03 07/03/2013 Trabalho 3 – seminário Prova 3  cap8 – cap9 – cap10 – assunto do seminário Reposição 12/03/2012 Prova Final 14/03/2012
  • 16. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Objetivos •Compreender o que é Engenharia de Software e por que ela é importante. •Mostrar as distinções e relacionamentos entre sistema e software. •Mostrar as principais questões sobre engenharia software. •Compreender questões profissionais e éticas relevantes para os engenheiros de software. 16
  • 17. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Por que? •Por que tanta demora para entregar o sistema? •Por que os prazos se atrasam? •Por que os custos são altos? •Por que não achar todos os erros antes de entregar? •Por que é difícil medir o progresso do desenvolvimento de um software? 17
  • 18. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição No mercado atual, não há dúvida de que os profissionais de TI envolvidos com projetos de desenvolvimento de software e soluções corporativas têm um claro desafio: 18 Desafio
  • 19. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 19 PRODUZIR soluções mais rápidas, melhores e mais baratas que antes (melhor ainda ser mais rápidas, melhores e mais baratas que a concorrência) Desafio
  • 20. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Desenvolver software é um problema de métodos e técnica, em suma, de atividade humana. •Gerenciar projetos de TI é gerenciar riscos assumidos e vencidos por seres humanos inteligentes. 20 Desafio
  • 21. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Evolução do Software Período Evolução 1950-1960 Orientação a batch Software totalmente customizado Distribuição limitada 1960-1970 Multiusuários Tempo Real Banco de Dados 21
  • 22. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Desafio Período Evolução 1980-1990 Sistemas distribuídos Inteligência Embutida Hardware de baixo custo 1990-2000 Sistemas de desktop poderosos Tecnologia orientada a objeto Sistemas Especialistas.... 22
  • 23. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Desafio Período Evolução 2000 - atual As tecnologias orientadas a objetos Uso das técnicas de "quarta geração" para o desenvolvimento de software Os sistemas especialistas e o software de inteligência artificial. 23
  • 24. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Aplicação do Software Básico Coleção de programas escritos para apoio a outros programas. Tempo Real Software que monitora / analisa / controla eventos do mundo real. Comercial Processa informações comerciais, reestruturação de dados para tomada de decisões. Científico e de engenharia Algoritmos de processamento de números(astronomia,vulcanologia). 24
  • 25. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Aplicação do Software Embutido usado para controlar produtos e sistemas para os mercados industriais e de consumo. Computador Pessoal Processamento de textos, planilhas, computação gráfica. Inteligência Artificial faz uso de algoritmos não numéricos para resolver problemas que não sejam favoráveis à computação ou à análise direta. 25
  • 26. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição O que é Sistema? é um conjunto de elementos inter- dependentes que realizam operações visando atingir metas especificadas. 26
  • 27. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Sistema de Computação é aquele destinado ao suporte ou automação de tarefas através de processamento de informações. 27
  • 28. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Componentes de Sistemas de Computação Hardware Computadores,periféricos e redes. Software Os programas e arquivos de dados. Usuários Usuários e operadores que realizam as tarefas e procedimentos. 28
  • 29. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Componentes de Sistemas de Computação (cont.) Procedimentos Atividades realizadas pelos usuários e operadores, bem como pelos programas. Documentação Manuais e formulários que descrevem as operações do sistema. 29
  • 30. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Exemplos de Sistemas Computacionais • Automação Bancária • Frequência e Folha de Pagamento • Controle de Tráfego Urbano • Controle Acadêmico • Editoração de Jornais e Revistas • Controle de Elevadores • Automação de Biblioteca 30
  • 31. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição O que é Software? •Programas de computadores associados a documentação. •É um conjunto de soluções algorítmicas, codificadas numa linguagem de programação, executado numa máquina real. 31
  • 32. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Tipos de produtos de software •Genéricos (COTS – Commercial Off- The Shelf) - tipo stand-alone, pacotes de software, como por exemplo, processadores de texto, ferramentas de gerenciamento. •Sob encomenda ( personalizado) – desenvolvido para um cliente em particular. 32
  • 33. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Componentes do Software Plano Especificação de Requisitos Projeto Listagem Plano de Testes Estruturas de Dados Programa Funcionando 33
  • 34. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Características do Software •Complexidade •Conformidade •Mutabilidade 34
  • 35. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Características do Software •Complexidade – Software é mais complexo do que qualquer outro produto construídos por seres humanos. 35
  • 36. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Características do Software •Conformidade – O software deve ser desenvolvido conforme o ambiente. Não é o ambiente que deve se adaptar ao software. –Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (industrial). –Sucesso é medido pela qualidade e não quantidade. 36
  • 37. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Características do Software •Mutabilidade – Existe sempre uma pressão para se fazer mudanças em um software. –Não se “desgasta”, mas se deteriora devido as mudanças. –A maioria é feita sob medida em vez de ser montada a partir de catálogos de componentes existentes (reusabilidade de software). 37
  • 38. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Falhas do Hardware tempo “desgaste” “mortalidade infantil” índice de falhas Defeitos de projeto e manufatura Problemas Ambientais (poeira, vibração, abuso, temperaturas, ...) 38
  • 39. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Falhas do Software mudanças índice de falhas curva real curva idealizada tempo 39
  • 40. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Falhas do Hardware/Software •Quando um componente de hardware se desgasta é substituído por uma “peça de reposição” •Não existe “peça de reposição” para software –Toda falha indica um erro no projeto ou no processo de tradução para o código executável –Manutenção do software é mais complexa do que a do hardware 40
  • 41. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Formas do Software 41
  • 42. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Crise do Software •Refere-se a um conjunto de problemas encontrados no desenvolvimento de software. •Problemas não se limitam a softwares que não funcionam adequadamente. 42
  • 43. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Crise do Software •Prazos ultrapassados •Custos acima do previsto •Não atendimento dos requisitos do usuário 43
  • 44. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Elevado custo de manutenção –1/3 dos projetos são cancelados –2/3 dos projetos extrapolam o orçamento •Custo hardware x software – 1970 = 8:2 – 1991 = 2:8 – Hoje = 1:9 44 Crise do Software
  • 45. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •As estimativas de prazo e de custo são imprecisas: – Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software – Estimativas são feitas a olho, com resultados ruins –Os prazos arrastam-se por meses 45 Crise do Software
  • 46. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •As estimativas de prazo e de custo são imprecisas (cont.) – Causa insatisfação para o cliente e falta de confiança. – Sem nenhuma indicação sólida de produtividade, não podemos avaliar com precisão a eficácia de novas ferramentas, métodos ou padrões. 46 Crise do Software
  • 47. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Crise do Sofware •A produtividade das pessoas da área de software não tem acompanhado a demanda por seus serviços – Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente 47
  • 48. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Crise do Sofware •O software existente é muito difícil de manter: – A tarefa de manutenção devora o orçamento destinado ao software – A facilidade de manutenção não foi enfatizada como um critério importante. 48
  • 49. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Crise do Sofware Solução para a Crise do Sofware  Engenharia de Software aliada a: TÉCNICAS E FERRAMENTAS 49
  • 50. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Causas dos problemas associados à crise de software •Filosofia do Software. •Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software. •Mitos do Software. 50
  • 51. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Filosofia do Software O software é um elemento de sistema lógico e não físico. Consequentemente, o sucesso é medido pela qualidade de uma única entidade e não pela qualidade de muitas entidades manufaturadas. 51
  • 52. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software – Gerentes sem nenhum background em software. – Os profissionais da área de software têm recebido pouco treinamento formal em novas técnicas para o desenvolvimento de software. – Resistência a mudanças. 52
  • 53. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos do Software Mitos do Administrativos, do Cliente e do Profissional 53
  • 54. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Problemas Administrativos •Gerentes se encontram sob pressão – manter orçamentos – evitar que os prazos sejam ultrapassados – melhorar a qualidade 54
  • 55. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos Administrativos •Mito: Já temos um manual repleto de padrões e procedimentos para a construção de software. 55
  • 56. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos Administrativos •Realidade: – Será que o manual é usado? – Os profissionais sabem que ele existe? – Ele reflete a prática moderna de desenvolvimento de software? –Ele é completo? 56
  • 57. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos Administrativos •Mito: Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal compramos para eles os mais novos computadores. 57
  • 58. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos Administrativos •Realidade: —É preciso muito mais do que os mais recentes computadores para se fazer um desenvolvimento de software de alta qualidade. —Ferramentas de Engenharia de Software Auxiliada por Computador - CASE (Computer-Aided Software Engineering) são mais importantes do que o hardware. 58
  • 59. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos Administrativos •Mito: Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso. 59
  • 60. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos Administrativos •Realidade: –O desenvolvimento de software não é um processo mecânico igual à manufatura. –Acrescentar pessoas em um projeto torna-o ainda mais atrasado. Pessoas podem ser acrescentadas. 60
  • 61. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos dos Clientes •Mito: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas - podemos preencher os detalhes mais tarde. 61
  • 62. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Realidade: –Uma definição inicial ruim é a principal causa de fracassos dos esforços de desenvolvimento de software. –É fundamental uma descrição formal e detalhada do domínio da informação, função, desempenho, interfaces, restrições de projeto e critérios de validação. 62 Mitos dos Clientes
  • 63. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos dos Clientes •Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível. 63
  • 64. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Realidade: – Requisitos podem ser mudados, mas o impacto varia de acordo com o tempo que é introduzido (projeto e custo). – Uma mudança, quando solicitada tardiamente num projeto, é mais dispendiosa do que a mesma mudança solicitada nas fases iniciais. 64 Mitos dos Clientes
  • 65. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos do Profissional •Mito: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo. 65
  • 66. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos do Profissional •Realidade: – Os dados da indústria indicam que entre 50 e 70% de todo esforço gasto num programa serão despendidos depois que ele for entregue pela primeira vez ao cliente 66
  • 67. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos do Profissional •Mito: Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade. 67
  • 68. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos do Profissional •Realidade: – Mecanismo (Revisão Técnica Formal) de garantia de qualidade de software é aplicado desde o começo do projeto. –Revisões de software são um “filtro de qualidade” - descobre erros/defeitos. 68
  • 69. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos do Profissional •Mito: A única coisa a ser entregue em um projeto bem sucedido é o programa funcionando. 69
  • 70. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Mitos do Profissional •Realidade: –Um programa funcionando é somente uma parte de uma Configuração de Software que inclui todos os itens de informação produzidos durante a construção e manutenção do software. A DOCUMENTAÇÃO é o alicerce 70
  • 71. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Categorias de Tamanho de Softwares Categoria Tamanho da Equipe Duração Tamanho do Fonte (linhas de código) Trivial 1 1-4 semanas 500 Pequeno 1 1-6 meses 1000 a 2000 Médio 2-5 1-2 anos 5 mil a 50 mil Grande 5-20 2-3 anos 50 mil a 100 mil Muito grande 100-200 4-5 anos 1 milhão Extremamente grande 2000-5000 5-10 anos 1 a 10 milhões ex: O Win 95: teve 11 milhões de linhas e 200 programadores / O Nestscape teve 3 milhões de linhas e 120 programadores 71
  • 72. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Solução •Reconhecer os problemas e suas causas e desmascarar os mitos do software são os primeiros passos •Métodos e Técnicas para disciplinar o processo de desenvolvimento do software. . 72
  • 73. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição SOLUÇÃO •Reconhecer os problemas e suas causas e desmascarar os mitos do software são os primeiros passos •Métodos e Técnicas para disciplinar o processo de desenvolvimento do software. . 73
  • 74. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Aspectos históricos da Engenharia de Software •1968 Conferência da OTAN •Objetivo: resolver a “Crise do Software” •Software é entregue – Atrasado – Com orçamento estourado – Com falhas residuais 74
  • 75. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Eles não encontraram uma solução, mas definiram uma meta: Engenharia de Software. •Custo do hardware decrescente e custo do software em ascensão. 75 Aspectos históricos da Engenharia de Software
  • 76. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição O que é Engenharia de Software? •Fritz Bauer – 1969 ( primeira definição) “O estabelecimento e uso de sólidos princípios de engenharia para que se possa obter economicamente um software que seja confiável e que funcione eficientemente em máquinas reais” 76
  • 77. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •IEEE, 1993 “A aplicação de uma abordagem sistemática, disciplinada e quantificável para o desenvolvimento, operação e manutenção do software. O estudo de abordagens e princípios a fim de obter economicamente softwares confiáveis e que executem de forma eficiente nas máquinas reais” 77 O que é Engenharia de Software?
  • 78. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Programador (técnicas) Engenheiro (técnicas) 1.Paradigma de tentativa e erro 1. Paradigma adaptado ao escopo do sistema 2. Estrutura de Dados 2. Análise e Projeto 3. Linguagens de Programação 3. Ferramentas CASE e SGBD´s 78 O que é Engenharia de Software?
  • 79. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •É uma disciplina que integra métodos, ferramentas e procedimentos para o desenvolvimento de software de computador. •Possibilitar ao gerente o controle do processo de desenvolvimento. •Oferecer ao profissional uma base para a construção de software de alta qualidade. 79 O que é Engenharia de Software?
  • 80. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Engenharia de Software - Método •Proporcionam os detalhes de “como fazer” para construir o software. •Envolvem um amplo conjunto de tarefas. •Um método de ES é uma aproximação estruturada para o desenvolvimento de software. 80
  • 81. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Todos os métodos pretendem –Criar modelos do sistema que possam ser representados graficamente; –Usar estes métodos como especificação. 81 Engenharia de Software - Método
  • 82. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Década de 70 (DeMarco e Jackson): –Orientado à função. •80s-90s (Booch e Rumbaugh): –Métodos orientados a objeto. •Atualmente os diferentes métodos estão integrados numa aproximação unificada baseada em Unified Modeling Language (UML). 82 Engenharia de Software - Método
  • 83. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 83 Engenharia de Software - Método
  • 84. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Métodos devem incluir os seguintes componentes: –Descrição gráficas –Regras –Recomendações –Diretrizes de processo 84 Engenharia de Software - Método
  • 85. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Descrição gráficas. Descrições dos modelos do sistema que deverão ser desenvolvidos e da notação usada para os definir. Ex. Modelos de objetos, fluxos de dados etc. 85 Engenharia de Software - Método
  • 86. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Regras Restrições que se aplicam a modelos de sistema. Ex.Cada entidade deve ter um único nome. •Recomendações Conselho em prática de projeto. Ex.Nenhum objeto deve ter mais que sete subobjetos. 86 Engenharia de Software - Método
  • 87. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Diretrizes de processo – Descrição das atividades que podem ser seguidas. – –Atributos de objetos devem ser documentados. 87 Engenharia de Software - Método
  • 88. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição • Fornecem suporte automatizado ou semi- automatizado aos métodos. •Existem atualmente ferramentas para sustentar cada um dos métodos. •Quando as ferramentas são integradas é estabelecido um sistema de suporte ao desenvolvimento de software chamado CASE. Engenharia de Software - Ferramentas 88
  • 89. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição O que é CASE (Computer-Aided Software Engineering) •Upper-CASE - Ferramenta para dar apoio às fases iniciais do processo de software. •Lower-CASE - Ferramenta para dar apoio à implementação a aos testes. –Ex.(Poseidon para UML , ArgoUML ..) 89
  • 90. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição – Constituem o elo de ligação que mantém juntos os métodos e as ferramentas para desenvolvimento do software. – Sequência em que os métodos serão aplicados. –Controles que ajudam assegurar a qualidade e coordenar as alterações. –Marcos de referência que possibilitam administrar o progresso do software. 90 Engenharia de Software - Procedimentos
  • 91. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Procedimentos Engenharia de Software - Procedimentos Métodos Ferramentas Resultados 91
  • 92. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Princípios da Engenharia de Software •Todo engenheiro de software deve desenvolver com: – Rigor e Formalidade – Separação de interesses – Modularidade – Abstração – Antecipação de mudanças – Generalidade – Possibilidades de evolução 92
  • 93. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Rigor e Formalidade O rigor é a abordagem que produz produtos mais confiáveis pelo controle das variáveis envolvidas. Formalidade é o requisito de que o processo seja dirigido e avaliado por leis matemáticas. 93 Princípios da Engenharia de Software
  • 94. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Separação de interesses Separar conceitos permite-nos trabalhar com aspectos individuais e diferentes de um mesmo problema. Esta separação facilita o entendimento, focando a atenção em certas características mais significativas. 94 Princípios da Engenharia de Software
  • 95. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Modularidade Consiste na divisão de sistemas complexos em partes menores e mais simples (módulos) com características desejáveis (coesão e acoplamento). 95 Princípios da Engenharia de Software
  • 96. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Modularidade (cont.) – Decomposição é o ato de dividir um problema original em subproblemas recursivamente. – Composição é o ato de juntar os elementos componentes de um problema até chegar ao sistema completo. Ajuda na manutenção do sistema. 96 Princípios da Engenharia de Software
  • 97. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Antecipação de mudanças Sistemas de softwares são desenvolvidos enquanto seus requisitos ainda não estão totalmente claros. Quando o sistema é finalmente liberado, novos requisitos podem ser descobertos e velhos requisitos atualizados através do “feedback” do usuário. 97 Princípios da Engenharia de Software
  • 98. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Generalidade / Especialidade Soluções genéricas tendem a ser mais caras em termos de recursos e em tempo de desenvolvimento, ao contrário das soluções específicas. No processo de produção de software estas questões devem ser cuidadosamente analisadas. 98 Princípios da Engenharia de Software
  • 99. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Incrementabilidade Caracteriza o processo em modo passo a passo, incrementalmente. O objetivo desejado é atingido por aproximações sucessivas. Útil quando os requisitos iniciais não foram todos obtidos antes do início do desenvolvimento da aplicação. 99 Princípios da Engenharia de Software
  • 100. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Quais os custos da Engenharia de Software? •A distribuição dos custos através do processo de software depende do processo usado e do tipo de software a desenvolver. •Custos de desenvolvimento de um software complexo quando se conseguem definir custos separadamente para especificação, desenho, implementação, integração e testes. 100
  • 101. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 101 Quais os custos da Engenharia de Software?
  • 102. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição 0 25 50 75 100 Especificação Desenho Desenvolvimento Integração e Teste Custos segundo aproximação evolutiva 0 25 50 75 100 Especificação Desenvolvimento Evolutivo Testes do Sistema 102 Quais os custos da Engenharia de Software?
  • 103. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição  Custos de desenvolvimento de produtos de software genéricos: 0 25 50 75 100 Especificação Desenvolvimento Teste 103 Quais os custos da Engenharia de Software? Custos relativos entre desenvolvimento e manutenção do software 0 25 50 75 100 Desenvolvimento Manutenção
  • 104. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Custo em relação a falhas 104
  • 105. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Impacto dos custo de manutenção • Manutenção corretiva [aproximadamente 20%] – 60 a 70% das necessidades de correção são falhas de especificação ou design. • Manutenção evolutiva (melhoria) – Aperfeiçoamento [aproximadamente 60%] – Adaptação [aproximadamente 20%] 105
  • 106. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Principais desafios enfrentados pela Engenharia de Software •Sistemas de legado - Devem ser mantidos e devem ser atualizado. •Heterogeneidade - Operar com sistemas distribuídos e incluem uma mistura de hardware e software. •Fornecimento - Entrega mais rápida de software. 106
  • 107. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Responsabilidade profissional e ética •Confiabilidade – respeitar a confiabilidade de seus empregadores ou clientes. •Competência – os engenheiros não devem aceitar serviços que estejam for a do seu limite de competência. 107
  • 108. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •Direito de propriedade intelectual – os engenheiros devem estar cientes das leis locais que regulam o uso da propriedade intelectual, como patentes e direitos autorais. 108 Responsabilidade profissional e ética
  • 109. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Resumindo Engenharia de Software •Aplicação de teoria, modelos, formalismos, técnicas e ferramentas da ciência da computação e áreas afins para o desenvolvimento sistemático de software. •Produção da documentação formal destinada a comunicação entre os membros da equipe de desenvolvimento bem como aos usuários. 109
  • 110. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Resumindo Engenharia de Software •Encontrar caminhos para se "construir" softwares de qualidade. •Fatores externos, perceptíveis aos usuários e clientes, devem ser distinguidos dos fatores internos, perceptíveis aos projetistas e implementadores. 110
  • 111. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição •A manutenção de software, que consome grande parte dos custos do software, é penalizada pela dificuldade em se implementar mudanças no software produto, e pela excessiva dependência dos programas da estrutura física dos dados que eles manipulam. 111 Resumindo Engenharia de Software
  • 112. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Pesquisa •Visualizando a informática em uma empresa, cite exemplos de: –Mitos utilizados pelo analista ou pelo administrador de uma empresa específica. –Falhas que ocasionaram grandes custos. –Falhas que ocasionaram mudanças de projetos. 112
  • 113. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° / 9° Edição Pesquisa •Quais são os quatro atributos que todo software profissional deve possuir? Sugira outros atributos que podem ser significantes. •Debater com os seus colegas o código de ética na Engenharia de Software. 113