Você está na página 1de 8

Processos de Software

Objetivos
G G

Conjunto coerente de atividades para especificar, projetar, implementar e testar sistemas de software

Apresentar os modelos de processo de software Descrever os diferentes modelos de processos e quando eles podem ser utilizados Descrever em formas gerais os modelos de processo para engenharia de requisitos, desenvolvimento de software, testes e evoluo Apresentar a tecnologia CASE para apoiar atividades do processo de software

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 1

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 2

Tpicos abordados
G G G G G G G

O processo de software
G

Modelos de processo de software Iterao do processo Especificao de software Projeto e implementao de software Validao de software Evoluo de software Apoio automatizado ao processo

Um conjunto estruturado de atividades exigidas para desenvolver um sistema de software


Especificao Projeto Validao Evoluo

Um modelo de processo de software uma representao abstrata de um processo. Ele apresenta uma descrio de um processo a partir de uma perspectiva especfica
Software Engineering, 6th edition. Chapter 3 Slide 4

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 3

Ian Sommerville 2000

Modelos genricos de modelos de processo de software


G

Modelo cascata
Definio de requisitos Projeto do sistema e do software

O modelo cascata
Fases de especificao e desenvolvimento separadas e distintas Especificao e desenvolvimento so interfoliadas Um modelo matemtico do sistema transformado formalmente em uma implementao O sistema montado a partir de componentes existentes

Desenvolvimento evolucionrio

Desenvolvimento formal de sistemas

Implementao e testes de unidade

Desenvolvimento baseado em reuso

Integrao e testes do sistema

Operao e manuteno
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 5 Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 6

Fases do modelo cascata


G G G G G G

Problemas do modelo cascata


G G

Definio e anlise de requisitos Projeto do sistema e do software Implementao e testes de unidade Integrao e testes do sistema Operao e manuteno A desvantagem do modelo cascata a dificuldade de acomodar as mudanas aps o processo ter sido iniciado

Particionamento inflexvel do projeto em fases distintas Isso torna difcil responder a requisitos do usurio que mudam Portanto, esse modelo apropriado somente quando os requisitos so bem compreendidos

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 7

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 8

Desenvolvimento evolucionrio
G

Desenvolvimento evolucionrio
Especificao Verso inicial

Desenvolvimento exploratrio
O objetivo trabalhar com os clientes e evoluir um sistema final a partir de uma especificao genrica inicial. O desenvolvimento se inicia com as partes do sistema que esto compreendidas O objetivo compreender os requisitos do sistema. O prottipo se concentra em fazer experimentos com partes dos requisitos que estejam mal compreendidas
Descrio do esboo

Fazer prottipos descartveis

Desenvolvimento

Verses intermedirias

Validao

Verso final

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 9

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 10

Desenvolvimento evolucionrio
G

Desenvolvimento formal de sistemas


G

Problemas
Falta de visibilidade do processo Os sistemas freqentemente possuem pouca estrutura Podem ser exigidas habilidades especiais (p.ex.em linguagens para desenvolvimento rpido) Para sistemas interativos pequenos ou de mdio porte Para partes de sistemas grandes (p.ex., a interface com o usurio) Para sistemas de vida curta

Aplicabilidade

G

Baseia-se na transformao de uma especificao matemtica por meio de diferentes representaes para um programa executvel As transformaes 'preservam a corretude', de tal forma que possa ser diretamente mostrado que o programa est de acordo com a sua especificao Embutida na abordagem de desenvolvimento de software chamada Cleanroom

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 11

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 12

Desenvolvimento formal de sistemas

Transformaes formais
Transformaes formais T1 T2 T3 T4

Definio de requisitos

Especificao formal

Transformao formal

Integrao e testes do sistema

Especificao formal

R1

R2

R3

Programa executvel

P1

P2

P3

P4

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 13

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 14

Desenvolvimento formal de sistemas


G

Desenvolvimento orientado ao reuso


G

Problemas
Necessidade de habilidades especiais e treinamento para aplicar a tcnica Dificuldade de especificar formalmente alguns aspectos do sistema, tais como a interface com o usurio Sistemas crticos, especialmente aqueles onde um estudo de segurana deve ser feito antes de pr o sistema em operao

Baseia-se no reuso sistemtico, onde sistemas so integrados a partir de componentes existentes ou sistemas COTS (Commercial-off-the-shelf) Estgios do processo
Anlise dos componentes Modificao de requisitos Projeto do sistema com reuso Desenvolvimento e integrao

