Introduo Engenharia de Software Profa Maria Auxiliadora Fonte
- Slides: 111
Introdução à Engenharia de Software Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 1
Engenharia de Software Ementa 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 2
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 3
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 4
Engenharia de Software Programa 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 5
Engenharia de Software Programa 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 6
Engenharia de Software Programa 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 7
Engenharia de Software Programa 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 8
Engenharia de Software Programa 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 9
Engenharia de Software Programa 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 10
Engenharia de Software Programa 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 11
Engenharia de Software Programa 10. GERENCIAMENTO DE QUALIDADE 10. 1 Qualidade de Processo e de Produto 10. 2 Padrões de Qualidade 10. 3 Controle de Qualidade Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 12
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 13
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 14
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 15
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? Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 16
Desafio 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: Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 17
Desafio 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) Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 18
Desafio • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 19
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 20
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. . Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 21
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 22
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 Algoritmos de processamento de números(astronomia, vulcanologia). e de engenharia Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 23
Aplicação do Software Embutido usado para controlar produtos e sistemas para os mercados industriais e de consumo. Computador Processamento de textos, planilhas, Pessoal computação gráfica. Inteligência faz uso de algoritmos não numéricos Artificial para resolver problemas que não sejam favoráveis à computação ou à análise direta. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 24
O que é Sistema? é um conjunto de elementos interdependentes que realizam operações visando atingir metas especificadas. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 25
Sistema de Computação é aquele destinado ao suporte ou automação de tarefas através de processamento de informações. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 26
Componentes de Sistemas de Computação Hardware Computadores, periféricos e redes. Software Os programas e arquivos de dados. Usuários e operadores que realizam as tarefas e procedimentos. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 27
Componentes de Sistemas de Computação (cont. ) Procedimento Atividades realizadas s pelos usuários e operadores, bem como pelos programas. Documentaçã Manuais e formulários que o descrevem as operações do sistema. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 28
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 29
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 30
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 31
Componentes do Software Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 32
Características do Software • Complexidade • Conformidade • Mutabilidade Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 33
Características do Software • Complexidade – Software é mais complexo do que qualquer outro produto construídos por seres humanos. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 34
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 35
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). Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 36
Falhas do Hardware Defeitos de projeto e manufatura índice de falhas “desgaste” “mortalidade infantil” Problemas Ambientais (poeira, vibração, abuso, temperaturas, . . . ) tempo Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 37
Falhas do Software mudanças índice de falhas curva real curva idealizada tempo Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 38
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 39
Formas do Software Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 40
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 41
Crise do Software • Prazos ultrapassados • Custos acima do previsto • Não atendimento dos requisitos do usuário Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 42
Crise do Software • 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 43
Crise do Software • 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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 44
Crise do Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 45
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 46
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 47
Crise do Sofware Solução para a Crise do Sofware Engenharia de Software aliada a: TÉCNICAS E FERRAMENTAS Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 48
Causas dos problemas associados à crise de software • Filosofia do Software. • Falhas das Pessoas Responsáveis pelo Desenvolvimento de Software. • Mitos do Software. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 49
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 50
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 51
Mitos do Software Mitos do Administrativos, do Cliente e do Profissional Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 52
Problemas Administrativos • Gerentes se encontram sob pressão – manter orçamentos – evitar que os prazos sejam ultrapassados – melhorar a qualidade Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 53
Mitos Administrativos • Mito: Já temos um manual repleto de padrões e procedimentos para a construção de software. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 54
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? Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 55
Mitos Administrativos • Mito: Meu pessoal tem ferramentas de desenvolvimento de software de última geração; afinal compramos para eles os mais novos computadores. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 56
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 57
Mitos Administrativos • Mito: Se nós estamos atrasados nos prazos, podemos adicionar mais programadores e tirar o atraso. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 58
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 59
Mitos dos Clientes • Mito: Uma declaração geral dos objetivos é suficiente para se começar a escrever programas podemos preencher os detalhes mais tarde. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 60
Mitos dos Clientes • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 61
Mitos dos Clientes • Mito: Os requisitos de projeto modificam-se continuamente, mas as mudanças podem ser facilmente acomodadas, porque o software é flexível. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 62
Mitos dos Clientes • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 63
Mitos do Profissional • Mito: Assim que escrevermos o programa e o colocarmos em funcionamento nosso trabalho estará completo. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 64
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 65
Mitos do Profissional • Mito: Enquanto não tiver o programa "funcionando", eu não terei realmente nenhuma maneira de avaliar sua qualidade. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 66
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 67
Mitos do Profissional • Mito: A única coisa a ser entregue em um projeto bem sucedido é o programa funcionando. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 68
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 69
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 70
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. . Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 71
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. . Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 72
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 73
Aspectos históricos da Engenharia de Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 74
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” Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 75
O que é Engenharia de Software? • 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” Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 76
O que é Engenharia de Software? Programador (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 Profa. Maria Auxiliadora Engenheiro (técnicas) Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 77
O que é Engenharia de Software? • É 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 78
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 79
Engenharia de Software - Método • Todos os métodos pretendem –Criar modelos do sistema que possam ser representados graficamente; –Usar estes métodos como especificação. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 80
Engenharia de Software - Método • Década de 70 (De. Marco e Jackson): – Orientado à função. • 80 s-90 s (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). Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 81
Engenharia de Software - Método Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 82
Engenharia de Software - Método • Métodos devem incluir os seguintes componentes: –Descrição gráficas –Regras –Recomendações –Diretrizes de processo Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 83
Engenharia de Software - Método • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 84
Engenharia de Software - Método • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 85
Engenharia de Software - Método • Diretrizes de processo – Descrição das atividades que podem ser seguidas. – –Atributos de objetos devem ser documentados. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 86
Engenharia de Software - Ferramentas • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 87
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 , Argo. UML. . ) Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 88
Engenharia de Software - Procedimentos – 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 89
Engenharia de Software - Procedimentos Métodos Procedimentos Resultados Ferramentas Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 90
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 Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 91
Princípios da Engenharia de Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 92
Princípios da Engenharia de Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 93
Princípios da Engenharia de Software • 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). Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 94
Princípios da Engenharia de Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 95
Princípios da Engenharia de Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 96
Princípios da Engenharia de Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 97
Princípios da Engenharia de Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 98
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 99
Quais os custos da Engenharia de Software? Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 100
Quais os custos da Engenharia de Software? 0 25 Especificação 50 Desenho Desenvolvimento 75 100 Integração e Teste ØCustos segundo aproximação evolutiva 0 25 50 Especificação Desenvolvimento Evolutivo Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 75 100 Testes do Sistema 101
Quais os custos da Engenharia de Software? ØCustos relativos entre desenvolvimento e manutenção do software 0 25 Desenvolvimento 50 75 100 Manutenção Ø Custos de desenvolvimento de produtos de software genéricos: 0 Especificação Profa. Maria Auxiliadora 25 Desenvolvimento 50 75 100 Teste Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 102
Custo em relação a falhas Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 103
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%] Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 104
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 105
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 106
Responsabilidade profissional e ética • Direito de propriedade intelectual – os engenheiros devem estar cientes das leis locais que regulam o uso da propriedade intelectual, como patentes e direitos autorais. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 107
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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 108
Resumindo Engenharia de Software • Encontrar caminhos para se "construir" softwares de qualidade. • Fatores externos, perceptíveis aos usuários e clientes, devem ser distinguidos fatores internos, perceptíveis aos projetistas e implementadores. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 109
Resumindo Engenharia de Software • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 110
Prática • 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. Profa. Maria Auxiliadora Fonte: PRESSMAN, ROGER - Engenharia de Software - 6° Edição SOMMERVILLE - Engenharia de Software - 8° Edição 111
- Frases de san juan bosco a maria auxiliadora
- Resolver
- Profa campis
- Profa ma
- Internet profa
- Www.profa
- Internet profa
- Mba engenharia de software
- Engenharia de software
- Engenharia software
- Engenharia software
- Engenharia de software
- Engenharia de software
- Engenharia reversa de software exe
- Fundamentos de engenharia de software
- Engenharia de software
- Maria felicia de jesús sacramentado maría teresa arminda
- "prof universidade paulista unip"
- Unip engenharia quimica
- Engenharia aeronautica unip
- Engenharia elétrica unip
- Fenomenos de transporte engenharia
- Ftc engenharia civil
- Friburgo
- Unip mecatronica
- Engenharia mecatronica unip
- Unip
- Renumerar vigas cypecad
- Sistema auxiliares
- Escola engenharia
- Escola de engenharia de lorena
- Engenharia de tráfego
- Fluxo
- Trfego
- Modelo engenharia
- Unip intercambio
- Engenharia
- Engenharia
- Unip mecatronica
- Engenharia de produção universo
- Univag.com.br
- Surgimento da engenharia moderna
- Engenharia industrial madeireira ufpr
- Engenharia urbana ufrj
- Msf engenharia
- Fontele cenusii
- Mauscula
- Fonti del diritto europeo
- Judeus hebreus
- Fonte de imagem propria abnt
- Significato della parola storia
- Fonte de energia petróleo
- Marcel duchamp fonte
- Fasi lca
- Filme
- Manutention radiateur fonte
- Pai celeste criador
- Pai celeste criador
- Fonte calibri
- Http://4.bp.blogspot.com
- Fonte open sans
- Atividade sobre a luz e os corpos 3 ano
- Fonte viva natal
- Fonte des semis de l'orge microdochium nivale
- Digestione
- Fonte
- Fontes de luz primaria
- Fonte
- Twitter como fonte de notícias
- Ciclo hatch slack
- Simbolizare oteluri
- Sequencia de fases
- Assemblage radiateur fonte
- Fonte caixa alta
- Certas ondas podem sofrer amortecimento
- Maquina termica
- Fonte verdana bold
- Whats the fonte
- Fonti del diritto
- Http://4.bp.blogspot.com
- Fonte orale
- Insulina
- Barre de montage radiateur fonte
- Language fonte
- Arial 72
- Fonte calibri negrito
- Qual a fonte
- Qual fonte é
- Precificao
- Metodologia da pesquisa
- Triacilglicerol
- Triangulo ohm
- Qual fonte?
- Fonte scritta significato
- Fonte del papa lettomanoppello
- Fonte do direito administrativo
- Detector de fonte
- Tipo de fonte
- Procurar fonte por imagem
- Fonte
- Fonte
- Achar fonte
- Deus é a fonte da vida
- Fonte escrita
- Fonte orale
- Fonte
- Pai celeste criador
- Qual a fonte
- Fonte southland
- Opcional fonte arial tamanho
- Nome da fonte
- Fonte da imagem