Introducao eng software [modo de compatibilidade]
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

Introducao eng software [modo de compatibilidade]

  • 1,017 views
Uploaded on

 

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
1,017
On Slideshare
1,006
From Embeds
11
Number of Embeds
2

Actions

Shares
Downloads
12
Comments
0
Likes
0

Embeds 11

http://videoaulastipassofundo.blogspot.com.br 9
http://videoaulastipassofundo.blogspot.com 2

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Para reconhecer e entender a importância da engenharia desoftware, é preciso primeiro saber qual é a importância dospróprios softwares.Para isso, é necessário entender o que é um software.
  • 2. ◦ Software: conjunto de programas, documentação e procedimentos operacionais com os quais pode-se fazer com que os computadores e outros dispositivos eletrônicos sejam úteis aos homens. Sendo que os programas são conjuntos de instruções arranjadas de forma que possam ser entendidas e executadas por um computador.
  • 3. Tipos de aplicações de softwares: Software Básico Software Aplicativo Software Científico e de Engenharia Software Embutido Software de Computador Pessoal Software de Inteligência Artificial Software Baseado na Web
  • 4. 1.1.1 Software BásicoTambém conhecidos como “software desistema”,sistema”, se caracterizam por uma forteinteração com o hardware do computadorExecutam as funções de controle quepermitem que o software aplicativo tenhainterface com outros elementos do sistemaExemplos: operacionais,Exemplos: sistemas operacionais,compiladores,compiladores, drivers, etc…
  • 5. 1.1.2 Software Aplicativo categorias:Podem ter diversas funções e ser divididos em categorias:Software de Tempo Real ◦ Funções de monitoramento, análise e monitoramento, controle de eventos ◦ A resposta do sistema deve obedecer a severas restrições de tempo (p. ex., entre 1 minuto) milissegundo e 1 minuto) ◦ Exemplos: controle de tráfego aéreo, Exemplos: aéreo, relógio digital
  • 6. 1.1.2 Software Aplicativo Software Comercial ◦ Uma das maiores áreas de aplicação de software ◦ Facilitam operações comerciais e tomadas de decisões administrativas ◦ Exemplos: folha de pagamentos, contas a Exemplos: pagamentos, receber, estoque, pagar e a receber, controle de estoque, etc…
  • 7. Software Científico e de EngenhariaCaracteriza-se pelo processamento dedados numéricos.◦ Exemplos: astronomia, vulcanologia, análise da fadiga de materiais, biologia molecular, etc…◦ Outros exemplos: auxílio de desenvolvimento de projetos, como os programas CAD (Computer- Aided Design)
  • 8. Software Embutido◦ Controle de produtos e sistemas para os mercados industriais e de consumo.◦ Exemplos: controle do teclado de fornos de microondas, funções digitais de automóveis (como controle de combustível, mostradores no painel e sistemas de freio), etc…
  • 9. Software de Computador Pessoal◦ Esta categoria envolve diversos tipos de softwares utilizados para diferentes fins.◦ Exemplos: processadores de textos, planilhas eletrônicas, jogos, gerenciamento de dados, etc…
  • 10. Software de Inteligência Artificial◦ Sistemas que utilizam abordagens e metodologias da inteligência artificial◦ Principais aplicações: problemas difíceis de serem modelados computacionalmente por modelos tradicionais
  • 11. Software de Inteligência ArtificialPrincipais técnicas: sistemas baseados emconhecimento, sistemas especialistas, redesneurais, algoritmos genéticos, etc…◦ Exemplos: jogos, prova de teoremas, entendimento de língua natural (tradução automática, sumarização automática), robótica, aprendizado de máquina, etc
  • 12. Software Baseado na Web◦ Sistemas feitos para serem utilizados na internet por meio de um browser.◦ Tecnologias: HTML, ASP, CGI, PHP, Java, XML, etc…◦ Exemplos: Páginas pessoais, portais, consulta a bases de dados, etc…
  • 13. Para entender como surgiu aárea de Engenharia deSoftware, é preciso analisar ahistória da evolução dosoftware ao longo dos anos.
  • 14. Geralmente divide-se a evolução dos softwares em 4 eras: 2a. Era 4a. Era 1a. Era 3a. Era1950 1960 1970 1980 1990 2000
  • 15. 1a. Era Software customizado e produzido somente sob encomenda. Distribuição limitada. Durante esses anos, a maior parte do software era desenvolvida e usada pela própria pessoa ou organização.
  • 16. 1a. EraO desenvolvedor era um funcionário daempresa contratado para desenvolver osistema e ficar disponível para corrigir errosque pudessem surgir. Como apenas umapessoa era responsável pelodesenvolvimento e manutenção do sistema,não havia a necessidade de documentaçãoou estruturação, já que apenas odesenvolvedor deveria ser capaz deentender o software que desenvolveu.
  • 17. 2a. Era Começaram a surgir sistemas multiusuários, sistemas de tempo real, banco de dados Começaram a surgir também software como produto, ou seja, softwares produzidos para serem vendidos para diferentes organizações. Foi nessa época que começaram a surgir as empresas desenvolvedoras de software.
  • 18. 2a. Era Softwares desenvolvidos para mainframes e minicomputadores eram distribuídos para centenas e, às vezes, até milhares de usuários. Começaram a ser criadas bibliotecas de códigos, inclusive eram comprados produtos no exterior para acrescentar mais instruções às bibliotecas.
  • 19. No entanto, quando aumentou o uso e distribuiçãodos softwares, começaram a aumentar também osproblemas.Às vezes os programas tinham de ser corrigidosdevido à descoberta de falhas, ou alterados conformeas exigências do usuário ou adaptados a novoshardware, atividades atualmente chamadas de“manutenção de software”.
  • 20. A chamada “crise de software”surgiu porque a naturezapersonalizada dos programas e afalta de documentação em algunscasos praticamente impossibilitavaa sua manutenção.
  • 21. 3a. Era Surgem os sistemas distribuídos, ou sistemas em rede. Surgem eletrodomésticos e máquinas eletrônicas com software embutido. O hardware nessa época já tem um custo mais baixo.
  • 22. 3a. Era Foi nessa era que surgiram os microprocessadores pessoais, que passaram a ser amplamente consumidos pelo público geral, estimulando o crescimento de muitas empresas de software e o surgimento de novas empresas.
  • 23. 3a. Era O número de cópias vendidas de um software chegava a centenas de milhares. Nessa era, o hardware passa a ser considerado um produto primário básico, sendo que o software é responsável pela diferenciação.
  • 24. 3a. Era Enquanto a taxa de crescimento das vendas de hardware se estabilizaram na década de 80, as vendas de software continuaram a crescer.
  • 25. 4a. Era Podemos dizer que a quarta era se estende até os dias atuais. Esta era caracteriza-se pelas tecnologias orientadas a objeto, sistemas de inteligência artificial (sistemas especialistas, redes neurais), computação paralela e multi-processada, linguagens de programação de quarta geração.
  • 26. Importância do SoftwareAs diferentes eras da evolução dosoftware mostram que ele setornou mais importante à medidaque o hardware tornou-se um“problema resolvido”.
  • 27. Importância do Software Quando o computador começou a ser usado, aproximadamente na década de 50 e nas três décadas seguintes, o principal desafio era desenvolver hardware para reduzir custos de processamento e armazenagem de dados, bem como reduzir o seu tempo de processamento.
  • 28. Naquela época, o software era apenas um conjuntode instruções que dizia ao computador comoefetuar os cálculos o mais rápido possível.Aproximadamente no fim da década de 80 essecenário começou a mudar.Os computadores já eram rápidos o suficiente e ospesquisadores perceberam que o hardware estavasendo mal aproveitado, que ele podia ser utilizadopara resolver outros tipos de problemas.
  • 29. Então, a chave para o bom aproveitamento de um computador passou a ser o software.Claro que a preocupação com a evolução do hardware continua. Não se passa seis meses sem o lançamento de um processador mais veloz que os anteriores.No entanto, é crucial que os software acompanhem essa evolução, fazendo bom uso do hardware.
  • 30. Durante as primeiras eras do software, odesenvolvimento de software era feito deforma totalmente desorganizada.Não era feito nenhum projeto,planejamento, ou análise de requisitos eo software não era documentado.
  • 31. O software era simplesmente produzidoconforme o conhecimento e experiênciapessoal do programador.Com o tempo, o desenvolvimentodesorganizado levou a diversosproblemas.
  • 32. O principal problema é quando surgiamerros ou quando era necessária ou desejadaalguma mudança no software.Como o código não era documentado e nãoobedecia a nenhuma estrutura formal,apenas o desenvolvedor conseguiaentender e modificá-lo.
  • 33. Em alguns casos, quando a mudançaera realizada muito tempo após odesenvolvimento do software, mesmoo próprio desenvolvedor tinhadificuldades para entender o códigoque ele mesmo desenvolveu.Assim, as mudanças eram altamentecustosas.
  • 34. Ao conjunto de problemasencontrados no desenvolvimento desoftware deu-se inicialmente o nomede “crise de software”, sendoposteriormente chamado de“aflição crônica”.
  • 35. Veremos ainda diversos tipos deproblemas causados pela falta deplanejamento e programaçãoestruturada, como por exemplo:a insatisfação do cliente;a dificuldade de cumprir prazos;erro na previsão dos custos, entreoutros.
  • 36. Devido a esses problemas, verificou-se que era preciso tomar várioscuidados antes e durante odesenvolvimento de software, paraevitar que esses problemasocorressem.
  • 37. “Assim, a Eng. de Softwaresurgiu para propor estratégiasque evitassem que essesproblemas acontecessem.”
  • 38. Primeira definição (Fritz Bauer,1969):“O estabelecimento e uso de sólidosprincípios de engenharia para que se possaobter economicamente um software queseja confiável e que funcione eficientementeem máquinas reais”.
  • 39. Foco nos objetivos:• Economia• Confiabilidade• Eficiência
  • 40. Segundo Arndt Von Staa (1987):“O desenvolvimento e a aplicação de ciência, matemática, técnicas, métodos e ferramentas para o desenvolvimento e a manutenção econômica de software de qualidade, controlável, operando de modo econômico em máquinas e ambientes reais”.
  • 41. Foco nos objetivos:• Economia• Eficiência• Qualidade “preditível” eManutenção
  • 42. Segundo Anneliese Mayrhayser(1990):“Uma disciplina da Ciência daComputação que oferecemétodos, técnicas e ferramentaspara desenvolver e mantersoftwares com alta qualidadepara resolução de problemas”.
  • 43. Foco nos objetivos:• Software de qualidade• Resolução de problemasFoco nas metodologias:• Métodos• Técnicas• Ferramentas
  • 44. Métodos, Ferramentas e Procedimentos definidos na disciplina de Engenharia de Software:Permitem que o gerente controletodo o processo dedesenvolvimento do software
  • 45. Métodos, Ferramentas e Procedimentos definidos na disciplina de Engenharia de Software:Oferecem ao profissionaldesenvolvedor uma base para aconstrução de software de altaqualidade.Levam à produção de um softwareque atenda aos requisitos eexpectativas do cliente
  • 46. MÉTODOSDefinem diversos tipos de tarefas a seremrealizadas antes, durante e após odesenvolvimento de um software.Incluem a especificação de notações a seremutilizadas, critérios para medir a qualidade dosoftware e medidas de levantamento derequisitos
  • 47. Principais Tarefas: ◦ Planejamento e estimativa de projeto; ◦ Análise de Requisitos; ◦ Projeto da Estrutura de Dados; ◦ Algoritmo de Processamento; ◦ Codificação; ◦ Teste; ◦ Manutenção.
  • 48. FERRAMENTASPodem auxiliar o desenvolvimento desoftware em diversos níveis:◦ Apenas ambientes para codificação;◦ Apoio semi-automático;◦ Apoio automatizado.
  • 49. Ferramentas CASE (Computer-Aided SoftwareEngineering)◦ Ambientes de apoio ao desenvolvimento de software.◦ Podem incluir diferentes ferramentas integradas, de forma que a informação gerada por uma das ferramentas do ambiente possa ser utilizada por outra ferramenta do mesmo ambiente.
  • 50. Ferramentas CASE (Computer-Aided SoftwareEngineering)◦ Exemplo 1: um ambiente contendo compilador, banco de dados e ferramentas de auxílio ao teste de software◦ Exemplo 2: ambiente para a coordenação de desenvolvimento de software em equipe◦ Exemplo 3: ambiente que gera o código com base na modelagem.
  • 51. PROCEDIMENTOSIndicam como executar, naprática, as tarefas definidas pelosmétodos.
  • 52. PROCEDIMENTOSPodem indicar: ◦ a seqüência na qual os métodos serão aplicados; ◦ os produtos a serem entregues (documentos, relatórios, etc); ◦ controles de qualidade; ◦ coordenação de mudanças; ◦ etc.
  • 53. 1. Qual é a diferença entre software básico e software aplicativo?2. Quais são as 7 principais categorias de software aplicativo? Dê um exemplo de software de cada categoria.3. Quais são as características da 1a. era do software?4. Quais são as características da 2a. era do software?5. Quais são as características da 3a. era do software?6. Quais são as características da 4a. era do software?
  • 54. 7.Em qual era começaram a surgir problemas com os software?8. O que significa dizer que atualmente “software é mais importante que hardware”?9. Como é que a crise de software levou ao surgimento da engenharia de software? Comente.10. Defina engenharia de software com suas próprias palavras.11.Quais são os principais objetivos da engenharia de software?12.Quais são os 3 elementos da engenharia de software?