Você está na página 1de 84

Eliane Martins - Instituto de Computao - UNICAMP

Engenharia de Software: Introduo


Engenharia de Software: Introduo
Eliane Martins
eliane@ic.unicamp.br
Criado: mar/2002
Atualizado: mar/2006
2 Eliane Martins - Instituto de Computao - UNICAMP
Tpicos
Tpicos
Sw de uso pessoal x Sw produto
Evoluo do papel do sw
Caractersticas do sw
A crise
Mitos
Objetivos da E/Sw
O Processo
3 Eliane Martins - Instituto de Computao - UNICAMP
Referncias
Referncias
I.Sommerville. Software Engineering. Addison-Wesley. 6 edio,
2001, cap.3
R.S.Pressman. Software Engineering: a Practitioners Approach. Mc-
Graw Hill, ???, cap.???
B. Brgger. Component-based Software Engineering. Notas de aula.
Universidade Tcnica de Munique (TUM), Nov/1997.
S.Easterbrook. Software Engineering I. Notas de aula. Universidade de
Toronto, 2001. Obtido em julho/2004 no site:
http://www.cs.toronto.edu/~sme
C.R.Santos; V.L.P.Santoro; O.C.Fernandes. Processo Unificado.
Apresentao no curso de MO409 2005.
4 Eliane Martins - Instituto de Computao - UNICAMP
Sw uso pessoal x
Sw produto
Sw uso pessoal x
Sw produto
Sw de uso pessoal:
um programador
um usurio
vida curta
5 Eliane Martins - Instituto de Computao - UNICAMP
Sw uso pessoal x
Sw produto
Sw uso pessoal x
Sw produto
Sw de uso pessoal:
um programador
um usurio
vida curta
Sw produto:
equipe de desenvolvimento
mltiplos usurios
longa durao
enfoque sistemtico para
desenvolver e manter
6 Eliane Martins - Instituto de Computao - UNICAMP
Evoluo do papel do sw
Evoluo do papel do sw
Importncia do sw em sistemas computacionais 7
Causas:
queda no custo do hw
avano da tecnologia do hw
custo do desenvolvimento do sw 7
custo de manuteno do sw 7
7 Eliane Martins - Instituto de Computao - UNICAMP
Evoluo do papel do sw
Evoluo do papel do sw
Importncia do sw em sistemas computacionais 7
Causas:
queda no custo do hw
avano da tecnologia do hw
custo do desenvolvimento do sw 7
custo de manuteno do sw 7
mudana de enfoque no
desenvolvimento: hw sw
demanda por sistemas
computacionais 7
Progama Apollo (1969): sw < 10Mbytes
Progama Columbus : sw 100Mbytes [Sommerville2007, c.2]
8 Eliane Martins - Instituto de Computao - UNICAMP
Evoluo do papel do sw
Evoluo do papel do sw
Importncia do sw em sistemas computacionais 7
Causas:
queda no custo do hw
avano da tecnologia do hw
custo do desenvolvimento do sw 7
custo de manuteno do sw 7
complexidade do sw 7:
novas tcnicas de desenvolvimento e manuteno
necessidade de equipes
9 Eliane Martins - Instituto de Computao - UNICAMP
Evoluo do papel do sw
Evoluo do papel do sw
Importncia do sw em sistemas computacionais 7
Causas:
queda no custo do hw
avano da tecnologia do hw
custo do desenvolvimento do sw 7
custo de manuteno do sw 7
custo com pessoal 7
complexidade do sw7
10 Eliane Martins - Instituto de Computao - UNICAMP
Evoluo do papel do sw
Evoluo do papel do sw
Importncia do sw em sistemas computacionais 7
Causas:
queda no custo do hw
avano da tecnologia do hw
custo do desenvolvimento do sw 7
custo de manuteno do sw 7
nmero de sistemas em operao
7 =custos com manuteno 7
11 Eliane Martins - Instituto de Computao - UNICAMP
Caractersticas do sw
Caractersticas do sw
Sw x Hw:
sw no manufaturado
sw invisvel, intangvel, abstrato
sw no governado por leis fsicas
sw pode ser totalmente replicado
sw cada vez mais caro que o hw
12 Eliane Martins - Instituto de Computao - UNICAMP
Mnuteno
do sw
Desenvolvi
mento do
sw
Hardware
0
20
40
60
80
100
120
1955 1970 1985
%

c
u
s
t
o
[B.Boehm, 1976]
13 Eliane Martins - Instituto de Computao - UNICAMP
Caractersticas do sw
Caractersticas do sw
Sw x Hw:
sw no se desgasta com o uso, mas se degrada com
as modificaes
tempo
t
a
x
a
d
e

f
a
l
h
a
s
hw
mortalidade
infantil
desgaste
tempo
t
a
x
a
d
e

