Você está na página 1de 38

Processo de desenvolvimento de

Software

Luiz Fernando Batista Loja


Luiz Ricardo
Sumário

• Processo de Desenvolvimento
• Atividades típicas
• Componentes Humanos
Processo de desenvolvimento

• Atividade complexa
– Software
– Hardware
– Processamento
• Estatísticas
– Processos que terminam no prazo
10%
– Descontinuados antes de chegarem
ao fim 25%
– Processos acima do custo esperado
60%
Processo de desenvolvimento

• Todas as atividades necessárias


para definir, desenvolver, testar
e manter um produto de
software
• Objetivos do processo de
desenvolvimento
– Definir atividades
– Quando
– Como e quem deve executar
– Pontos de controle
Atividades típicas de um desenvolvimento
de software

ATIVIDADES TÍPICAS
Atividades típicas de um desenvolvimento de software

• Atividades
– Tarefas realizadas durante a
construção do sistema
• Vários processos de software
• Não existe um processo melhor
• Grupo de atividades comuns a
todos os processos de software
Atividades típicas de um
desenvolvimento de software

• Atividades
– Levantamento de requisitos
– Análise de requisitos
– Projeto
– Implementação
– Testes
– Implantação
Levantamento de Requisitos

• Compreensão do problema que


deverá ser resolvido pelo sistema
• Identificar as necessidades dos
clientes
• Necessidades são chamadas de
requisitos
• Objetivo
– Usuários e desenvolvedores devem
ter a mesma visão do problema
Levantamento de requisitos

• Requisito
– Condição ou capacidade que deve
ser alcançada ou possuída por um
sistema ou componente deste
sistema para satisfazer um
contrato, padrão, especificação
ou outros documentos impostos.
Levantamento de requisitos

• Requisitos identificados a partir


do domínio do negócio
• Domínio do negócio, Domínio do
problema ou da aplicação
– Área de conhecimento específica
na qual um determinado sistema de
software é desenvolvido
• Exemplo
– Domínio imobiliário
– Domínio de gerenciamento de
patrimônio
Levantamento de requisitos

• O que deve ser automatizado?


– Nessa fase do processo os a
equipe tenta entender o domínio
do negócio que deve ser
automatizado
• Estudo exploratório
• Utilização de diversas técnicas
para identificar os requisitos
Levantamento de requisitos

• Técnicas
– Leitura de obras de referências
– Observação do ambiente
– Entrevistas
– Reutilização de análise anteriores
– Comparação com sistemas
existentes
– Questionários
Levantamento de requisitos

• Produto desta fase é


– Documento de requisitos
• Escrito em linguagem natural
• Principais seções de um documento
de requisitos são:
– Requisitos Funcionais
• Funções do sistema
– Requisitos não funcionais
• Qualidades do sistema
– Confiabilidade, desempenho, portabilidade,
segurança e usabilidade
– Restrições
• Adequação a custos, prazos, plataformas
tecnológicas e componentes
Levantamento de requisitos

• Requisitos devem ser claros


– Devem ser escritos de uma forma
que os leitores não tenham duvidas
• Requisitos não contém
informações sobre soluções
técnicas
O que o usuário necessita do novo
sistema?
• Etapa importante em termos de
Levantamento de requisitos

• Pode ocasionar a falha do projeto


– Deve ser gasto tempo suficiente para
compreender as necessidades do
cliente em relação ao sistema
• Sistemas automatizam processos de
negócio
– Processos devem ser compreendidos
antes da implementação
• Termo de consenso entre
– Desenvolvedores
– Clientes
Levantamento de requisitos

• Define o escopo do sistema


– O que faz parte e o que não faz
parte do sistema
– Pode mudar durante o
desenvolvimento
– Mudanças de escopo possuem alto
custo
A única certeza é de que tudo mudará
• Volatilidade dos requisitos
– Requisitos modificados durante o
Levantamento de requisitos

• Importante definir todos os


requisitos conhecidos
– Dos mais complexos aos mais simples
• Mudanças de requisitos devem ser
adaptadas
– Verificação da conformidade com o
escopo do sistema
• Após a utilização novos requisitos
podem surgir
– Relatórios que não eram pensados
• Requisitos devem ser ordenados de
Análise de requisitos

• Análise corresponde a quebrar


um sistema em seus componentes
e estudar como eles interagem
– Objetivo de entender como
sistema funciona
• Os analistas estudam os
requisitos detalhadamente
• A partir desse estudo são
construídos modelos para
Análise de requisitos

