Escolar Documentos
Profissional Documentos
Cultura Documentos
2
Considerações Iniciais
3
TAREFAS DE
ENGENHARIA DE
SOFTWARE
ATIVIDADES DE OBJETIVOS
APOIO DEFINIÇÃO ORGANIZACIONAIS
CONSTRUÇÃO
MÉTODOS POLÍTICAS
SOFTWARE PRODUTO
FERRAMENTAS
MANUTENÇÃO PESSOAS
COMPROMETIMENTOS
4
Considerações Iniciais
• Necessidade de estabelecer processos sistemáticos para
desenvolvimento: Modelos de processo de Software
• Modelo em Cascata
• Modelo de Prototipação
• Desenvolvimento Baseado em Componentes
• Modelo de Métodos formais
• Modelo incremental (Processo Unificado, RUP, …)
• Métodos ágeis (eXtremme Programming (XP), Scrum, OpenUp, …)
• … 5
Modelo em Cascata
6
Modelo em Cascata -
Problemas
💣 Projetos reais raramente seguem o fluxo sequencial que o
modelo propõe
8
Prototipação - Problemas
💣 Cliente não sabe que o software que ele vê não considerou,
durante o desenvolvimento, a qualidade global e a
manutenibilidade a longo prazo
9
O Modelo Incremental
• O modelo incremental combina elementos do modelo cascata
(aplicado repetidamente) com a filosofia iterativa da
prototipação
10
O Modelo Incremental
• A versão inicial é frequentemente o núcleo do
produto (a parte mais importante)
• A evolução acontece quando novas características
são adicionadas à medida que são sugeridas pelo
usuário
• Este modelo é importante quando é difícil
estabelecer a priori uma especificação detalhada dos
requisitos ou quando os requisitos mudam com 11
frequência
Processo Unificado (PU)
• O PU foi proposto pelos três gurus da orientação a objetos
(Jacobson, Booch & Rumbaugh, 1999):
• Ivar Jacobson
• Grady Booch
• James Rumbaugh
18
O quê? Artefatos
• Um artefato é uma porção significativa de informação
interna ou que será fornecida a interessados externos
que desempenhem um papel no desenvolvimento do
sistema
• Um artefato é algum documento, relatório, modelo ou
código que é produzido, manipulado ou consumido
20
Quando? Disciplina
• A disciplina descreve as sequências das atividades
que produzem algum resultado significativo e mostra
as interações entre os participantes
22
Princípios básicos do PU
•Desenvolvimento iterativo
•Centrado na arquitetura 23
Desenvolvimento iterativo
• O desenvolvimento de um software é dividido em vários
ciclos de iteração, cada qual produzindo um sistema
testado, integrado e executável
Produto
v1 v2 v3 Final 25
Desenvolvimento iterativo
26
Exemplo: pág. 48 (Larman, 2005)
Desenvolvimento iterativo
• Planejar quantos ciclos de desenvolvimento serão
necessários para alcançar os objetivos do sistema
28
Desenvolvimento iterativo
•O tamanho de cada ciclo pode variar de
uma empresa para outra e conforme o
tamanho do sistema
• Por exemplo, uma empresa pode desejar
ciclos de 3 semanas, outra pode preferir 6
semanas
• recomenda-se que a duração de uma iteração seja 29
entre duas e seis semanas
Desenvolvimento iterativo
CUIDADO!
•Uma iteração muito longa perde o
objetivo do desenvolvimento iterativo!
30
Desenvolvimento iterativo
•Se o projetista observar que será difícil
cumprir o prazo da iteração, é
recomendável remover tarefas ou requisitos
da iteração atual e incluí-las em uma
iteração futura, em vez de não cumprir o
prazo
31
Desenvolvimento iterativo
• Cada iteração exige a escolha de um pequeno
subconjunto de requisitos, além da sua rápida
construção e teste
• requisitos complexos: podem ser tratados ao longo de várias
iterações
• requisitos simples: podem ser completados em uma iteração
• Nas iterações iniciais o resultado pode não ser
exatamente o que é desejado em última 32
instância
Desenvolvimento iterativo
No entanto, o ato de executar rapidamente um
pequeno passo antes de finalizar todos os
requisitos leva a uma realimentação rápida
34
Baseado em Casos de Uso
• Um caso de uso é uma sequência de ações,
executadas por um ou mais atores e pelo próprio
sistema, que produz um ou mais resultados de valor
para um ou mais atores
42
Iterações
Fases do PU: Concepção
• Inception em inglês
• Estuda a viabilidade de implantação do sistema
• Definição do escopo do sistema
• Estimativas de custos e cronograma
• Identificação dos potenciais riscos que devem ser
gerenciados ao longo do projeto
• Esboço da arquitetura do sistema, que servirá como 43
alicerce para a sua construção
Fases do PU: Elaboração
• Visão refinada do sistema, com a definição dos
requisitos funcionais, detalhamento da
arquitetura criada na fase anterior e
gerenciamento contínuo dos riscos envolvidos
• Incorpora:
• Maior parte da análise de requisitos
• Projeto (design) 44
Fases do PU: Construção
• O sistema é efetivamente desenvolvido e, em
geral, tem condições de ser operado, mesmo
que em ambiente de teste, pelos clientes
• Incorpora:
• Implementação
• Testes
45
Fases do PU: Transição
• O sistema é entregue ao cliente para uso em
produção
• Testes são realizados
• Um ou mais incrementos do sistema são
implantados
• Defeitos são corrigidos, se necessário
• Incorpora:
46
• Instalação e manutenção
Cenário 1 - Fases do PU
Construção
Concepção
Transição
Elaboração
Pag. 24 -Wazlawick 47
Cenário 2 - Fases do PU
Transição
Construção
Elaboração
Concepção
48
Ágil?
•Apesar de ser um processo prescritivo, o
Processo Unificado pode também ser realizado
como um processo ágil, com poucos artefatos e
burocracia, permitindo o desenvolvimento de
software de forma eficiente, uma vez que o que
interessa ao cliente é o software pronto e não
uma pilha de documentos justificando porque
não ficou pronto 49
•Para que isso seja obtido, a documentação deve ser
dirigida à produção do software
http://calvinberschscherer.blogspot.com.br/2014/06/projeto-balanco-no-agile.html
52
http://calvinberschscherer.blogspot.com.br/2014/06/projeto-balanco-no-agile.html
Disciplinas do PU Uma iteração de 4 semanas (por exemplo).
Um miniprojeto que inclui trabalho na maioria das
Disciplinas, terminando com um executável estável.
Note que,
embora uma
iteração inclua
trabalho na
maior parte das
disciplinas, o
esforço relativo
e a ênfase
mudam ao
longo tempo.
Este exemplo
sugestivo, e não
literal.
53
Qual a relação entre disciplinas e
fases em uma iteração?
• Durante uma iteração, o trabalho prossegue na
maioria ou em todas as disciplinas
• Contudo, o esforço relativo no decorrer destas
disciplinas muda ao longo do tempo
• As iterações iniciais tendem a dar uma ênfase maior
aos requisitos e ao projeto enquanto que nas
últimas possuem menor ênfase, à medida em que os
requisitos e o projeto central se estabilizam 54
Mudança do esforço em relação
às fases
O esforço relativo
nas disciplinas muda
ao longo das fases.
55
Práticas importantes do PU
• Ideia central: usar iterações curtas, com duração
fixa, em um processo de desenvolvimento iterativo,
evolutivo e adaptativo.
63
Fase de Concepção
• Atividades da fase de concepção:
• Entendimento do negócio
• Levantamento de requisitos (Visão geral)
• Organização de requisitos
• Planejamento do desenvolvimento
64
Artefatos que podem ser iniciados
na fase de Concepção
• Visão e caso de negócio (objetivos e restrições de alto nível)
• Lista de requisitos
• Modelo de casos de uso (requisitos funcionais)
• Especificações suplementares (requisitos não funcionais)
• Glossário (terminologia-chave do domínio)
• Lista de riscos e plano de gestão de riscos (ideias para minimização ou solução dos
riscos)
• Protótipos e provas de conceito (esclarecem a visão do negócio)
• Plano das iterações
• Estimativas de baixa precisão e planos (duração e esforço, ferramentas, pessoal,
treinamento, etc)
• Pasta de desenvolvimento (passos e artefatos que serão personalizados para o 65
projeto)
Ex. de Pasta de desenvolvimento
Disciplina Artefato Concepção Elaboração Construção Transição
Iteração C1 E1..En Ct1..Ctn T1..Tn
Glossário i r
Projeto Modelo de Projeto i r
Documento de Arquitetura de i r
Software
Modelo de Dados i r
Implementação Modelo de Implementação i r r
68
Na Fase de Concepção (1)...
•O modelo de casos de uso pode listar os
nomes de casos de uso e atores mais
esperados, mas talvez descreva apenas
10% dos casos de uso em detalhe
69
Na fase de Concepção (2)...
•Pode ocorrer algum trabalho de
programação com o objetivo de criar
protótipos para “prova de conceitos”
70
Importante
•Crie somente os artefatos que realmente
acrescentem valor ao projeto
• Plano de iterações
72
Referências bibliográficas
• Wazlawick, R. S. Análise e Projeto de Sistemas de
Informação Orientados a Objetos, 2011, editora
Campus.
73