UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE...

36
UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos Caparróz Carvalho

Transcript of UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE...

Page 1: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SULSISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE

Introdução à Engenharia de Software

Prof.ª Adriana dos Santos Caparróz Carvalho

Page 2: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Motivação Quando um Software é bem sucedido?

Possui as necessidades das pessoas que o usam Executa perfeitamente em um longo período de tempo Fácil de modificar e utilizar

PODE E MUDA COISAS PARA MELHOR

Quando um Software falha? Usuários estão insatisfeitos Erros ocorrem Difícil de modificar e utilizar

COISAS RUIM PODEM E ACONTECEM

Page 3: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Software O que é?

É o produto que os profissionais de software constroem e, depois, mantêm ao longo do tempo. Abrange programas que executam em computadores de qualquer tamanho e arquitetura.

Uma força propulsora! Um fator de diferenciação!

Desafio Aprimorar a qualidade do software que produzimos

Por que é importante? Porque afeta praticamente todos os aspectos de nossas vidas (lazer,

cultura, trabalho...)

Discussão: Como prover melhorias? Quem será agente das melhorias: o programador, as ferramentas, o

gerente?

Page 4: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

A importância do Software Fato

Durante as 3 décadas da era dos computadores, o principal desafio era desenvolver um hardware de baixo custo e alto desempenho.

Compõem o cenário atual: Hardware de grande desempenho; Hardware de menor custo; Hardware com grandes e rápidas modificações...

Proposição Hoje o desafio é melhorar a qualidade (e reduzir os custos)

das soluções baseadas em software.

Page 5: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Eras do Software 1ª Era: 1950-1960

Software: uma reflexão posterior Desenvolvimento de software sem administração Orientação batch (lote) Hardware orientado a uma (ou poucas) aplicações Software destinado a uma aplicação bem específica

Page 6: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Eras do Software 2ª Era: 1960-1970

Multiprogramação Sistemas multi-usuários Sistemas de tempo real Software voltado à ampla distribuição Horizonte incerto: milhares de linhas de

programas/instruções teriam de ser corrigidas (ou alteradas)

Page 7: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Eras do Software 3ª Era: 1970-1985

Sistemas distribuídos: aumento da complexidade e uso de muitos computadores

Redes locais e globais Demanda por acesso instantâneo Poderosas estações de trabalho PC como catalisador de crescimento de muitas

empresas

Page 8: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Eras do Software 3ª Era: 1985 ...

Tecnologias orientadas a objetos: na análise, no projeto, na criação de banco de dados

Sistemas especialistas e inteligência artificial Linguagens de programação aberta Sistemas para internet Usuários desenvolvedores Software sofisticados e com múltiplas funções

Page 9: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

O papel evolutivo do software Anteriormente

Desafio principal era desenvolver Hardware Reduzir o custo de processamento e armazenamento de dados Programação: arte Poucos métodos formais Esquema baseado em tentativa e erro Mundo indisciplinado

Hoje: Software é o item de maior custo Impacto na sociedade e cultura é profundo!!!!!! O software atingiu as grandes massas; tomada de decisões nos

negócios, base para a pesquisa científica, solução de problemas de engenharia e telecomunicações.

Reduzir o custo e melhorar a qualidade dos Softwares (potencial da computação)

Page 10: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

O papel evolutivo do software

Mudança O programador solitário de antigamente foi substituído

por uma equipe de especialistas em software, cada um se concentrando numa parte da tecnologia necessária para produzir uma aplicação complexa.

As questões continuam as mesmas: Por que tanta demora para entregar? 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 gastamos tanto tempo e esforço mantendo

programas existentes?

Page 11: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

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)

1- As estimativas de prazo e de custo freqüentemente 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” “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”

Page 12: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Crise do software

2- 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” “A comunicação entre o cliente e o desenvolvedor de software é muito

fraca”

3- A qualidade de software às vezes é menos que adequada Não usa de técnicas de teste sistemáticas e completas Só recentemente começam a surgir conceitos quantitativos sólidos de

garantia de qualidade de software

Page 13: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Crise do software

4- 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

Page 14: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Crise do software

Page 15: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Crise do software

Page 16: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Crise do software

Page 17: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Crise do software

Page 18: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Crise do software

Page 19: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Crise do software

Page 20: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Causas dos problemas

1- PRÓPRIO CARÁTER DO SOFTWARE O software é um elemento de sistema lógico e não físico. Conseqüentemente o sucesso é medido pela qualidade. É preciso ter claro suas prioridades, seus objetivos, suas delimitações.

2- 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.

Page 21: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Causas dos problemas

1- PRÓPRIO CARÁTER DO SOFTWARE O software é um elemento de sistema lógico e não físico. Conseqüentemente o sucesso é medido pela qualidade. É preciso ter claro suas prioridades, seus objetivos, suas delimitações.

2- 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.

3- MITOS DO SOFTWARE Propagaram desinformação e confusão

Page 22: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Mitos do Software Mitos administrativos

Mito Já temos um manual repleto de padrões e procedimentos para a

construção de software. Isso oferecerá ao meu pessoal tudo o que eles precisam saber.

