Você está na página 1de 60

Engenharia de Software

Introduo
Ricardo Argenton Ramos
UNIVASF
Engenharia de Software I - Aula 1
Tpicos
Apresentao da Disciplina
A importncia do Software
Software
Aplicaes de Software
Paradigmas de Projetos
Mitos de Software
Processo de Software
Modelos de Processo de Software
Plano de Aula
Conceitos fundamentais de Modelagem e Projetos
de software;
Modelos de processo de desenvolvimento de
software;
Engenharia de requisitos, projeto,
implementao, manuteno, documentao e
avaliao;
Conceitos de Reviso nas Etapas de
Desenvolvimento de Software;
Paradigmas de Desenvolvimento de Software:
abordagem orientada a funes; abordagem
orientada a dados e projeto de fluxo de dados.
Viso de projetos de Interfaces e tipos de
interfaces para a construo da prototipao.
Uso de Ferramentas CASE.
A importncia do Software
A Importncia do SOFTWARE
INSTRU INSTRU ES: ES: que quando executadas
produzem a funo com desempenho
desejados.
ESTRUTURAS DE DADOS: ESTRUTURAS DE DADOS: que
possibilitam que os programas manipulem
a informao de maneira adequada e
segura.
DOCUMENTOS DOCUMENTOS : descrio das operaes
e o do uso dos programas.
Caractersticas do software
No se desgasta com o tempo, mas
pode se deteriorar;
Pode ser desenvolvido ou projetado
pela engenharia, no manufaturado
no sentido clssico;
Principal destaque na melhoria da
performance de uma Empresa.
Hardware
Curva de desgaste
mortalidade
infantil
desgaste
Tempo
ndice de
Falhas
ndice
de
Falhas
Mudana
Curva Real
Curva
Idealizada
Tempo
Software
Curva de Desgaste
Caractersticas - Software
A maioria feita sob medida em
vez de ser montada a partir de
componentes existentes;
Grande parte dos softwares
produzidos no passado no
possuem documentao e nem
planejamento.
Aplicaes dos Softwares
BSICO coleo de programas
escritos para dar apoio a outros
programas;
TEMPO REAL software que
monitora, analisa e controla
eventos do mundo real;
CIENTFICO E DE ENGENHARIA
caracterizado por algoritmos de
processamento de nmeros
Aplicaes dos Softwares
COMERCIAL ou EMPRESARIAL
sistemas de operaes comerciais e
tomadas de decises
administrativas;
EMBUTIDO ou EMBARCADO
usado para controlar produtos e
sistemas para os mercados
industriais e de consumo
DE COMPUTADOR PESSOAL
envolve processamento de textos,
planilhas eletrnicas, diverses, etc.
Aplicaes dos Softwares
DE INTELIGNCIA ARTIFICIAL
faz uso de algoritmos no
numricos para resolver problemas
que no sejam favorveis
computao ou anlise direta;
A Evoluo do Software
1950
1965
1975
1990
Atual
O hardware sofreu contnuas
mudanas;
O software era uma arte
"secundria" para a qual havia
poucos mtodos sistemticos;
O hardware era de propsito
geral;
O software era especfico para
cada aplicao;
No havia documentao;
A Evoluo do Software
1950
1965
1975
1990
Atual
Multiprogramao e sistemas
multiusurios;
Tcnicas interativas;
Sistemas de tempo real
1a gerao de SGBDs;
Produto de software -
software houses;
Bibliotecas de Software.
A Evoluo do Software
1950
1965
1975
1990
Atual
Cresce o nmero de sistemas
baseado em computador
Manuteno quase impossvel
CRISE DO
SOFTWARE
A Evoluo do Software
1950
1965
1975
1995
Atual
Sistemas distribudos;
Redes locais e globais;
Uso generalizado de
microprocessadores -
produtos inteligentes;
Hardware de baixo custo;
Impacto de consumo.
A Evoluo do Software
(Quarta era da evoluo)
1950
1965
1975
1995
Atual
Tecnologias orientadas o
objetos;
Sistemas especialistas e
software de inteligncia artificial
usados na prtica;
Software de rede neural artificial
Computao Paralela
Crise do Software
CRISE DE SOFTWARE
Refere
Refere
-
-
se a um conjunto de
se a um conjunto de
problemas encontrados no
problemas encontrados no
desenvolvimento de software e na
desenvolvimento de software e na
etapa de Manuten
etapa de Manuten