f
a
l
h
a
s
ideal
real
sw
alterao
14 Eliane Martins - Instituto de Computao - UNICAMP
Caractersticas do sw
Caractersticas do sw
Sw x Hw:
sw no se desgasta com o uso, mas se degrada com
as modificaes custos com manuteno 7
1970
Manu-
teno
35-40%
Desenvol-
vimento
Manu-
teno
40-60%
Desenvol-
vimento
1980
Manu-
teno
70-80%
Desenvol-
vimento
1990
15 Eliane Martins - Instituto de Computao - UNICAMP
A crise do sw
A crise do sw
Crise ou doena crnica?
A maioria dos grandes sistemas de sw:
ultrapassam os custos pr-estabelecidos,
so entregues com atraso,
no correspondem ao que o usurio esperava.
Its late, costly, incompetent - but try firing a computer system
J.Rothfeder, 1989.
16 Eliane Martins - Instituto de Computao - UNICAMP
A crise do sw
A crise do sw
2%
3%
29%
19%
47%
Utilizvel
Utilizvel aps
correes
No terminados
Abandonados
Nunca usados
[Lehman 90]
17 Eliane Martins - Instituto de Computao - UNICAMP
Exemplos
Exemplos
Anos 80:
Fora Area Americana, sw de comando e controle:
custo inicial estimado: U$400.000,00
custo final: U$3.200.000,00
Sw de recebimento de imposto de renda (EUA):
qualidade: o sistema se mostrou inadequado para a carga esperada
custo: a Receita Federal dos EUA gastou mais U$90.000.000,00 para
corrigir o sw que custou U$103.000.000,00
devido ao atraso, a RF ainda teve de pagar mais U$63.000.000,00 de
multas por atraso e juros
[Jalote97, 1.1.2]
[B.Brgge 97, Notas de curso TUM]
18 Eliane Martins - Instituto de Computao - UNICAMP
Exemplos
Exemplos
nibus Espacial:
Custo:
U$10.000.000.000,00 (vrios milhes a mais do que o estimado)
Prazo:
3 anos de atraso
Qualidade: primeiro lanamento do Columbia foi cancelado devido a
problemas de sincronizao de seus 5 computadores de bordo
causa: modificao feita 2 anos antes, em que tempo de espera de um
tratador de interrupo passou de 50ms para 80ms
o erro era um evento raro, tanto que no foi detectado durante as mais de
mil horas de teste
muitos erros ainda subsistem. Os astronautas recebem um livro contendo
os problemas de sw que j so conhecidos.
[B.Brgge 97, Notas de curso TUM]
19 Eliane Martins - Instituto de Computao - UNICAMP
Mitos - 1
Mitos - 1
Uso de computadores de ltima gerao =qualidade
do sw7
Uso de ferramentas CASE de ltima gerao =
qualidade do sw7
Atraso no desenvolvimento =aumentar equipe
Desenvolvimento pode ser iniciado com descrio geral
dos objetivos; detalhes so acrescentados depois
20 Eliane Martins - Instituto de Computao - UNICAMP
Mitos - 2
Mitos - 2
Mudanas nos requisitos so facilmente acomodadas
pois o sw flexvel
Sw pronto =equipe de sw desnecessria
Enquanto o sw no est rodando, no h meios de se
avaliar sua qualidade
O nico produto do desenvolvimento de sw o
programa rodando
21 Eliane Martins - Instituto de Computao - UNICAMP
Engenharia de Software - surgimento
Engenharia de Software - surgimento
Surgiu em 1968-1969 em reunio da OTAN
O termo veio do nome da conferncia
Motivao:
Dificuldade da indstria em produzir software grande e
complexo
Participantes:
Manufatura de computadores, usurios, software houses,
academia
Para documentos iniciais veja em:
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/
Surgiu em 1968-1969 em reunio da OTAN
O termo veio do nome da conferncia
Motivao:
Dificuldade da indstria em produzir software grande e
complexo
Participantes:
Manufatura de computadores, usurios, software houses,
academia
Para documentos iniciais veja em:
http://homepages.cs.ncl.ac.uk/brian.randell/NATO/
22 Eliane Martins - Instituto de Computao - UNICAMP
Sistemas socio-tcnicos
Sistemas socio-tcnicos
Grande desafio da Engenharia de Software hoje
em dia
Sistemas que envolvem hw, sw, pessoas e mais
polticas e regras organizacionais
Tm propriedades que devem ser satisfeitas pelo
sistema como um todo, e no por suas partes
individuais
So geralmente indeterministas, i.e, para as mesmas
entradas, nem sempre so produzidas as mesmas sadas
(pode depender das reaes humanas)
Polticas e regras organizacionais variam com o tempo
23 Eliane Martins - Instituto de Computao - UNICAMP
Engenharia de Software
Engenharia de Software
Uma disciplina que rene metodologias, mtodos e ferramentas a
serem utilizados desde a percepo do problema at o momento em
que o sistema desenvolvido deixa de ser operacional, visando resolver
problemas inerentes ao processo de desenvolvimento e ao produto de
software.
[Carvalho e Chiossi 2001]
Conjunto de metodologias, mtodos e ferramentas que auxiliam na
produo de software de alta qualidade dentro dos prazos e custos
esperados.
[B.Brgge 97, Notas de curso TUM]
24 Eliane Martins - Instituto de Computao - UNICAMP
Engenharia de Software
Engenharia de Software
Mtodo:
procedimento formal (ou sistemtico) que usa notaes bem definidas
para obter resultados
Metodologia:
conjunto de mtodos aplicados ao longo do desenvolvimento, unificados
por uma abordagem filosfica
Ferramenta:
instrumento ou software que apoia a realizao de um mtodo
Processo:
o que as pessoas fazem para adquirir, desenvolver, manter ou
melhorar produtos de software
25 Eliane Martins - Instituto de Computao - UNICAMP
Processo
Processo
desenvolvimento
manuteno
definio
Modelo genrico:
26 Eliane Martins - Instituto de Computao - UNICAMP
Processo
Processo
Modelo genrico:
desenvolvimento
manuteno
definio
O qu deve ser feito:
que dados sero usados?
que funes sero realizadas?
quais as restries?
quais os custos?
quais os riscos?
quais os prazos?
27 Eliane Martins - Instituto de Computao - UNICAMP
Processo
Processo
CConjunto de atividades necessrias para se obter um
produto de sw
Modelo genrico:
desenvolvimento
manuteno
definio
Como deve ser feito:
como estruturar o sw?
como implementar os dados?
como implementar as funes?
como implementar as restries?
como verificar se o sw est sendo
desenvolvido corretamente?
como validar o produto desenvolvido?
28 Eliane Martins - Instituto de Computao - UNICAMP
Processo
Processo
CConjunto de atividades necessrias para se obter um
produto de sw
Modelo genrico:
desenvolvimento
manuteno
definio
Alteraes:
corrigir bugs;
adaptar a novos ambientes;
acrescentar novos requisitos;
melhorar a manuteno;
determinar se modificaes no
fizeram o sw regredir;
29 Eliane Martins - Instituto de Computao - UNICAMP
Processo
Processo
CModelo genrico levando em conta
Verificao e Validao (V&V)
desenvolvimento
manuteno
definio
Validao:
o sw faz o que o cliente quer?
Verificao:
o sw correto est sendo produzido?
30 Eliane Martins - Instituto de Computao - UNICAMP
Modelos de processo: para que?
Modelos de processo: para que?
Objetivos
O que deve ser feito a seguir?
Por quanto tempo deve-se continuar a faz-lo?
Importncia
Gerente: controlar o desenvolvimento, aquisio e
manuteno do sw
Desenvolvedor: obter uma base para produzir adquirir
ou manter, de maneira eficiente, um sw que satisfaa
aos requisitos estabelecidos
31 Eliane Martins - Instituto de Computao - UNICAMP
Modelos de Processo e de Melhoria de
Processos
Modelos de Processo e de Melhoria de
Processos
_
Modelos de melhoria de processo:
CMMI, SPICE, MPS.BR, ...
boas prticas, nveis
de capacidade, reas
chave de processo, ...
Descrio de processo genrico:
papis, atividades, artefatos
Ex.: Processo Unificado
Descrio de processo da empresa:
papis, atividades, artefatos
Processo da empresa: o que as
pessoas fazem
[Clnio S. 2005]
32 Eliane Martins - Instituto de Computao - UNICAMP
Principais modelos de processo
genricos
Principais modelos de processo
genricos
Existem vrios modelos genricos de processo de ciclo de vida:
codifica e corrige
cascata (waterfall model)
variante do cascata
evolutivo
incremental
espiral
transformacional
processo sala limpa
baseado em componentes
33 Eliane Martins - Instituto de Computao - UNICAMP
Modelo codifica e corrige
Modelo codifica e corrige
Passos:
1. Escrever o cdigo
2. Eliminar os bugs
Necessidades
do usurio
desenvolvimento
produto
34 Eliane Martins - Instituto de Computao - UNICAMP
Modelo codifica e corrige
Modelo codifica e corrige
Dificuldades:
aps um certo nmero de alteraes a estrutura do cdigo era
perdida =custo com alteraes 7
Cnecessidade de uma fase de projeto
freqentemente o sw, mesmo bem estruturado, no satisfazia ao
usurio
Cnecessidade de uma fase de anlise de requisitos
custo de correo do cdigo era alto
Cnecessidade de uma fase de testes
35 Eliane Martins - Instituto de Computao - UNICAMP
Modelo cascata
Modelo cascata
Caractersticas:
criado em 1970
consistente com modelo de programao top-down:
requisitos (+ abstrato) =cdigo
Requisitos
Anlise
Projeto
Codificao
Testes
Operao
e
Manuteno
36 Eliane Martins - Instituto de Computao - UNICAMP
Modelo cascata
Modelo cascata
Caractersticas:
O sw nem sempre pode ser desenvolvido de forma top-down
Dificilmente os requisitos so obtidos de forma completa, precisa
e consistente logo de incio
Uma verso executvel do sistema s obtida ao final do
desenvolvimento, quando ento se avalia a qualidade
37 Eliane Martins - Instituto de Computao - UNICAMP
Modelo cascata - variante
Modelo cascata - variante
Uma das variantes do modelo, apresentada em [Boehm 1976],
incorpora atividades de verificao e validao (V&V):
Verificao: o produto est sendo construdo corretamente?
Validao: o produto correto est sendo construdo?
Requisitos
Anlise
Projeto
Codificao
Testes
Operao
e
Manuteno
38 Eliane Martins - Instituto de Computao - UNICAMP
Modelo cascata - variante
Modelo cascata - variante
Caractersticas:
Realimentao entre as fases permite melhoria na qualidade desde
cedo
Ainda exigncia de requisitos completos, precisos e consistentes
desde cedo
39 Eliane Martins - Instituto de Computao - UNICAMP
Modelo baseado em prottipo
descartvel
Modelo baseado em prottipo
descartvel
Desenvolvimento e implementao de produto inicial (prottipo) que
submetido ao usurio para avaliao
Uso de um prottipo descartvel (throw-away prototyping) ou rpido
projeto, implementao e testes so rpidos e informais
o prottipo avaliado, ajudando a consolidar requisitos
necessidades
do usurio
Anlise
Projeto Codificao
Testes
Operao e
Manuteno
Projeto do
prottipo
Uso do
prottipo
Realimentao
do usurio
Refinamento
Anlise dos
resultados
40 Eliane Martins - Instituto de Computao - UNICAMP
Prottipo descartvel
Prottipo descartvel
Usurio definiu objetivos gerais do
sw, mas no detalhes sobre
entradas, procedimentos e sadas
O desenvolvedor quer avaliar a
eficincia de um algoritmo, ou a
forma da interface-usurio
Usurios so envolvidos desde
cedo na avaliao do sw
Requisitos ficam estveis mais
cedo
O usurio se contenta com o prottipo
e no tem pacincia de esperar pelo
produto final =qualidade do sw
O desenvolvedor usa o prottipo
como um produto final, por estar
familiarizado com ele =qualidade do
sw
O processo no visvel (no h
documentao) =difcil de gerenciar
41 Eliane Martins - Instituto de Computao - UNICAMP
Prottipo descartvel
Prottipo descartvel
C Definir as regras do jogo no incio: desenvolvedores e clientes devem
estar cientes de que o prottipo ser descartado to logo os objetivos
tenham sido atingidos
C Adaptar gerenciamento
C Usar ferramentas que facilitem a criao de prottipos
42 Eliane Martins - Instituto de Computao - UNICAMP
Modelo em fases
Modelo em fases
Voltados para sistemas grandes:
pode-se usar diferentes abordagens para diferentes
partes do sistema
permite repetir partes do processo na medida em que os
requisitos evoluem
Principais abordagens:
evolutiva (evolutionary development)
incremental
espiral
43 Eliane Martins - Instituto de Computao - UNICAMP
Desenvolvimento evolutivo - 1
Desenvolvimento evolutivo - 1
Tambm chamado de processo exploratrio
Prottipo vai evoluindo at chegar ao sistema final
O sw produzido em partes menores (incrementos)
Cada incremento entregue ao usurio
O primeiro incremento geralmente constitui o ncleo do sistema ,
contendo todos os requisitos bsicos j conhecidos
Os resultados da avaliao do desenvolvimento da verso precedente
servem de base para produo do prximo incremento
Cada verso (novo incremento) incorpora novos requisitos
44 Eliane Martins - Instituto de Computao - UNICAMP
Desenvolvimento evolutivo - 2
Desenvolvimento evolutivo - 2
Ex.: sistema de editorao eletrnica
1 incremento: funes bsicas de manipulao e edio de
arquivos; produo de documentos
2 incremento: funes avanadas de edio e produo de
documentos
3 incremento: verificador de ortografia e gramtica
...
45 Eliane Martins - Instituto de Computao - UNICAMP
...
tempo
[Sommerville96]
O&M: Operao e Manuteno
codificao
anlise
projeto testes O&M
incremento 1
integrao
codificao
anlise
projeto testes O&M
incremento 2
integrao
codificao
anlise
projeto testes O&M
incremento N
integrao
46 Eliane Martins - Instituto de Computao - UNICAMP
Desenvolvimento evolutivo
Desenvolvimento evolutivo
modelo mais realista que o cascata,
pois no exige requisitos completos
desde o incio: medida em que o
usurio utiliza partes j prontas,
pode identificar novos requisitos
til quando equipe pequena para
desenvolver todo o sistema
partes mais difceis (ou bsicas)
podem ser produzidas primeiro,
sendo avaliadas mais tempo
interao cliente/usurio-
desenvolvedores 7
incrementos continuam a ser
desenvolvidos segundo o modelo
cascata
custo de gerenciamento 7
no existe especificao completa
antes que o ltimo incremento
tenha sido desenvolvido =
problema se especificao faz parte
do contrato com o cliente
47 Eliane Martins - Instituto de Computao - UNICAMP
Desenvolvimento incremental
Desenvolvimento incremental
Proposto por H. Mills em 1980
O sistema desenvolvido por partes
Clientes identificam requisitos (servios a serem fornecidos) e
classificam-nos por ordem de prioridade
Nmero e tamanho dos incrementos definido
Distribuem-se os servios pelos incrementos de acordo com
prioridades: servios mais prioritrios so entregues antes
Cada novo incremento acrescenta um novo requisito ao sistema
Os incrementos so produzidos utilizando-se o processo de
desenvolvimento preferido
48 Eliane Martins - Instituto de Computao - UNICAMP
Desenvolvimento incremental
Desenvolvimento incremental
Define requisitos
preliminares
Atribui requisitos
aos incrementos
Projeta arquitetura
do sistema
Desenvolve
incremento
Valida o
incremento
Integra
incremento
Valida o
sistema
sistema incompleto
sistema
final
Estabelece n de
incrementos
49 Eliane Martins - Instituto de Computao - UNICAMP
Desenvolvimento incremental
Desenvolvimento incremental
Diminui o retrabalho no processo de
desenvolvimento do modelo cascata
Os clientes no precisam esperar que
o sistema final seja entregue
Partes mais bsicas podem ser
produzidas primeiro, sendo validadas
mais vezes
Clientes podem usar incrementos
entregues como prottipos para ajudar
no levantamento de requisitos dos
prximos
Diminui o risco de insucesso total do
projeto: alguns incrementos devero
ser bem sucedidos
Incrementos devem ser pequenos
(< 20.000 LOC) e cada incremento
deve realizar pelo menos um
servio pode ser difcil mapear
servios em incrementos
Requisitos s so detalhados no
momento em que os incrementos
so desenvolvidos difcil
identificar recursos comuns a mais
de um incremento
50 Eliane Martins - Instituto de Computao - UNICAMP
Modelo espiral
Modelo espiral
Caractersticas:
Proposto por Barry Boehm, 1988
Desenvolvimento incremental:
a cada volta na espiral, verses mais completas do sw so construdas
Anlise de risco a cada novo incremento:
riscos: circunstncias adversas que podem comprometer tanto o processo
de desenvolvimento quanto a qualidade do produto
Possibilidade de incorporar diversos modelos de processo:
escolha do modelo de processo depende dos resultados de avaliaes do
produto gerado em etapas anteriores e na anlise de risco feita no incio
da etapa corrente
51 Eliane Martins - Instituto de Computao - UNICAMP
Modelo Espiral
Modelo Espiral
prottipo
1
conceito
de
operao
Plano de Requisitos,
Modelo de ciclo
de vida
custos
e prazos
custos
e prazos
prottipo
2
Requisitos
V
a
l
i
d
a

