2. Projeto e Desenvolvimento de
Software
• Etapas do Projeto de Software
• Cadeia de processos aplicados no Desenvolvimento de Software
3. • Desenvolvimento de softwares é a atividade de criar programas de
computação, executada por um desenvolvedor ou grupo de
desenvolvedores;
• O software é um produto virtual, que consiste essencialmente em
um conjunto de códigos – instruções escritas em determinada
linguagem da computação;
• O time precisa saber conduzir um projeto, desde a concepção,
entendendo quais são as necessidades do cliente;
• Um trabalho que envolve ouvir, colher informações, fazer
protótipos, testar, ajustar, homologar, implantar e implementar;
4. Neste contexto entram as metodologias de desenvolvimento de
software, para dar ordem e objetivo ao modo como o trabalho será
conduzido e acompanhado:
• Definir a metodologia de gestão do projeto (preditivo ou ágeis);
• Definir o time de projeto;
• Desenvolvedores: aqueles que receberão os requisitos e construirão o
software;
• Analista de requisitos ou PO : levanta os requisitos com o cliente e cria a
comunicação com o mesmo ;
• Analista de testes: Garante a qualidade do software, testando e evidenciando
erros e melhorias;
• Gerente de Projeto: responsável por controlar o andamento do trabalho,
ajudando o time a realizar as entregas dentro dos prazos planejados
5.
6. 1 - Reunião com o cliente:
• Entender a necessidade do cliente;
• Conhecer o objetivo do software e o publico que irá utilizar;
• Investimento que será feito ajudará no planejamento do tamanho
da equipe, tecnologia utilizada, serviços e ferramentas;
• Estimativas de prazos, funcionalidades e especificações gerais que
o cliente deseja ter no software;
7. 2 - Especificações de requisitos:
• Especificar como será feito o software;
• Escolha das tecnologias que serão utilizadas, linguagem de
programação, arquitetura do software, etc;
• Definir processos de negócios, regras, condições, etc;
• Usar técnicas de levantamento de requisitos como estória de
usuários, UX ( Experiencia do usuário) e UI ( Interface do usuário) ;
8. 3 - Desenvolvimento:
• Definir arquitetura de funcionamento do software;
• Definir frameworks, bibliotecas, componentes, etc;
• Definir ferramentas de versionamento de códigos;
• Alocar pessoas no projeto e definir papéis e responsabilidades;
• Definir gerente de projetos, desenvolvedores, testador, PO, etc;
9. 4 – Reuniões de planejamento e feedbacks:
• Realizar reuniões de planejamento de tarefas;
• Realizar reuniões de acompanhamento de processos e feedbacks
de entregas;
• Reuniões com o cliente para alinhamentos;
• Objetivos das reuniões é seguir uma cadeia de processos tornando
o trabalho mais controlado e eficiente e facilitar a Comunicação;
10. 5 – Cadeia de processos para desenvolvimento de software:
Serve como guia para o andamento do projeto, nas quais cada tarefa
dentro do projeto precisa passar por essas etapas para que esteja
pronto e finalizado para ser utilizado pelo usuário.
Backlog do
Projeto
Em
andamento
Teste Pronto Homologação Produção
11. 5 – Cadeia de processos para desenvolvimento de software:
• Backlog do projeto – lista de tarefas para serem feitas, podem ser
categorizadas por módulos, funcionalidades, requisitos, estórias de
usuários, solicitações de mudanças, bugs, etc.
• Em andamento – lista de tarefas que estão sendo desenvolvidas
dentro do processo;
Backlog do
projeto
Em
andamento
Teste Pronto Homologação Produção
12. 5 – Cadeia de processos para desenvolvimento de software:
• Teste – tem o objetivo de verificar as funcionalidades e o fluxo do
processo dentro das condições especificadas, pode ser feito de
forma automatizada ou manual. Deve-se encontrar erros no
comportamento da aplicação.
• Pronto – não basta está concluído, deve está funcional e com a
qualidade necessária, integração continua;
Backlog
Em
andamento
Teste Pronto Homologação Produção
13. 5 – Cadeia de processos para desenvolvimento de software:
• Homologação – é o ambiente onde o software será testado e
verificado, por um grupo de usuários limitados que terá acesso
para avaliar o desempenho das funções se estão de acordo com as
necessidades e o que foi requerido pelo cliente.
• Produção – após passar pelos testes em homologação, o software
é colocado em ambiente de produção para os usuários finais do
produto;
Backlog
Em
andamento
Teste Pronto Homologação Produção
14. 5 – Manutenções e atualizações:
• Esta é uma maneira de firmar a relação entre cliente e empresa
contratada com objetivo de manter seu produto funcionando de
maneira correta, é necessário realizar manutenções e atualizações
do software para prevenir bugs e também adicionar novas
funcionalidade de acordo com o desejo do cliente;
15. 6 – Deploy:
• Planejar uma aplicação, desenvolvê-la e ver seu código
funcionando perfeitamente após o período de testes são algumas
das etapas que antecedem o famoso deploy (implantar);
• Extremamente necessário, pois sem ele nenhum site, software ou
aplicativo seria utilizado pelos seus usuários finais;
• Esta tarefa é extremamente comum dentro do escopo de trabalho
dos programadores, embora seja muito comumente associada
somente aos profissionais de infraestrutura, ou DevOps;
16. 6 – Deploy:
• Quando um site é finalizado por um desenvolvedor e, após seus
testes, é finalmente hospedado e colocado no ar, ele passa pelo
processo de deploy;
• De mesmo modo, quando um sistema sofre alguma melhoria ou
alteração em seu código-fonte, implementar essa alteração ao
sistema que está no ar também é um tipo de deploy;
• O Deploy é feito no ambiente de dev, de homologação e produção;
17. 6 – Deploy:
• Manual: Um exemplo clássico de deploy manual é o famoso FTP,
ou Protocolo de Transferência de Arquivo, um processo que
permite que arquivos possam ser transferidos entre dois ou mais
computadores através de uma rede de internet, mas precisa de
interferência humana para acontecer;
• Entre as maiores desvantagens do deploy manual está o tempo e
os recursos gastos com uma atividade que poderia ser feita mais
rapidamente, otimizando a produtividade da equipe;
18. 6 – Deploy:
• Parcialmente automatizado: Atualizar um repositório GIT, por
exemplo, é fazer um deploy parcialmente automatizado, Ele recebe
essa classificação porque, apesar de alguns comandos humanos
serem necessitados, o push do branch master que ocorre através
de um pequeno hook e atualiza o servidor é totalmente
automática. Outra grande vantagem deste deploy é o controle de
versões do GIT;
19. 6 – Deploy:
• Completamente automatizado: O deploy completamente automatizado é um
recurso de ponta em termos de tecnologia;
• Com ele é possível garantir mais segurança, qualidade e eficiência na hora de
fazer atualizações e melhorias em sites, aplicativos ou softwares de grande
utilização, como redes sociais e até mesmo serviços Google;
• Existem hoje, no mercado, diversas ferramentas voltadas à automatização
total do processo de deploy, entre as mais populares estão Jenkins, GitLab,
Azure Pipelines e Circle CI;
• Esta categoria de deploy, além de transmitir automaticamente as suas
atualizações para o servidor, também realiza aquilo que chamamos
de integração contínua; uma vez que é graças à integração contínua que erros
e bugs são mais facilmente encontrados na hora dos testes automáticos;