Académique Documents
Professionnel Documents
Culture Documents
Sistemas - Processo de
Desenvolvimento
Prof.Júlio Martins
Roteiro
● Introdução
2
“Software é difícil…”
3
“Software é difícil…”
● Porcentagem de software:
○ Pago mas não entregue: 29.7%
○ Que pode ser usado quando entregue: 2%
○ Entregue mas nunca usado: 47%
○ Usado mas posteriormente modificado ou
abandonado: 19%
○ Que podia ser usado após mudanças: 3%
4
O que é Software?
● “Programas de computador e
documentação associada, tais como
requisitos, modelos de projetos e manuais
de usuário”
5
Processo de Desenvolvimento
● Tentativas de:
○ Lidar com a complexidade e minimizar os
problemas envolvidos no desenvolvimento de
software
6
Objetivos de um Processo de
Desenvolvimento de Software
● Levantamento de requisitos
● Análise Foco da disciplina!
● Projeto
● Implementação
● Testes
● Implantação
● Manutenção
8
Levantamento de Requisitos
9
Levantamento de Requisitos
● Os requisitos:
○ São identificados a partir de um domínio.
Precisamos de especialistas
○ Registro é feito no documento de requisitos
○ São a base para a definição do escopo(o que faz e
o que não faz parte do sistema)
● Documento de requisitos:
○ Define de forma clara os requisitos
○ Descreve requisitos funcionais, requisitos não
funcionais e requisitos normativos
10
Levantamento de Requisitos
● Os requisitos:
○ São identificados a partir de um domínio.
Precisamos de especialistas
○ Registro é feito no documento de requisitos
○ São a base para a definição do escopo(o que faz e
o que não faz parte do sistema)
● Documento de requisitos:
○ Define de forma clara os requisitos
○ Descreve requisitos funcionais, requisitos não
funcionais e requisitos normativos
11
Levantamento de Requisitos
● Requisitos Funcionais:
○ Definem as funcionalidades do sistema
● Exemplo:
○ “O sistema deve permitir que cada professor
realize o lançamento de notas”
○ “O sistema deve permitir que os alunos visualizem
suas disciplinas”
12
Levantamento de Requisitos
● Exemplo:
○ Confiabilidade, desempenho, portabilidade,
segurança e usabilidade
○ Me falem exemplos práticos com o SIPPA
13
Levantamento de Requisitos
● Requisitos normativos
○ Declaram restrições impostas ao
desenvolvimento do sistema. Essas restrições
definem:
○ Adequação a custos e prazos, plataforma
tecnológica, componentes de hardware e
software; etc…
○ Podem correspondem as regras de negócio
● Regra de Negócio:
○ São restrições ou políticas de funcionamento
específicas do domínio do problema 14
Levantamento de Requisitos
● Requisitos:
○ Devem ser entendidos para então serem
verificados e comunicados a leitores técnicos e
não técnicos
15
Levantamento de Requisitos
● Requisitos:
○ Pergunta: “O que o usuário necessita do novo
sistema?”
○ Avaliação: Grau de conformidade com os
requisitos
● Documento de Requisitos:
○ Consenso entre Cliente e Equipe
○ Gerenciar escopo e suas mudanças!
16
Levantamento de Requisitos
17
Levantamento de Requisitos
18
Levantamento de Requisitos
19
Análise
● A atividade de análise:
○ Não leva em consideração soluções tecnológicas
para o sistema
○ O que o sistema deve fazer ao invés do como
20
Análise
● Validação (análise):
○ Objetivo: assegurar que as necessidades do cliente
então sendo atendidas
○ Pergunta: Será que estamos construindo o
software correto?
21
Análise
● Verificação
○ Objetivo: analisar se os modelos construídos estão
em conformidade com os requisitos definidos
○ Pergunta: Será que estamos construindo
corretamente o software?
22
Projeto
23
Projeto
● Projeto de arquitetura
○ Foca no agrupamento de classes relacionadas do
sistema em subsistemas e componentes
○ Faz a distribuição dos subsistemas e componentes
sobre elementos de hardware disponível
24
Projeto
● Projeto detalhado
○ São modeladas as relações entre as classes de
cada módulo com o objetivo de realizar as
funcionalidades deste módulo
● São realizados:
○ Projeto de Interface do usuário
○ Projeto de Banco de Dados
○ Avaliação da concorrência e distribuição do
sistema
○ Projeto de Algoritmos a serem utilizados no
sistema 25
Análise e Projeto na prática
26
Implementação
● Implementação
○ Fase responsável pela codificação do sistema
○ Em projetos OO usa-se a linguagens OO (Ex: Java)
27
Testes
● Testes
○ Fase responsável por verificar e validar o sistema
○ O principal produto é o relatório de testes que traz
informações sobre os erros existentes
28
Testes
● Conceito
○ Testar partes pequenas e testar partes grandes
depois
● Testes de Unidade
○ Abrange classes e métodos
○ Programador mesmo faz
○ Verifica retornos de métodos
○ Ajuda a diminuir custos
29
Testes
● Teste de Integração
○ Testa operações do sistema
○ Verifica falhas na interação de objetos
● Testes de Sistema
○ Verifica conformidade do sistema construído e dos
requisitos
○ Testados em ambiente mais próximo do de
produção
30
Testes
● Teste de Aceitação
○ Usuário faz
○ Verifica a conformidade do sistema com os
requisitos
31
Implantação
● Implantação
○ Fase responsável pelo empacotamento,
distribuição e instalação no ambiente de usuário
○ Escrita de manuais do sistema
○ Treinamento de usuários
32
Manutenção
● Manutenção
○ Fase responsável por acompanhar a evolução do
sistema até a descontinuação
33
O COMPONENTE HUMANO
(PARTICIPANTES DO PROCESSO)
34
Os participantes do Processo
● Gerentes de Projeto
● Analistas
● Projetistas
● Arquitetos de Software
● Programadores
● Especialistas do domínio
● Avaliadores de qualidade
35
Gerentes de Projeto
36
Analistas
37
Projetistas
38
Arquitetos de Software
39
Programadores
40
Especialistas do Domínio
● Clientes
○ Clientes usuários (especialistas do domínio)
○ Clientes contratantes
41
Avaliadores de Qualidade
42
MODELOS DE CICLO DE VIDA
43
Modelo de Ciclo de Vida
44
Modelo Cascata
45
Modelo Cascata
46
Modelo Iterativo e Incremental
47
Modelo Iterativo e Incremental
48
Modelo Iterativo e Incremental
● Iterativo
○ O sistema de software é desenvolvido em vários
passos similares
● Incremental
○ Em cada passo, o sistema é estendido com mais
funcionalidades
49
Modelo Iterativo e Incremental
● Desenvolvimento em “mini-cascatas”
50
Modelo I&I - Vantagens e Desvantagens
51
Organização de um Processo I&I
● O ciclo de vida de um processo iterativo e
incremental pode ser estudado sob duas
dimensões
○ Dimensão Temporal
○ Dimensão de Atividades
52
Organização de um Processo I&I
● Temporal
○ O processo é estruturado em fases
○ Em casa uma das fases, há uma ou mais iterações
○ Cada iteração tem uma duração preestabelecida
(duas a seis semanas)
○ Ao final de cada iteração, é produzido um
incremento (uma parte do sistema final)
■ Incremento pode ser liberado pro cliente ou
não
53
Organização de um Processo I&I
● Dimensão de atividades
○ Compreende às atividades realizadas em cada fase
■ Levantamento de requisitos, análise, projeto
○ Cada fase gera um conjunto de artefatos
○ Cada fase é concluída com um marco
■ Um marco é um ponto do desenvolvimento no
qual decisões sobre o projeto são tomadas e
objetivos alcançados
54
Organização de um Processo I&I
● Fases do Processo Unificado
○ Concepção
○ Elaboração
○ Contrução
○ Transição
55
Organização de um Processo I&I
● Concepção
○ A ideia geral e o escopo do desenvolvimento são
definidos
○ Um planejamento de alto nível do
desenvolvimento é realizado
56
Organização de um Processo I&I
● Elaboração
○ Entendimento inicial do sistema dever ser
alcançado
○ Planejamento do projeto é completado
○ Domínio do negócio é analisado
○ Requisitos são ordenados por prioridade e risco
57
Organização de um Processo I&I
● Construção
○ Atividade de análise de projeto aumentam
○ Ocorre o maior número de incrementos
○ O produto é efetivamente construído
○ A construção do manual do usuário é iniciado
58
Organização de um Processo I&I
●
59
UML em um processo I&I
● UML é independente do processo de
desenvolvimento
○ Vários processos podem usar UML
60
Prototipagem
● UM protótipo é um esboço de alguma parte
do sistema
● É uma técnica complementar à análise de
requisitos
○ Tenta assegurar que os requisitos foram bem
entendidos
62
Prototipagem
● Com o protótipo feito
○ Usuários fazem críticas
○ Protótipos são corrigidos e refinados
○ Após aceitação o protótipo é descartado ou
utilizado como uma versão inicial do sistema
63
Prototipagem
● Prototipagem NÃO é um substituto à
construção do modelos do sistema
○ É uma técnica complementar
○ Ajuda a atualizar os modelos do sistema
64
Ferramentas de Suporte
● Existem várias ferramentas que ajudam
○ Construir modelos
○ Gerenciamento do andamento do
desenvolvimento
65
Algumas ferramentas de suporte
66
Referências
67
Questions?
E-mail:
juliomserafim@gmail.com
68