Processo de desenvolvimento de software

495 views

Published on

Esse arquivo foi criado para um amigo meu. Foi uma forma que eu encontrei para tentar mostrar para ele em poucas palavras, como é o mundo de desenvolvimento de software.

Esse documento não é verdade absoluta, porem ele da uma visão global e resumida das fases do processo de desenvolvimento de software.

Estou aberto a sugestões para melhorar esse arquivo, e assim ajudar as pessoas que estão iniciando na área de Tecnologia da Informação.

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
495
On SlideShare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
26
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Processo de desenvolvimento de software

  1. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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.

×