You are on page 1of 6

18/02/2011

Objetivos da aula de hoje

Processos de Software
Parte 1

Entender o conceito de processo de software e


modelo de processo de software
Compreender as atividades fundamentais de um
processo de software
Conhecer os principais modelos de processo de
software e as situaes em que devem ser utilizados

Instituto Federal de Educao, Cincia e Tecnologia do Cear


Disciplina: Engenharia de Software
Semestre: 2011.1
Professor: Igor Rafael Silva Valente
Data: 21/02/2011
Processos de Software - Parte 1
Prof. Igor Rafael Silva Valente

Atividades fundamentais:
Especificao de software

Processo de software

Conjunto de atividades e resultados associados que


levam produo de um produto de software
As atividades podem envolver a produo de um
software desde o incio, como tambm a ampliao e
modificao de sistemas existentes
Atividades fundamentais:
Especificao de software
Projeto e implementao de software
Validao de software
Evoluo de software

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

o processo de compreender e definir quais


servios so necessrios e identificar as restries
de operao e de desenvolvimento do software
um estgio crtico do processo, pois os erros nesse
estgio conduzem inevitavelmente a problemas
posteriores no projeto e na implementao do
software
Leva produo de um documento de requisitos que
considerado a especificao do software, contendo
informaes em alto e baixo nvel

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Atividades fundamentais:
Especificao de software

Estudo de viabilidade
Elicitao e anlise de requisitos

Especificao de requisitos
Validao de requisitos
Elicitao e anlise
de requisitos

Especificao
de requisitos

Relatrio de
v iabilidade

Modelos de sistema

Atividades fundamentais:
Projeto e implementao de software

Geralmente dividido em quatro fases principais:

Estudo de
v iabilidade

Validao de
requisitos
Requisitos de
usurio e de
sistema

Consiste na converso de uma especificao de


sistema em um software executvel
Sempre envolve os processos de projeto e
programao de software, mas se uma abordagem
evolucionria for utilizada, pode tambm envolver o
refinamento da especificao de software
Um projeto de software a descrio da estrutura de
software a ser implementada, dos dados que so
partes do sistema, das interfaces entre os
componentes do sistema e, s vezes, dos algoritmos
usados

Documento de
requisitos
Processos de Software - Parte 1
Prof. Igor Rafael Silva Valente

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

18/02/2011

Atividades fundamentais:
Projeto e implementao de software

Atividades fundamentais:
Validao de software

O projeto pode envolver diversos modelos em


diferentes nveis de abstrao,
A implementao traduz o projeto em um programa
executvel, podendo estas atividades serem
intercaladas

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Atividades fundamentais:
Evoluo de software

A validao um processo externo, no qual o cliente


participa e verifica se o software atende s suas
expectativas
Validao != verificao
A verificao um processo interno, no qual
verificado se o software desenvolvido est de acordo
com as suas especificaes

Modelo de processo de software

A flexibilidade do software um dos principais


motivos para a sua adoo em sistemas complexos
A alterao de solues de hardware muito cara e
demanda muito tempo, enquanto a alterao de
solues em software pode ser barata e demandar
pouco tempo
A evoluo de software consiste na adaptao do
software s mudanas na lgica de negcios da
aplicao, ou seja, na adequao do software aos
novos requisitos

Apresenta uma abordagem diferenciada nas


atividades fundamentais de um processo de
software, adaptando sua execuo a um
determinado cenrio de desenvolvimento de software
Modelos genricos
Modelo cascata
Desenvolvimento evolucionrio
Engenharia de software baseada em componentes

Iteraes de processo
Entrega incremental
Modelo espiral

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Modelo cascata

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

10

Modelo cascata

Originou-se dos processos mais gerais de


engenharia de sistemas
Tambm conhecido como modelo clssico,
tradicional ou ciclo de vida do software
composto pelas atividades:

Definio de
requisitos

Proj eto de sistema e


softw are

Anlise e definio de requisitos


Projeto de sistema e software

Implementao e teste de
unidade

Implementao e teste de unidade


Integrao e teste de sistema

Integrao e teste de
sistema

Operao e manuteno
Operao e
manuteno

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

11

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

12

18/02/2011

Modelo cascata

Desenvolvimento evolucionrio

Vantagens:

Documentao organizada e consistente


Aderncia a outros modelos de processo de engenharia

Desvantagens:
Diviso inflexvel em estgios distintos

Baseia-se na idia de desenvolvimento de uma


implementao inicial, expondo os resultados aos
comentrios do usurio e refinando esse resultado
por meio de vrias verses at que seja
desenvolvido um sistema adequado

O software entregue somente no final

Deve ser utilizado somente quando os requisitos


forem bem compreendidos e houver pouca
probabilidade de mudanas

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Desenvolvimento evolucionrio

14

Desenvolvimento evolucionrio

Atividades sim ultneas

Especificao

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

13

Vantagens:
mais eficaz na produo de sistemas que atendam as
necessidades imediatas dos clientes

Verso inicial

A especificao desenvolvida de forma particionada, no


sendo necessrio que o cliente se comprometa com um
grande grupo de requisitos no incio do projeto
Descrio do
esboo

Desenv olvimento

Verses
intermedirias

Desvantagens:
O processo completo no visvel, portanto no vivel
gerar documentos completos para cada verso

Os softwares frequentemente so mal estruturados


Validao

Verso final

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

15

Engenharia de software baseada em


componentes

Deve ser utilizado quando houver grande


possibilidade de mudanas nos requisitos

16

Engenharia de software baseada em


componentes

Baseado no reuso
Depende de uma grande base de componentes de
software reusveis e algum framework de integrao
destes componentes
Os estgios de especificao e validao so iguais
aos outros modelos, mas os estgios intermedirios
so distintos
Estgios intermedirios:
Anlise de componentes

