Escolar Documentos
Profissional Documentos
Cultura Documentos
Introducción A La Ingeniería de Software
Introducción A La Ingeniería de Software
Engenharia de Software
Viviane Torres da Silva
viviane.silva@ic.uff.br
http://www.ic.uff.br/~viviane.silva/2012.1/es1
Histrico
1968: Crise do Software
Nasce a Engenharia de Software
1970s:
Lower-CASE tools (programao, depurao, colaborao)
Ciclo de vida cascata
Desenvolvimento estruturado
1980s:
Ciclo de vida espiral
Desenvolvimento orientado a objetos
Atualmente
Mtodos geis
Desenvolvimento dirigido por modelos
Linhas de produto
Experimentao
Engenharia de Software para outros paradigmas
Agentes de Software
Elementos da ES
Mtodos
Descrevem como fazer um passo especfico do processo
So os how tos
Ferramentas
Automatizam / auxiliam o processo e os mtodos
mtodo
ferramenta
Processos
Ir de carro
Ir de nibus
Ir de bicicleta
Ir a p
nibus
probabilidade
probabilidade
carro
tempo
tempo
20 min
bicicleta
probabilidade
probabilidade
a p
20 min
tempo
20 min
tempo
20 min
Modelos de Maturidade
Mtrica de Qualidade
Modelos de Maturidade
A qualidade do produto est intimamente ligada qualidade
do processo
Um modelo de maturidade uma coleo estruturada de
elementos que descrevem certos aspectos da maturidade de
uma organizao
Servem para guiar empresas na busca por qualidade
No determinam como algo deve ser feito (no uma
metodologia), mas sim o que deve ser feito (melhores
prticas)
Principais modelos em uso no Brasil
CMMI (Capability Maturity Model Integration)
MPS.BR
CMMI
CMMI uma evoluo do CMM para estabelecer um modelo
nico
CMM (Capability Maturity Model) tem como objetivo
estabelecer com base em estudos, histricos e
conhecimento operacional um conjunto de "melhores
prticas para diagnstico e avaliao de maturidade do
desenvolvimento de softwares em uma organizao
O CMM fornece s organizaes orientao sobre como
ganhar controle do processo de desenvolvimento de software
e como evoluir para uma cultura de excelncia na gesto de
software.
CMMI
5 nveis de maturidade
CMMI Nveis
I/III
Nvel 2: gerenciado
Projeto executado de acordo com o planejado quando as etapas so
seguidas
Foco no gerenciamento bsico do processo
Gerncia de requisitos
Planejamento do projeto
Monitorao e Controle do projeto
Gerncia de Acordos com Fornecedores
Garantia da Qualidade do Processo e do Produto
Medio e Anlise
Gerncia de configurao
CMMI Nveis
II/III
CMMI Nveis
IIII/III
Nvel 5: otimizado
Foco na melhoria contnua do processo
Implantao de Inovaes na Organizao
Anlise de Causas e Resoluo
MPS.BR
Modelo brasileiro semelhante ao CMMI
Foco nas pequenas e mdias empresas brasileiras
Menor custo para implementao e avaliao
Mais degraus intermedirios, ajudando na melhoria progressiva
Nvel 5 = A
Nvel 4 = B
Nvel 3 = C
Nvel 2 = F
MPS.BR
Certificao ou melhoria?
Avaliaes CMMI e MPS.BR tem como foco a melhoria
contnua, e no a certificao
Resultado de uma avaliao
Nvel atingido
Pontos fortes
Pontos fracos
Oportunidades de melhoria
Validade de 3 anos
Processo de qualidade
ltima palavra para medir a qualidade de um processo:
Satisfao do Cliente
Outros indicadores importantes
Qualidade dos produtos gerados
Custo real do projeto
Durao real do projeto
Exemplos:
Cascata
Incremental
RAD (Rapid Application Development)
Prototipao
Espiral
verso final
...
funcionalidades
verso i
verso 1
tempo
...
Prototipao
Prototipao
Usualmente utilizado como auxlio a outro modelo de ciclo de
vida
til para
Validar um requisito obscuro com o cliente
Verificar o desempenho de um algoritmo especfico
Gerenciar o riso do desenvolvimento
Planejamento
(anlise de riscos)
Comunicao
Implantao
Modelagem
Construo
Modelo em papel
Prottipo
Verses do produto
Etc.
Processo Unificado
Tentativa de obter o que h de melhor em cada modelo de ciclo de
vida
Exerccio
Sua empresa foi contratada para fazer um software para um
cliente. Qual o melhor modelo de ciclo de vida para o caso
abaixo?
a) Este cliente possui os requisitos do produto que deseja muito
bem especificados.
b) Ele deseja receber o produto em etapas, i.e., deseja ver
diferentes verses do produto, e no somente o produto j
finalizado no prazo final de entrega.
c) Sua empresa no est acostumada a desenvolver produtos
para este domnio, por tanto obter feedback do cliente
importante, e cuidado com os riscos no desenvolvimento do
produto.
d) O prazo de entrega do produto de 80 dias
Software x Hardware
Software x Hardware
Software desenvolvido
Hardware manufaturado
Software x Hardware
Curva de falha de hardware
Taxa de falha
mortalidade infantil
Enguio
tempo
Software x Hardware
Taxa de falha
tempo
Software x Hardware
Taxa de falha
modificao
tempo
Manuteno
O que a manuteno?
O processo de modificar um sistema de software ou
componente, depois da entrega, para corrigir falhas,
melhorar desempenho ou outros atributos, ou adaptar a
mudanas no ambiente.
IEEE Std 620.12 1990
Desenvolvimento
Release
Manuteno
Desenvolvimento
Release
Manuteno
Desenv.
Desenv.
Desenv.
Release
Manut.
Release
Manut.
Manuteno emergencial
No programada
Mantm temporariamente o sistema funcionando
Necessita uma manuteno corretiva posterior
Manuteno preventiva
Pr-ativa
Corrige problemas latentes
Manuteno perfectiva
Prov melhorias para o usurio
Melhora atributos de qualidade do software
Processo de manuteno
Solicitao de
Modificao
Planejamento
Migrao
Anlise
Implementao
Descontinuidade
Reviso
Exerccio:
Aps a sua empresa entregar o produto ao cliente:
O usurio reportou um problema
A empresa detectou possveis geradores de problemas
futuros
A empresa deixou o produto mais seguro
Quais so os tipos de manuteno que precisam ser
realizadas neste software?
Alguns Mitos
Mitos gerenciais
Basta um bom livro de ES para fazer bom software
Um bom livro certamente ajuda, mas ele precisa refletir as tcnicas
mais modernas de ES e ser lido!
Mitos do cliente
Basta dar uma idia geral do que necessrio no incio
Requisitos ambguos normalmente so uma receita para desastre!
Comunicao contnua com o cliente fundamental!
7 princpios de Hooker
Tem que existir uma razo para se fazer software
Se no for possvel identificar essa razo, melhor no fazer
Fazer software, em ltima instncia, consiste em agregar valor para o
usurio
importante enxergar os reais requisitos do software!
7 princpios de Hooker
Mantenha o estilo
O projeto de um software deve seguir um nico estilo (estilo de
codificao, documentao, teste, um mesmo processo, ...)
A combinao de diferentes estilos corretos pode levar a um software
incorreto
Padres e estilos devem ser estabelecidos no incio e seguidos por
todos
7 princpios de Hooker
Esteja pronto para o futuro
Sistemas de boa qualidade tm vida longa
Projete desde o incio pensando na manuteno
Pense!
plano desnecessrio, mas planejar indispensvel D.
Eisenhower
Avalie alternativas
Detalhe os riscos
Exerccio
Jogo dos sete erros:
A nossa empresa fez o levantamento dos requisitos com o
cliente tentando esclarecer todas as ambigidades.
Aps a fase de levantamento dos requisitos, o projeto passou
para a fase de codificao.
Ao final da codificao e gerao do executvel, o projeto foi
testado.
S aps o teste, a empresa acionou o cliente novamente para
a entrega do cdigo gerado.
Durante a fase de codificao e aps verificar um atraso no
cronograma, mais profissionais foram includos na equipe e
parte do projeto foi terceirizada.
Aps a codificao do produto, toda a equipe foi deslocada
para o desenvolvimento de outro projeto.
Ns precisamos de ES!
Introduo a
Engenharia de Software
Vrias transparncias foram produzidas
por Leonardo Murta
http://www.ic.uff.br/~leomurta