engenharia de software: teoria e prática por que engenharia de software elaine harada teixeira de...
Post on 16-Apr-2015
110 Views
Preview:
TRANSCRIPT
Engenharia de Software: Teoria e Prática
Por que Engenharia de Software
Elaine Harada Teixeira de Oliveira
Extraído do livro de Shari L. Pfleeger
1o. semestre/2004
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Tópicos da aula
O que é engenharia de software? O histórico da engenharia de software O que é um ‘bom software’? Por que uma abordagem de sistemas é
importante Como a engenharia de software vem
mudando desde a década de 70
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Por que a engenharia de software? Análise versus síntese de um problema
O processo de análise
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Por que a engenharia de software? Análise versus síntese de um problema
O processo de síntese
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Por que a engenharia de software? Método ou técnica: procedimento para a produção de um
resultado.
Ferramenta: instrumento ou sistema automatizado para realizar alguma coisa.
Procedimento: receita de combinação de ferramentas e técnicas.
Paradigma: estilo de fazer algo, representa uma abordagem ou filosofia para a construção de software.
Ex.: um chefe de cozinha prepara um molho combinando ingredientes em uma ordem e momentos específicos.
Ex.: máquina de escrever, tesoura.
Ex.: plano de testes.
Ex.: cozinha francesa, chinesa, orientado a objetos, procedural.
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Qualidade — TerminologiasTerminologia padrão, segundo IEEE Standard 729 Erro: erro humano Defeito: resultado do erro evidenciado em algum
desenvolvimento ou manutenção do produto Falha: divergência entre o comportamento
requerido para o sistema e o comportamento real.
Como o erro humano causa uma falha
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Perspectivas de Garvin (1984) sobre qualidade
Visão transcendental: algo que podemos reconhecer, mas não definir
Visão do usuário: conveniência para propósito pretendido
Visão do fabricante: conformidade com especificação
Visão do produto: relação com as características inerentes ao produto
Visão do mercado: dependência de quanto os consumidores estão dispostos a pagar
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Abordagem de sistemas
Identificar atividades e objetos. Definir as relações e fronteiras do sistema. Considerar sistemas inter-relacionados.
Participantes no desenvolvimento de software
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Abordagem de sistemas
O sistema respiratório
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Abordagem de sistemas
Definição do sistema de produção de contracheques
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Construindo uma casa versus um software
Identificar e analisar os requisitos Produzir e documentar todo o projeto Detalhar as especificações Identificar e projetar os componentes Construir cada componente Testar cada componente Integrar os componentes Fazer as modificações finais Manutenção contínua
Análise e definição dos requisitos
Projeto do sistema Projeto do programa Escrever os programas Testes das unidades Teste de integração Teste do sistema Entrega do sistema Manutenção
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Membros de uma equipe de desenvolvimento
Os papéis da equipe de desenvolvimento
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Fatores-chave que mudaram a prática da engenharia de software (Wasserman) Aspecto crítico do tempo para entrega do produto ao mercado, no caso de produtos comerciais
Mudanças na economia da computação (redução dos custos de hardware e aumento nos custos de desenvolvimento e manutenção)
Disponibilidade poderosa da computação em desktops Aumento das redes locais e remotas Disponibilidade e adoção da tecnologia orientada a
objetos Uso de interfaces gráficas Imprevisibilidade do modelo de desenvolvimento de
software cascata
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Fatores-chave que mudaram a prática da engenharia de software (Wasserman)
Os fatores-chave que mudaram o desenvolvimento de software
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Disciplina de engenharia de software de WassermanOito noções fundamentais que formam a base de uma
disciplina de engenharia de software efetiva: Abstração Métodos e notações de análise e projeto Protótipo da interface com o usuário Arquitetura de software Processo de software Reuso Medição Ferramentas e ambientes integrados
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Abstração Descrição de um problema com um nível de
generalização que permite concentrar nos aspectos principais do problema, sem se perder nos detalhes
Hierarquia simples de monitoração de equipamento
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Arquitetura de software A arquitetura de sistemas descreve o sistema em termos de um
conjunto de unidades arquitetônicas e um mapa de como essas unidades se relacionam entre si.
Wasserman (1996) mostra cinco modos de dividir o sistema em unidades:
1. decomposição modular – baseada na atribuição de funções aos módulos
2. decomposição orientada a dados – baseada em estruturas de dados externas
3. decomposição orientada a eventos – baseada nos eventos com os quais o sistema deve lidar
4. projeto ‘de fora para dentro’ – baseado nas entradas dos usuários no sistema
5. projeto orientado a objetos – baseado na identificação de classes de objetos e suas inter-relações
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Processo de desenvolvimento de software
Processo de desenvolvimento de software - qualquer descrição do desenvolvimento de software que contenha algumas das nove atividades ao lado, organizadas de tal modo que, juntas, produzam um código testado.
Análise e definição dos requisitos
Projeto do sistema Projeto do programa Escrever os programas Testes das unidades Teste de integração Teste do sistema Entrega do sistema Manutenção
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Processo de desenvolvimento de software
Diferenças no desenvolvimento (Wasserman, 1996)
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Medição
Utilizando medição para ajudar a encontrar uma solução
Palavra-chave: aprimoramento
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Exemplos de sistema de informação
Piccadily Television: TV regional britânica Anunciante comercial tem diversas alternativas:
Propagandas de bebidas alcoólicas só podem ser apresentadas depois das 21 horas
Se um ator está em um programa, então um anúncio com o mesmo autor não pode ser transmitido antes de 45 minutos após o término do programa
Se um anúncio para a classe de produtos está programado para um dado intervalo comercial, então nenhum outro anúncio para outro produto dessa mesma classe pode ser apresentado nesse intervalo
Taxa depende do valor de tempo comprado Software determina o controle de tempo do anúncio
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Exemplos de sistema de informação
Área de cobertura da Piccadilly Television
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Exemplos de sistema de informação
Diagrama de contexto da TV Piccadilly mostrando as fronteiras do sistema (Robertson e Robertson, 1994)
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Exemplo de tempo real
Ariane-5, foguete espacial da European Space Agency
4 de junho de 1996: atuou perfeitamente por 40 segundos, quando começou a sair do curso e foi destruído
Continha quatro satélites: o custo foi de U$ 500 milhões
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Ariane-5 — definição de qualidade Do relatório de Lions et al. (1996):
“… na documentação que demonstrou a alta qualidade do programa Ariane-5 com relação ao trabalho dos engenheiros em geral e também ao grau de perfeição e rastreabilidade dos documentos”.
“… o fornecedor do SRI … estava apenas seguindo as especificações que lhe foram dadas. … A exceção foi detectada mas tratada de maneira não apropriada, porque, segundo o enfoque adotado, o software deveria ser considerado correto até que fosse evidenciado um defeito”.
Engenharia de Software: Teoria e PráticaShari Lawrence Pfleeger Capítulo 1 Prentice Hall
Referências Bibliográficas
GARVIN, D. What does ‘product quality’ really mean? Sloan Management Review, p.25-45, 1984.
LIONS, J. L. et al. Ariane 5 Flight 501 Failure: report by the inquiry board. European Space Agency, 1996.
PFLEEFER, Shari L. Engenharia de software: teoria e prática, 2. ed. São Paulo: Prentice Hall, 2004.
WASSERMAN, A. I. Toward a discipline of software engineering. IEEE Software, v.13, n.6, p.23-31. Nov. 1996.
ROBERTSON, James; ROBERTSON, Suzanne. Complete systems analysis: the workbook, the textbook, the answers. Nova York: Dorst House Publishing,1994.
top related