Especificao de
requisitos

Anlise de
componentes

Modificao de
requisitos

Desenv olvimento e
integrao

Proj eto de sistema


com reuso

Validao de
sistema

Modificao de requisitos
Projeto de sistema com reuso
Desenvolvimento e integrao
Processos de Software - Parte 1
Prof. Igor Rafael Silva Valente

17

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

18

18/02/2011

Engenharia de software baseada em


componentes

Iterao de processo

Vantagens:

Reduz o tempo de desenvolvimento e conseqentemente o


seu custo
Permite a utilizao de bibliotecas estveis

Desvantagens:

Os componentes podem no se comportar conforme


esperado

Podem haver problemas de arquitetura do software

Entrega incremental
Modelo espiral

Deve ser utilizado quando houverem componentes


que satisfaam os requisitos especificados

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

19

Entrega incremental

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

O cliente identifica, em linhas gerais, os servios a


serem fornecidos pelo sistema
Os servios identificados so classificados em mais
importantes ou menos importantes
Um nmero de incrementos de entrega definido,
com cada incremento fornecendo um subconjunto
dos servios definidos
Os requisitos do primeiro incremento so
identificados e em seguida desenvolvidos
Os requisitos dos prximos incrementos podem ser
modificados, mas no os requisitos do incremento
em execuo
Processos de Software - Parte 1
Prof. Igor Rafael Silva Valente

21

Entrega incremental

22

Entrega incremental

Atribuir requisitos
aos incrementos

20

Entrega incremental

O modelo em cascata requer que o cliente se


comprometa com um conjunto de requisitos antes do
incio do projeto e o projetista se comprometa com
estratgias especficas de projeto antes da
implementao
A abordagem evolucionria permite que as decises
de requisitos e projeto sejam postergadas, mas pode
levar a um software mal estruturado
A entrega incremental uma abordagem
intermediria que combina as vantagens dos dois
modelos

Definir requisitos
iniciais

Os requisitos do software SEMPRE evoluem durante


o projeto, sendo difcil e em alguns casos at mesmo
impossvel estabelecer a priori uma especificao
detalhada de requisitos
A iterao de processo pode ser aplicada a qualquer
modelo de processo genrico
Abordagens mais utilizadas:

Vantagens:
O cliente no precisa esperar at a entrega final do software
para comear a utiliz-lo

Proj etar arquitetura


de sistema

Os incrementos iniciais podem ser utilizados como prottipos


para ganhar experincia
Desenv olver
incremento de
sistema

Existe um menor risco de falha geral do projeto

Sistema incompleto

Os servios mais importantes so testados por mais tempo

Validar
incremento

Integrar
incremento

Validar
sistema

Pode ser difcil efetuar a diviso dos servios em


incrementos, pois a maior parte dos softwares requerem um
conjunto de requisitos bsicos de diferentes partes

Sistema final

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Desvantagens:

23

Deve ser utilizado quando os requisitos no


estiverem bem definidos no incio do projeto
Processos de Software - Parte 1
Prof. Igor Rafael Silva Valente

24

18/02/2011

Desenvolvimento em espiral

Desenvolvimento em espiral

Neste modelo de processo, as atividades so


abordadas em forma de espiral, ao invs da
abordagem seqencial dos demais modelos
Cada loop na espiral representa uma fase do
processo de software, podendo a mais interna estar
relacionada viabilidade do software e a seguinte
definio de requisitos, por exemplo
Cada loop est dividido em quatro setores:
Definio dos objetivos
Avaliao e reduo de riscos

Desenvolvimento e validao
Planejamento
Processos de Software - Parte 1
Prof. Igor Rafael Silva Valente

Desenvolvimento em espiral

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

25

Pontos-chave da aula

Vantagens:

Reconhecimento explcito do gerenciamento de riscos


Permite que ao longo de cada iterao sejam desenvolvidas
verses cada vez mais completas

Desvantagens:
Mais difcil de gerenciar
Exige considervel experincia na determinao de riscos
para ter sucesso

Deve ser utilizado quando a gerncia de riscos for


necessria e houver grande experincia no
gerenciamento de projetos

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

Um processo de software consiste no conjunto de


atividades e resultados associados que levam
produo de um produto de software, sendo
composto pelas atividades fundamentais:
especificao de software, projeto e implementao
de software, validao de software e evoluo de
software
Um modelo de processo de software apresenta uma
abordagem diferenciada nas atividades fundamentais
de um processo de software, adaptando sua
execuo a um determinado cenrio de
desenvolvimento de software
Processos de Software - Parte 1
Prof. Igor Rafael Silva Valente

27

Pontos-chave da aula

26

28

Conferindo os objetivos da aula de hoje

Os modelos genricos so conhecidos como modelo


cascata, desenvolvimento evolucionrio e engenharia
de software baseada em componentes
Os modelos iterativos contemplam a mudana que
sempre ocorre nos requisitos do software
As abordagens mais comuns dos modelos iterativos
so conhecidas como entrega incremental e modelo
espiral

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

29

Entender o conceito de processo de software e


modelo de processo de software
Compreender as atividades fundamentais de um
processo de software
Conhecer os principais modelos de processo de
software e as situaes em que devem ser utilizados

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

30

18/02/2011

Obrigado pela ateno!

Referncias Bibliogrficas

Alguma dvida?
Material para casa

SOMMERVILLE, I. Engenharia de Software. 8


edio. So Paulo: Pearson Prentice Hall, 2007
Captulo 4

Slides da aula
Lista de exerccios

Contedo da prxima aula (11/03)


Processos de software parte 2

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

31

Processos de Software - Parte 1


Prof. Igor Rafael Silva Valente

32

You might also like