Modelagem de Software Introdução, Definições, SWEBOK Sobre o curso • Prof. Dr. Michel Soares • Contato: [email protected] - Sala 1B131 • Terças-feiras: 10:40 as 12:20 • Quintas-feiras: 8:50 as 10:40 • Horário de atendimento extra-classe: • Terças-feiras: 15:00 as 17:00 Falhas de Software • SOFTWARE HORROR STORIES: http://www.cs.tau.ac.il/~nachumd/verify/horror.html • History's Worst Software Bugs: http://www.wired.com/software/coolapps/news/2005/11/69 355?currentPage=1 Complexidade do software • • • • • 1993: Windows NT 3.1 - 6 million 1994: Windows NT 3.5 - 10 million 1996: Windows NT 4.0 - 16 million 2000: Windows 2000 - 29 million 2002: Windows XP - 40 million • 2007: Windows Vista - ~50 million Como resolver? Testes? • Teste exaustivo é impossível • 100 LOCs com alguns caminhos e um único loop executando menos de 20 vezes gera 10 elevado a 14 caminhos de execução. • Testar todos os 100 trilhões de caminhos, assumindo que cada será avaliado em 1 milisegundo, levará 3170 anos Surgimento da Engenharia de Software • Crise do software • Conferências NATO (1968 e 1969) Crise do software • The major cause of the software crisis is that the machines have become several orders of magnitude more powerful! To put it quite bluntly: as long as there were no machines, programming was no problem at all; when we had a few weak computers, programming became a mild problem, and now we have gigantic computers, programming has become an equally gigantic problem. • — Edsger Dijkstra, The Humble Programmer (EWD340), Communications of the ACM Crise do software • • • • • • • • Projetos custando mais que o previsto Projetos demorando mais tempo que o previsto Software ineficiente Software de baixa qualidade Software não atingia todos os requisitos Projetos difíceis de gerenciar Código difícil de manter Software que nunca terminava Conferências NATO • 1968 - The Conference was attended by more than fifty people, from eleven different countries, all concerned professionally with software, either as users, manufacturers, or teachers at universities. • 1969 - The conference was intended as a direct sequel to the NATO conference on software engineering held at Garmisch, Germany, from 7th to 11th October 1968. About sixty people from eleven countries attended the meeting. NATO ? • The North Atlantic Treaty Organization or NATO (Organisation du traité de l'Atlantique Nord (OTAN)), also called the (North) Atlantic Alliance, is an intergovernmental military alliance based on the North Atlantic Treaty which was signed on 4 April 1949. Definições • Software engineering is the application of a systematic, disciplined, quantifiable approach to development, operation, and maintenance of software; that is, the application of engineering to software (IEEE). Definições • Establishment and use of sound engineering principles to obtain economically software that is reliable and works on real machines efficiently. (Fritz Bauer) O que Engenharia de Software não é? • Apenas programação • Engenharia de sistemas SWEBOK – Parte 1 SWEBOK – Parte 2 Maiores empresas de software • • • • • • • • • • 1 Microsoft 2 IBM 3 Oracle 4 SAP 5 Ericsson 6 HP 7 Symantec 8 Nintendo 9 Activision 10 EMC 54,270 22,485 20,958 12,558 7,274 6,669 5,636 5,456 4,447 4,356 10.6% 5.1% 12.8% 10.5% -4.2% 7.9% 1.3% -19.8% 3.9% 10.0% Foco do Curso • Princípios de Modelagem de Software • Linguagens de Modelagem – Formais – Semi-formais Formato do curso • Aulas expositivas – Visão geral – Nivelamento – Introdução ao tema • Leitura de artigos – Clássicos – Novos e relevantes • Resumo de artigos (1 página) • Discussão em sala dos artigos lidos Avaliação • • • • Resumos dos artigos (20%) Projeto de modelagem (20%) Artigo (20%) Prova (40%) – Todo o conteúdo, incluindo todos os artigos Resumos dos artigos • Entregar em PDF na sala de aula • Não serão aceitas entregas: – Por email – Impressas – Atrasadas • 1 única página para artigos de até 10 páginas, 2 páginas para artigos maiores que 10 páginas • Para facilitar, cada semana um aluno fica responsável pela coleta dos resumos • 1 semana de prazo / entregas semanais de resumos • Discussão em sala de aula • Formato: Nome do Aluno – Art N.PDF – Ex. MichelSoares – Art1. PDF Política sobre o plágio • Plágio não será tolerado • O trabalho relativo será zerado • Cópias de alunos também serão zeradas (todos trabalhos iguais serão zerados, independente de quem fez/copiou) Projeto de Modelagem • Sobre algum software/lista de requisitos, usando alguma linguagem de modelagem, exceto UML, DFDs, ER e outras • Feito em duplas • Converse com o professor sobre temas / linguagens • Pode ser requisitos já modelados em alguma linguagem • Definição de temas: até 05/04 Temas para projeto • Exs.: – Health Watcher – Rain Sensing Wiper system (Balmelli) – ARENA • Requisitos encontrados na literatura, já modelados (ou a serem modelados) • Não usar requisitos particulares • Conversar com o professor para definir os temas • Avaliação irá considerar dificuldade do projeto Possíveis Linguagens • • • • • • • • • • Redes de Petri Coloridas Z B SysML SDL Modelica Álgebra de processos (CCS, ACP, CSP) Statecharts Alloy Outras… Artigo • • • • 6 páginas Formato IEEE Data de apresentação a ser marcada Data de entrega a ser determinada (data única para todos) • Assunto: projeto modelado Seminários • • • • 30 minutos Datas a serem determinadas Ordem por sorteio no dia Apresentação do projeto/artigo Prova final • Individual • Consulta aos artigos e resumos será permitida Presença em sala de aula • Será obrigatória • Alunos com mais de 25% de faltas serão reprovados (Conceito final E) • Chamadas apenas no início da aula • Discussões dos artigos são fundamentais para entendimento e aprendizado • Mestrado/Doutorado vs. Graduação – Não é um curso básico de modelagem Leitura • Art1 – Boehm, B. A View of 20th and 21st Century Software Engineering. • Art2 – Brooks, F. No Silver Bullet: Essence and Accidents of Software Engineering. • Art3 – Cowling, A.J. The role of modelling in the software engineering curriculum. • Art4 – Berry, D. The Inevitable Pain of Software Development: Why There Is No Silver Bullet