SlideShare uma empresa Scribd logo
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1
Processos de Software
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 2
O processo de software

Um conjunto estruturado de atividades,
procedimentos, artefatos e ferramentas
necessários para o desenvolvimento de um
sistema de software
• Atividades: Especificação, Projeto, Validação,
Evolução

Exemplos: Processo Unificado (RUP),
Programação Extrema, UML Components

Um modelo de processo de software apresenta
a descrição de um processo de uma perspectiva
particular, normalmente focando apenas em
algumas atividades
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 3
Modelos genéricos de processo de
software

O modelo cascata
• Fases separadas e distintas de especificação e
desenvolvimento

Engenharia de software baseada em componentes
• O sistema é montado a partir de componentes existentes.

Desenvolvimento iterativo
• Sistema desenvolvido através de várias etapas

Existem muitas variantes destes modelos
• Ex: desenvolvimento formal onde um processo
semelhante ao cascata é usado, mas a especificação
formal é refinada durante os vários estágios para um
projeto implementável
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 4
Modelo cascata
 Resposta ao modelo code-and-fix vigente na década de 70
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 5

Fases
• Análise e definição de requisitos
• Projeto de sistema e software
• Implementação e teste de unidade
• Integração e teste de sistema
• Operação e manutenção

Primeiro modelo a organizar as atividades de
desenvolvimento

Uma fase tem de estar completa antes de passar para a
próxima.
• Saídas das fases são acordadas contratualmente!

Todas as fases envolvem atividades de validação
Modelo cascata
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 6
Problemas do modelo cascata

Particionamento inflexível do projeto em estágios
• Dificulta a resposta aos requisitos de mudança do cliente

Documentos “completamente elaborados” são necessários
para fazer as transições entre estágios

Apropriado somente quando os requisitos são bem
compreendidos e quando as mudanças são raras
• Poucos sistemas de negócio têm requisitos estáveis

O modelo cascata é o mais usado em projetos de
engenharia de sistemas de grande porte, onde um sistema
é desenvolvido em várias localidades
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 7
Engenharia de software baseada
em componentes

Baseado em reuso sistemático onde sistemas são
integrados a partir de componentes existentes ou de
sistemas COTS (Commercial-of-the-shelf)

Estágios do processo
• Análise de componentes
• Modificação de requisitos
• Projeto de sistema com reuso
• Desenvolvimento e integração

Esta abordagem está se tornando cada vez mais
usada à medida que padrões de componentes têm
surgido

Reuso acidental vs. Reuso planejado
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 8
Processos Iterativos

Requisitos de sistema SEMPRE evoluem no curso
de um projeto

Algum retrabalho é necessário

A abordagem iterativa pode ser aplicada a
qualquer um dos modelos genéricos do processo

Duas abordagens (relacionadas)
• Entrega incremental
• Desenvolvimento espiral
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 9
Entrega incremental

O sistema é entregue ao cliente em incrementos
• Cada incremento fornece parte da funcionalidade

Os requisitos são priorizados
• Requisitos de prioridade mais alta são incluídos nos
incrementos iniciais

Uma vez que o desenvolvimento de um
incremento é iniciado, os requisitos são
congelados
• Os requisitos para os incrementos posteriores
podem continuar evoluindo (e incluir requisitos já
implementados!)
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 10
Desenvolvimento incremental
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 11
Vantangens do desenvolvimento
incremental

Incrementos podem ser entregues regularmente
ao cliente e, desse modo, a funcionalidade de
sistema é disponibilizada mais cedo

Os incrementos iniciais agem como protótipos
para elicitar os requisitos para incrementos
posteriores do sistema

Riscos menores de falha geral do projeto

Os serviços de sistema de mais alta prioridade
tendem a receber mais testes
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 12
eXtreme Programming (XP)

Uma abordagem baseada no desenvolvimento
e na entrega de incrementos de funcionalidade
muito pequenos

Baseia-se no aprimoramento constante do
código, em testes automatizados, no
envolvimento do usuário na equipe e no
desenvolvimento em pares
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 13
Desenvolvimento espiral