Realidade Será que o manual é usado? Os profissionais sabem que ele existe? Ele reflete a prática moderna de desenvolvimento de software? Ele é completo?

Page 23: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Mitos do Software Mitos administrativos

Mito Se nós estamos atrasados nos prazos, podemos adicionar mais

programadores e tirar o atraso 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, mas somente de uma forma

planejada e bem coordenada.

Page 24: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Mitos do Software Mitos administrativos

Mito Meu pessoal tem ferramentas de desenvolvimento de software de última

geração; afinal compramos para eles os mais novos computadores. Realidade É preciso muito mais do que os mais recentes computadores para se

fazer um desenvolvimento de software de alta qualidade. Ferramentas de engenharia e software auxiliada por computador CASE

(Computer-Aided Software Engineering) são mais importantes do que o hardware

Page 25: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Mitos do Software Mitos dos clientes

Em muitos casos, o cliente acredita em muitos mitos sobre o software, porque os gerentes e profissionais não corrigem a desinformação

Mitos levam a falsas expectativas e insatisfação

Mito Uma declaração geral dos objetivos é suficiente para se começar a

escrever programas - podemos preencher os detalhes mais tarde. 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.

Page 26: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Mitos do Software Mitos dos profissionais

Durante os primórdios da computação, a programação era vista como uma forma de arte

“Velhas maneiras e atitudes dificilmente morrem”

Mito Assim que escrevermos o programa e o colocarmos em funcionamento

nosso trabalho estará completo. 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

Page 27: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Mitos do Software Mitos dos profissionais

Mito Enquanto não tiver o programa "funcionando", eu não terei realmente

nenhuma maneira de avaliar sua qualidade. 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

Page 28: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Mitos do Software Mitos dos profissionais

Mito A única coisa a ser entregue em um projeto bem-sucedido é o programa

funcionando. 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

Page 29: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

O que é Software?

Instruções (programas de computador) que, quando executadas produzem a função e o desempenho desejados;

Estruturas de dados que permitem a manipulação das informações

Documentos que descrevem a operação e uso dos programas

Produto: disponibiliza o potencial de computação presente no hardware do computador;

Veículo para entrega do produto: Age como base para o controle do computador; Para a comunicação da informação; Para a criação e o controle e outros programas O software entrega o mais importante produto de nossa época: a

informação.

Page 30: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Características do Software

Desenvolvido ou projetado por engenharia, não manufaturado no sentido clássico (industrial)

O sucesso é medido pela qualidade e não quantidade

Custos são concentrados no trabalho de engenharia

Page 31: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Características do Software

A maioria os softwares é feita sob medida e não montada a partir de componentes existentes Bem diferente do Hardware

A situação está mudando: Orientação a objetos Reusabilidade – diminui custos e melhora projetos

Page 32: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Características do Software Não se “desgasta”, mas se deteriora

Não é sensível aos problemas ambientais que fazem com que o hardware se desgaste.

Toda falha indica erro de projeto ou implementação A manutenção de um software é mais complicada que a do hardware

Curva de falhas para o hardware (Figura 1.1 – PRESSMAN, 2006, p. 4)

tempo

“desgaste”“mortalidade

infantilӒndice

de falhas

Defeitos de projeto e manufatura

ProblemasAmbientais

(poeira, vibração, abuso, temperaturas, ...)

Page 33: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Características do Software

Curva de falhas para o software (Figura 1.2 – PRESSMAN, 2006, p. 5)

mudanças

índice de falhas

curva real

curva idealizada

tempo

Page 34: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Aplicações do Software

SOFTWARE DE SISTEMA Coleção de programas escritos para apoiar outros programas.

Forte interação com o hardware Sistema operacional, compiladores, drivers, etc...

SOFTWARE DE TEMPO REAL Software que monitora, analisa e controla eventos do mundo real Sistema de controle de tráfego aéreo, relógio digital, ...

SOFTWARE BUSINESS Sistemas de operações comerciais e tomadas de decisões

administrativas Folha de pagamentos, contas a pagar e a receber ...

SOFTWARE CIENTÍFICO E DE ENGENHARIA Caracterizado por algoritmos de processamento numérico Astronomia, vulcanologia, análise de fadiga da mecânica de

automóveis, biologia molecular, projeto CAD, ...

Page 35: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Aplicações do Software

SOFTWARE EMBUTIDO Usado para controlar produtos e sistemas para os mercados

industriais e de consumo – produtos inteligentes Controle de microondas, de combustível, sistemas de freio

SOFTWARE DE COMPUTADOR PESSOAL Envolve processamento de textos, planilhas eletrônicas,

computação gráfica, diversões, etc.

SOFTWARE Baseado na Web Páginas Web (websites) recuperados por um browser (tecnologia web ASP, HTML, CGI, JAVA, XML, etc...)

Page 36: UNIVERSIDADE ESTADUAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO ENGENHARIA DE SOFTWARE Introdução à Engenharia de Software Prof.ª Adriana dos Santos.

Aplicações do Software

SOFTWARE DE 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 Sistemas especialistas, reconhecimento de padrões, redes

neurais, jogos, ...