Você está na página 1de 45

1/45

Viso Geral sobre Ciclo de


Vida de Software, Processos
e RUP
Alexandre Monteiro

2/45
Ciclo de Vida e Processo de
Desenvolvimento de
Software
3/45
O que um modelo de ciclo de
vida de processo de software?
Uma representao abstrata e
simplificada do processo de
desenvolvimento software,
tipicamente mostrando as principais
atividades e dados usados na
produo e manuteno de software
4/45
Principais Modelos do Ciclo
de Vida de Software
Cascata
Modelo de Desenvolvimento Evolucionrio
Programao Exploratria
Prototipagem descartvel
Modelo de Transformao Formal
Modelos Iterativos
Espiral
Incremental
5/45
Modelo Cascata
(ou clssico)
Derivado de modelos existentes em outras
engenharias
Sua estrutura composta por vrias etapas
que so executadas de forma sistemtica e
seqencial
Na prtica, existe uma interao entre as
etapas e cada etapa pode levar a
modificaes nas etapas anteriores
6/45
Modelo Cascata
Definio de
Requisitos

Projeto do
Sistema e do
Software

Implementao e
Testes Unitrios

Integrao e
Teste do
Sistema

Operao e
Manuteno

7/45
Modelo Cascata na Prtica
Definio de
Requisitos

Projeto do
Sistema e do
Software

Implementao e
Testes Unitrios

Integrao e
Teste do Sistema

Operao e
Manuteno














8/45
Modelo de Desenvolvimento
Evolucionrio
Programao Exploratria
Prototipagem Descartvel
Atividades Concorrentes

Especificao

Desenvolvimento

Validao

Esboo de
Descrio

Verso
Inicial

Verses
Intermedirias

Verso Final

9/45
Programao Exploratria
Idia geral:
Desenvolvimento da primeira verso do sistema o
mais rpido possvel
Modificaes sucessivas at que o sistema seja
considerado adequado
Aps o desenvolvimento de cada uma das verses do
sistema ele mostrado aos usurios para
comentrios
Adequado para o desenvolvimento de sistemas
onde difcil ou impossvel se fazer uma
especificao detalhada do sistema
Principal diferena para os outros modelos a
ausncia da noo de programa correto
10/45
Programao Exploratria
Tem sido mais usada no desenvolvimento de
sistemas especialistas - geralmente
sistemas que tentam emular capacidades
humanas
A maioria dos sistemas desenvolvidos com
sucesso usando a programao exploratria
foi implementada usando pequenos grupos
de profissionais altamente qualificados e
motivados
11/45
Prototipagem Descartvel
Como na programao exploratria, a primeira fase
prev o desenvolvimento de um programa para o
usurio experimentar
No entanto, o objetivo aqui estabelecer os
requisitos do sistema
O software deve ser reimplementado na fase
seguinte
A construo de prottipos com os quais os
usurios possam brincar uma idia bastante
atrativa:
Para sistemas grandes e complicados
Quando no existe um sistema anterior ou um
sistema manual que ajude a especificar os requisitos
12/45
Prototipagem Descartvel
Os objetivos do prottipo devem estar bem claros
antes do incio da codificao. Possveis objetivos:
Entender os requisitos dos usurios
Definir a interface com os usurios
Demonstrar a viabilidade do sistemas para os
gerentes.
Uma deciso importante a ser tomada escolher o
que ser e o que no ser parte do prottipo
No economicamente vivel implementar todo
o sistema!
Os objetivos do prottipo so o ponto de
partida
13/45
Transformao Formal
Idia geral:
Uma especificao formal (definio
matemtica, no ambgua) do software
desenvolvida e posteriormente
transformada em um programa atravs
de regras que preservam a corretude da
especificao
esp. 2
esp. 1
implement.
14/45
Transformao Formal
A grande motivao por trs da idia de
refinamento formal a possibilidade de
gerar automaticamente programas que so
corretos por construo
O prprio processo de desenvolvimento deve
grantir que o programa faz exatamente o que
foi especificado
Este modelo tem sido aplicado ao
desenvolvimento de sistemas crticos,
especialmente naqueles onde a segurana
um fator crtico (ex: sistema de controle
de trfego areo)
15/45
Modelo de Desenvolvimento
Baseado em Reuso
Baseado no reuso sistemtico de componentes
existentes ou sistemas COTS (Commercial-off-
the-shelf)
Etapas do processo
Especificao dos requisitos
Anlise de componentes
Modificao dos requisitos
Projeto de sistema com reuso
Desenvolvimento e integrao
Validao
Esta abordagem est se tornando mais importante,
mas h ainda pouca experincia com ela
16/45
Modelo de Desenvolvimento
Baseado em Reuso
Especificao
de Requisitos