Aplicabilidade

Esta abordagem est se tornando mais importante, mas ainda h uma experincia limitada com ela
Software Engineering, 6th edition. Chapter 3 Slide 16

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 15

Ian Sommerville 2000

Desenvolvimento orientado ao reuso


Especificao de requisitos Anlise de componentes Modificao de requisitos

Iterao de processo
G

Projeto do sistema com reuso

Desenvolvimento e integrao

Projeto do sistema Validao com reuso do sistema

Os requisitos do sistema SEMPRE evoluem ao longo de um projeto, portanto a iterao do processo, onde estgios iniciais so retrabalhados, sempre parte do processo para sistemas grandes A iterao pode ser aplicada a qualquer um dos modelos genricos de processo Duas abordagens (relacionadas)
Desenvolvimento incremental Desenvolvimento espiral

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 17

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 18

Desenvolvimento incremental
G

Desenvolvimento incremental
Definir requisitos genricos Atribuir requisitos a incrementos Projetar a arquitetura do sistema

Ao invs de entregar o sistema como uma nica entrega, quebram-se o desenvolvimento e a entrega em incrementos, com cada incremento entregando parte da funcionalidade requerida Os requisitos do usurio so priorizados e os requisitos de prioridade mais alta so includos nos incrementos iniciais Uma vez que o desenvolvimento de um incremento iniciado, os requisitos so congelados, ainda que os requisitos para incrementos posteriores continuem a evoluir
Software Engineering, 6th edition. Chapter 3 Slide 19

Desenvolver incremento do sistema

Validar incremento

Projeto do sistema com reuso

Validar o sistema Sistema final

Sistema incompleto

Ian Sommerville 2000

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 20

Vantagens do desenvolvimento incremental


G

Programao extrema (Extreme programming)


G

G G

Cada incremento pode entregar valor para o cliente, portanto a funcionalidade do sistema est disponvel mais cedo Incrementos iniciais atuam como um prottipo para ajudar a descobrir requisitos para os incrementos posteriores Menor risco de falha do projeto como um todo Os servios de mais alta prioridade do sistema tendem a receber a maior parte dos testes
Software Engineering, 6th edition. Chapter 3 Slide 21

Nova abordagem de desenvolvimento baseada no desenvolvimento e entrega de incrementos de funcionalidade muito pequenos Baseia-se em melhoria constante do cdigo, envolvimento do usurio na equipe de desenvolvimento e programao em pares

Ian Sommerville 2000

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 22

Desenvolvimento espiral
G

Modelo espiral do processo de software


Determinao de objetivos, alternativas e restries Anlise de risco Anlise de risco Anlise de risco ProtAnlise Prot- tipo 2 REVISO de risco tipo 1 Avaliao de alternativas, identificao e soluo de riscos

O processo representado como uma espiral, em vez de uma seqncia de atividades com caminhos de retorno Cada volta na espiral representa uma fase no processo No h fases fixas, tais como especificao ou projeto
As voltas na espiral so escolhidas dependendo do que for exigido

Prottipo 3

Prottipo operacional

Os riscos so explicitamente avaliados e resolvidos durante todo o processo


Software Engineering, 6th edition. Chapter 3 Slide 23

Plano de requisitos Simulaes, modelos, benchmarks Plano de ciclo de vida Conceito de Requisitos operao Projeto de SW Projeto do produto detalhado Validao de Plano de desenCdigo requisitos volvimento Teste de unidade Plano de integrao V&V do Testes de projeto e de testes Testes de integrao Planejamento da prxima fase ManuDesenvolvimento, verificao aceitao tenso e produto no prximo nvel
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 24

Ian Sommerville 2000

Setores do modelo espiral


G

Especificao de software
G

Definio do objetivo
Identificam-se os objetivos especficos da fase Os riscos so avaliados e so adotadas as atividades para reduzir os ricos principais escolhido um modelo de desenvolvimento para o sistema, que pode ser qualquer um dos modelos genricos O projeto revisado e a prxima fase da espiral planejada

Avaliao e reduo de risco

O processo de estabelecer quais servios so exigidos e as restries na operao e no desenvolvimento do sistema Processo de engenharia de requisitos
Estudo de viabilidade Descoberta e anlise de requisitos Especificao de requisitos Validao de requisitos

