Anda di halaman 1dari 41

Professor:

Geraldo Xexo, D.Sc.


DCC/IM/UFRJ
PESC/COPPE/UFRJ

Contedo:

Desenvolvimento
de Software

Ciclo de Vida do Software


O Software possui um Ciclo de Vida
Nascimento e Morte

Dentro desse Ciclo de Vida, uma fase


em especial nos interessa:
O Desenvolvimento

Viso Geral Ciclo de Vida

Determinar a necessidade
Investigar solues
Procurar desenvolvedor
...
Levantar Requisitos
Projetar Arquitetura
Criar Cdigo
Testar
Desenvolvimento
Implantar
...

Definio
do
Projeto

Operao/
Manuteno

Converter Dados
Gerar Requisitos
...

Corrigir erros
Atender modificaes
...

Retirada
(Aposentadoria)

Como se faz software

s sair programando?
Talvez, no caso de programas muito
pequenos que sero utilizados pelo prprio
programador

Em situaes reais, preciso


desenvolver o software utilizando
tcnicas especficas

Fazer Software Difcil

Standish Group, CHAOS Report 2004

Problemas

A Volkswagen do Brasil anunciou, em 2006, recall


para cerca de 123 mil veculos dos modelos Gol, Fox
e Kombi, que precisaram trocar um software que
controla o funcionamento dos componentes
eletrnicos do carro, inclusive do motor.
Foi o terceiro maior recall j promovido pela montadora no
Brasil.
Fonte:
http://www1.folha.uol.com.br/folha/dinheiro/ult91u108087.sht
ml

Como desenvolver software


Devemos escolher um conjunto de
mtodos, tcnicas, ferramentas,
prticas, ...
a ENGENHARIA DE SOFTWARE
Devemos utilizar esse conjunto dentro
de um Processo de Desenvolvimento
de Software

As Tecnologias
Ferramentas
Mtodos
Processos
Qualidade

Processo de Software

Processo - uma seqncia de passos


realizados para um determinado propsito.
(IEEE)
Processo de software - um conjunto de
atividades, mtodos, prticas e tecnologias
que as pessoas utilizam para desenvolver e
manter software e produtos relacionados.
(CMM)

Objetivos de um Processo (1/3)

1
0

Definir as atividades a serem


executadas em um projeto de
desenvolvimento de sistemas:
principalmente em grandes organizaes
nas quais novas pessoas constantemente
alcanam os cargos de gerenciamento de
projetos.

Objetivos de um Processo (2/3)

1
1

Introduzir consistncia entre os muitos


projetos de desenvolvimento de
sistemas da mesma organizao

Objetivos de um Processo (3/3)

1
2

Introduzir pontos de verificao para o


controle gerencial de decises
A gerncia deve ter vrios pontos de verificao
intermedirios durante o projeto para determinar se
est fora das previses e se ser preciso obter
recursos adicionais.
Atravs do ponto de verificao o usurio determina se
deve continuar investindo no projeto.

Atravs do ciclo de vida pode-se organizar as


atividades do gerente para que os problemas
sejam solucionados no momento apropriado.

O que definido em um
Processo?

1
3

Atividades
E sua seqncia
Subprocessos, com hierarquia ou organizados de algum
modo
Critrios de entrada e sada
Diretrizes que explicam os objetivos de cada atividade

Recursos
Produtos intermedirios e finais
Restries e controles para cada atividade, recurso
ou produto

Razes para modelar um


processo

1
4

Formar um entendimento comum

Encontrar inconsistncias,
redundncias e omisses
Encontrar e avaliar atividades
propostas mais adequadas aos objetivos

Processos Fundamentais
Fornecimento

Gerncia de Configurao

1
5

Garantia de Qualidade
Verificao

Operao

Validao
Reviso Conjunta
Auditoria

Manuteno

Soluo de Problemas

Processos Organizacionais
Infraestrutura
Treinamento
Gerncia

Melhoria

ISO 12207

Adaptao

Desenvolvimento

Aquisio

Processos de Apoio
Documentao

Processo de Desenvolvimento

1
6

Forma como as atividades do


processo de desenvolvimento
de software so implantadas,
isto , qual a seqncia em
que o software desenvolvido

Processo de Desenvolvimento:
Atividades Principais
do
Implementao
Processo
dos Requisitos
Anlise
do sistema
arquitetural do
Projeto
sistema
dos requisitos
Anlise
de software
arquitetural do
Projeto
software
detalhado do
Projeto
software

