Sei sulla pagina 1di 71

Processo de desenvolvimento e Ciclo

de vida de software

MSc, Adler Diniz de Souza, PMP

Introduo
Processo de software
Mtodos, Ferramentas e Procedimentos
Benefcios com a adoo de processos de software

Modelos de ciclo de vida


Cascata
Prototipagem
Programao exploratria
Descartvel

Transformao formal
Modelos Evolutivos
Modelo Incremental
Modelo Espiral
2

Situao atual da maioria das empresas

Demanda porAbandono
Melhor
Qualidade!
de

planos e
Produto funciona, mas
melhor qualidade
inclui:
procedimentos
com defeitos; prazo e
menor prazos, custos, defeitos, insatisfaes,
custo maiores; e menos
funcionalidade
mais qualidade dos produtos, previsibilidade,
produtividade, competitividade,
Clientes e
funcionrios
e melhores resultados de negcio (ROI)
Acmulo
de trabalho

insatisfeitos
Sucesso depende muito do
esforo herico das pessoas
3

Pouca
repetibilidade

adaptado do ESI, 1998

O que um processo?

Processos

Solicitaes para
construo de
produto ou
realizao de
servios de software

Empresa

Produto ou servio
de software
realizado e entregue
ao cliente

Processo de Software

o
que
as
pessoas
fazem
,
Uma notao de processo comumente
utilizando
procedimentos, mtodos e ferramentas,
representa:
para
adquirir,
desenvolver,
manter
e
melhorar
desejvel que uma notao de processo
software
e produtos
associados
Quais atividades
so executadas
no processo
e suas
seja:
interdependncias?
Quem realiza as atividades?
Objetivos
Flexvel
Por
que as atividades so feitas?
Simples
Quando
as atividades so feitas?
Fcilas
deatividades
entender eso
treinar
Como
feitas?
Possuir
ferramentais
suporte devem ter?
Quais
as entradas
que para
as atividades
Quais sadas elas produzem?
Entradas
Como possvel medir o desempenho?
Critrios de entrada e sada
Informaes narrativas

Processo:

atividades

Recursos e Infraestrutura

Sadas

O Processo de Software
MTODOS:
Abordagens estruturadas para desenvolvimento
de software que incluem modelos de sistema,
notaes, regras, recomendaes de projeto e
orientaes de uso

Os mtodos mostram os detalhes de como


construir o software

O Processo de Software
FERRAMENTAS: do suporte
automatizado aos mtodos.
Existem atualmente ferramentas para sustentar
cada um dos mtodos
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: constituem o elo de
ligao entre os mtodos e 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.

Viso Macro do Processo

Cada caixa representa uma FASE do


Ciclo de vida do projeto

Processo de
uma
Fbrica
de Software
Identificao
dos
papis
relacionados
as
Identificao das atividades, dos artefatos de
atividades
entrada edasada
Descrio
atividade

10

Desvantagens da adoo de Processos...


Existem ??
Problemas com Adoo de Processos

Burocracia
Resistncia
Aumento da carga de trabalho
A empresa tem que sobreviver..
Resultados imediatos
(resultados confiana comprometimento)
...

11

Benefcios com a adoo de processos

Maior visibilidade da
execuo dos
projetos

Melhor qualidade
do produto
12

Maior
previsibilidade
dos resultados

Melhor habilidade para


gerenciar complexidade

Maior
produtividade

Melhor ambiente de
trabalho e satisfao
das pessoas

adaptado do ESI, 1998

Introduo
Processo de software
Mtodos, Ferramentas e Procedimentos
Benefcios com a adoo de processos de software

Modelos de ciclo de vida


Cascata
Prototipagem
Programao exploratria
Descartvel

Transformao formal
Modelos Evolutivos
Modelo Incremental
Modelo Espiral
13

Modelos de Ciclo de Vida


Existem vrios modelos de processo de software
(ou paradigmas de engenharia de software)
Cada um representa uma tentativa de colocar
ordem no processo de desenvolvimento de
software
Pode-se citar os seguintes modelos de processo
de software

14

Modelos de Ciclo de Vida