Anlise de
Componentes

Modificao de
Requisitos

Projeto de
Sistema com
Reuso

Desenvolvimento
e Integrao

Validao
do Sistema

17/45
Modelos Iterativos
Requisitos de sistema SEMPRE evoluem
durante curso de um projeto. Assim a
iterao do processo sempre faz parte do
desenvolvimento de grandes sistemas
Iteraes podem ser aplicadas a quaisquer
dos modelos de ciclo de vida
Duas abordagens (relacionadas)
Desenvolvimento espiral
Desenvolvimento incremental
18/45
Desenvolvimento Espiral
Acrescenta aspectos gerenciais ao processo de
desenvolvimento de software.
anlise de riscos em intervalos regulares do processo de
desenvolvimento de software
planejamento
controle
tomada de deciso
O processo representado como uma espiral em vez de
uma seqncia de atividades
Cada volta na espiral representa uma fase no processo
No h fases fixas como especificao ou projeto -
voltas na espiral so escolhidas dependendo do que
requerido
Riscos so avaliados explicitamente e resolvidos ao
longo do processo
19/45
Desenvolvimento Espiral


Determinao dos
objetivos, alternativas
e restries
Anlise de
Riscos



Anlise das alternativas
e
identificao e/ou
resoluo de riscos
Desenvolvimento e
validao da verso
corrente do produto

Simulaes,
modelos e
benchmarks


Planejamento
20/45
Desenvolvimento Incremental
Em vez de entregar o sistema como um todo, o
desenvolvimento e a entrega so divididos em
incrementos, com cada incremento entregando parte da
funcionalidade requerida
Requisitos dos usurios so priorizados e os requisitos de
mais alta prioridade so includos nas iteraes iniciais
Uma vez que o desenvolvimento de um incremento
iniciado, os requisitos so "congelados". Embora os
requisitos possam continuar a evoluir para incrementos
posteriores
Em certos aspectos similar programao exploratria.
No entanto, o escopo do sistema deve ser claramente
entendido antes de se iniciar o desenvolvimento
21/45
Desenvolvimento Incremental
Definir
esboo dos
requisitos
Associar
requisitos a
incrementos
Projetar a
arquitetura do
sistema
Desenvolver
um
incremento
Validar o
incremento
Integrar o
incremento
Validar o
sistema
Sistema
Final
22/45
Processo
Conjunto de atividades
bem definidas
com responsveis
com artefatos de entrada e sada
com dependncias entre as mesmas e
ordem de execuo
com modelo de ciclo de vida
23/45
Processo
uma ao regular e contnua (ou sucesso
de aes) realizada de forma bem definida,
levando a um resultado
um conjunto parcialmente ordenado de
atividades (ou passos) para se atingir um
objetivo
define quem est fazendo o que, quando e
como para atingir um certo objetivo
24/45
Processo versus Metodologia
Alguns autores consideram que
processos incluem
uma metodologia
pessoas
tecnologia (suporte de ferramentas)
Outros consideram que uma
metodologia a especializao de um
processo com um conjunto de mtodos

25/45
Mtodo
Descrio sistemtica de como deve-
se realizar uma determinada atividade
ou tarefa
A descrio normalmente feita
atravs de padres e guias
Exemplos: Mtodo para descoberta
de atores e casos de uso no RUP.

26/45
Modelo de Processo
uma representao de um processo,
usualmente envolvendo
atividades a serem realizadas
agentes que realizam as atividades
artefatos (produtos) gerados
recursos necessrios (consumidos)

27/45
Modelo de Processo
Um modelo usado para entendimento e
comunicao do processo, e como base para
anlise, execuo, gerncia e melhoria do
processo
Idealmente a descrio deve ser formal e
completa para permitir, por exemplo,
automao
A descrio deve ser apresentada em
diferentes nveis de abstrao

28/45
Modelo de Processo
O formalismo utilizado para
representar o processo o
ingrediente mais importante da
modelagem
No parece haver consenso sobre um
formalismo ideal
Mas h esforo de padronizao (SPEM
OMG)
29/45
Exemplos de processos
Processos tradicionais (pesados)
RUP, OPEN, Catalysis
Processos geis (leves)
XP, Agile modeling, Crystal, pragmatic
programming, Internet Speed, Scrum, ...