Desenvolvimento e avaliao

Planejamento

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 25

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 26

O processo de engenharia de requisitos


Estudo de viabilidade Descoberta e anlise de requisitos Especificao de requisitos Relatrio de viabilidade Modelos do sistema Requisitos do usurio e do sistema Documento de requisitos Validao de requisitos

Projeto e implementao de software


G

O processo de converter a especificao do sistema em um sistema executvel Projeto de software


Projetar uma estrutura de software que realize a especificao Traduzir essa estrutura em um programa executvel

Implementao

As atividades de projeto e implementao so proximamente relacionadas e podem ser interfoliadas

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 27

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 28

Atividades do processo de projeto


G G G G G G

O processo de projeto de software


Especificao de requisitos

Projeto de arquitetura Especificao abstrata Projeto de interface Projeto de componentes Projeto de estrutura de dados Projeto de algoritmos

Projeto de arquitetura

Especificao abstrata

Projeto de interface

Projeto de componentes

Projeto de estrutura de dados

Projeto de algoritmos

Arquitetura do sistema

Especificao de SW

Especificao de interface

Especificao de componente

Especificao da estrutura de dados

Especificao de algoritmos

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 29

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 30

Mtodos de projeto
G G

Programao e depurao (debugging)


G G

Abordagens sistemticas para desenvolver um projeto de software O projeto normalmente documentado como um conjunto de modelos grficos Modelos possveis
Modelo de fluxo de dados Modelo entidade-relacionamento-atributo Modelo estrutural Modelos de objeto

Traduzir um projeto em um programa e remover erros do programa Programao uma atividade pessoal no h um processo genrico de programao Os programadores desenvolvem alguns testes do programa para descobrir falhas em um programa e remover essas falhas em um processo de depurao

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 31

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 32

O processo de debugging

Validao de software
G

Localizar erro

Projetar soluo do erro

Reparar erro

Refazer testes do programa

Verificao e validao destinam-se a mostrar que um sistema conforma com a sua especificao e satisfaz os requisitos do cliente Envolve processos de verificao e reviso e testes do sistema O processo de testes do sistema envolve executar o sistema com casos de teste que so derivados da especificao dos dados reais a serem processados pelo sistema
Software Engineering, 6th edition. Chapter 3 Slide 34

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 33

Ian Sommerville 2000

O processo de testes
Testes de unidade

Estgios do processo de testes


G

Testes de unidade
Componentes individuais so testados Colees relacionadas de componentes dependentes so testadas Mdulos so integrados em sub-sistemas e testados. O foco aqui deve ser no teste das interfaces Testar o sistema como um todo. Teste de propriedades emergentes
Software Engineering, 6th edition. Testes com dados do cliente para Chapter 3 se elesSlide 36aceitveis verificar so

Testes de mdulo Testes de sub-sistema Testes de sistema


G

Testes de mdulo

Testes de sub-sistemas

Testes de aceitao
G
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 35

Testes de sistema

Testes de aceitao

Ian Sommerville 2000

Fases do processo de testes


Especificao de requisitos Especificao do sistema Projeto do sistema Projeto detalhado

Evoluo de software
G G

Plano de testes de aceitao

Plano de testes de integrao do sistema

Plano de testes de integrao dos sub-sistemas

Codificao e testes de unidade e de mdulo

Manuteno

Testes de aceitao

Testes de integrao do sist.

Testes de integrao sub-sist

O software inerentemente flexvel e pode mudar medida em que os requisitos mudam por causa de mudanas nas circunstncias de negcios, o software que apia os negcios tambm deve evoluir e mudar Embora tenha existido uma demarcao entre desenvolvimento e evoluo (manuteno), isso cada vez mais irrelevante, uma vez que um nmero decrescente de sistemas so completamente novos
Software Engineering, 6th edition. Chapter 3 Slide 38

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 37

Ian Sommerville 2000

Evoluo do sistema

Apoio automatizado ao processo (CASE)


G

Definir requisitos do sistema

Avaliar sistemas existentes

Propor mudanas no sistema

Modificar os sistemas

Computer-aided software engineering (CASE) um software para apoiar o desenvolvimento de software e o processo de evoluo Automao de atividades
Editores grficos para desenvolvimento de modelos do sistema Dicionrio de dados para gerenciar entidades do projeto Construtor de IU grfico para construir a interface com o usurio Debuggers para apoiar a busca por falhas no programa Tradutores automatizados para gerar novas verses de um programa

