universidade estadual de mato grosso do sul sistemas de informaÇÃo engenharia de software...
Post on 17-Apr-2015
105 Views
Preview:
TRANSCRIPT
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
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
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?
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.
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
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)
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
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
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)
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?
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”
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
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
Crise do software
Crise do software
Crise do software
Crise do software
Crise do software
Crise do software
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.
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
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?
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.
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
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.
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
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
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
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.
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
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
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, ...)
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
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, ...
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...)
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, ...
top related