Documente Academic
Documente Profesional
Documente Cultură
de Software
O que software?
Programas de computador,
juntamente com as estruturas de
dados e documentao associada
Tipos de software
Sistemas (bsico): editores,
compiladores, sistemas operacionais,
drivers.
Aplicativos: controle de negcios e
de processos
Embutido
Web
Legado
Aplicaes de software
industrial automation
business software
video games
telecommunications (the Internet and everything that flows on
it)
databases
educational software
medical software
image editing
spreadsheet
simulation software
Word processing
Decision making software
Mercado de Software
2008: U$303bi
2013: U$457bi
50% em 5 anos!!!
Crise do Software
Preo do hardware cai (circuitos
integrados)
Maior demanda por hardware
Maior demanda por software
Baixa produtividade e qualidade
Resultado:
Software entregue fora do prazo e com
maior custo
Grandes falhas
Mitos do software
Meu pessoal tem ferramentas de
desenvolvimento de software que esto no
estado da arte, afinal, compramos para
eles os computadores mais novos.
Se nos atrasarmos no planejamento,
podemos adicionar mais programadores
O estabelecimento geral de objetivos
suficiente para iniciar o desenvolvimento
do software podemos fornecer os
detalhes posteriormente
Mitos do software
Quando escrevemos um programa e
o fazemos funcionar, nosso trabalho
est completo
At que eu esteja com o programa
funcionando no tenho como avaliar
sua qualidade
Histria da modelagem de SW
1945-1960s
Mainframes
Software relativamente simples
Preocupao maior com hardware
Fluxogramas
Diagramas de mdulos
Decomposio funcional
COBOL, FORTRAN, ALGOL
Histria da modelagem de SW
1970s-1980s
Expanso do mercado computacional
(mainframes, micros, estaes de trabalho)
Software mais complexo
Programao estruturada (Dijkstra, Wirth)
Anlise e projeto estruturados (Tom DeMarco,
Gane & Sarson, Yourdon, Constantine)
Diagramas de Fluxo de Dados, Pseudolinguagem, Dicionrio de Dados, Tabelas e
rvores de deciso
Pascal, C, Ada
Histria da modelagem de SW
1980s 1995
Interfaces homem-mquina, redes
locais, PCs, Internet
Programao orientada a objetos
Anlise e projeto orientados a
objetos (Mellor, Fusion, Coad,
Yourdon, OOSE, OMT)
Diagramas de Classes
C++, Eiffel
Implementao
Testes
Implantao
Desenvolvimento iterativo e
incremental
Diversos passos (iteraes) com adio
de funcionalidades (incremental)
Requisitos so agrupados por
funcionalidade e implementados em
um ciclo de desenvolvimento
Partes do software so entregues
baseado em requisitos prioritrios.
Requisitos com maiores riscos so
atacados primeiro
Modelo em espiral
Modelo em espiral
Cada loop dividido em 4 setores:
Definio de objetivos
Avaliao e reduo de riscos
Desenvolvimento e validao
Planejamento
Metodologias geis
conceitos chave do Manifesto gil:
Indivduos e interaes ao invs de
processos e ferramentas.
Software executvel ao invs de
documentao.
Colaborao do cliente ao invs de
negociao de contratos.
Respostas rpidas a mudanas ao
invs de seguir planos.
Extreme Programming
A Extreme Programming (XP) uma
metodologia gil para equipes pequenas e
mdias que desenvolvem software baseado
em requisitos vagos e que se modificam
rapidamente.
Diferenciais
Feedback constante
Abordagem incremental
A comunicao entre as pessoas encorajada
12 prticas
Algumas prticas da XP
Entregas freqentes
Projeto simples
Programao em pares
Propriedade coletiva
Integrao contnua
Cdigo padronizado
Ferramentas CASE
Computer Aided Software
Engineering
Ferramentas que auxiliam (do
suporte) as atividades de um
processo de desenvolvimento de
software
Ex. editores de modelos,
compiladores, depuradores de
cdigo, gerenciadores de
configurao, ferramentas de teste,
StarUML
ArgoUML
RationalRose
Astah
Qualquer outra que o grupo quiser