o
d
o
s

R
e
q
u
i
s
i
t
o
s
P
l
a
n
o

d
e

D
e
s
e
n
v
o
l
v
i
m
e
n
t
o
custos
e prazos
prottipo
3
Projeto
Prelimi-
nar
V
&
V

d
o

P
r
o
j
e
t
o
P
r
e
l
i
m
i
n
a
r
P
l
a
n
o

d
e

T
e
s
t
e
s

e

I
n
t
e
g
r
a

o
custos
e prazos
prot-
tipo
4
P
r
o
j
e
t
o
D
e
t
a
l
h
a
d
o
C
o
d
i
f
i
c
a

o
T
e
s
t
e
s

e

i
n
t
e
g
r
a

o
O
perao
Ativao:
determina objetivos,
alternativas e restries
Anlise dos riscos:
avalia alternativas;
identifica e resolve riscos
Planejamento da
prxima iterao
Desenvolvimento:
desenvolve; verifica
52 Eliane Martins - Instituto de Computao - UNICAMP
Modelo espiral
Modelo espiral
Passos:
Identificao dos objetivos do incremento, meios alternativos para
implement-lo, restries
Planejamento e anlise de riscos de cada alternativa, determinando
estratgias para reagir aos mesmos (ou abandonar o Projeto)
Desenvolver o incremento, usando o modelo de desenvolvimento
mais adequado ao mesmo
Avaliao dos resultados da etapa anterior e planejamento da
prxima fase
53 Eliane Martins - Instituto de Computao - UNICAMP
Modelo espiral
Modelo espiral
Acompanha todo o ciclo
de vida do sw
Combina modelo
evolutivo com cascata (ou
outros)
Permite a usurios e
desenvolvedores
identificar riscos e se
preparar para evit-los ou
contorn-los
Ideal para grandes
Projetos
difcil convencer os clientes
de que o modelo evolutivo
controlvel
Requer especialistas em
identificao e anlise de riscos
H poucos dados sobre sua
eficcia
54 Eliane Martins - Instituto de Computao - UNICAMP
Modelo transformacional
Modelo transformacional
Caracterstica:
produto desenvolvido a partir de transformaes sucessivas:
especificao dos requisitos ... cdigo
Passos:
Cdescrio dos requisitos preliminares (formal)
Ctransformaes sucessivas dessa descrio at obter cdigo
Crepetio dos passos Ce Cpara refinar o produto
Cuso do produto obtido
Crefinamento da especificao com base nos resultados do uso,
repetindo-se passos Ca C
55 Eliane Martins - Instituto de Computao - UNICAMP
Linguagens de 4 Gerao (4GL)
Linguagens de 4 Gerao (4GL)
O termo 4GL foi cunhado por James Martin para designar linguagens
de alto nvel, no orientadas a procedimentos e construdas em torno
de um banco de dados.
Depois disso, com a experincia adquirida em certas reas, surgiram as
linguagens especficas para um domnio de aplicao:
Linguagens para gerao de relatrios: descrio de formato de dados e do
relatrio (ex.: Speedware http://www.speedware.com)
Linguagens de consulta para BDs: SQL
PostScript, PDF: linguagens para descrio de pginas de impresso
contendo texto e grficos
Mathematica: realizao de clculos matemticos, gerao de grficos, ...
http://www.wolfram.com/products/mathematica/tour/
...
56 Eliane Martins - Instituto de Computao - UNICAMP
Modelo transformacional
Modelo transformacional
Tempo de
desenvolvimento para
aplicaes pequenas e
mdias diminui
Uso de linguagens de 4
gerao (4GL) se expande
para diversas reas,
facilitado pelo uso de
CASEs e geradores de
cdigo
Algumas 4GL no so fceis de
usar
Cdigo gerado
automaticamente no eficiente
Manutenibilidade ainda
discutvel
Fases de anlise, projeto e testes
mais elaboradas para o caso de
sistemas grandes
57 Eliane Martins - Instituto de Computao - UNICAMP
Modelo baseado em componentes
Modelo baseado em componentes
Componentes:
artefatos de sw construdos para reuso
artefatos: planos de Projeto, estimativas de custo, arquitetura,
modelos de requisitos e/ou projeto, cdigo fonte, casos de teste, ...
Desenvolvimento baseado em componentes:
incorpora caractersticas do modelo espiral mas ...
... sw construdo a partir da composio de componentes j
existentes, que podem tanto ser de terceiros quanto comerciais
(COTS)
Cganho em produtividade e custo mas componente precisa ter boa
qualidade !
58 Eliane Martins - Instituto de Computao - UNICAMP
Identificar
componentes
candidatos
Buscar em
biblioteca de
componentes
Extrair os
componentes
disponveis
Construir os
componentes
no encontrados
Inserir os novos
componentes
na biblioteca
Construir a
n iterao
do sistema
Desenvolvimento com reso
Desenvolvimento com reso
59 Eliane Martins - Instituto de Computao - UNICAMP
Modelo para construo de componentes
Modelo para construo de componentes
Anlise
de domnio
Desenvolvimento
da arquitetura
Desenvolvimento
do componente
Modelo
de
domnio
Modelo
estrutural
Repositrio de
componentes
60 Eliane Martins - Instituto de Computao - UNICAMP
Modelo orientado para os testes
(Modelo V)
Modelo orientado para os testes
(Modelo V)
Reviso
dos Requisitos
Reviso dos testes de
Sistemas e de Aceitao
Especificao, Projeto e Implementao
dos testes de Sistemas e de Aceitao
Reviso do Projeto
Reviso dos testes de Integrao
Especificao, Projeto e Implementao
dos testes de Integrao
Reviso do Cdigo
Especificao, Projeto e Implementao dos testes de Unidade
Reviso dos testes de Unidades
Especificao
dos Requisitos
Projeto
Codificao
Execuodos testes de Sistemas
e de Aceitao
Execuo dos testes de Unidades
Execuo dos testes de Integrao
61 Eliane Martins - Instituto de Computao - UNICAMP
Modelo V para sistemas crticos
Modelo V para sistemas crticos
Espec Req
Inocuidade
do sistema
Arquitetura
do sistema
Especificao
dos Requisitos de
Inocuidade do
Software
Arquitetura do
Software
Projeto do Software
Projeto de um
Mdulo do Sw
Codificao
Teste de um Mdulo
do Sw
Teste de Integrao
(Mdulos)
Teste de Integrao
(Componentes,
subsistemas, hw)
Teste de Validao
Base: IEC 61508
62 Eliane Martins - Instituto de Computao - UNICAMP
Exemplo de modelo genrico de processo
Exemplo de modelo genrico de processo
O Processo Unificado (UP,
de Unified Process):
um modelo genrico de um
processo de desenvolvimento
iterativo e incremental
baseado em componentes
Utiliza a UML (Unified
Modeling Language)
UML A Linguagem de Modelagem
Unificada um mtodo aberto usado
para especificar, visualizar, construir e
documentar artefatos de um sistema de
sw orientado a objetos.
Permite que o desenvolvedor visualize
o produto de seus trabalhos em
diagramas padronizados
63 Eliane Martins - Instituto de Computao - UNICAMP
Processo Unificado
Processo Unificado
Ciclo de vida
UP repete ciclos at a aposentadoria do produto
Cada ciclo gera um produto liberado para uso
Cada ciclo possui quatro fases
Cada fase dividida em iteraes
A cada iterao gerado um conjunto de
artefatos
H um marco (milestone) ao final de cada fase
64 Eliane Martins - Instituto de Computao - UNICAMP
Fases de um ciclo do UP
Fases de um ciclo do UP
Cada ciclo do UP possui 4 fases:
Concepo:
Definio do escopo e fronteiras do sistema
Elaborao:
Criao da arquitetura
Plano de projeto e riscos
Construo
Desenvolvimento iterativo e incremental
Transio
Implantao e evoluo
tempo
65 Eliane Martins - Instituto de Computao - UNICAMP
Workflows de cada fase
Workflows de cada fase
Cada iterao composta de passos (workflows):
Requisitos
Projeto
Implementao
Testes
Anlise
Modelo Caso de Uso
Modelo
Projeto
Modelo
Implantao
Modelo
Implementao
Modelo Anlise
Modelo
Teste
66 Eliane Martins - Instituto de Computao - UNICAMP
Fases e Workflows
Fases e Workflows
67 Eliane Martins - Instituto de Computao - UNICAMP
Papis e Responsabilidades
Papis e Responsabilidades
Analistas:
Analistas de Negcios
Analistas de Sistemas
coordena a modelagem dos processo e
executa o levantamento das regras de
negcios envolvidos no projeto
coordena o levantamento de requisitos e a
modelagem especificao de casos de uso
68 Eliane Martins - Instituto de Computao - UNICAMP
Papis e Responsabilidades
Papis e Responsabilidades
Desenvolvedores:
Arquiteto:
Integrador
Programador
Projetista de
Banco de Dados
Estabelece a estrutura geral da arquitetura para
cada uma de suas vises
Responsvel pelo planejamento das integraes do
projeto e dos componentes implentados pelos
programadores
o responsvel pela implementao e testes dos
componentes de acordo com os padres estabelecidos
pelo projeto
Define as construes especficas de bancos de dados
necessrias ao armazenamento,obteno e excluso de
dados
69 Eliane Martins - Instituto de Computao - UNICAMP
Papis e Responsabilidades
Papis e Responsabilidades
Gerentes:
Configurao
Implantao
Projeto
responsvel pela disponibilizao da infra-estrutura
geral de configurao e mudanas do projeto para a
equipe de desenvolvimento
responsvel pelo planejamento da transio do
produto para os usurios
Aloca recursos, define prioridades, coordena as
interaes com os clientes e usurios
70 Eliane Martins - Instituto de Computao - UNICAMP
Papis e Responsabilidades
Papis e Responsabilidades
Equipe de Testes
Gerente de testes
Projetista de teste
Implementador
dos testes
Responsvel pelo planejamento e avaliao dos
resultados dos testes
Responsvel pela implementao, configurao e
execuo dos testes
Responsvel pelo projeto das entradas e do ambiente
de testes
71 Eliane Martins - Instituto de Computao - UNICAMP
Desenvolvimento dirigido por modelos
Desenvolvimento dirigido por modelos
MDD (Model Driven Development)
Foco do desenvolvimento de sw:
Programao modelos e transformaes entre
modelos
Modelos completos e precisos, a partir dos
quais pode-se gerar cdigo (e testes)
automaticamente
72 Eliane Martins - Instituto de Computao - UNICAMP
Motivao
Motivao
Abordagens tradicionais:
Fazem pouco uso de abstrao, reuso e
automao
Mapeamento de modelos para cdigo ainda
feito manualmente
Modelos de brinquedo, que no so mantidos,
atualizados e reutilizados
Codificao o foco do desenvolvimento
73 Eliane Martins - Instituto de Computao - UNICAMP
MDA
MDA
MDA (Model-Driven Architecture)
Framework para o desenvolvimento dirigido por
modelos
Iniciativa da OMG (Object Management Group)
Fonte: G.Elias. MDA. Tutorial SBCARS 2007.
74 Eliane Martins - Instituto de Computao - UNICAMP
O que significa Arquitetura em MDA?
O que significa Arquitetura em MDA?
Estende o significado de Arquitetura de
Software para uma arquitetura de um
sistema de modelos:
Modelos so conectados e estruturados por
relacionamentos de transformao
Especifica os tipos de modelos, como podem
ser preparados e o tipo de relacionamentos
entre eles
75 Eliane Martins - Instituto de Computao - UNICAMP
Vises na MDA
Vises na MDA
Pontos de vista: formas diferentes de ver um
sistema
Viso: representao do sistema segundo
um ponto de vista
Vises da MDA:
CIM (Computational Independent Model)
PIM (Platform Independent Model)
PSM (Platform Specic Model)
76 Eliane Martins - Instituto de Computao - UNICAMP
Plataforma
Plataforma
Plataforma genrica:
Objetos, processos, ...
Plataforma especfica de tecnologia
Corba, Java2 components, ...
Plataforma especfica de fabricante
Microsoft .NET, IBM Websphere, ...
Existem diferentes graus de independncia de plataforma
77 Eliane Martins - Instituto de Computao - UNICAMP
Viso CIM
Viso CIM
Foca no sistema, no ambiente do sistema e
nos seus requisitos
Abstrai (esconde) detalhes da arquitetura do
sistema
Abstrai detalhes da plataforma de execuo
do sistema
Usa vocabulrio do domnio do problema
78 Eliane Martins - Instituto de Computao - UNICAMP
Viso PIM
Viso PIM
Foca nas operaes (servios) do sistema,
abstraindo detalhes sobre a plataforma
Permite que a especificao sirva para
diversas plataformas
Pode usar uma linguagem de modelagem de
propsito geral ou especfica de uma
plataforma genrica
79 Eliane Martins - Instituto de Computao - UNICAMP
Viso PSM
Viso PSM
PIM + detalhes inerentes a uma plataforma
especfica (de tecnologia, de fabricante)
Inclui representaes mais detalhadas do
que aquelas do PIM + representaes de
aspectos que no aparecem no PIM
80 Eliane Martins - Instituto de Computao - UNICAMP
Modelos
Modelos
Para cada tipo de viso, tem-se diferentes tipos de
modelos:
CIM
Modelo de domnio ou de negcios
PIM
Modelo do sistema
PSM
Modelo detalhado do sistema + cdigo
PM (Modelo de plataforma):
Descreve a plataforma e como utiliz-la
81 Eliane Martins - Instituto de Computao - UNICAMP
Transformao entre modelos
Transformao entre modelos
Modelo
Independente de
Plataforma
(PIM)
Modelos
Especficos
de Plataforma
(PSM)
Transformao
J2EE
Corba
.Net

Modelo
Independente de
Computao
(CIM)
84 Eliane Martins - Instituto de Computao - UNICAMP
Ciclo de vida com MDA
Ciclo de vida com MDA
Modelos no so unicamente
parte de documentos, mas so a
fonte para o desenvolvimento
Realimentao rpida atravs
de simulao e gerao
automtica de cdigo
Gerao de testes com base nos
modelos
Modelos especficos de
domnio facilitam a
comunicao com usurios
Requisitos
Anlise
Projeto
Codificao
Testes
Entrega
textual
PIM
PSM
cdigo
cdigo
85 Eliane Martins - Instituto de Computao - UNICAMP
Comentrios finais
Comentrios finais
Desenvolvimento de sw:
diferente de outros produtos da Engenharia
muitos dos modelos de desenvolvimento existentes no se aplicam;
por exemplo, no existe uma etapa de fabricao
o comportamento do sw no completamente conhecido
Modelos de desenvolvimento de sw:
permite identificar reas problemticas
permite sintetizar as diferentes alternativas para a soluo de
dificuldades
d suporte ao gerenciamento
existem vrias vises: cascata, em fases, ...
nenhum modelo perfeito
86 Eliane Martins - Instituto de Computao - UNICAMP
Comentrios finais
Comentrios finais
Escolha do modelo depende:
da natureza do Projeto
da equipe de desenvolvimento e do estilo de gerenciamento
do grau de sofisticao do cliente/usurio
do ambiente de desenvolvimento
Atividades essenciais de um bom processo:
descrio do problema (o qu deve ser feito?)
descrio da soluo (como deve ser feito?)
verificao (a soluo adotada responde ao problema descrito?)
validao (o problema correto foi resolvido?)

Você também pode gostar