1
7

e teste do
Codificao
software
do software
Integrao
de qualificao do
Teste
software
do sistema
Integrao
de qualificao do
Teste
sistema
do software
Instalao
a aceitao do
Apoio
software

Exemplo de um Processo

1
8

Tipos de Processo
Discusso Inicial
Em cascata x prototipagem
Documentos x Exemplos

Discusso atual
Processos Rigorosos x Processos geis
Documentos x Tentativas

Processos Rgidos:Espiral, RUP


Processos geis: XP

1
9

Exemplos de modelos de
processo
Modelo cascata
Prototipao
Desenvolvimento em fases:
incrementos e interaes
Modelo em espiral

2
0

Etapas Exemplo
4 etapas principais (diviso clssica)
anlise
projeto
cdigo e
Testes

Na Prtica, existem muito mais


possibilidades
Por exemplo, processo ISO 12207

2
1

O Modelo Linear
Clssico ou Cascata
Sistemtico e Seqncial

2
2

Modelo Linear Teoria e Prtica


Anlise

Projeto

Codificao

Testes

2
3

Modelo Linear (Mltiplas Fases)


ESTUDO
ANLISE
PROJETO
IMPLEMENTAO
SIMULAO
IMPLANTAO

OPERAO

MANUTENO

2
4

Cascata Na Prtica

2
5

Fracassa a no ser nos sistemas mais


conhecidos
Deixa o cliente esperando
No se adapta a mudanas de
requisitos

O Modelo de Prototipagem
Requisitos/Prottipo/Avaliao
Primeiro deve ser jogado fora
Foco no cliente
Foco nas dvidas
Prova de conceito

2
6

Modelo de Prototipagem
Escutar
o Cliente

Construir o
Prottipo

Avaliar o
Prottipo

2
7

Modelo de Prototipagem

2
8

Usurios acham que o prottipo o


produto final, no conhecendo os
problemas internos causados pela
necessidade de velocidade de criao
O desenvolvedor faz escolhas erradas
no incio do projeto que continuam
indefinidamente

Prototipagem

2
9

No deveria ser utilizado para gerar o


produto final
Deve ser usada para prottipos
descartveis com finalidades especficas

Cascata x Prottipo

3
0

A eterna luta entre os documentadores


e os codificadores
Ningum tem a razo
Cada projeto exige uma dose
especfica de documentao e
prototipao

Estgio Atual
Quase todos os mtodos herdaram
caractersticas de ambas as propostas
Fases com produtos pr-definidos
Prottipos

3
1

Modelos Evolucionrios

3
2

Reconhecem que sistemas complexos


se alteram com o tempo
Usam a iterao do ciclo de
desenvolvimento para acompanhar a
evoluo do sistema

Modelos Evolucionrios
Incremental
Espiral
Vrios Outros
RUP (mtodos rigorosos)
XP (mtodos gil)

3
3

Incremental

3
4

Combina o linear com a prototipagem


Foco na entrega do produto
Repete o a seqncia linear em vrias
calendrios defasados no tempo
Busca implementar funcionalidades
essencias o mais cedo possvel

3
5

Incremental
Anlise

Cada vez se incrementa o sistema


com um pouco mais de funcionalidade

Projeto

Anlise

Codificao

Projeto

Anlise

Codificao

Projeto

Testes

Testes

Codificao
Testes

Tempo

Espiral

3
6

Desenvolvimento por uma srie de


produtos desenvolvidos em seqncia
Aumento incremental da complexidade

3
7

Espiral
Avaliao

Comunicaao com
o Cliente
Planejamento

Construo

Engenharia
Desenho Simplificado

Anlise de
Riscos

Espiral
Para cada seqencia
Comunio com o cliente
Planejamento
Anlise de Riscos
Engenharia
Construo
Avaliao pelo Cliente

3
8

Nesse Curso
No veremos os processos
Veremos os mtodos, tcnicas e as
ferramentas aplicveis a vrios
processos

3
9

Aviso

4
0

A ordem adotada no curso ser


semelhante a ordem de um processo
em cascata, porm isso s se aplica ao
aprendizado, no a prtica de
desenvolvimento

Professor:
Geraldo Xexo, D.Sc.
DCC/IM/UFRJ
PESC/COPPE/UFRJ

Contedo:

Desenvolvimento
de Software: FIM

Anda mungkin juga menyukai