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
Download

Engenharia de Software