Modelos de ciclo de vida
Cascata
Prototipagem
Programao exploratria
Descartvel

Transformao formal
Modelos Evolutivos
Modelo Incremental
Modelo Espiral

15

O Modelo Cascata

16

Modelo Cascata
Derivado de modelos existentes de outras
engenharias (1970)

Sua estrutura composta de vrias fases que


so executadas de forma sistemtica e
seqencial
Anlise e definio de requisitos
Projeto de sistema e software
Implementao e teste de unidade
Integrao e teste de sistema
Operao e manuteno

17

Na prtica, existe uma interao entre as fases e


cada fase pode levar a modificaes nas fases
anteriores
17

Modelo Cascata
Anlise

Projeto

Implementao

Teste

Manuteno

18

Modelo Cascata
Anlise

Projeto

Implementao

Teste

Manuteno

19

Anlise de Requisitos de Software

O principal objetivo desta fase identificar,


coletar e detalhar os requisitos de software
Principais atividades:

Identificao e aprovao do fornecedor de requisitos;


Identificao e detalhamento dos requisitos do cliente,
requisitos funcionais e no funcionais;

Manter comunicao contnua com o cliente;

Validao interna e externa (com o cliente) dos


requisitos

Sadas:

Documento de requisitos ou Documento de Viso ou


Documentos de Caso de Uso;

Requisitos de Software

[2]

[Courage & Baxter]

Requisito de Software: Definio


Um requisito descreve uma condio
capacidade que o sistema deve estar
conformidade [Unified Process]

ou
em

Pode ser derivado das necessidades dos usurios,


ou estabelecido em um contrato, padro,
especificao ou outro documento imposto
formalmente [IEEE]

Pode estar explcito ou implcito

Requisitos de Software
O que o software deve fazer??
O que o cliente deseja??
Quais as restries??
Quais os componentes??
Quem vai utilizar o software??

Descrio e especificao de um software ou


sistema

Requisitos de Software: Classificao


Funcionais e no-funcionais
Requisitos e no-requisitos
Essencial, importante, desejvel, ...
Usurio, sistema, dado
Sistema, software,...
Interno, externo
Complexo, simples, ...
Voltil, estvel, ..
Alocado ..
...
Produto, processo ..
...

Requisitos funcionais
Requisitos
Funcionais

Descrevem a funcionalidade do produto ou


servio do software/sistema

Requisitos Funcionais
Requisitos funcionais do usurio podem ser sentenas
de alto nvel sobre o que o sistema deve fazer
Propostas Tcnicas e Comerciais, Manuais de
procedimentos, etc.
Requisitos funcionais do sistema devem descrever os
servios do sistema em detalhes
Documento de requisitos refinado, arquitetura do
software, etc.

Requisitos No-funcionais
Restringem os requisitos funcionais
Requisitos de Produto
Requisitos Externos

RequisitosOrganizacionais
de produto
Requisitos
Requisitos que especificam que o produto
entregue
tem
se
comportar
de umque
modo
Requisitos
que
uma
consequncia
de
Requisitos
organizacionais
Requisitos
queso
surgem
de fatores
so
particular
polticas
e ao
procedimentos
externos
sistema e aoorganizacionais.
processo de
Ex:
execuo,
confiabilidade,
Ex:Velocidade
Padres dedeprocessos
usados,
requisitos
desenvolvimento.
Requisitos
usabilidade,
etc. legislativos,
de implementao
etc. externos
Ex:Requisitos
exigncia de

interoperabilidade etc.

Requisitos No-Funcionais:
Classificao
Somerville 2003
Requisitos no
funcionais

Requisitos do
produto

Requisitos de
usabilidade

Requisitos de
eficincia

Requisitos de
desempenho

Requisitos
organizacionais

Requisitos de
confiana

Requisitos de
portabilidade

Requisitos
organizacionais

Requisitos
ticos

Requisitos de
espao

Requisitos
Legislativos

Requisitos de
privacidade

Requisitos de
entrega

Requisitos de
implementao

Requisitos de
padres

Requisitos de
interoperabilida
de

Requisitos de
segurana

Requisitos de Software

O QUE
Funcionalidade

