A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Introdução à Engenharia de Software

Apresentações semelhantes


Apresentação em tema: "Introdução à Engenharia de Software"— Transcrição da apresentação:

1 Introdução à Engenharia de Software
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

2 Motivação Possui as necessidades das pessoas que o usam
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

3 Software O que é? Desafio Por que é importante? Discussão:
É 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?

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

5 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

6 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)

7 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

8 Eras do Software 3ª Era: 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

9 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)

10 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?

11 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”

12 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

13 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

14 Crise do software

15 Crise do software

16 Crise do software

17 Crise do software

18 Crise do software

19 Crise do software

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

21 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

22 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?

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

24 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

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

26 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

27 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

28 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

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

30 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

31 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

32 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 Problemas Ambientais (poeira, vibração, abuso, temperaturas, ...)

33 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

34 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, ...

35 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...)

36 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, ...


Carregar ppt "Introdução à Engenharia de Software"

Apresentações semelhantes


Anúncios Google