O processo é representado como uma espiral
ao invés de uma seqüência de atividades com
realimentação

Cada loop na espiral representa uma fase no
processo

Sem fases definidas, tais como especificação
ou projeto – os loops na espiral são escolhidos
dependendo do que é requisitado

Os riscos são explicitamente avaliados e
resolvidos ao longo do processo
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 14
Modelo espiral do processo de
software
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 15
Setores do modelo espiral

Definição de objetivos
• Objetivos específicos para a fase são identificados

Avaliação e redução de riscos
• Riscos são avaliados e atividades são realizadas para reduzir os
riscos-chave

Desenvolvimento e validação
• Um modelo de desenvolvimento para o sistema, que pode ser
qualquer um dos modelos genéricos, é escolhido

Planejamento
• O projeto é revisado e a próxima fase da espiral é planejada

Processo de Desenvolvimento vs. Processo de
Gerenciamento
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 16
Atividades de um processo
de desenvolvimento

Especificação de software

Projeto e implementação de software

Validação de software

Evolução de software
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 17
Especificação de software

O processo para definir quais serviços são
necessários e identificar as restrições de operação
e de desenvolvimento do sistema

Processo de engenharia de requisitos
• Estudo de viabilidade
• Realizado antes do projeto ser iniciado
• Elicitação e análise de requisitos
• Especificação de requisitos
• Validação de requisitos
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 18
O processo de engenharia de
requisitos
 Também pode envolver a prototipação de partes do
sistema!
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 19
Projeto e implementação de software

É o processo de conversão da especificação em um
sistema de software

Projeto de software
• Projetar uma estrutura de software que atenda à
especificação

Implementação
• Transformar essa estrutura em um programa
executável

As atividades de projeto e implementação são
fortemente relacionadas e podem ser intercaladas
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 20
Atividades do processo de projeto

Projeto de arquitetura

Especificação abstrata

Projeto de interfaces entre componentes

Projeto de componente

Projeto de estrutura de dados

Projeto de algoritmo
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 21
Métodos estruturados

Abordagens sistemáticas para projetar sistemas de
software
• Project (gerenciamento) vs. Design (desenvolvimento)

O projeto é, em geral, documentado como um conjunto
de modelos gráficos

Modelos possíveis
• Modelo de objeto
• Modelo de sequência
• Modelo de transição de estado
• Modelo estruturado
• Modelo de fluxo de dados
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 22
Programação e depuração

É a transformação de um projeto em um programa e a
remoção de defeitos desse programa

Programação é uma atividade pessoal – não há
processo genérico de programação
• Há algumas práticas, porém, que são universalmente
consideradas boas

Programadores realizam alguns testes para descobrir
defeitos no programa e removem esses defeitos no
processo de depuração
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 23
Validação de software

Verificação e validação (V & V) têm a intenção de
mostrar que um sistema está em conformidade com a
sua especificação e que atende aos requisitos do cliente

Verificação: “construímos o sistema corretamente?”

Validação: “construímos o sistema correto?”

Testes envolvem a execução do sistema com casos de
teste que são derivados da especificação do sistema e
de dados reais a ser processados por ele
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 24
Tipos de teste

Teste de componente ou unidade
• Os componentes individuais são testados
independentemente
• Esses componentes podem ser funções ou classes de
objetos, ou grupos coerentes dessas entidades

Teste de sistema
• Teste de sistema como um todo. O teste das propriedades
emergentes é particularmente importante

Teste de aceitação
• Teste com dados do cliente para verificar se o sistema
atende às suas necessidades
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 25
Evolução de software

O software é inerentemente flexível e pode mudar

Requisitos mudam devido a diversos fatores e o software
deve acompanhar essas mudanças

Processos antigos separavam explicitamente
desenvolvimento de evolução
• Processos e métodos iterativos (XP, RUP, Espiral)
normalmente não fazem uma sepação explícita

Evolução pode se dever a diversas razões
• Correções (patches)
• Mudanças de requisitos
• Melhoria de funcionalidades pré-existentes
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 26
Evolução de software
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 27
(Rational) Unified Process

