Baixe o app para aproveitar ainda mais
Prévia do material em texto
Assuntos do dia • Revisão da Engenharia de Software • Relação com Engenharia de Sistemas • Visão geral de Software• Visão geral de Software • Crise do Software • Surgimento da Engenharia de Software Sistema Baseado em Computador • Conjunto organizado de elementos para executar um método, procedimento ou controle ao processar informações – Software – Hardware – Pessoas – Banco de dados – Documentos – Procedimentos Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdados Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware Programas de computador, estruturas de dados e documentação correlata que SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdados documentação correlata que servem para realizar o método lógico, processo ou controle necessário Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware Dispositivos que fornecem capacidade computacional (eletrônicos), possibilitam o fluxo de dados (de SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdados fluxo de dados (de interconectividade) e fornecem funções ao mundo externo (eletromecânicos) Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdados Usuários e operadores de hardware e software Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware Uma coleção de informações grande e organizada a que se tem acesso pelo software e que SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdados tem acesso pelo software e que persiste ao longo do tempo Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware Manuais, arquivos de ajuda on-line, sites, e outras informações descritivas que mostram o uso e/ou a SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdados mostram o uso e/ou a operação do sistema Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdados Os passos que definem o uso específico de cada elemento do sistema, ou o contexto de processamento em que o sistema reside Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdados Interdisciplinaridade DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware Engenharia de Hardware SistemaSistemaEntrada Saída SoftwareSoftware PessoasPessoas Banco de Banco de dadosdadosEngenharia de Banco de Dados Engenharia Social Engenharia de Software Engenharia de Sistemas Conclusão • Antes de se desenvolver um software, deve-se compreender o "sistema", onde ele residirá, e não pensá-lo de forma isolada • Deve-se determinar o objetivo geral do sistema e os • Deve-se determinar o objetivo geral do sistema e os papéis do hardware, software, pessoal, bases de dados e outros elementos • Requisitos operacionais precisam ser obtidos, analisados, especificados, modelados, validados e gerenciados Sistema Baseado em Computador DocumentosDocumentos ProcedimentosProcedimentos HardwareHardware Entrada Saída Software PessoasPessoas Banco de Banco de dadosdados SistemaSistema Há software em quase tudo ... • Transporte • Médico • Telecomunicações• Telecomunicações • Militar • Industrial • ... Evolução Histórica da Computação (1950—1965) • Hardware era de propósito geral • Software era secundário em relação ao hardware • Software era específico para cada aplicação• Software era específico para cada aplicação • Carência de métodos sistemáticos • Não havia documentação Evolução Histórica da Computação (1965—1975) • Multiprogramação e sistemas multiusuários • Sistemas de tempo real • Sistemas gerenciadores de bancos de dados• Sistemas gerenciadores de bancos de dados • Software como produto � software houses • Cresce número de sistemas computacionais • Sem métodos, técnicas e documentação a manutenção é quase impossível Evolução Histórica da Computação (1975—1990) • Uso generalizado de microprocessadores • Redes locais e globais • Sistemas distribuídos• Sistemas distribuídos • Hardware de baixo custo • Impacto de consumo Evolução Histórica da Computação (4a era do software) • Miniaturização crescente • Redes sem fio e de alta velocidade • Dependência total!!! O que é um software? • Instruções (programas de computador) – que quando executadas devem produzir a função e o desempenho desejados • Documentos – que descrevem a operação e o uso dos programas O Papel do Software no Mundo • Mudanças profundas na maneira como estudamos, fazemos compras, trabalhamos, nos divertimos e comunicamos ... Imprevisível !?! • Ninguém poderia ter previsto que milhões de programas de computador tivessem de ser corrigidos, adaptados e aperfeiçoados à medida que o tempo passasse (softwares medida que o tempo passasse (softwares legados) ... • ... e que o custo com essas atividades de manutenção absorveria mais pessoas e recursos que todo o trabalho aplicado na criação de novos softwares Características do Software • O que difere o software de outras coisas feitas pelo ser humano? • A maioria é feita sob medida/encomenda ao invés • A maioria é feita sob medida/encomenda ao invés de ser montada a partir de módulos/componentes de programação existentes • Desenvolvido ou projetado por engenharia • Não se desgasta, mas se deteriora Características do Software • O que difere o software de outras coisas feitas pelo ser humano? • A maioria é feita sob medida/encomenda ao invés • A maioria é feita sob medida/encomenda ao invés de ser montada a partir de módulos/componentes de programação existentes • Desenvolvido ou projetado por engenharia • Não se desgasta, mas se deteriora Software é um sistema lógico • Por não ser um sistema físico, o software não é fabricado no sentido clássico • É desenvolvido ou passa por um processo de engenhariaengenharia • Os custos do software são concentrados na engenharia • Projetos de software não podem ser gerenciados como projetos de fabricação Características do Software • O que difere o software de outras coisas feitas pelo ser humano? • A maioria é feita sob medida/encomenda ao invés • A maioria é feita sob medida/encomenda ao invés de ser montada a partir de módulos/componentes de programação existentes • Desenvolvido ou projetado por engenharia • Não se desgasta, mas se deteriora Curva de Falhas do Hardware “mortalidade infantil”Índice de falhas “desgaste” Defeitos de projeto ou de fabricação Poeira, vibração, maus-tratos, temperatura, umidade, ... tempo Curva de Falhas Ideal do Software Índice de falhas Não é suscetível Defeitos de projeto ou de lógica de programação tempo curva ideal Não é suscetível a males ambientais!!! Curva de Falhas Real do Software Índice de falhas mudança curva real Deteriora-se acada alteração! tempo curva ideal Desgaste vs. Deterioração • Quando um componente de hardware se desgasta, é substituído por uma peça sobressalente • Não há peças sobressalentes de software!!!• Não há peças sobressalentes de software!!! • Falhas de software indicam erros no projeto ou na codificação • Conclusão: manutenção de software é muito mais complexa que a manutenção de hardware Evolução Histórica da Computação (1965—1975) • Sem métodos, técnicas e documentação • Sem métodos, técnicas e documentação a manutenção é quase impossível (CRISE DO SOFTWARE) Crise do Software • Designação dada ao conjunto de problemas encontrados no desenvolvimento de software 1- Imprecisão nas estimativas de prazo e de custo1- Imprecisão nas estimativas de prazo e de custo 2- Insatisfação do cliente com o sistema concluído 3- Qualidade de software menor que a adequada 4- Dificuldade de manutenção do software Problema 1 • Imprecisão nas estimativas de prazo e custo – “Não dedicamos tempo para coletar dados – “Não dedicamos tempo para coletar dados sobre o processo de desenvolvimento de software” – “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” Problema 2 • Insatisfação do cliente com o sistema concluído – “Os projetos de desenvolvimento de software – “Os projetos de desenvolvimento de software normalmente são efetuados apenas com um vago indício das exigências do cliente” Problema 3 • Qualidade do software entregue menor que a adequada – “Só recentemente começam a surgir conceitos – “Só recentemente começam a surgir conceitos quantitativos sólidos de garantia de qualidade de software” Problema 4 • Dificuldade de manutenção do software – “A tarefa de manutenção devora o orçamento destinado ao software”destinado ao software” – “A facilidade de manutenção não foi enfatizada como um critério importante” Causas da Crise do Software • Própria característica do software – Sistema lógico, que se deteriora com o tempo • Falhas na equipe de desenvolvimento – Gerentes sem experiência em software– Gerentes sem experiência em software – Profissionais com pouco treinamento em novas técnicas para o desenvolvimento de software – Resistência a mudanças • Mitos do software – Propagaram desinformação e confusão Resposta à Crise do Software http://lizard-sf.xanga.com/692267024/work-work-work/ Engenharia de Software • Abordagem sistemática, disciplinada e capaz de ser medida ao longo de um processo de construção de um software – Tipo e a ordem de execução de atividades na construção – Tipo e a ordem de execução de atividades na construção do software – Modelos gráficos descritivos do software – Diretrizes com base em boas práticas de projeto Leitura Recomendada – Capítulo 1 do livro texto: Pressman, Roger. Engenharia de Software, 7ed. McGrawHill, Porto Alegre, RS, 2011. – Capítulo 1 do livro texto: Sommerville, Ian. – Capítulo 1 do livro texto: Sommerville, Ian. Engenharia de Software, 9ed. Prentice Hall, São Paulo, SP, 2011. – Guide to the Software Engineering Body of Knowledge – SWEBOK V3. Editado por IEEE Computer Society. Disponível em http://www.swebok.org/
Compartilhar