Eng.ª do Software - 1. Introdução

4.087 visualizações

Publicada em

Introdução à unidade (disciplina) de Engenharia do Software I para o curso de METI no ISCTE-IUL no 2.º semestre do ano lectivo de 2009/2010.

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

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

Nenhuma nota no slide

Eng.ª do Software - 1. Introdução

  1. 1. Engenharia do Software I<br />Manuel Menezes de Sequeira<br />DCTI, ISCTE-IUL<br />Manuel.Sequeira@iscte.pt, D6.02<br />As apresentações desta série baseiam-se nas apresentações disponibilizadas por IanSommerville, tendo sido alteradas e adaptadas primeiro por  Anders Lyhne Christensen e finalmente por Manuel Menezes de Sequeira. <br />
  2. 2. Sumário<br />Contactos<br />O que é a engenharia do software e qual a sua importância?<br />Panorâmica da unidade<br />Materiais<br />Avaliação<br />Informações práticas<br />2009/2010<br />2<br />Engenharia do Software I<br />
  3. 3. Contactos<br />2009/2010<br />3<br />Engenharia do Software I<br />
  4. 4. Manuel Menezes de Sequeira<br />Manuel.Sequeira@iscte.pt: correio electrónico e MSN<br />manuel.sequeira.iscte.pt: Skype<br />Gabinete: D6.02<br />Telemóvel: 962 337 428<br />http://www.google.com/profiles/MMSequeira<br />2009/2010<br />4<br />Engenharia do Software I<br />
  5. 5. O que é a engenharia do software?<br />2009/2010<br />5<br />Engenharia do Software I<br />
  6. 6. O que é o software?<br />Programas e documentação associada, incluindo requisitos, modelos de desenho e manuais de utilização<br />2009/2010<br />6<br />Engenharia do Software I<br />
  7. 7. O que é o software?<br />Produtos de software<br />Genéricos – Desenvolvidos para fornecer a diferentes clientes; e.g., Excel ou Word<br />Personalizados (custom) – Desenvolvidos para um cliente de acordo com os seus requisitos<br />2009/2010<br />7<br />Engenharia do Software I<br />
  8. 8. O que é o software?<br />Novo software<br />Desenvolvimento de novos programas<br />Configuração de sistemas de software genéricos<br />Reutilização de software existente<br />2009/2010<br />8<br />Engenharia do Software I<br />
  9. 9. Encontro da NATO em 1968 acerca da crise no software<br />Problemas que ainda não foram resolvidos:<br />Ultrapassagem do orçamento<br />Baixa produtividades<br />Produtos errados<br />Baixa qualidade<br />Manutenção constante – “Se não se fizerem mudanças, tornar-se-á inútil”<br />2009/2010<br />9<br />Engenharia do Software I<br />
  10. 10. Caos<br />O software é como uma catedral – primeiro constrói-se, depois reza-se.<br />SamRedwine<br />2009/2010<br />10<br />Engenharia do Software I<br />
  11. 11. Engenharia do software<br />Disciplina da engenharia focada em todos os aspectos da produção de software<br />2009/2010<br />11<br />Engenharia do Software I<br />
  12. 12. Engenharia do software<br />Engenheiros de software<br />Abordam trabalho de forma sistemática e organizada<br />Utilizam ferramentas e técnicas apropriadas ao problema a resolver, às restrições existentes e aos recursos disponíveis<br />2009/2010<br />12<br />Engenharia do Software I<br />
  13. 13. Engenharia do software<br />Não é ciência!<br />Constrói sistemas que outras pessoas usam<br />Thereis no silverbullet<br />Google Search – Tem de ser rápido<br />Gmail – Tem de ser fiável<br />2009/2010<br />13<br />Engenharia do Software I<br />
  14. 14. Engenharia do software<br />É um problema tramado<br />Há soluções melhores e soluções piores<br />Não há soluções certas e soluções erradas<br />Não há medidas objectivas de sucesso<br />2009/2010<br />14<br />Engenharia do Software I<br />
  15. 15. Comparação com outras engenharias<br />Software entities are more complex for their size than perhaps any other human construct, because no two parts are alike (at least above the statement level). If they are, we make the two similar parts into one… In this respect software systems differ profoundly from computers, buildings, or automobiles, where repeated elements abound.<br />Fred Brooks, 1986<br />2009/2010<br />15<br />Engenharia do Software I<br />
  16. 16. Engenharia do software vs. informática<br />Informática - Teoria e fundamentos<br />Engenharia do software - Questão prática de desenvolver e fornecer software útil<br />Teorias da informática insuficientes como fundamento da engenharia do software<br />Pelo contrário, física suficiente como fundamento da engenharia electrotécnica<br />2009/2010<br />16<br />Engenharia do Software I<br />
  17. 17. Disciplina dominante<br />À medida que o tamanho do software aumenta, a disciplina dominante muda [Feldman]<br />2009/2010<br />17<br />Engenharia do Software I<br />
  18. 18. Que ferramentas?<br />Ferramentas intelectuais<br />Ocultação de informação<br />Padrões de desenho<br />… <br />Mais relevantes que ferramentas de software!<br />2009/2010<br />18<br />Engenharia do Software I<br />
  19. 19. Que ferramentas?<br />Ferramentas de software<br />Ajudam a aplicar princípios, políticas e melhores práticas<br />Não decidem por nós<br />2009/2010<br />19<br />Engenharia do Software I<br />
  20. 20. CASE (Computer-Aided Software Engineering)<br />Ferramentas de software suportando automaticamente actividades do processo de desenvolvimento de software<br />Upper-CASE (actividades iniciais)<br />Recolha de requisitos<br />Desenho<br />Lower-CASE (actividades posteriores)<br />Programação<br />Depuração<br />Teste<br />2009/2010<br />20<br />Engenharia do Software I<br />
  21. 21. Processo de software<br />Conjunto de actividades destinadas a desenvolver ou fazer evoluir o software<br />2009/2010<br />21<br />Engenharia do Software I<br />
  22. 22. Processo de software<br />Actividades comuns<br />Especificação – O que deve fazer? Quais as restrições ao seu desenvolvimento?<br />Desenvolvimento – Produção do sistema<br />Validação – Verificação do sistema face às pretensões do cliente<br />Evolução – Alteração do software como resposta a alterações nos requisitos<br />2009/2010<br />22<br />Engenharia do Software I<br />
  23. 23. Modelo de processo de software<br />Representação simplificada de processo de software, com uma perspectiva específica<br />Perspectivas<br />Fluxo de trabalho (workflow) – Sequência de actividades<br />Fluxo de dados – Fluxo de informação<br />Papéis/acções – Quem faz o quê<br />2009/2010<br />23<br />Engenharia do Software I<br />
  24. 24. Modelo de processo de software<br />Modelos genéricos de processo<br />Cascata<br />Desenvolvimento iterativo<br />Engenharia do software baseada em componentes<br />2009/2010<br />24<br />Engenharia do Software I<br />
  25. 25. 2009/2010<br />25<br />Engenharia do Software I<br />
  26. 26. Custos por actividade<br />Waterfall model<br />25<br />50<br />75<br />100<br />0<br />Specification<br />Design<br />Development<br />Integration and testing<br />Iterative development<br />25<br />50<br />75<br />100<br />0<br />Specification<br />Iterative development<br />System testing<br />Component-based software engineering<br />25<br />50<br />75<br />100<br />0<br />Specification<br />Development<br />Integration and testing<br />Development and evolution costs for long-lifetime systems<br />10<br />20<br />30<br />40<br />0<br />System development<br />System evolution<br />2009/2010<br />26<br />Engenharia do Software I<br />
  27. 27. Metodologias de engenharia do software<br />Abordagens estruturadas ao desenvolvimento de software incluindo<br />Modelos de sistemas<br />Notações<br />Regras<br />Linhas orientadoras do processo<br />2009/2010<br />27<br />Engenharia do Software I<br />
  28. 28. Metodologias de engenharia do software<br />Descrições de modelos<br />Usualmente gráficas<br />Regras<br />Restrições aos modelos do sistema<br />Recomendações e melhores práticas<br />Linhas orientadoras do processo<br />Que fazer e quando<br />2009/2010<br />28<br />Engenharia do Software I<br />
  29. 29. Atributos do bom software<br />Cumpre requisitos funcionais e de desempenho do cliente<br />“Mantenível” (possível de manter) – Pode evoluir adaptando-se a requisitos em mutação<br />Fiável – É de confiança<br />Eficiente – Não desperdiça recursos<br />Aceitável pelos utilizadores – Compreensível, fácil de usar e compatível com outros sistemas<br />2009/2010<br />29<br />Engenharia do Software I<br />
  30. 30. A reter<br />Engenharia do software<br />Focada em todos os aspectos da produção de software<br />Resulta em produtos de software consistindo em programas e documentação<br />É sobretudo questão de pessoas e não de computadores<br />2009/2010<br />30<br />Engenharia do Software I<br />
  31. 31. A reter<br />Processo de software<br />Actividades necessárias para o desenvolvimento de produtos de software<br />Actividades básicas são especificação, desenvolvimento, validação e evolução<br />2009/2010<br />31<br />Engenharia do Software I<br />
  32. 32. A reter<br />Metodologias<br />Formas organizadas de produzir software<br />Incluem recomendações sobre<br />Processo a seguir<br />Notações a usar<br />Regras a seguir na descrição do sistema<br />Linhas orientadoras do desenho <br />2009/2010<br />32<br />Engenharia do Software I<br />
  33. 33. A reter<br />Ferramentas CASE são sistemas de software desenhados para suportar actividades rotineiras do processo de software<br />Edição de diagramas de desenho<br />Verificação da consistência dos diagramas<br />Registo e controlo dos testes efectuados<br />2009/2010<br />33<br />Engenharia do Software I<br />
  34. 34. A ler<br />IanSommerville, Software Engineering, 8.ª edição, Addison-Wesley, 2006<br />Capítulo 1<br />Capítulo 6<br />2009/2010<br />34<br />Engenharia do Software I<br />
  35. 35. Panorâmica da unidade<br />2009/2010<br />35<br />Engenharia do Software I<br />
  36. 36. Objectivos<br />Visão geral dos vários problemas, métodos, actividades, modelos, etc., associados ao desenvolvimento de software<br />Familiarização com panóplia de diferentes ferramentas e perspectivas permitindo boas escolhas face a problemas concretos<br />2009/2010<br />36<br />Engenharia do Software I<br />
  37. 37. Avaliação<br />Avaliação periódica<br />Frequência ≥ 7,5<br />Projecto ≥ 7,5<br />Final = 0,5 frequência + 0,5 projecto ≥ 9,5<br />Exame ≥ 9,5<br />2009/2010<br />37<br />Engenharia do Software I<br />
  38. 38. Formato e projecto<br />Uma aula teórica e uma aula prática por semana<br />Projecto<br />Desenvolvido ao longo do semestre<br />Entregue por etapas<br />Realizado em grupos de seis<br />Ênfase no processo e não no produto<br />2009/2010<br />38<br />Engenharia do Software I<br />
  39. 39. Tópicos<br />Requisitos<br />Processos de software<br />Desenvolvimento rápido de software<br />Arquitectura de software<br />Design de interfaces com o utilizador<br />Gestão de projectos<br />Verificação e validação<br />Testes de software<br />2009/2010<br />39<br />Engenharia do Software I<br />
  40. 40. Materiais e ferramentas<br />IanSommerville, Software Engineering, 8.ª edição, Addison-Wesley, 2006<br />Artigos vários na Web<br />Rational Requisite Pro<br />Bouml, UMLet ou outra aplicação para edição de diagramas UML<br />2009/2010<br />40<br />Engenharia do Software I<br />
  41. 41. Mais informação<br />Horário de dúvidas<br />Sextas-feiras, das 13:00 às 18h00 no gabinete D6.02<br />Avisardocentepor SMS no mínimoumahora antes<br />Todas as aulas no laboratório D1.01<br />Maisinformaçãoemhttp://www.piazzza.com/<br />2009/2010<br />41<br />Engenharia do Software I<br />
  42. 42. Manuel Menezes de Sequeira<br />Manuel.Sequeira@iscte.pt: correio electrónico e MSN<br />manuel.sequeira.iscte.pt: Skype<br />Gabinete: D6.02<br />Telemóvel: 962 337 428<br />http://www.google.com/profiles/MMSequeira<br />2009/2010<br />42<br />Engenharia do Software I<br />

×