Buscar

Engenharia de Software Aula 5

Prévia do material em texto

1Engenharia de Software
Atividades do processo de software
O processo unificado
Aula 5
2Engenharia de Software
Unidade 1
• Introdução a engenharia de software
• Mitos e desafios do desenvolvimento de 
software 
• Processos de Software
• Modelos de processos clássicos de 
software (cascata, evolucionário e reuso)
• Atividades do processo de software
• O processo unificado
• Métodos ágeis de desenvolvimento
3Engenharia de Software
Atividades do Processo de Software
4Engenharia de Software
Conjuntos de atividades e 
resultados associados que 
geram um produto de 
software 
(Sommerville)
Há quatro atividade de processo 
fundamentais comuns a todos 
os processos de software:
1. Especificação do Software
2. Desenvolvimento do Software
3. Validação do Software
4. Evolução do Software
Funcionalidades 
e restrições
Produção 
do 
Software
Faz o que 
o cliente 
quer?
Necessidade 
de Mudanças
Atividades do Processos de Software
5Engenharia de Software
Atividades do Processo de Software
• Especificação de software
Etapa em que os clientes e engenheiros definem o software 
que será produzido e as restrições ao seu funcionamento.
• Desenvolvimento de software
Etapa em que o software é projetado e programado.
• Validação de software
Etapa em que o software é verificado para garantir que ele 
faz o que o cliente necessita.
• Evolução de software
Etapa em que o software é modificado para refletir as 
mudanças nas exigências dos clientes e do mercado.
6Engenharia de Software
Atividades do processo
• Processos de software são sequências intrelaçadas de 
atividades técnicas, de colaboração e de gestão, com o 
objetivo geral de especificar, projetar, implementar e testar 
um sistema de software.
• As atividades são organizadas de forma diferente em 
diferentes processos de desenvolvimento. 
• No modelo em cascata, eles são organizados em sequência, 
enquanto que no desenvolvimento incremental são 
intercaladas.
7Engenharia de Software
Atividades do processo
• Atividades técnicas, de colaboração e de gestão
• Objetivo: Especificar, projetar e testar software
• Diferentes ferramentas são usadas como apoio
8Engenharia de Software
Requisitos de engenharia de processos
9Engenharia de Software
Especificação de Software
• O processo para definir quais serviços são necessários e as restrições 
sobre o funcionamento e desenvolvimento do sistema.
• Processo de engenharia de requisitos
– Estudo de viabilidade
- Será que é técnicamente e financeiramente viável construir o 
sistema?
– Elicitação e análise de requisitos
- O que os stakeholders do sistema exigem ou esperaram do sistema?
– Especificação de requisitos
- Define os requisitos em detalhes
– Validação de requisitos
- Checa a validade dos requisitos
10Engenharia de Software
Especificação de Software
11Engenharia de Software
Lidando com as mudanças
• Mudança é inevitável em grandes projetos
• Requisitos mudam, surgem novas pressões externas no 
negócio, mudam prioridades, emergem novas tecnologias, 
surgem novos projetos.
• Mudanças causam custos
• Possíveis soluções:
– Prototipação
– Entrega incremental
12Engenharia de Software
Entrega Incremental
13Engenharia de Software
Entrega Iterativa X Incremental
14Engenharia de Software
avaliação do 
cliente
engenharia
análise dos riscos
planejamento
decisão de continuar ou não
na direção
de um 
sistema
concluído
Modelo Espiral de processo de software
15Engenharia de Software
Processo Unificado da Rational
• IBM Rational Unified Process (RUP), 2003
• Modelo de processo híbrido
– Prototipação
– Incremental
– Iterativo
• Três perspectivas:
– Dinâmica: fases
– Estática: disciplinas/atividades
– Prática: boas práticas
16Engenharia de Software
• O RUP é um processo de engenharia de software 
desenvolvido pela empresas Rational.
• Ele serve como um guia de como utilizar de maneira
eficiente a UML (Unified Modeling Language).
• Utiliza desenvolvimento Iterativo e Incremental.
• Tem como objetivo oferecer um processo de 
desenvolvimento “bem definido” e “bem gerido”.
RUP(Rational Unified Process)
Modelos de Processos de Software
17Engenharia de Software
• Processo de Software Unificado 
• Rational Unified Process
– Processo + Métodos + Linguagem (UML)
– Framework para gerar processos
- Especializar o processo para vários tipos 
diferentes de sistema
- Processo configurável
RUP(Rational Unified Process)
Modelos de Processos de Software
18Engenharia de Software
Desenvolvimento Iterativo e Incremental
Conteúdo
TempoIteração
RUP(Rational Unified Process)
Modelos de Processos de Software
19Engenharia de Software
• Define um conjunto de atividades
– Bem definidas
– Com responsáveis
– Com artefatos de entrada e saída
– Com dependências e ordem de execução
– Com modelo de ciclo de vida
– Com uma descrição sistemática de como executá-las
– UML
RUP(Rational Unified Process)
Modelos de Processos de Software
20Engenharia de Software
Características Principais
O desenvolvimento de sistemas seguindo o RUP é:
• Guiado por casos de uso (use cases)
• Centrado na arquitetura
• Iterativo e incremental
RUP(Rational Unified Process)
Modelos de Processos de Software
21Engenharia de Software
Casos de uso (use cases)
Modelos de Processos de Software
22Engenharia de Software
• Exemplos de boas práticas
• “Compreender as necessidades dos envolvidos”
– Entrevistas
– Workshop de Requisitos
– Brainstorming e filtro de ideias
– Workshop de Casos de Uso
– Encenação
– Interpretação de papéis
– Análise dos requisitos existentes
RUP(Rational Unified Process) – Características Principais
Modelos de Processos de Software
23Engenharia de Software
• O custo associado ao mini-projeto é menor, logo, se houver 
erros, o custo de correção também é menor, em relação ao 
custo do projeto como um todo.
• Deadlines mais curtos e tarefas mais objetivas tiram mais 
proveito do esforço de programadores
• Os requisitos são capturados e refinados durante o 
desenvolvimento
– Condizente com a realidade: o cliente pode não ter 
condição de definir os mesmos por completo no início.
Processo Iterativo e Incremental
RUP (Rational Unified Process)
24Engenharia de Software
• Deadlines. Fim da linha. Prazo final.
• Geralmente usado no mundo dos projetos, negócios e 
marketing, para especificar que o prazo para entrega de 
determinada tarefa está chegando ao fim.
• Expressão que designa o momento-limite para uma 
determinada ação.
• Data-limite ou prazo máximo para a realização ou para a 
entrega de algo.
Processo Iterativo e Incremental
RUP (Rational Unified Process)
25Engenharia de Software
Fluxos de Trabalho de Processo do RUP
26Engenharia de Software
Modelos – Artefatos do RUP
27Engenharia de Software
Modelos – Artefatos do RUP
28Engenharia de Software
Modelos – Artefatos do RUP
29Engenharia de Software
Workflow
Fluxos de Trabalho de Processo do RUP
30Engenharia de Software
Bibliografia Básica

Continue navegando