o.
o.
Crise de Software
Problemas
1 1- - As estimativas de prazo e de custo As estimativas de prazo e de custo
freq freq entemente so imprecisas entemente so imprecisas
Falta de dedicao na etapa de
coletas de dados no processo de
desenvolvimento de software
Vaga indicao de produtividade
no se pode avaliar com preciso a
eficcia de novas ferramentas,
mtodos ou padres
Crise de Software
Problemas
2
2
-
-
Insatisfa
Insatisfa

o do cliente com o
o do cliente com o
sistema conclu
sistema conclu

do
do
Projetos de desenvolvimento de Projetos de desenvolvimento de
software so efetuados com um software so efetuados com um
vago ind vago ind cio das exigncias do cio das exigncias do
cliente cliente
Crise de Software
Problemas
3
3
-
-
A
A
qualidade
qualidade
de software
de software

s vezes
s vezes

menos que adequada


menos que adequada
S recentemente comeam a
surgir conceitos quantitativos
slidos de garantia de qualidade de
software
Crise de Software
Problemas
4
4
-
-
O software existente
O software existente

muito
muito
dif
dif

cil de manter (Sem


cil de manter (Sem
Manutibilidade
Manutibilidade
)
)
A tarefa de manuteno devora o
oramento destinado ao software
A facilidade de manuteno no
foi enfatizada como um critrio
importante
Problemas associados a Crise
do Software
1
1
-
-
CARATER
CARATER

STICAS PR
STICAS PR

PRIAS DO
PRIAS DO
SOFTWARE
SOFTWARE
O software um elemento de sistema
lgico e no fsico.
Conseqentemente o sucesso
medido pela qualidade de uma nica
entidade e no pela qualidade de
muitas entidades manufaturadas
O software no se desgasta, mas se
O software no se desgasta, mas se
deteriora com o tempo.
deteriora com o tempo.
C
A
U
S
A
S
Problemas associados a Crise
do Software
2
2
-
-
FALHAS DAS PESSOAS RESPONS
FALHAS DAS PESSOAS RESPONS

-
-
VEIS PELO DESENVOLVIMENTO DE
VEIS PELO DESENVOLVIMENTO DE
SOFTWARE
SOFTWARE
Gerentes sem nenhum background em
software
Profissionais da rea de software tm
pouco treinamento formal em novas
tcnicas para o desenvolvimento de
software
Resistncia a mudanas
C
A
U
S
A
S
Problemas associados a Crise
do Software
3
3
-
-
MITOS DO SOFTWARE
MITOS DO SOFTWARE
Falta de Planejamento e Comunicao
administrativos
cliente
profissional
C
A
U
S
A
S
Mitos do software
Administrativo Mito 1
J temos um manual repleto de
padres e procedimentos para a
construo de software.
Isso no oferecer ao meu pessoal
tudo o que eles precisam saber?
Mitos do software
Realidade
Realidade
-
- Mito 1:
Ser que o manual usado?
Os profissionais sabem que ele
existe?
Ele reflete a prtica moderna de
desenvolvimento de software?
Ele completo?
Mitos do software
Administrativo Mito 2 :
Meu pessoal tem Ferramentas de
desenvolvimento de software de
ltima gerao.
Realidade:
preciso muito mais do que os
mais recentes computadores e as
melhores ferramentas para se
fazer um desenvolvimento de
software de alta qualidade.
Mitos do software
Administrativo
Mito 3
Mito 3
:
:
Se ns estamos atrasados nos prazos,
podemos adicionar mais programadores
e recuperar o atraso
Realidade:
O desenvolvimento de software no
um processo mecnico igual
manufatura. Acrescentar pessoas
em um projeto torna-o ainda mais
atrasado.
Pessoas podem ser acrescentadas,
mas somente de uma forma
planejada.

CLIENTE:
CLIENTE:
Mito 1
Mito 1
:
:
Uma declarao geral dos
objetivos suficiente para
comear a escrever programas
- podemos preencher os
detalhes mais tarde.
Mitos do software
Realidade:
Realidade:
Uma definio inicial ruim a
principal causa de fracassos dos
esforos de desenvolvimento de
software.
fundamental uma descrio formal
e detalhada do domnio da informao,
funo, desempenho, interfaces,
restries de projeto e critrios de
validao.
Mitos do software
CLIENTE:
CLIENTE:
Mito 2
Mito 2
:
:
Os requisitos de projeto modificam-
se continuamente, mas as mudanas
podem ser facilmente acomodadas,
porque o software flexvel.
Mitos do software
Realidade:
Realidade:
Uma mudana, quando solicitada
tardiamente num projeto, pode ser
maior do que a ordem de magnitude
mais dispendiosa da mesma
mudana solicitada nas fases iniciais.
CLIENTE:
CLIENTE:
Mitos do software
MAGNITUDE DAS MUDAN
MAGNITUDE DAS MUDAN