30/45
Exemplos de processos
Consenso em torno de
Iteratividade
Participao de usurios
Flexibilidade de configurao para
projetos especficos
Comunicao entre membros da equipe

31/45
Exemplos de processos
Divergncias
Detalhamento de atividades a serem seguidas
Critrio de concluso da execuo das
atividades
Arquitetura robusta (RUP)
Arquitetura para o contexto da iterao atual (agile
modeling)
Rigor na atribuio de tarefas a responsveis
workers (RUP)
alocao sob demanda e interesse (XP)
Artefatos (documentao) gerados
Nvel de Automao
Nvel de (im)pessoalidade
32/45
Polmica
Se a tendncia processos leves, afinal o
desenvolvimento de software
Arte+Sociologia+Psicologia+...
ou
Lgica+Modelos+Engenharia+...???
E todo o esforo de consolidao da
Engenharia de Software como uma cincia
exata???
33/45
Viso Geral do RUP
34/45
O que o RUP?
O nome uma abreviao de Rational
Unified Process
mas na verdade
Processo + Mtodos + Linguagem (UML)
e os autores argumentam que
Framework para gerar processos
35/45
O que o RUP?
Conjunto de atividades
bem definidas
com responsveis
com artefatos de entrada e sada
com dependncias entre as mesmas e ordem de
execuo
com modelo de ciclo de vida
descrio sistemtica de como devem ser
realizadas
guias (de ferramentas ou no), templates
utilizando diagramas de UML
36/45
Caractersticas Principais do
RUP
O desenvolvimento de sistemas
seguindo o RUP
Iterativo e incremental
Guiado por casos de uso (use cases)
Baseado na arquitetura do sistema

37/45
O RUP iterativo e
incremental
O ciclo de vida de um sistema consiste de
quatro fases:




Concepo (define o escopo do projeto)
Elaborao (detalha os requisitos e a
arquitetura)
Construo (desenvolve o sistema)
Transio (implanta o sistema)
tempo
concepo
elaborao construo transio
38/45
O RUP iterativo e
incremental
Cada fase dividida em iteraes:
Minor Milestones: Releases
Inception Elaboration Construction
Transition
Transition
iteration
Preliminary
iteration
Architect.
iteration
Architect.
iteration
Devel..
iteration
Devel..
iteration
Devel..
iteration
Transition
iteration
39/45
O RUP iterativo e
incremental
Cada iterao
planejada
realiza uma seqncia de atividades (de
elicitao de requisitos, anlise e
projeto, implementao, etc.) distintas
geralmente resulta em uma verso
executvel do sistema
avaliada segundo critrios de sucesso
previamente definidos
40/45
O RUP iterativo e
incremental
41/45
O RUP guiado por casos de
uso
Os casos de uso no servem apenas para
definir os requisitos do sistema
Vrias atividades do RUP so guiadas pelos
casos de uso:
planejamento das iteraes
criao e validao do modelo de projeto
planejamento da integrao do sistema
definio dos casos de teste

42/45
O RUP baseado na
arquitetura do sistema
Arquitetura
viso geral do sistema em termos dos seus
subsistemas e como estes se relacionam
A arquitetura prototipada e definida logo
nas primeiras iteraes
O desenvolvimento consiste em
complementar a arquitetura
A arquitetura serve para definir a
organizao da equipe de desenvolvimento e
identificar oportunidades de reuso


43/45
Organizao do RUP
Fluxos de atividades
Atividades
passos
entradas e sadas
guias (de ferramentas ou no), templates
Responsveis (papel e perfil, no
pessoa)
Artefatos

44/45
Exemplo de Fluxo:
Planejamento e Gerenciamento
Gerente de
projeto
Arquiteto
Contratante
Iniciar
Projeto
Aprovar
Projeto
Estudar
Viabilidade
Atestar
Concluso
do Projeto
Identificar
Riscos
Desenvolver
Plano de
Projeto
Desenvolver
Plano de
Iterao
Executar
Plano de
Iterao
Avaliar
Iterao
Finalizar
Projeto
Reavaliar
Riscos
Priorizar
Casos de
Uso
45/45
Referncias
Ivar Jacobson, Grady Booch e James
Rumbaugh. The Unified Software
Development Process. Captulos 1 a 5.
Philippe Kruchten. The Rational
Unified Process an Introduction.

Você também pode gostar