Restries

Confiabilidade
Usabilidade
Eficincia
Manutenibilidade
Portabilidade
ISO/IEC 9126 / NBR 1359

Requisitos de Software
FUNCIONALIDADE - Satisfaz as necessidades?
SUBCARACTERSTICA

PERGUNTA CHAVE

Adequao

Prope-se a fazer o que apropriado?

Acurcia

Faz o que foi proposto de forma correta?

Interoperabilidade

capaz de interagir com os sistemas


especificados?

Conformidade

Est de acordo com as normas, leis, etc.?

Segurana de Acesso

Evita acesso no autorizado a programas


e dados?
ISO/IEC 9126 / NBR 1359

Requisitos de Software

CONFIABILIDADE - imune a falhas?


SUBCARACTERSTICA

PERGUNTA CHAVE

Maturidade

Com que freqncia apresenta falhas por


defeitos no software?

Tolerncia a Falhas

Ocorrendo falhas, como ele reage?

Recuperao

capaz de recuperar dados em caso de falhas?

ISO/IEC 9126 / NBR 1359

Requisitos de Software
Software para
Controle de Estoque

Software Embutido
em Satlite

Caractersticas Selecionadas
Funcionalidade

Confiabilidade
Usabilidade
Eficincia
Manutenibilidade
Portabilidade

Requisitos de Software
Atributos de um requisito:
Capacidade de verificao Pode ser verificado se o
software atende aquele requisito ou no;
Prioridade Utilizado para negociao no caso de
recursos limitados;
Identificador nico Possibilita a sua incluso no
controle da gerncia de configurao e gerenciado
atravs do ciclo de vida do software;

Exerccio: (Identificar os requisitos do sistema desta

clnica mdica atravs de uma breve descrio do cliente)


Eu possuo uma clnica mdica e atendo meus pacientes a mais de 15 anos..
Poxa, eu tenho atendido tanta gente que atualmente tenho esta sala aqui
somente para guardar as fichas de meus pacientes..
As coisas que quero controlar me parecem bastante simples.. No quero
diminuir o trabalho de minha secretria quanto ao agendamento das
consultas, ela deve apenas cadastrar os novos pacientes.... Quero com este
sistema poder controlar as consultas de tal forma que o paciente entre no
meu consultrio e eu j possa ter lido todo o seu histrico.. Isto , outras
vezes que ele esteve na clnica, qual a doena que ele tinha, os sintomas, os
medicamentos que foram ministrados, etc..
Alis no me interessa o
medicamento, eu quero saber o seu princpio ativo.. que existem hoje
tantas opes de remdios ...
Ah, as crianas!!... eu tenho atendido muitas delas.!!. quero trat-las como
um paciente normal, mas preciso saber quem o responsvel por ela e
tambm quero acompanhar sua taxa de crescimento e peso....
Acho que fazer isso tudo funcionar melhor vai ser bastante simples.. Antes
que eu me esquea,
tambm preciso manter os endereos de meus
pacientes, para poder enviar um carto de natal, ou um "feliz aniversrio" ...

Problemas: Impreciso dos Requisitos


Declarao deve ser precisa
Requisitos ambguos podem ser interpretados de
forma diferente por pessoas diferentes (exemplo:
desenvolvedores e clientes)
EXEMPLO: O software deve ter visualizadores
apropriados para leitura dos documentos
Considere o termo visualizadores apropriados
Inteno do usurio - visualizadores de propsito
especial para cada tipo de documento diferente
Interpretao do desenvolvedor - um visualizador
textual que mostra o contedo do documento

Problemas: Impreciso dos Requisitos

Modelo Cascata
Anlise

Projeto

Implementao

Teste

Manuteno

37

Projeto

Nesta fase faz-se a traduo dos requisitos do


software para um conjunto de representaes
grficas que podem ser avaliadas quanto
qualidade, antes que a codificao se inicie

Se concentra em 4 atributos do programa:

Estrutura de Dados,
Arquitetura de Software,
Detalhes Procedimentais e
Caracterizao de Interfaces

Exemplos de Diagramas...

Diagrama de Caso de Uso


ud Use Case Model

