modelagem de software introdução, definições, swebok

40
Modelagem de Software Introdução, Definições, SWEBOK

Upload: internet

Post on 18-Apr-2015

129 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Modelagem de Software Introdução, Definições, SWEBOK

Modelagem de Software

Introdução, Definições, SWEBOK

Page 2: 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

Page 3: Modelagem de Software Introdução, Definições, SWEBOK
Page 4: Modelagem de Software Introdução, Definições, SWEBOK
Page 5: Modelagem de Software Introdução, Definições, SWEBOK
Page 6: Modelagem de Software Introdução, Definições, SWEBOK
Page 7: Modelagem de Software Introdução, Definições, SWEBOK
Page 8: Modelagem de Software Introdução, Definições, SWEBOK

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/69355?currentPage=1

Page 9: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 10: Modelagem de Software Introdução, Definições, SWEBOK
Page 11: Modelagem de Software Introdução, Definições, SWEBOK

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 mili-segundo, levará 3170 anos

Page 12: Modelagem de Software Introdução, Definições, SWEBOK
Page 13: Modelagem de Software Introdução, Definições, SWEBOK
Page 14: Modelagem de Software Introdução, Definições, SWEBOK
Page 15: Modelagem de Software Introdução, Definições, SWEBOK
Page 16: Modelagem de Software Introdução, Definições, SWEBOK
Page 17: Modelagem de Software Introdução, Definições, SWEBOK

Surgimento da Engenharia de Software

• Crise do software• Conferências NATO (1968 e 1969)

Page 18: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 19: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 20: Modelagem de Software Introdução, Definições, SWEBOK

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.

Page 21: Modelagem de Software Introdução, Definições, SWEBOK

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.

Page 22: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 23: Modelagem de Software Introdução, Definições, SWEBOK

Definições

• Establishment and use of sound engineering principles to obtain economically software that is reliable and works on real machines efficiently. (Fritz Bauer)

Page 24: Modelagem de Software Introdução, Definições, SWEBOK

O que Engenharia de Software não é?

• Apenas programação• Engenharia de sistemas

Page 25: Modelagem de Software Introdução, Definições, SWEBOK

SWEBOK – Parte 1

Page 26: Modelagem de Software Introdução, Definições, SWEBOK

SWEBOK – Parte 2

Page 27: Modelagem de Software Introdução, Definições, SWEBOK

Maiores empresas de software

• 1 Microsoft 54,270 10.6% • 2 IBM 22,485 5.1% • 3 Oracle 20,958 12.8%• 4 SAP 12,558 10.5%• 5 Ericsson 7,274 -4.2%• 6 HP 6,669 7.9% • 7 Symantec 5,636 1.3% • 8 Nintendo 5,456 -19.8% • 9 Activision 4,447 3.9% • 10 EMC 4,356 10.0%

Page 28: Modelagem de Software Introdução, Definições, SWEBOK

Foco do Curso

• Princípios de Modelagem de Software• Linguagens de Modelagem– Formais– Semi-formais

Page 29: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 30: Modelagem de Software Introdução, Definições, SWEBOK

Avaliação

• Resumos dos artigos (20%) • Projeto de modelagem (20%)• Artigo (20%)• Prova (40%)– Todo o conteúdo, incluindo todos os artigos

Page 31: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 32: Modelagem de Software Introdução, Definições, SWEBOK

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)

Page 33: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 34: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 35: Modelagem de Software Introdução, Definições, SWEBOK

Possíveis Linguagens

• Redes de Petri Coloridas• Z• B• SysML• SDL• Modelica• Álgebra de processos (CCS, ACP, CSP)• Statecharts• Alloy• Outras…

Page 36: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 37: Modelagem de Software Introdução, Definições, SWEBOK

Seminários

• 30 minutos• Datas a serem determinadas• Ordem por sorteio no dia• Apresentação do projeto/artigo

Page 38: Modelagem de Software Introdução, Definições, SWEBOK

Prova final

• Individual• Consulta aos artigos e resumos será permitida

Page 39: Modelagem de Software Introdução, Definições, SWEBOK

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

Page 40: Modelagem de Software Introdução, Definições, SWEBOK

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