É um (“modelo de”?) processo moderno baseado na UML
• Tenta cobrir todos os aspectos do desenvolvimento de
software

Fortemente focado na documentação do sistema

Normalmente descrito a partir de três perspectivas
• Uma perspectiva dinâmica que mostra as fases ao longo
do tempo
• Uma perspectiva estática que mostra atividades de
processo
• Uma perspectiva prática que sugere bons princípios e
práticas de desenvolvimento
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 28
Modelo de fases do RUP
 Centrado no gerenciamento de projetos
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 29
Fases do RUP

Concepção
• Estabelecer o business case para o sistema.

Elaboração
• Desenvolver um entendimento do domínio do
problema e a arquitetura do sistema.

Construção
• Projeto, programação e teste de sistema.

Transição
• Implantar o sistema no seu ambiente operacional.
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 30
Boas práticas do RUP

Desenvolver o software iterativamente

Gerenciar requisitos

Usar arquiteturas baseadas em componentes

Modelar o software visualmente

Verificar a qualidade de software

Controlar as mudanças do software
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 31
Workflows estáticos
©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 32
Resumindo o RUP

Mais conteúdo relacionado

PDF
Capitulo 02 sommerville
PPT
Aula de Engenharia de Software principais caracteristicas
PDF
Modelos e Padrões de Engenharia de Software
PDF
Aula 3 - Processos de Software.pdf
PDF
Aula 02 - Processo de Software I.pdf
PPTX
Eng.ª do Software - 4. Processos de software
PDF
Aula 01 e 02 - Engenharia de Software.pdf
PPT
Aula2 processos sw
Capitulo 02 sommerville
Aula de Engenharia de Software principais caracteristicas
Modelos e Padrões de Engenharia de Software
Aula 3 - Processos de Software.pdf
Aula 02 - Processo de Software I.pdf
Eng.ª do Software - 4. Processos de software
Aula 01 e 02 - Engenharia de Software.pdf
Aula2 processos sw

Semelhante a 02_Processos_SW de Softwares aplicados a Engenharia de Software (20)

PPTX
Aula - Revisão.pptx fundamentos de engenharia de sw
PPTX
Aula 7 - Ciclo de vida do software.pptx
PDF
Introdução a engenharia de software aula 01
PPTX
aula7 software ciclo de vida analise req
PPTX
Aula de processos introdução de Software
PPTX
Engenharia de Software – Processo Unificado.pptx
PDF
Aula 2 - Processos de Software
PDF
Introdução à Engenharia de Software
PDF
[CEFETMG][ESw] Aula 2 - Processos de software
PPTX
Aula 7 - Modelos de Ciclo de Vida.pptx
PPTX
Aula 2 modelo de processo de software1
PDF
Modelos de processos de software
PPT
Aula 03 de engenharia de software uespi 2011-1
PPT
Engenharia de software introdução e engenharia
PDF
FES_SENAIPR_Processos.pdf
PDF
1 - APS – Iniciação Desenvolvimento Requisitos.pdf
PPTX
PPTX
Aula 1- ENGENHARIA DE SOFTWARE
PPTX
Es capítulo 2 - processos de software
Aula - Revisão.pptx fundamentos de engenharia de sw
Aula 7 - Ciclo de vida do software.pptx
Introdução a engenharia de software aula 01
aula7 software ciclo de vida analise req
Aula de processos introdução de Software
Engenharia de Software – Processo Unificado.pptx
Aula 2 - Processos de Software
Introdução à Engenharia de Software
[CEFETMG][ESw] Aula 2 - Processos de software
Aula 7 - Modelos de Ciclo de Vida.pptx
Aula 2 modelo de processo de software1
Modelos de processos de software
Aula 03 de engenharia de software uespi 2011-1
Engenharia de software introdução e engenharia
FES_SENAIPR_Processos.pdf
1 - APS – Iniciação Desenvolvimento Requisitos.pdf
Aula 1- ENGENHARIA DE SOFTWARE
Es capítulo 2 - processos de software
Anúncio

Último (20)

