Escolar Documentos
Profissional Documentos
Cultura Documentos
Professor:
Zady Castaneda Salazar
Aula 3
Processos, Métodos e Modelos da
Engenharia de Software
Agenda:
Engenharia de Software 3
Engenharia de software
Queremos construir
um balanço no
jardim para nosso
filho?
Engenharia de software
Engenharia de software
Engenharia de Software 6
Engenharia de software
Engenharia de Software 7
Engenharia de software
• Ao processo.
• Ao produto.
Engenharia de Software 8
Engenharia de software
◆O processo de software consiste de
atividades que são envolvidas no
desenvolvimento de produtos de software.
As atividades básicas deste
desenvolvimento são:
▪ especificação,
▪ desenvolvimento,
▪ validação,
▪ evolução.
Engenharia de Software 9
Engenharia de software
Engenharia de Software 10
Engenharia de software
Engenharia de Software 11
Engenharia de software
Engenharia de Software 13
Engenharia de software
Engenharia de Software 14
Engenharia de software
Engenharia de Software 15
Engenharia de software
◆ Modelos de processo
❑Especificam as atividades e a ordem em que,
de acordo com o modelo, devem ser
executadas.
Produtos de software podem ser construídos
utilizando-se de diferentes modelos de processo.
Alguns modelos são mais adequados que outros
para determinados tipos de aplicação.
A opção por um determinado modelo deve ser feita
levando-se em consideração o produto a ser
desenvolvido.
Engenharia de Software 16
Engenharia de software
O que é um modelo de processo de
software?
◆ É uma representação simplificada de
um processo de software, apresentada
sobre uma perspectiva específica.
Engenharia de Software 17
Engenharia de software
Os principais modelos de processo de software são:
◆ Modelo sequencial Linear
❑ Ciclo de vida clássico (Modelo Cascata).
◆ Modelo evolutivo
❑ Modelo Incremental.
❑ Modelo espiral.
❑ Modelo baseado em componentes (reuso)
◆ Prototipação
Engenharia de Software 18
Engenharia de software
◆ Objetivos dos modelos
◆ Auxiliar no processo de produção => produtos de alta
qualidade, produzidos mais rapidamente e a um custo
cada vez menor.
◆ Atributos: complexidade, visibilidade, aceitabilidade,
confiabilidade, manutenção, segurança etc.
◆ Possibilitam:
❑ Ao gerente: controlar o processo de
desenvolvimento de sistemas de software.
❑ Ao desenvolvedor: obter a base para produzir,
de maneira eficiente, software que satisfaça os
requisitos pré-estabelecidos.
Engenharia de Software 19
Engenharia de software
Engenharia de Software 20
Engenharia de software
Engenharia de Software 21
Engenharia de software
Engenharia de Software 22
Engenharia de software
Engenharia de Software 23
Engenharia de software
Engenharia de Software 24
Engenharia de software
Engenharia de Software 25
Engenharia de software
Engenharia de Software 26
Engenharia de software
Engenharia de Software 27
Engenharia de software
◆ Problemas :
❑O Modelo e sequencial, onde a entrada de uma
fase é o resultado da anterior.
❑ Modelo mais adequado quando os requisitos
estão muito bem entendidos.
❑O reinício do modelo é a dificuldade de
acomodar mudanças depois que o processo está
no final.
❑Dificuldade em atender às mudanças
exigidas posteriormente pelo cliente.
❑Alto custo de manutenção e correção de erros.
❑Retrabalho constante.
Engenharia de Software 28
Engenharia de software
Engenharia de Software 32
Engenharia de software
Engenharia de Software 33
Engenharia de software
Engenharia de Software 34
Engenharia de software
Engenharia de Software 35
Engenharia de software
◆Risco
❑ Um risco significa algo que pode dar errado. É a
ocorrência de um evento que possa comprometer o
andamento do projeto Por exemplo:
❖ Requisitos no compreendidos,
❖ Mal desenho do projeto,
❖ Erro na implementação,
❖ Indisponibilidade da infraestrutura - Infra-estrutura de
desenvolvimento (espaço físico, ferramentas de software e
hardware) não disponível nos momentos delimitados no plano
do projeto,
❖ Dificuldade de comunicação devido a distribuição geográfica
da equipe,
❖ Indisponibilidade dos usuários das áreas de negócio para
levantamento de informações durante a requisitos. 36
Engenharia de software
◆Risco
❑Um risco pode causar problemas no
projeto, tal como: ultrapassar o cronograma
e os custos; por isso, a minimização dos
riscos é uma atividade de gerenciamento
de projeto muito importante.
Engenharia de Software 37
Engenharia de software
◆Tipos de Risco
Riscos de projeto
– Cronograma
– Pessoal
– Orçamento
Riscos técnicos
– Análise, design, implementação e testes
– Ferramentas de hardware e software
Riscos de negócios
– Mudanças no Mercado, novas estratégias
– Requisitos e Restrições organizacionais
Engenharia de Software 38
Engenharia de software
◆Análise de Risco
Análise de Riscos é o processo de identificar,
analisar e responder a estes eventos.
• Identificação dos Riscos
• Estimativas
– Probabilidade de ocorrência
– Impacto sobre o projeto – Prioridade (probabilidade
x impacto)
• Gerenciamento
– Ações para redução dos riscos
– Ações, em caso da ocorrência, para minimizar o
impacto
• Revisões
Engenharia de Software 39
Engenharia de software
Engenharia de Software 41
Engenharia de software
Engenharia de Software 42
Engenharia de software
Engenharia de Software 43
Engenharia de software
Engenharia de Software 44
Engenharia de software
Engenharia de Software 47
Engenharia de software
◆Modelo evolutivo: baseado em
componentes (reuso)
Engenharia de Software 48
Engenharia de software
◆Modelo evolutivo: baseado em
componentes (reuso)
◆ A reusabilidade fornece uma série de benefícios:
• redução de até 70% no tempo de desenvolvimento
• redução de até 84% no custo do projeto
• índice de produtividade de até 26.2 (normal da indústria
é de 16.9)
◆ Esses resultados dependem da robustez da biblioteca de
componentes.
Engenharia de Software 49
Engenharia de software
◆ Modelo evolutivo:baseado em
componentes (reuso)
◆ Aspectos a analisar:
❑Sistemas legados: os sistemas antigos devem ser
mantidos e atualizados.
❑Heterogeneidade: sistemas são uma combinação de
hardware e software.
❑Prazos de entrega: pressão para um menor prazo de
entrega.
Engenharia de Software 50
Engenharia de software
◆ Prototipação
❑ O objetivo é entender os requisitos do sistema
através da construção de protótipos para avaliação
e aprovação do cliente.
Um protótipo é uma versão inicial de um sistema
de software, que é utilizada para mostrar conceitos,
experimentar opções de projeto e, em geral, para
conhecer mais sobre os problemas e suas possíveis
soluções. O desenvolvimento rápido de um
protótipo é essencial para que os custos sejam
controlados e os usuários possam fazer experiências
com o protótipo no início do processo de software.
Engenharia de Software 51
Engenharia de software
◆ Prototipação
Reuniões com as partes
interessadas para definição dos
objetos do projeto e levantamento
Comunicação
dos requisitos já conhecidos
Planejamento
Desenvolvimento rápido
, entrega feedback
Projeto de
modelagem rápida
Construção
do protótipo
Engenharia de Software 52
Engenharia de software
◆ Prototipação
Planejamento do protótipo
Comunicação
Planejamento
Desenvolvimento rápido
, entrega feedback
Projeto de
modelagem rápida
Construção
do protótipo
Engenharia de Software 53
Engenharia de software
◆ Prototipação
Comunicação
Planejamento
Desenvolvimento rápido
, entrega feedback
Projeto de
modelagem rápida
Construção
do protótipo
Engenharia de Software 54
Engenharia de software
◆ Prototipação
Comunicação
Planejamento
Desenvolvimento rápido
, entrega feedback
Projeto de
modelagem rápida
Construção
do protótipo
Codificação do protótipo.
Engenharia de Software 55
Engenharia de software
◆ Prototipação
Comunicação
Planejamento
Desenvolvimento rápido
, entrega feedback
Projeto de
modelagem rápida
Construção
do protótipo
Engenharia de Software 56
Engenharia de software
◆ Prototipação
Engenharia de Software 58
Engenharia de software
◆ Modelos de Prototipação
❑ Prototipação descartavel: é produzido para
ajudar a levantar os problemas com os requisitos
e depois descartado.
Engenharia de Software 59
Engenharia de software
◆ Prototipação
Vantagens
● Sistema atual melhora a percepção do usuário em
relação software;
● O desenvolvedor constrói algo imediatamente;
Engenharia de Software 60
Engenharia de software
◆ Desenvolvimento Formal de Sistemas
❑Uma especificação formal (definição matemática,
não ambígua) do software é desenvolvida e
posteriormente “transformada” em um programa
através de regras que preservam a corretude da
especificação
❑Consegue alcançar os requisitos da especificação
mais facilmente.
Engenharia de Software 61
Engenharia de software
◆ Desenvolvimento Formal de Sistemas
◆ Problemas:
❑ Dificuldade em encontrar profissionais
especializados.
❑ Dificuldade em especificar determinados aspectos
como a interface do usuário.
◆ Aplicabilidade:
❑ Principalmente para sistemas críticos, onde
não são toleradas falhas.
Engenharia de Software 62
Engenharia de software
Engenharia de Software 63
Engenharia de software
• Bibliografia
Engenharia de Software 64