Este documento descreve os principais processos envolvidos no desenvolvimento de software, incluindo análise de requisitos, projeto, implementação, teste e implantação. Detalha cada uma dessas etapas e explica que elas visam entregar um produto de software que atenda às necessidades do cliente de maneira eficiente.
1. PROCESSO DE DESENVOLVIMENTO DE SOFTWARE
(Tem como meta entregar um produto de software de maneira eficiente, previsível e que
corresponda às necessidades de negócio (cliente)).
O que é um processo?
o Segundo a WIKIPÉDIA: Processo deriva do latim procedere, verbo que indica a
ação de avançar, ir para frente (pro+cedere) e é um conjunto sequencial e
particular de ações com objetivo comum. Pode ter os mais variados propósitos:
criar, inventar, projetar, transformar, produzir, controlar, manter e usar
produtos ou sistemas. Ou seja, “processo” faz, produz alguma coisa.
Quais são os processos, ou as ações necessárias para se criar um produto de “Software”:
Análise de requisitos
o (levanta os requisitos do software, ou seja, o que o sistema DEVE fazer).
Projeto
o (Desenho do sistema, ou seja, COMO deve ser feito).
Implementação
o Construção do sistema.
Teste
o Valida o sistema, ou seja, verifica se o que foi construído está atendendo aos
requisitos do cliente.
Implantação
o Instalação do sistema no cliente.
2. Agora vou detalhar cada um desses processos.
Análise de Requisitos ou Levantamento de Requisitos ou ainda Engenharia de
Requisitos
o O que é:
Conversa com o cliente/usuário para entender quais são as suas
necessidades, os seus problemas, ou seja o que o sistema precisa
fazer para atender as suas necessidades. Atenção aqui nós só
levantamos, verificamos o que o sistema precisa fazer e não como vai
ser feito. Essa parte nós não estamos pensando em tecnologia.
o Exemplo:
O cliente tem uma farmácia de bairro, essa farmácia não tem sistema,
tudo é feito de forma manual.
O cliente te chama para vc criar um sofware para a farmácia dele.
Vc vai la na farmácia dele conversar com o cliente.
Vc vai perguntar para ele porque ele precisa do software, vc vai
entender o problema dele.
Vc vai verificar, levantar, que ele precisa de um sistema que seja
possível, gerenciar o estoque de produtos, gerenciar os fornecedores,
gerenciar as vendas, enfim....
o Quem faz essa atividade:
Analistas de requisitos (Quando falamos Analista, já está implícito o
Analista de sistemas, porem quando falamos Analista de Requisitos,
Analista x, Analista y, nós estamos falando que é um Analista de
3. sistemas, porem mais focado em requisitos.... mais focado em X...
mais focado em Y..... e etc)
Projeto (Desenho do projeto ou ainda Desenho da solução)
o O que é:
Com base nos requisitos que vc levantou do cliente, ou seja, o que o
sistema DEVE fazer, agora vc vai criar uma solução, vai criar um
projeto, ou seja, agora sim vc vai definir o COMO, COMO o sistema vai
fazer para atender os requisitos do cliente.
É nessa fase que vc vai definir:
Quais funcionalidades o sistema vai ter, Para atender os
requisitos...
Quais usuários vão usar o sistema? Quais perfis?
Administrador? Usuário limitado? Visitante?
Qual vai ser a linguagem de programação a ser usada? JAVA,
PHP, C#, C, ASP, COBOL, HTML....
Qual vai ser o servidor de aplicação? Vai ser da IBM,
MICROSOFT, ORACLE....
Vai guardar os dados em Banco de dados? Arquivo de texto?
Memória?
4. Caso seja banco de dados, Qual? SQL Server, Oracle, Mysql,
Access…
Vai ter log? Ou seja, vai deixar um histórico de quem acessou
o sistema, quando acessou, o que fez o que deixou de fazer...
Ocorreu algum erro? Quando? Onde?
Vai guardar o log aonde? Banco de dados.. arquivo... enfim..
Vai ter servidor de backup? Qual? Quantos?
Quantos usuários vai acessar o sistema simultaneamente? O
que vai ser feito para o sistema não cair? Vai ter cluster?
Balanceamento de carga?
Vai ter segurança? Que tipo?
Onde vai ficar os servidores? Brasil? E.U.A? Japão? Paraguai?
Vai conversar com sistemas externos? Mastercard? Visa?
Bradesco? Santander? Spc? Serasa?
Qual vai ser o dispositivo que vai acessar o sistema? PC? WEB?
CECLULAR? PONTO DE ATENDIMENTO (supermercados)?
O sistema vai ter documentação? Manual de usuário?
Diagramas?
As telas dos sistemas vai ser Desktop? Web? Celular?
Quantas telas?
Nessa fase também vai ser gerado alguns documentos, que vai ser
utilizados nas próximas fases do projeto.
Se for um sistema estruturado, ou seja, um sistema que a linguagem
de programação é estrutural vai ser utilizado N documentos, se for
uma linguagem orientada a objetos vai ser utilizados N documentos....
o Exemplo:
Exemplo foi levantado que o sistema vai ter um requisito chamado
“gerenciamento de estoque”
Então vamos criar algumas funcionalidades para atender esse
requisito: Cadastrar produto, Colocar produto no estoque,
Retirar o produto do estoque.
O usuário que vai ter permissão para acessar essas
funcionalidades vai ser o Estoquista, só ele vai poder ter
acesso a essas funcionalidades.
Vai ter um menu no sistema com as funcionalidades listadas
sequencialmente.
Quando o usuário clicar na funcionalidade X vai abrir a tela Y...
com os campos de entrada A,B,C,D,E.... com o botão de
cadastrar...
Quando o usuário preencher os dados... e cadastrar.. vai ser
gravado em uma Base de Dados Sql Server ....
5. Vai apresentar uma mensagem de sucesso para o usuário...
o Quem faz essa atividade:
Projetistas, Analistas funcionais, Arquitetos
Implementação (Constrói o que foi projetado na fase anterior)
o O que é:
Com base no que foi projetado na fase anterior, vamos construir o
software.
Agora vamos criar as telas, criar os códigos, criar os bancos de dados,
criar as tabelas dos bancos de dados, criar as integrações com outros
sistemas, enfim.. Agora vamos colocar a mão na massa.., porém
quando chegar nessa fase, aqui nós só vamos executar o que já foi
definido nas fases anteriores
6. o Exemplo:
Foi definido que o sistema vai ter um requisito chamado
“gerenciamento de estoque”, para atender esse requisito vai
ter uma funcionalidade chamada: Cadastrar produto
o Então agora vamos construir a tela dessa
funcionalidade, vamos construir o HTML, css,
javascript, a código Java, o código SQL, vamos fazer a
integração com os sistemas externos... Ou seja, vamos
a partir dos documentos gerados na fase anterior
gerar o código fonte.
o Quem faz essa atividade:
Programadores (Desenvolvedores), Analistas programadores, Dba’s,
Designes...
Teste (Verifica, Valida se o que foi construído atende o que foi projetado
(especificado))
o O que é:
Com base no que foi projetado na fase do Projeto, vai validar o que foi
construído na fase de Implementação.
o Exemplo:
Foi definido que o sistema vai ter um requisito chamado
“gerenciamento de estoque”, para atender esse requisito vai ter uma
funcionalidade chamada: Cadastrar produto.
Também foi definido que a tela dessa funcionalidade vai ter um campo
de entrada chamado “quantidade” esse campo só vai aceitar números
positivos igual ou maior que 1. (REGRA DE NEGÓCIO)
O analista de teste ele vai entrar nessa tela, e vai digitar nesse campo
números negativos, numero 0, letras, e vai tentar cadastro o produto.
Caso o sistema aceite aqueles valores e cadastre o produto mesmo
com os valores errados, o analista de teste encontra um erro. Caso o
sistema não aceite o analista de teste vai validar que o sistema
realmente está fazendo o que ele deve fazer.
o Quem faz essa atividade:
7. Analista de Teste (É o profissional especializado em testar o sistema,
ou seja, o validar, verificar se o que foi construído está atendendo os
requisitos do sistema)
Implantação (Instala o sistema no cliente, no ambiente de produção do cliente)
o O que é:
Depois de falar com o cliente, levantar as necessidades dele, projetar
uma solução, construir essa solução, testar a solução que foi
construída, agora vamos implantar o sistema no ambiente do cliente,
ou seja, instalar o sistema na empresa do Cliente.
o Exemplo:
Agora estamos com o sistema pronto e funcionando no nosso
ambiente de desenvolvimento, ou ambiente de teste, exemplo: na
IBM, agora vamos pegar esse sistema e vamos até o nosso cliente,
exemplo: Farmácia XYZ instalar o sistema nos servidores deles, nas
máquinas deles enfim.
Não necessariamente tem que ser na empresa do cliente, pode ser em
uma empresa terceira que já tem um ambiente pronto, por exemplo,
LOCAWEB, UOL HOST... enfim... Vamos disponibilizar o sistema em
algum lugar, ambiente de produção (onde as coisas acontecem pra
valer), para o nosso cliente poder usar.
Aqui nessa fase também entra a parte de treinamento, palestras,
enfim temos que ensinar o nosso cliente a usar o sistema.
o Quem faz essa atividade:
Analista de Sistemas, Instalador (É o profissional especializado em
instalar, implantar o sistema no cliente, no ambiente do cliente)
8. Além dos processos de criação, tem os processos responsáveis por manter o software ao longo
do tempo:
Manutenção
o O que é:
Mesmo depois do nosso sistema, passar por todos aqueles processos,
testes, muitos testes, alguns erros provavelmente vão aparecer, não
foi só uma pessoa que criou o sistema, geralmente é uma equipe de TI,
mais outra equipe do cliente (usuários do sistema), enfim muita gente
colocou a mão, muito tempo se passou e provavelmente no meio do
caminho uma coisa ou outra escapou... foi esquecida.... foi omitida...
Enfim...
.... e provavelmente alguns erros de negócios vão aparecer... um
calculo errado... uma regra equivocada...
Enfim é nessa fase que vamos corrigir esse erro.
Enquanto o software existir vai usar esse processo.
Quem faz essa atividade:
o Analistas (os mais diversos depende da necessidade), Programador,
Dba’s, Design...
9. Evolução ou Melhoria
o O que é:
Tudo o que foi citado na fase anterior, porem ao invés de
corrigir algo, aqui nós construímos algo novo, por exemplo,
uma nova funcionalidade, colocamos mais um servidor para
suportar a quantidade de acessos simultâneos no nosso
sistema, enfim é aqui que nós vamos dar uma melhorada no
nosso sistema, vamos dar um UPDATE nele, uma turbinada
nele.
o Quem faz essa atividade:
Analistas (os mais diversos depende da necessidade),
Programador, Dba’s, Design...
10. Um pouco mais sobre o processo de Implementação:
Todos os sistemas, rodam em um determinado ambiente.
O ambiente é onde o software roda, geralmente um ambiente é composto de servidor de
aplicação, banco de dados.
Ambiente de Desenvolvimento
o Onde o desenvolvedor implementa ou seja desenvolve o sistema
Ambiente de Homologação ou Teste ou ainda QA (Qualidade)
o Ambiente de teste onde os Analistas de Teste testam o sistema.
Ambiente de Produção
o Ambiente onde o sistema funciona plenamente, ou seja, para valer.
o É nesse ambiente que o cliente usa de fato o sistema.