PDF
MIP - soja.- pragas da cultura e seu controle
PDF
DETECCAO DE ALARME DE INCENSDIO E PANICO
PDF
1 - Aula Pneumática Elementos da Pneumática.pdf
PDF
3 - Condução de Calor Permanante (Coordendas Retangulares, Cilíndricas e Esfé...
PDF
2 - Equação de Condução de Calor - (Coordenadas Retangulares, Cilíndricas e E...
PDF
Pesquisa Operacional - Programação Linear
PPT
DIFERENTES SINTOMAS E SINAIS DE PLANTAS.
PDF
Impactos ambientais gerados pela construção civil
PDF
Aula_04 gestão da manutenção _Custos da manutencão.pdf
PPTX
1_Aula_de_Pesquisa_Aplicada__Engenharia____P_2024.2.pptx
PDF
Poluição sonora xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
PDF
Palestras_Tribologia_Profa_MCristinaMFarias.pdf
PPT
aula biologia do solo na agronomia introdução
PPTX
Func-equip-moagem-espe-prensa_PPT_003.pptx
PPT
Primeiros Socorros e Saúde Ocupacional Ferrosos Sul.ppt
PPTX
Apresentação_Mecanismo_Garra_P2_18-06-2017.pptx
PPT
22a Aula Manejo de Plantas Daninhas(1).ppt
PPTX
Trabalho sobre Distancia de Visibilidade do Curso de Engenharia
PPTX
AGROECOLOGIA sistemas de ecologia renovable
PPTX
Fund-proc-moagem-carvaoerde_PPT_v007.pptx
MIP - soja.- pragas da cultura e seu controle
DETECCAO DE ALARME DE INCENSDIO E PANICO
1 - Aula Pneumática Elementos da Pneumática.pdf
3 - Condução de Calor Permanante (Coordendas Retangulares, Cilíndricas e Esfé...
2 - Equação de Condução de Calor - (Coordenadas Retangulares, Cilíndricas e E...
Pesquisa Operacional - Programação Linear
DIFERENTES SINTOMAS E SINAIS DE PLANTAS.
Impactos ambientais gerados pela construção civil
Aula_04 gestão da manutenção _Custos da manutencão.pdf
1_Aula_de_Pesquisa_Aplicada__Engenharia____P_2024.2.pptx
Poluição sonora xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
Palestras_Tribologia_Profa_MCristinaMFarias.pdf
aula biologia do solo na agronomia introdução
Func-equip-moagem-espe-prensa_PPT_003.pptx
Primeiros Socorros e Saúde Ocupacional Ferrosos Sul.ppt
Apresentação_Mecanismo_Garra_P2_18-06-2017.pptx
22a Aula Manejo de Plantas Daninhas(1).ppt
Trabalho sobre Distancia de Visibilidade do Curso de Engenharia
AGROECOLOGIA sistemas de ecologia renovable
Fund-proc-moagem-carvaoerde_PPT_v007.pptx
Anúncio

02_Processos_SW de Softwares aplicados a Engenharia de Software

  • 1. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 1 Processos de Software
  • 2. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 2 O processo de software  Um conjunto estruturado de atividades, procedimentos, artefatos e ferramentas necessários para o desenvolvimento de um sistema de software • Atividades: Especificação, Projeto, Validação, Evolução  Exemplos: Processo Unificado (RUP), Programação Extrema, UML Components  Um modelo de processo de software apresenta a descrição de um processo de uma perspectiva particular, normalmente focando apenas em algumas atividades
  • 3. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 3 Modelos genéricos de processo de software  O modelo cascata • Fases separadas e distintas de especificação e desenvolvimento  Engenharia de software baseada em componentes • O sistema é montado a partir de componentes existentes.  Desenvolvimento iterativo • Sistema desenvolvido através de várias etapas  Existem muitas variantes destes modelos • Ex: desenvolvimento formal onde um processo semelhante ao cascata é usado, mas a especificação formal é refinada durante os vários estágios para um projeto implementável
  • 4. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 4 Modelo cascata  Resposta ao modelo code-and-fix vigente na década de 70
  • 5. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 5  Fases • Análise e definição de requisitos • Projeto de sistema e software • Implementação e teste de unidade • Integração e teste de sistema • Operação e manutenção  Primeiro modelo a organizar as atividades de desenvolvimento  Uma fase tem de estar completa antes de passar para a próxima. • Saídas das fases são acordadas contratualmente!  Todas as fases envolvem atividades de validação Modelo cascata
  • 6. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 6 Problemas do modelo cascata  Particionamento inflexível do projeto em estágios • Dificulta a resposta aos requisitos de mudança do cliente  Documentos “completamente elaborados” são necessários para fazer as transições entre estágios  Apropriado somente quando os requisitos são bem compreendidos e quando as mudanças são raras • Poucos sistemas de negócio têm requisitos estáveis  O modelo cascata é o mais usado em projetos de engenharia de sistemas de grande porte, onde um sistema é desenvolvido em várias localidades
  • 7. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 7 Engenharia de software baseada em componentes  Baseado em reuso sistemático onde sistemas são integrados a partir de componentes existentes ou de sistemas COTS (Commercial-of-the-shelf)  Estágios do processo • Análise de componentes • Modificação de requisitos • Projeto de sistema com reuso • Desenvolvimento e integração  Esta abordagem está se tornando cada vez mais usada à medida que padrões de componentes têm surgido  Reuso acidental vs. Reuso planejado
  • 8. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 8 Processos Iterativos  Requisitos de sistema SEMPRE evoluem no curso de um projeto  Algum retrabalho é necessário  A abordagem iterativa pode ser aplicada a qualquer um dos modelos genéricos do processo  Duas abordagens (relacionadas) • Entrega incremental • Desenvolvimento espiral
  • 9. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 9 Entrega incremental  O sistema é entregue ao cliente em incrementos • Cada incremento fornece parte da funcionalidade  Os requisitos são priorizados • Requisitos de prioridade mais alta são incluídos nos incrementos iniciais  Uma vez que o desenvolvimento de um incremento é iniciado, os requisitos são congelados • Os requisitos para os incrementos posteriores podem continuar evoluindo (e incluir requisitos já implementados!)
  • 10. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 10 Desenvolvimento incremental
  • 11. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 11 Vantangens do desenvolvimento incremental  Incrementos podem ser entregues regularmente ao cliente e, desse modo, a funcionalidade de sistema é disponibilizada mais cedo  Os incrementos iniciais agem como protótipos para elicitar os requisitos para incrementos posteriores do sistema  Riscos menores de falha geral do projeto  Os serviços de sistema de mais alta prioridade tendem a receber mais testes
  • 12. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 12 eXtreme Programming (XP)  Uma abordagem baseada no desenvolvimento e na entrega de incrementos de funcionalidade muito pequenos  Baseia-se no aprimoramento constante do código, em testes automatizados, no envolvimento do usuário na equipe e no desenvolvimento em pares
  • 13. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 13 Desenvolvimento espiral  O processo é representado como uma espiral ao invés de uma seqüência de atividades com realimentação  Cada loop na espiral representa uma fase no processo  Sem fases definidas, tais como especificação ou projeto – os loops na espiral são escolhidos dependendo do que é requisitado  Os riscos são explicitamente avaliados e resolvidos ao longo do processo
  • 14. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 14 Modelo espiral do processo de software
  • 15. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 15 Setores do modelo espiral  Definição de objetivos • Objetivos específicos para a fase são identificados  Avaliação e redução de riscos • Riscos são avaliados e atividades são realizadas para reduzir os riscos-chave  Desenvolvimento e validação • Um modelo de desenvolvimento para o sistema, que pode ser qualquer um dos modelos genéricos, é escolhido  Planejamento • O projeto é revisado e a próxima fase da espiral é planejada  Processo de Desenvolvimento vs. Processo de Gerenciamento
  • 16. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 16 Atividades de um processo de desenvolvimento  Especificação de software  Projeto e implementação de software  Validação de software  Evolução de software
  • 17. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 17 Especificação de software  O processo para definir quais serviços são necessários e identificar as restrições de operação e de desenvolvimento do sistema  Processo de engenharia de requisitos • Estudo de viabilidade • Realizado antes do projeto ser iniciado • Elicitação e análise de requisitos • Especificação de requisitos • Validação de requisitos
  • 18. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 18 O processo de engenharia de requisitos  Também pode envolver a prototipação de partes do sistema!
  • 19. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 19 Projeto e implementação de software  É o processo de conversão da especificação em um sistema de software  Projeto de software • Projetar uma estrutura de software que atenda à especificação  Implementação • Transformar essa estrutura em um programa executável  As atividades de projeto e implementação são fortemente relacionadas e podem ser intercaladas
  • 20. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 20 Atividades do processo de projeto  Projeto de arquitetura  Especificação abstrata  Projeto de interfaces entre componentes  Projeto de componente  Projeto de estrutura de dados  Projeto de algoritmo
  • 21. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 21 Métodos estruturados  Abordagens sistemáticas para projetar sistemas de software • Project (gerenciamento) vs. Design (desenvolvimento)  O projeto é, em geral, documentado como um conjunto de modelos gráficos  Modelos possíveis • Modelo de objeto • Modelo de sequência • Modelo de transição de estado • Modelo estruturado • Modelo de fluxo de dados
  • 22. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 22 Programação e depuração  É a transformação de um projeto em um programa e a remoção de defeitos desse programa  Programação é uma atividade pessoal – não há processo genérico de programação • Há algumas práticas, porém, que são universalmente consideradas boas  Programadores realizam alguns testes para descobrir defeitos no programa e removem esses defeitos no processo de depuração
  • 23. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 23 Validação de software  Verificação e validação (V & V) têm a intenção de mostrar que um sistema está em conformidade com a sua especificação e que atende aos requisitos do cliente  Verificação: “construímos o sistema corretamente?”  Validação: “construímos o sistema correto?”  Testes envolvem a execução do sistema com casos de teste que são derivados da especificação do sistema e de dados reais a ser processados por ele
  • 24. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 24 Tipos de teste  Teste de componente ou unidade • Os componentes individuais são testados independentemente • Esses componentes podem ser funções ou classes de objetos, ou grupos coerentes dessas entidades  Teste de sistema • Teste de sistema como um todo. O teste das propriedades emergentes é particularmente importante  Teste de aceitação • Teste com dados do cliente para verificar se o sistema atende às suas necessidades
  • 25. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 25 Evolução de software  O software é inerentemente flexível e pode mudar  Requisitos mudam devido a diversos fatores e o software deve acompanhar essas mudanças  Processos antigos separavam explicitamente desenvolvimento de evolução • Processos e métodos iterativos (XP, RUP, Espiral) normalmente não fazem uma sepação explícita  Evolução pode se dever a diversas razões • Correções (patches) • Mudanças de requisitos • Melhoria de funcionalidades pré-existentes
  • 26. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 26 Evolução de software
  • 27. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 27 (Rational) Unified Process  É um (“modelo de”?) processo moderno baseado na UML • Tenta cobrir todos os aspectos do desenvolvimento de software  Fortemente focado na documentação do sistema  Normalmente descrito a partir de três perspectivas • Uma perspectiva dinâmica que mostra as fases ao longo do tempo • Uma perspectiva estática que mostra atividades de processo • Uma perspectiva prática que sugere bons princípios e práticas de desenvolvimento
  • 28. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 28 Modelo de fases do RUP  Centrado no gerenciamento de projetos
  • 29. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 29 Fases do RUP  Concepção • Estabelecer o business case para o sistema.  Elaboração • Desenvolver um entendimento do domínio do problema e a arquitetura do sistema.  Construção • Projeto, programação e teste de sistema.  Transição • Implantar o sistema no seu ambiente operacional.
  • 30. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 30 Boas práticas do RUP  Desenvolver o software iterativamente  Gerenciar requisitos  Usar arquiteturas baseadas em componentes  Modelar o software visualmente  Verificar a qualidade de software  Controlar as mudanças do software
  • 31. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 31 Workflows estáticos
  • 32. ©Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 4 Slide 32 Resumindo o RUP