Mais conteúdo relacionado
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 Semelhante a 02_Processos_SW de Softwares aplicados a Engenharia de Software (20)
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 Último (20)
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 02_Processos_SW de Softwares aplicados a Engenharia 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
- 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