Escolar Documentos
Profissional Documentos
Cultura Documentos
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
Slide 1
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 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
Slide 3
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
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
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
Slide 7
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
Desenvolvimento
Verses intermedirias
Validao
Verso final
Slide 9
Slide 10
Desenvolvimento evolucionrio
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
Slide 11
Slide 12
Transformaes formais
Transformaes formais T1 T2 T3 T4
Definio de requisitos
Especificao formal
Transformao formal
Especificao formal
R1
R2
R3
Programa executvel
P1
P2
P3
P4
Slide 13
Slide 14
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
Slide 15
Iterao de processo
G
Desenvolvimento e integrao
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
Slide 17
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
Validar incremento
Sistema incompleto
Slide 20
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
Slide 22
Desenvolvimento espiral
G
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
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
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
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
Slide 25
Slide 26
Implementao
Slide 27
Slide 28
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 algoritmos
Arquitetura do sistema
Especificao de SW
Especificao de interface
Especificao de componente
Especificao de algoritmos
Slide 29
Slide 30
Mtodos de projeto
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
Slide 31
Slide 32
O processo de debugging
Validao de software
G
Localizar erro
Reparar erro
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
Slide 33
O processo de testes
Testes de unidade
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-sistemas
Testes de aceitao
G
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 35
Testes de sistema
Testes de aceitao
Evoluo de software
G G
Manuteno
Testes de aceitao
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
Slide 37
Evoluo do 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
Slide 39
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
Slide 41
Slide 43
Integrao CASE
G
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
Workbenches multi-mtodos
Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 3 Slide 45 Ian Sommerville 2000
Workbenches mtodo-nico
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
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