Manter Produtos
Genricos

include
Manter produtos
Manter Produtos
Controlados

include

Efetuar pagamento
carto de ddito

Manter Clientes

Vendedor
extend

Efefuar v enda

extend

Efetuar pagamento
Carto de Crdito

extend
Efetuar pagamento
Cheque

39

Diagrama de Classe

40

Modelo Cascata
Anlise

Projeto

Implementao

Teste

Manuteno

41

Implementao

Esta fase faz a traduo das representaes


grficas do projeto para uma linguagem
artificial resultando em instrues executveis
pelo computador
normalmente a fase onde concentra-se o maior
percentual de trabalho
Sadas:

Cdigo fonte, Scripts de banco de dados, documentos de


testes, manuais

Modelo Cascata
Anlise

Projeto

Implementao

Teste

Manuteno

43

Testes

Essa fase concentra-se:


nos aspectos lgicos internos do software,
garantindo que todas as instrues tenham sido
testadas
nos aspectos funcionais externos, para descobrir
erros e garantir que a entrada definida produza
resultados que concordem com os esperados.

Modelo Cascata
Anlise

Projeto

Implementao

Teste

Manuteno

45

Manuteno

Provavelmente o software dever sofrer mudanas


depois que for entregue ao cliente

Causas das mudanas:

erros, adaptao do software para acomodar mudanas


em seu ambiente externo e exigncia do cliente para
acrscimos funcionais e de desempenho

Todo bom software evolu!!

Modelo Cascata
Vantagens
Oferece uma maneira de tornar o processo mais
visvel, fixando pontos especficos para a escrita
de relatrios.

Problemas
Boa parte do sistema no estar disponvel at
um ponto adiantado no cronograma do projeto:
geralmente difcil convencer o usurio de que
preciso pacincia

Dificuldade de acomodao das mudanas


depois que o projeto est em andamento
Portanto, esse modelo apenas apropriado
quando os requisitos so bem entendidos
47

O Modelo de Desenvolvimento
Prototipagem

48

Introduo
Processo de software
Mtodos, Ferramentas e Procedimentos
Benefcios com a adoo de processos de software

Modelos de ciclo de vida


Cascata
Prototipagem
Programao exploratria
Descartvel

Transformao formal
Modelos Evolutivos
Modelo Incremental
Modelo Espiral
49

Programao exploratria
Desenvolvimento da primeira verso do sistema o mais
rpido possvel;
O escopo no claramente definido: a especificao
feita de forma intercalada ao desenvolvimento;
Aps o desenvolvimento de cada uma das verses do
sistema ele mostrado aos usurios para comentrios;

Modificaes sucessivas at que o sistema seja


considerado adequado;
Principal diferena dos outros modelos a ausncia da
noo de programa correto;
Usado com sucesso para o desenvolvimento de sistemas
de IA.
50

Prototipagem descartvel
Objetivo entender os requisitos do sistema. Ele deve
iniciar com os requisitos vagamente entendidos;
Como na programao exploratria, a primeira fase
prev o desenvolvimento de um programa (prottipo)
para o usurio experimentar;
O prottipo ento descartado e o software deve ser
reimplementado na fase seguinte usando algum outro
modelo de ciclo de vida (ex: cascata);
Usado com sucesso para prototipagem de partes do
sistema (ex: Interface Grfica e Aspectos de arquitetura).

51

Prototipagem descartvel
Vantagens:
Pode ser utilizada para identificao dos requisitos
dos projetos

Desvantagens:
Expectativas do cliente com relao a prazo e custo;
Possibilidade de reutilizao do prottipo
Falta de qualidade, falta de padronizao

O Modelo de Transformao Formal

53

Transformao formal
Utilizado para desenvolvimento de sistemas
crticos;
Utiliza uma especificao formal (definio
matemtica, no ambgua) do software, que
desenvolvida e posteriormente transformada
em um programa atravs de regras que
preservam a corretude da especificao;

54

Transformao formal

Requirements
definition

55

Formal
specification

Formal
transformation

Integration and
system testing

