Escolar Documentos
Profissional Documentos
Cultura Documentos
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?)