Sistemas existentes

Sistema novo

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 39

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 40

Tecnologia CASE
G

Classificao CASE
G

A tecnologia CASE tem levado a melhorias significativas no processo de software, embora no na ordem de magnitude das melhorias que haviam sido previstas
Engenharia de software exige pensamento criativo isso no prontamente automatizvel Engenharia de software uma atividade de equipe e, para projetos grandes, muito tempo gasto em interaes da equipe. A tecnologia CASE no suporta prontamente isso

A classificao nos ajuda a compreender os diferentes tipos de ferramentas CASE e seu apoio s atividades do processo Perspectiva funcional
As ferramentas so classificadas de acordo com a sua funo especfica As ferramentas so classificadas de acordo com as atividades do processo que so apoiadas As ferramentas so classificadas de acordo com a sua organizao em unidades integradas
Software Engineering, 6th edition. Chapter 3 Slide 42

Perspectiva do processo

Perspectiva de integrao

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 41

Ian Sommerville 2000

Classificao funcional das ferramentas


Tipo da ferramenta Planejamento Edio Gesto de mudanas Gesto da configurao Prototipao Apoio ao mtodo Processamento de linguagem Anlise de programas Ferramentas de testes Debugging Documentao Reengenharia Exemplos Ferramentas PERT, de estimativas, planilhas de clculo Editores de texto, editores de diagramas, processadores de texto Acompanhamento de requisitos, sistemas de controle de mudanas Sistemas de controle de verses, ferramentas de construo de sistemas Linguagens de mais alto nvel, geradores de interface com o usurio Editores de projeto, dicionrios de dados, geradores de cdigo Compiladores, interpretadores Geradores de ref. cruzadas, analisadores estticos, analisadores dinmicos Geradores de dados de teste, comparadores de arquivos Sistemas de debugging interativos Programas de layout de pginas, editores de imagens Sistemas de referncias cruzadas, sistemas de reestruturao de programas

Classificao baseada em atividades


Reengenharia Testes Debugging Anlise de programas Processamento da linguagem Suporte ao mtodo Prototipao Gesto da configurao Gesto de mudanas Documentao Edio Planejamento Especificao Projeto Implementao Verificao e Validao
Slide 44

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Slide 43

Ian Sommerville 2000

Software Engineering, 6th edition. Chapter 3

Integrao CASE
G

Ferramentas, workbenches, ambientes


Tecnologia CASE

Ferramentas
Apoiam tarefas do processo individuais, tais como verificao de consistncia do projeto, edio de texto, etc.
Ferramentas

Workbenches
Apoiam uma fase do projeto, tais como especificao ou projeto. Normalmente, incluem um certo nmero de ferramentas integradas Apoiam todo ou uma parte substancial de um processo de software inteiro. Normalmente, incluem vrios workbenches integrados
Editores

Workbenches

Ambientes

Compiladores

Comparadores de arquivo

Ambientes integrados

Ambientes centr. No proc.

Ambientes

Anlise e projeto Programao Testes

Workbenches multi-mtodos
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 45 Ian Sommerville 2000

Workbenches mtodo-nico

Workbenches uso genrico

Workbenches ling. Especfica


Slide 46

Software Engineering, 6th edition. Chapter 3

Pontos principais
G

Pontos principais
Engenharia de requisitos o processo de desenvolver uma especificao de software G Os processos de projeto e implementao transformam a especificao em um programa executvel G Validao envolve verificar que o sistema satisfaz a sua especificao e as necessidades do usurio G A evoluo preocupa-se em modificar o sistema aps ele estar em uso G A tecnologia CASE apia as atividades do processo de software Software Engineering, 6th edition. Chapter 3 Ian Sommerville 2000 Slide 48
G

Ian Sommerville 2000

Processos de software so as atividades envolvidas em produzir e evoluir um sistema de software. Eles so representados em um modelo de processo de software Atividades gerais so a especificao, o projeto e a implementao, a validao e a evoluo Modelos de processo genricos descrevem a organizao de processos de software Modelos de processo iterativos descrevem o processo de software como um ciclo de atividades
Software Engineering, 6th edition. Chapter 3 Slide 47

Você também pode gostar