Transformao formal
Problemas
Necessidade de habilidades especializadas e
treinamento para aplicar as tcnicas de
transformao
Dificuldade para especificar formalmente alguns
aspectos do sistema tais como a interface com o
usurio

Aplicabilidade
Sistemas crticos, especialmente aqueles onde a
segurana um fator crtico
56

Modelos Iterativos

57

Modelos Iterativos
Requisitos de sistema SEMPRE evoluem
durante o 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 de ciclo de vida
Duas abordagens (relacionadas)
Desenvolvimento espiral
Desenvolvimento incremental
58

Desenvolvimento Espiral
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

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.

59

Desenvolvimento Espiral
Definio dos objetivos, alternativas e restries
Objetivos especficos para a fase so identificados,
alternativas para realizar os objetivos e restries so
encontradas.

Avaliao e reduo de risco


Os riscos principais so identificados, analisados e
buscam-se meios para reduzir estes riscos

Desenvolvimento e validao
Um modelo apropriado para o desenvolvimento
escolhido, o qual pode ser qualquer um dos modelos de
ciclo de vida

Planejamento
O projeto revisto e a prxima fase da espiral planejada
60

Desenvolvimento Espiral
Determine objectives
alternatives and
constraints

Risk
analysis

Evaluate alternatives
identify, resolve risks

Risk
analysis
Risk
analysis

REVIEW
Requirements plan
Life-cycle plan

Development
plan

Plan next phase

61

Integration
and test plan

Prototype 3
Prototype 2

Operational
protoype

Risk
analy sis Prototype 1

Simulations, models, benchmarks


Concept of
Operation

S/W
requirements

Requirement
validation

Product
design

Detailed
design

Code
Unit test
Design
V&V
Integr ation
test
Acceptance
test
Develop, verify
Service
next-level product

Desenvolvimento Espiral
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 outros
requisitos possam continuar a evoluir para incrementos
posteriores

62

Desenvolvimento Incremental

63

Desenvolvimento Incremental

Define outline
requirements

Develop system
increment

Assign requirements
to increments

Valida te
increment

Design system
architecture

Integrate
increment

Valida te
system
Final
system

System incomplete

64

Exemplo
Modelo Iterativo e Incremental

Escopo
R1 R2 R3 R5
R6 R7 R8 R9
R10 R11 R12

Release 1
R2 R3 R5 R6

Alteraes

Software 1.0

65

Release 2
R1 R7

Alteraes

Software 2.0

Release 3
R10 R11 R12

Alteraes

Software 3.0

Release 4 (Final)
R8 R9

Software 4.0

Desenvolvimento Incremental
A funcionalidade do sistema est disponvel
mais cedo, pois ela entregue a partir dos
incrementos
Incrementos iniciais agem com um
prottipo para ajudar a elicitar requisitos
para incrementos finais
Diminui o risco de falha do projeto como
um todo
Os servios do sistema de prioridade mais
alta tendem a receber mais testes
66

Concluso
Para escolha de um Modelo de Ciclo de

Software adequado, deve-se levar em


considerao:
natureza do projeto e da aplicao
mtodos e ferramentas a serem usados
controles e produtos que precisam ser entregues

67

Processo de desenvolvimento e Ciclo


de vida de software

MSc, Adler Diniz de Souza, PMP

68

Exerccios 1 de 2
Escolha qual modelo de ciclo vida voc optaria
para o desenvolvimento dos seguintes
projetos/solues/situaes:
1. Um software para um cliente que no sabe definir
qual o escopo do projeto dele.
2. Um software de gesto empresarial para uma
grande rede de empresas varejistas;
3. Um software de controle de trfego areo;
4. Um software de reconhecimento de ris para acesso
a locais restritos;
5. Um software de otimizao de rotas para uma
empresa transportadora, utilizando Algoritmo
Gentico;
69

Exerccio 2 de 2
Destaque as vantagens e desvantagens de cada
modelo de ciclo de vida:
1.
2.
3.
4.
5.

70

Modelo Cascata;
Modelo Prototipagem Descartvel;
Modelo Programao Exploratria;
Modelo Iterativo e Incremental
Modelo Espiral;

Fim da aula

Potrebbero piacerti anche