Escolar Documentos
Profissional Documentos
Cultura Documentos
Software
O Processo
Engenharia de software
O Processo de Software
CMM - Capability Maturity Model
Modelos de Processo de Software
O Modelo Sequencial Linear
O Modelo de Prototipagem
O Modelo RAD
Modelos Evolucionrios
Desenvolvimento Baseado em Componentes
RUP
XP - eXtreme Programming
O Modelo de Mtodos Formais
Tcnicas de Quarta Gerao
Produto e Processo
Engenharia de software
Def. 1: a criao e a utilizao de
princpios de engenharia a fim de obter
software de maneira econmica, confivel e
eficiente.
Def. 2: a aplicao de uma abordagem
sistemtica (disciplinada e quantificvel)
para o desenvolvimento, operao e
manuteno do software.
Engenharia de software
Engenharia de Software uma tecnologia
em camadas
ferramentas
mtodos
processos
foco na qualidade
Engenharia de software
Foco na qualidade
compromisso organizacional com a qualidade
gesto da qualidade total
Processos
estrutura para a efetiva utilizao da tecnologia
base para o controle gerencial do projeto
como os mtodos tcnicos so aplicados
quais produtos do trabalho (modelos, docs, dados,
relatrios)
definem marcos
gerenciam as modificaes
Engenharia de software
Mtodos
tcnica de como fazer
anlise de requisitos, projeto, implementao,
teste e manuteno
Ferramentas
apoio automatizado para o processo e mtodos
CASE, CAD, CAE
Engenharia de software
Viso genrica da Engenharia de Software
qual o problema ?
quais as caractersticas principais ?
como a soluo vai ser realizada/construda ?
como detectar erros no projeto/construo ?
como ser mantido/aperfeioado ?
Engenharia de software
Fase de Definio
O QU ? entrada/funes/sadas
informao, planejamento do projeto, anlise de
requisitos, critrios de validao (testes)
Fase de Desenvolvimento
COMO ? estrutura dos dados/como implementar as
funes/interfaces
detalhes procedimentais, ling. de programao,
testes
Fase de Manuteno
MODIFICAES. correes/adaptaes/melhorias
Engenharia de software
Tipos de Manuteno
CORRETIVA
defeitos
ADAPTATIVA
mudanas no ambiente externo (entradas, hardware, SO)
PERFECTIVA
funes adicionais no previstas originariamente (surgem
com o uso)
PREVENTIVA
software se deteriora com modificaes !
modificaes (reengenharia) para facilitar que sejam
corrigidos, adaptados e melhorados
Engenharia de software
Atividades gerais (guarda-chuva)
Acompanhamento do projeto
Controle do projeto
Revises tcnicas formais
Gesto de configurao
Documentao
Gesto da reutilizao
Medio
Gesto de risco
O Processo de Software
Estrutura comum de processo
Atividades estruturais
Tarefas
Produtos finais
Marcos
Pontos de garantia de qualidade
Atividades guarda-chuva
Estrutura comum: aplicvel a qq tipo de projeto
Estruturais: adaptadas s caractersticas do projeto
Guarda-chuva: ao longo do processo
Quanto maturidade
organizao imatura - o desenvolvimento improvisado,
os processos especificados no so seguidos
Nvel 2: repetvel
processos bsicos de gesto de projetos (custo, cronograma e
funcionalidade), repete sucessos anteriores em projetos similares
Nvel 3: definido
o processo de software est documentado, padronizado e
integrado; inclui nvel 2
Nvel 4: gerenciado
medidas detalhadas da qualidade do processo e do produto; inclui
nvel 3
Nvel 5: otimizado
melhoria contnua pela realimentao do processo e do teste de
idias e tecnologias inovadoras, preveno de defeitos; inclui nvel
4
Nvel 2
Repetvel
Nvel 3
Definido
Nvel 4
Gerenciado
Nvel 5
Otimizado
Nvel 2 +
Revises pelos pares
Coordenao intergrupal
Engenharia de produto de software
Gesto integrada de software
Programa de treinamento
Definio do processo da organizao
Enfoque do processo da organizao
Nvel 4 +
Gesto de modificao de processo
Gesto de mudana de tecnologia
Preveno de defeitos
natureza da aplicao
mtodos e ferramentas a serem empregados
controles
produtos intermedirios
technical
development
status
quo
solution
integration
problem
definition
technical
development
status
quo
solution
integration
problem
definition
technical
development
status
quo
technical
development
status
quo
solution
integration
problem
definition
solution
integration
technical
development
status
quo
solution
integration
Sequencial Linear
Prototipagem
RAD
Evolucionrios
Incremental
Espiral
Baseado em Componentes
Mtodos Formais
Quarta Gerao
System/information
engineering
analysis
design
code
test
O Modelo de Prototipagem
listen
to
customer
build/revise
prototype
customer
test-drives
prototype
O Modelo de Prototipagem
Caractersticas
apenas os objetivos gerais do sistema so
definidos inicialmente
um projeto rpido desenvolvido (prottipo)
o prottipo avaliado e usado para refinar os
requisitos
interaes permitem entender melhor o desejo
do cliente
prottipo pode gerar uma falsa sensao de que
o sistema ser desenvolvido rapidamente
O Modelo RAD
team #2
team #1
team #3
business
mode ling
business
modeling
business
modeling
dat a
mode ling
process
mode ling
data
modeling
application
generat ion
testing
&
turnover
process
modeling
data
modeling
application
generation
process
modeling
testing
&
turnover
application
generation
testing
&
turnover
60 - 90 days
Modelagem do processo
processamento dos objetos de dados
Gerao da aplicao
4a. gerao, reuso, ferramentas automatizadas
Teste e entrega
reuso de componentes reduz testes
System/information
engineering
analysis
design
increment 2
code
analysis
test
design
delivery of
1st increment
code
increment 3 analysis
increment 4
delivery of
2nd increment
test
design
analysis
code
delivery of
3rd increment
test
design
code
test
delivery of
4th increment
calendar time
Risk Analysis
Customer
Communication
Engineering
Customer
Evaluation
Desenvolvimento Baseado em
Componentes
tecnologia de orientao a objetos
Planning
Risk Analysis
Customer
Communication
Engineering
Customer
Evaluation
Desenvolvimento Baseado em
Componentes
Caractersticas
classes criadas em projetos anteriores so
catalogadas em bibliotecas
as atividades de engenharia, construo e
liberao procuram identificar classes j existentes
na biblioteca, ou criam e incluem na biblioteca as
novas classes implementadas caso contrrio
o fluxo volta para a espiral
reuso de software: reduo no desenvolvimento,
reduo no custo, aumento de produtividade
uso de UML (Unified Modeling Language) linguagem unificada de modelagem
RUP
IBM RUP (Rational Unified Process)
Processo de Engenharia de Software integrado com
ferramentas de desenvolvimento de software
Desenvolvimento iterativo
desenvolva iterativamente
gerencie os requisitos
use arquitetura de componentes
modele graficamente
gerencie as mudanas
verifique a qualidade
RUP - ferramentas
Rational Rose Enterprise - UML
Rational PurifyPlus for Windows - deteco de bugs,
anlise de cdigo/performance
Rational
Rational
Rational
Rational
Web
XP - eXtreme Programming
O que ?
uma disciplina de desenvolvimento de software
Quando usar ?
em projetos arriscados com requisitos dinmicos
e uma equipe pequena (2 a 12 pessoas)
XP - eXtreme Programming
4 focos principais
comunicao - ao extremo entre cliente e equipe,
deciso mtua do que deve ser feito primeiro e o que
pode ser deixado pra depois
XP - eXtreme Programming
Cliente conta suas user-stories
Equipe extrai requisitos e cenrios de teste
Equipe combina com cliente a ordem das
features
Planos de releases e testes de aceitao so
definidos
Pequenos releases com as primeiras features
so gerados, testados e aprovados pelo cliente
Processo iterativo de novas features gerando
novos releases (testadas e aprovadas) at o fim
do projeto
XP - eXtreme Programming
XP - eXtreme Programming
12 prticas
1) The planning game - definio das features da
prxima verso
2) Small releases
3) Metaphor - uma user story
4) Simple design - KISS
5) Testing - teste das user stories
6) Refactoring - remoo de cdigo (tamanho e
complexidade)
XP - eXtreme Programming
12 prticas (cont.)
7) Pair programming
8) Collective ownership - todos devem possuir a habilidade
de alterar qualquer parte do cdigo
consulta a BDs
relatrios
definio de telas
gerao de pginas Web
etc.
Produto e Processo
Processo ruim Produto ruim
Mas cuidado com nfase excessiva nas
tecnologias de Processo !