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

Post on 18-Apr-2015

129 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Modelagem de Software

Introdução, Definições, SWEBOK

Sobre o curso

• Prof. Dr. Michel Soares• Contato: michel@facom.ufu.br - 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/69355?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 mili-segundo, 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 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%

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

top related