• Não considera o ambiente


tecnológico utilizado
• Construir uma estratégia de
solução sem a preocupar como
será a execução da estratégia
• Obter a melhor solução para o
problema sem preocupar com
detalhes tecnológicos
• Saber o que o sistema deve fazer
Análise de requisitos

• Construção de modelos do
sistema
• Esses modelos devem ser
validados e verificados
• Validação
– Verificar se as necessidades do
cliente estão sendo atendidas pelo
sistema
• Verificação
– Verificar se os modelos
Projeto

• Determina como o sistema


funcionará
• Como serão implementado os
requisitos
– Com foco na tecnologia que será
utilizada
• Alguns aspectos desta fase
– Arquitetura do sistema
– Padrão de interface gráfica
– Linguagem de programação
Projeto

• Descrição computacional do que o


software deve fazer
• Duas fases principais
– Projeto da arquitetura
• Alto nível
• Distribuir classes de objetos relacionadas do
sistema em subsistemas e componentes
– Projeto detalhado
• Baixo nível
• Colaborações entre objetos de cada módulo com o
objetivo de realizar as funcionalidades do módulo
• Projeto de interface com o usuário
• Modelo do banco de dados
• Utilização de vários diagramas da UML
Implementação

• Sistema é codificado
• Tradução dos modelos em
linguagem de programação
• Definição das classes de objetos
do sistema
• Utilização de linguagens de
programação
• Componentes de software
• Classes pré-existentes
Testes

• Realização de atividades de
testes
– Verificar se o sistema construído
está funcionando corretamente
• Produto
– Relatório de testes
• Informações sobre os erros detectados no
sistema
Implantação

• Instalar o sistema no ambiente do


usuário
• Descrição dos manuais do
sistema
• Migração de sistemas
Participantes do Processo

COMPONENTE HUMANO
Componente humano

• Desenvolvimento é uma tarefa


cooperativa
• Tecnologias complexas demanda
especialistas
• Equipe
– Vários especialistas
• Técnicos no domínio do problema
• Desenvolvedores
• Especialistas em levantamento de
requisitos
• Administradores de banco de dados
Componente humano

• Equipe típica
– Gerente de projetos
– Analistas
– Projetistas
– Programadores
– Clientes
• Diferentes pessoas desempenham
diferentes funções
Gerente de projetos

• Responsável pela gerência ou


coordenação das atividades
necessárias para construção do
sistema
• Cria o orçamento
• Comanda a equipe
• Elabora o cronograma de
execução
• Especifica a mão de obra
Gerente de projetos

• Verifica se o sistema é factível


• Escalona a esquipe de
senvolvimento
Analistas

• Tem o conhecimento do domínio


do negócio
• Deve entender do problema que
o sistema deve resolver
• Devem estar aptos a comunicar
com o especialista de domínio
• Responsável por entender as
necessidades do sistema
– Repassar o entendimento para os
demais membros da equipe
Analistas

• Entender dos aspectos de alto nível


de computação
• Mapeia as informações
• Durante a fase de requisitos o
analista torna-se um especialista no
domínio
• Qualidades
– Boa comunicação
• Oral e escrita
– Ética profissional
• Informações sigilosas
• Algoritmos específicos, preções, custos de
produtos, margem de lucro
Projetistas

• Avaliar as alternativas de solução


do problema
• Gerar a especificação de uma
solução computacional detalhada
• Tarefa é construir o Projeto físico
• Vários tipos de projetistas
– Interface
– Redes
– Banco de dados
• Adicionar aspectos tecnológicos aos
modelos
Arquiteto de software

• Elaborar a arquitetura do
sistema
• Definir os subsistemas
• Definir
– Os programas que serão utilizados
– A linguagem
– Os frameworks
– A comunicação entre as diversas
partes do sistema
Programadores

• Implementação do sistema
• Vários programadores em um
projeto
• Habilidades
– Ler modelos resultantes do
trabalho do projetista
– Programa em diversas linguagens
– Conhecimento de banco de dados
• Entender da tecnologia como do
processo de negócio
Clientes

• O sistema é construído para esse


grupo de indivíduos
• Tipos de clientes
– Usuário
• Utilizara o sistema
– Contratante
• Paga pelo sistema
• Deve manter o contato com a
equipe de software para
levantamento dos requisitos
• Suma importância o envolvimento no
desenvolvimento do sistema
Fim

FIM
Perguntas

Perguntas

Você também pode gostar