Introdução à Engenharia de Software (parte II)

1.919 visualizações

Publicada em

Publicada em: Educação
0 comentários
0 gostaram
Estatísticas
Notas
  • Seja o primeiro a comentar

  • Seja a primeira pessoa a gostar disto

Sem downloads
Visualizações
Visualizações totais
1.919
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
77
Comentários
0
Gostaram
0
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Introdução à Engenharia de Software (parte II)

  1. 1. Engenharia de Software Unidade I – Conceitos Básicos Objetivo : Perceber os aspectos introdutórios e fundamentais sobre Engenharia de Software Prof. Nécio de Lima Veras
  2. 2. Software X Sistema <ul><li>Aula anterior (definição de software...)
  3. 3. Definição simplificada de sistema : </li></ul><ul><ul><li>é um conjunto de elementos inter-relacionados com um objetivo comum.
  4. 4. Exemplo ??? </li></ul></ul><ul><li>Todo sistema deve possuir 4 características básicas : </li></ul><ul><ul><li>elementos ou entidades;
  5. 5. relações entre elementos;
  6. 6. objetivo comum;
  7. 7. meio-ambiente; </li></ul></ul><ul>Meio ambiente </ul><ul>Sistema </ul><ul>subsistema </ul>
  8. 8. Em busca de uma definição formal... <ul><li>“ Um sistema é um conjunto de objetos unidos por alguma forma de iteração ou interdependência.” (Chiavenato, 1983)
  9. 9. “ Conjunto de elementos, entre os quais haja alguma relação. Disposição das partes ou elementos de um todo, coordenados entre si, e que formam uma estrutura organizada.” (Ferreira, 1988)
  10. 10. “ Conjunto de partes coordenadas, que concorrem para a realização de um conjunto de objetivos.” (Dias & Gazzaneo, 1989)
  11. 11. “ Sistema pode ser definido como um conjunto de elementos interdependentes que interagem com objetivos comuns formando um todo.” (Ballestero Alvarez, 1990)
  12. 12. “ Um sistema é um coleção significativa de componentes inter-relacionados, que trabalham em conjunto para atingir algum objetivo.” (Sommerville, 2003) </li></ul>
  13. 13. Algumas leis universais (segundo a T.G.S) <ul><li>“ Todo sistema se contrai, ou seja, é composto de subsistemas recursivos”;
  14. 14. “ Todo sistema se expande, ou seja, é parte de um sistema maior recursivamente”;
  15. 15. “ Quanto maior a fragmentação do sistema, maior será a necessidade para coordenar as partes”; </li></ul>
  16. 16. Engenharia de Sistemas (Sommerville) <ul><li>Atividade interdisciplinar que envolve equipes com diferentes formações técnicas;
  17. 17. Processos envolvidos: </li></ul><ul><ul><li>Definição de requisitos;
  18. 18. Projeto de sistemas;
  19. 19. Desenvolvimento de subsistema;
  20. 20. Integração de sistema;
  21. 21. Instalação de sistema;
  22. 22. Evolução de sistema;
  23. 23. Desativação do sistema. </li></ul></ul>
  24. 24. <ul>E.S.: Uma visão em camadas </ul><ul><li>Pressman sugere uma visão da engenharia de software como uma tecnologia em camadas, são elas: </li></ul><ul>Foco em Qualidade </ul><ul>Processos </ul><ul>Métodos </ul><ul>Ferramentas </ul>
  25. 25. <ul>A base: Foco em Qualidade </ul><ul><li>Qualidade é a característica total de uma entidade para satisfazer necessidades declaradas e implícitas. Essas características ou atributos têm que ser mensuráveis de modo que possam ser comparados por padrões conhecidos.
  26. 26. Toda engenharia deve se fundamentar no comprometimento com a qualidade.
  27. 27. É uma cultura onde o compromisso em melhoria continua em todo o processo de desenvolvimento do software é sustentado.
  28. 28. Focando na qualidade em todas as atividades de engenharia de software, reduz-se custo e melhora-se o tempo de desenvolvimento pela minimização de um novo trabalho de correção. </li></ul>
  29. 29. <ul>Foco em Qualidade </ul><ul><li>Para proceder com qualidade, um engenheiro de software tem que observar basicamente os seguintes aspectos: </li><ul><li>Controle de qualidade a partir de padrões ; </li><ul><li>Exemplo: NBR ISO 10006 (Gestão da qualidade) ; </li></ul><li>Uso de métricas para desenvolver estratégias para melhorar o produto de software e o processo;
  30. 30. Produto de software deve estar trabalhando corretamente e em conformidade com os requisitos tomados. </li></ul></ul>
  31. 31. <ul>Foco na qualidade </ul><ul><li>Para definir uma boa engenharia de software é necessário observar algumas características como: </li><ul><li>Usabilidade
  32. 32. Portabilidade.
  33. 33. Reusabilidade.
  34. 34. Manutenibilidade.
  35. 35. Eficiência.
  36. 36. Acessibilidade. </li></ul></ul>
  37. 37. <ul>Processo </ul><ul><li>Define uma estrutura, que consiste em áreas de processos chave. </li><ul><li>Áreas de processos chave são a base para o gerenciamento de projeto (exemplo: PMBOK ). </li></ul><li>Estabelecem que métodos técnicos sejam aplicados, quais ferramentas são usadas, que produtos de trabalho precisam ser produzidos, e que marcos são definidos.
  38. 38. Incluem a garantia que a qualidade será mantida, e que a mudança é devidamente controlada e gerenciada. </li></ul>
  39. 39. Processo de Software <ul><li>Sommerville: </li></ul><ul><ul><li>Consiste em atividades básicas: </li><ul><li>Especificação;
  40. 40. Desenvolvimento;
  41. 41. Validação; e
  42. 42. Evolução. </li></ul></ul></ul>
  43. 43. <ul>Método </ul><ul><li>Métodos definem procedimentos sistemáticos e ordenados de construção de software.
  44. 44. Essas atividades incluem um conjunto amplo de tarefas, tais como, análise de requisitos , design , construção do programa, teste e manutenção .
  45. 45. (Sommerville) Meio organizado de produzir software. Incluem as sugestões sobre: </li><ul><li>Processos a serem seguidos;
  46. 46. Notações a serem utilizadas;
  47. 47. Regras que regem as descrições;
  48. 48. Diretrizes do projeto. </li></ul></ul>
  49. 49. Método Metodologia: ciência de pensamento sistemático, usando os métodos ou procedimentos para uma disciplina em particular. <ul><ul><li>Exemplos de metodologias da engenharia de software: </li><ul><li>Metodologias Estruturadas;
  50. 50. Metodologias Orientada a Objetos. </li></ul></ul></ul>
  51. 51. <ul>Ferramentas </ul><ul><li>Promovem o suporte aos processos e métodos. </li><ul><li>Exemplo: Ferramentas CASE ( Computer Aided Software Engineeing ); </li><ul><li>P/ Sommerville: projetadas para dar apoio às atividades de rotina no processo de software, tais como, editar diagramas, verificar consistências, manter e controlar testes. </li></ul></ul><li>Podem ser automáticas ou semi-automáticas.
  52. 52. Assim como as metodologias, vários modelos de ferramentas são usadas para representar sistemas e softwares; </li></ul>
  53. 53. <ul>Ferramentas </ul><ul><li>Abordagem de Modelos de Ferramentas Estruturada: </li></ul><ul><ul><li>Diagrama de Entidade-Relacionamento
  54. 54. Diagrama de Fluxo de Dados
  55. 55. Pseudocódigo
  56. 56. Fluxograma </li></ul></ul><ul><li>Abordagem de Modelo de Ferramenta Orientada a Objeto: </li></ul><ul><ul><li>Linguagem de Modelagem Unificada (UML) </li></ul></ul>
  57. 57. <ul>Exercício </ul>
  58. 58. <ul>Bibliografia </ul><ul><li>CURSO JEDI, Introdução a Engenharia de Software – Lição 1 </li></ul><ul><li>PRESSMAN, Roger S. Engenharia de Software. Rio de Janeiro: McGraw-Hill, 2007.
  59. 59. SOMMERVILLE, Ian. Engenharia de Software. São Paulo: Editora Pearson, ed. 6, 2003.
  60. 60. Estes slides foram inicialmente criados pelo prof. Francisco Gerson (IFPI/Parnaíba) e gentilmente cedidos para que fossem atualizados/adaptados pelo prof. Nécio de Lima Veras. </li></ul>

×