AS
AS
FASES CUSTO DE MANUTENO
DEFINIO
1 x
DESENVOLVIMENTO
1.5 - 6x
MANUTENO
60 - 100x
Mitos do software
PROFISSIONAL:
PROFISSIONAL:
Mito 1
Mito 1
:
:
Assim que escrevermos o programa
e o colocarmos em funcionamento
nosso trabalho estar completo.
Mitos do software
Realidade:
Realidade:
Os dados da indstria indicam que
entre 50 e 70% de todo esforo
gasto num programa sero
despendidos depois que ele for
entregue pela primeira vez ao
cliente.
PROFISSIONAL:
PROFISSIONAL:
Mitos do software
PROFISSIONAL:
PROFISSIONAL:
Mito 2
Mito 2
:
:
Enquanto no tiver o programa
"funcionando", eu no terei
realmente nenhuma maneira de
avaliar sua qualidade.
Mitos do software
Realidade:
Realidade:
Um programa funcionando
somente uma parte de uma
Configurao de Software que inclui
todos os itens de informao
produzidos durante a construo e
manuteno do software.
PROFISSIONAL:
PROFISSIONAL:
Mitos do software
Evoluo do Software
CRISE DE SOFTWARE
Refere
Refere
-
-
se a um conjunto de
se a um conjunto de
problemas encontrados no
problemas encontrados no
desenvolvimento de software
desenvolvimento de software
Resposta Crise de Software
A aplicao de uma abordagem
sistemtica, disciplinada e possvel de ser
medida para o desenvolvimento, operao
e manuteno do software (IEEE).
PROCESSO DE SOFTWARE
PROCESSO DE SOFTWARE
Abrange um conjunto de trs elementos
fundamentais:
M
M

todos
todos
,
,
Ferramentas
Ferramentas e
Procedimentos
Procedimentos para projetar, construir e
manter grandes sistemas de software de
forma profissional
O Processo de Software
O Processo de Software
M M TODOS TODOS: fornecem os detalhes sobre como
fazer para construir o software
Planejamento e estimativa de projeto
Anlise de requisitos de software e de
sistemas
Projeto da estrutura de dados
Algoritmos de processamento
Codificao
Teste
Manuteno
O Processo de Software
FERRAMENTAS: FERRAMENTAS: do suporte
automatizado aos mtodos.
Existem atualmente ferramentas
para sustentar cada mtodo
Quando as ferramentas so
integradas, estabelecido um
sistema de suporte ao
desenvolvimento de software
chamado CASE - Computer Aided
Software Engineering
O Processo de Software

PROCEDIMENTOS:
PROCEDIMENTOS: constituem o
elo de ligao entre os mtodos e
as ferramentas
Seqncia em que os mtodos sero
aplicados
Produtos que se exige que sejam
entregues
Controles que ajudam assegurar a
qualidade e coordenar as alteraes
Marcos de referncia que possibilitam
administrar o progresso do software.
Um Processo de Software com
Qualidade
A Qualidade Qualidade do do Processo Processo de Software de Software
est relacionada extenso na qual
um processo de software especfico
eficiente eficiente e explicitamente definido definido,
gerenciado gerenciado, medido medido e controlado controlado.
A Qualidade Qualidade de de Processo Processo de Software de Software
tambm implica em um potencial potencial
para crescimento na capacidade do
processo de software e a
consistncia consistncia com a qual ele
aplicado em projetos por toda a
organizao.
Um Processo de Software com
Qualidade (SOMMERVILLE)
Inteligibilidade
o processo definido e inteligvel
Visibilidade
o progresso do processo visvel
externamente
Suportabilidade
o processo pode ser apoiado por
ferramentas CASE
Um Processo de Software com
Qualidade (SOMMERVILLE)
Aceitabilidade
o processo aceito por todos
envolvidos nele
Confiabilidade
os erros do processo so descobertos
antes que resultem em erros no
produto
Robustez
o processo pode continuar a despeito
de problemas inesperados
Um Processo de Software com
Qualidade (SOMMERVILLE)

Manutenibilidade
Manutenibilidade
o processo pode evoluir para atender
alteraes de necessidades
organizacionais
Velocidade
quo rpido o sistema pode ser
produzido
MODELOS DE PROCESSO DE SOFTWARE
MODELOS DE PROCESSO DE SOFTWARE MODELOS DE PROCESSO DE SOFTWARE
Um Processo de Software com
Qualidade
PROCESSO DE PROCESSO DE
SOFTWARE SOFTWARE
eficiente
eficiente
controlado
controlado
definido
definido
medido
medido
gerenciado
gerenciado
C M M
Fases Genricas dos Modelos de
Processo de ENGENHARIA
Especifica Especifica o o - estabelecer os requisitos e
restries do sistema
Projeto - produzir um modelo documentado do
sistema
Implementao - construir o sistema
Teste - verificar se o sistema atende s
especificaes requeridas
Instalao (ou implantao) - liberar o sistema
para o cliente e garantir que ele se torne
operacional
Manuteno eliminar defeitos e evoluir o
sistema conforme demanda.
Fases Genricas dos Modelos
de Processo de SOFTWARE
Independentemente da natureza
do projeto e aplicao os modelos
de processo de software possuem:
fase de defini fase de defini o o
fase de desenvolvimento fase de desenvolvimento
fase de manuten fase de manuten o o
atividades de apoio atividades de apoio
Fase de Definio do Processo
de Software
focaliza " focaliza "o que o que" ser " ser desenvolvido desenvolvido
que informao vai ser processada
que funo e desempenho so desejados
que comportamento pode ser esperado do
sistema
que interfaces vo ser estabelecidas
que restries de projeto existem
que critrios de validao so exigidos
para definir um sistema bem sucedido
que tarefas sero realizadas
Fase de Desenvolvimento do
Processo de Software
Focaliza "como" o software ser Focaliza "como" o software ser
desenvolvido desenvolvido
como os dados vo ser estruturados
como a funo vai ser implementada em
uma arquitetura de software
como os detalhes procedimentais vo ser
implementados
como as interfaces vo ser caracterizadas
como o projeto ser traduzido em uma
linguagem de programao
como os testes sero efetuados
Fase de Manuteno do
Processo de Software
focaliza as " focaliza as "mudan mudan as as" que ocorrero " que ocorrero
depois que o software for liberado depois que o software for liberado
para uso operacional para uso operacional
A fase de manuteno reaplica os
passos das fases de definio e
desenvolvimento, mas faz isso no
contexto de um software existente.
Fase de Manuteno do
Processo de Software
As mudanas esto associadas com:
correo de erros/defeitos
adaptaes exigidas conforme o ambiente
do software evolui
Aperfeioamentos para incluir funes
adicionais que traro benefcios para os
clientes
Modificaes preventivas para evitar erros e
facilitar modificaes futuras.
Atividades de Apoio ao
Processo de Software
As trs fases genricas do
processo de software so
complementadas por uma
srie de atividades de apoio.
As atividades de apoio so
aplicadas durante toda a
engenharia do software
Atividades de Apoio ao
Processo de Software
Atividades tpicas nessa categoria so:
Controle e Acompanhamento do Projeto
de Software
Revises Tcnicas Formais
Garantia de Qualidade de Software
Gesto de Configurao de Software
Preparao e Produo de Documentos
Gesto de reutilizao
Medies
Gesto de risco
Modelos de Processo de
Software
Existem vrios modelos de processo
de software (ou paradigmas de
engenharia de software)
Cada um representa uma tentativa
de colocar ordem em uma atividade
inerentemente catica
Pode-se citar os seguintes
modelos
modelos
de processo de software
de processo de software
Modelos de Processo de Software
O Modelo Seqencial Linear
(tambm chamado Ciclo de Vida Clssico ou
Modelo Cascata)
O Paradigma de Prototipao
Tcnicas de Quarta Gerao
O Modelo RAD (Rapid Application
Development)
Modelos de Mtodos Formais
Modelos Evolutivos de Processo de
Software
O Modelo Incremental
O Modelo Espiral
O Modelo de Montagem de Componentes
O Modelo de Desenvolvimento Concorrente
Software e Engenharia de
Software
A importncia do Software
Software
Aplicaes do Software
Mitos do Software
Processo de Software
Modelos de Processo de
Software
T
T

P
I
C
O
S
P
I
C
O
S