formação_
Formação Engenharia de software
Aprenda sobre os principais tópicos relacionados com o tema engenharia de software
Para conclusão
Assista o vídeo
veja nossa apresentação da Formação e uma Alura Live sobre a Carreira em Front-end
Engenharia de software
Engenharia de software é uma das áreas da computação cujo foco está relacionado com análise, desenvolvimento e manutenção de softwares, bem como gestão de projetos e times.
É uma área bastante extensa, pois contempla as diversas disciplinas necessárias durante todo o processo de criação e manutenação de softwares, tais como:
- Gestão de requisitos;
- Arquitetura e design de sistemas;
- Padrões de projeto;
- Banco de dados;
- Testes de software;
- Gestão de projetos; e
- Infraestrutura e deploy.
A formação engenharia de software da Alura está organizada com diversos conteúdos que contemplam tais disciplinas, de maneira que você possa adquirir os conhecimentos necessários para ter uma boa visão sobre esta área tão importante da computação.
Por que estudar esta formação?
Guia de aprendizado
Conteúdos pensados para facilitar seu estudo
Do básico ao avançado
Formação completa para o mercado
Você dentro do mercado
Do zero ao sonhado emprego em sua área de interesse
Comece essa formação agora mesmo e capacite-se para seu próximo projeto!
Conheça os planosProfessores especializados Programação
Com quem você vai aprender
Vinicius Dias
Zend Certified Engineer (Engenheiro PHP Certificado pela Zend), iMasters Certified Professional, desenvolvedor Full Stack, formado em Tecnologia da Informação e amante de boas práticas de desenvolvimento, sempre tento aplicar a regra do bom escoteiro nos códigos: Sempre deixe o local mais limpo do que quando você o encontrou.
-
Vinicius Dias
Zend Certified Engineer (Engenheiro PHP Certificado pela Zend), iMasters Certified Professional, desenvolvedor Full Stack, formado em Tecnologia da Informação e amante de boas práticas de desenvolvimento, sempre tento aplicar a regra do bom escoteiro nos códigos: Sempre deixe o local mais limpo do que quando você o encontrou.
Marina Manso
Marina é engenheira de qualidade, formada pela Universidade Estadual de Campinas (UNICAMP). Já trabalhou em startups e empresas multinacionais. Liderou o time de qualidade de uma das maiores empresas de jogos mobile do Brasil. Entusiasta de metodologias ágeis, participa ativamente da comunidade de QA, onde já palestrou em eventos como Agile Trends, QA Sampa Meeting, entre outros.
-
Marina Manso
Marina é engenheira de qualidade, formada pela Universidade Estadual de Campinas (UNICAMP). Já trabalhou em startups e empresas multinacionais. Liderou o time de qualidade de uma das maiores empresas de jogos mobile do Brasil. Entusiasta de metodologias ágeis, participa ativamente da comunidade de QA, onde já palestrou em eventos como Agile Trends, QA Sampa Meeting, entre outros.
Cecilia Fernandes
Cecilia é Agile Coach, desenvolvedora de software e instrutora, formada em Ciência da Computação pela USP. Faz parte de várias iniciativas como a Agile Alliance Brazil ou Agile Brazil e, como educadora, sempre procura se atualizar e desenvolver uma didática engajadora e efetiva, que faça as pessoas reinventarem suas carreiras.
-
Cecilia Fernandes
Cecilia é Agile Coach, desenvolvedora de software e instrutora, formada em Ciência da Computação pela USP. Faz parte de várias iniciativas como a Agile Alliance Brazil ou Agile Brazil e, como educadora, sempre procura se atualizar e desenvolver uma didática engajadora e efetiva, que faça as pessoas reinventarem suas carreiras.
Mario de Melo
Mário Melo é um dos fundadores da Facta e atua como facilitador da Emergee no Brasil. Ele foi um dos primeiros trainers credenciados pela ScrumAlliance para conceder a certificação Certified Scrum Developer (CSD) em 2014. Com um background técnico bastante forte e experiência com clientes ao redor do mundo, Mário tem facilitado a adoção da agilidade em diversos níveis dentro de diferentes organizações através de práticas emergentes.
-
Mario de Melo
Mário Melo é um dos fundadores da Facta e atua como facilitador da Emergee no Brasil. Ele foi um dos primeiros trainers credenciados pela ScrumAlliance para conceder a certificação Certified Scrum Developer (CSD) em 2014. Com um background técnico bastante forte e experiência com clientes ao redor do mundo, Mário tem facilitado a adoção da agilidade em diversos níveis dentro de diferentes organizações através de práticas emergentes.
Nico Steppat
Nico trabalha na área de tecnologia há mais de 20 anos e atuou como desenvolvedor e instrutor no Brasil e na Alemanha. Participa ativamente na comunidade e com uma experiência de mais de 12 anos em educação, coordena hoje equipes de instrutores e é responsável pela curadoria de cursos online na Alura.
-
Nico Steppat
Nico trabalha na área de tecnologia há mais de 20 anos e atuou como desenvolvedor e instrutor no Brasil e na Alemanha. Participa ativamente na comunidade e com uma experiência de mais de 12 anos em educação, coordena hoje equipes de instrutores e é responsável pela curadoria de cursos online na Alura.
Juliana Amoasei
Desenvolvedora JavaScript com background multidisciplinar, sempre aprendendo para ensinar e vice-versa. Atuo em diversas iniciativas de inclusão em tecnologia desde 2018 e acredito no potencial do conhecimento como agente de mudança pessoal e social. Atualmente trabalho como instrutora na Escola de Programação da Alura e dou mentoria técnica a iniciantes na área de desenvolvimento web frontend e backend; fora da tela preta, me dedico ao Kung Fu e à nerdices em geral.
-
Juliana Amoasei
Desenvolvedora JavaScript com background multidisciplinar, sempre aprendendo para ensinar e vice-versa. Atuo em diversas iniciativas de inclusão em tecnologia desde 2018 e acredito no potencial do conhecimento como agente de mudança pessoal e social. Atualmente trabalho como instrutora na Escola de Programação da Alura e dou mentoria técnica a iniciantes na área de desenvolvimento web frontend e backend; fora da tela preta, me dedico ao Kung Fu e à nerdices em geral.
Giovanni Tempobono
Giovanni é instrutor na Alura e desenvolvedor de software. Possui um bacharel em Ciência da Computação pelo Mackenzie e gosta muito de conhecer novas linguagens e tecnologias.
-
Giovanni Tempobono
Giovanni é instrutor na Alura e desenvolvedor de software. Possui um bacharel em Ciência da Computação pelo Mackenzie e gosta muito de conhecer novas linguagens e tecnologias.
Thales Minussi de Sousa
-
Thales Minussi de Sousa
Kleber de Paiva Siqueira Costa
Sou o Kleber e atuo tanto com desenvolvimento como com operações de infraestrutura, estou a 17 anos atuando em ambientes de missão critica, amo resolver problemas com códigos e provavelmente você terá algum contato comigo caso inicie a formação SRE aqui da Alura.
-
Kleber de Paiva Siqueira Costa
Sou o Kleber e atuo tanto com desenvolvimento como com operações de infraestrutura, estou a 17 anos atuando em ambientes de missão critica, amo resolver problemas com códigos e provavelmente você terá algum contato comigo caso inicie a formação SRE aqui da Alura.
Bruno Pereira
-
Bruno Pereira
Rafael Zago
Analista de infraestrutura e sysadmin. no desenvolvimento e gerenciamento de soluções de software de integração de serviços, departamentos e equipes e qualidade. Especializado em open-source, Unix, Linux, SOA e tecnologias de conectividade e segurança, devops e automação.
-
Rafael Zago
Analista de infraestrutura e sysadmin. no desenvolvimento e gerenciamento de soluções de software de integração de serviços, departamentos e equipes e qualidade. Especializado em open-source, Unix, Linux, SOA e tecnologias de conectividade e segurança, devops e automação.
Sidney Amaral
-
Sidney Amaral
Roberto Pina Rizzo
Roberto Pina Rizzo é consultor em transformação lean-ágil, gestão estratégica de TI e inovação. Engenheiro de produção e mestre em engenharia pela Universidade de São Paulo, atua com projetos de desenvolvimento de software desde o tempo em que os PCs eram novidade. Atua também com a realização de workshops e atividades de empreendedorismo envolvendo criação de jogos eletrônicos para públicos específicos. Nas horas vagas, vai para a cozinha.
-
Roberto Pina Rizzo
Roberto Pina Rizzo é consultor em transformação lean-ágil, gestão estratégica de TI e inovação. Engenheiro de produção e mestre em engenharia pela Universidade de São Paulo, atua com projetos de desenvolvimento de software desde o tempo em que os PCs eram novidade. Atua também com a realização de workshops e atividades de empreendedorismo envolvendo criação de jogos eletrônicos para públicos específicos. Nas horas vagas, vai para a cozinha.
Passo a passo
1 Design e Arquitetura
Escrever o código de um software que deve atender as necessidades de negócios de uma organização é uma tarefa complexa. São milhares de linhas de código que precisam ser simples e entender e manter, permitindo que o software seja facilmente adaptado às mudanças que surgem com o tempo.
Justamente por isso é essencial que o time de desenvolvimento projete uma arquitetura de software que seja simples de manter e evoluir, assim como o design do código escrito que precisa seguir padrões que garantam tais carascterísticas.
Neste passo serão apresentados conteúdos que mostram os principais padrões arquiteturais utilizados nos softwares de hoje em dia.
2 API e REST
A computação no geral é muito dinâmica e evolue em um ritmo bastante acelerado. Na engenharia de software não poderia ser diferente.
Hoje em dia é bem comum a utilização de APIs que seguem o modelo REST no desenvolvimento de aplicações multiplataforma, sendo muito importante entender sobre tais assuntos.
Neste passo você vai aprender o que são APIs e o modelo arquitetural REST, ao qual elas seguem os princípios.
3 Microsserviços
É comum alguns softwares possuirem centenas de funcionalidades, o que os tornam bastante complexos de realizar manutenções de melhorias e ajustes. Pensando em simplificar tais tipos de software, um novo modelo de arquitetura chamado de Microsserviços surgiu e se tornou um padrão no desenvolvimento de software que são maiores e mais complexos.
Neste passo você aprenderá o que são microsserviços e o porquê desse novo padrão de arquitetura ter se tornado tão popular e bastante adotado pelas empresas hoje em dia.
-
Alura+ O que são Microsserviços?
-
Alura+ Tipos de Microservices
-
Podcast Monolitos – Hipsters #173
-
Podcast Microserviços – Hipsters #17
-
Artigo Microsserviços com .NET Core: Comunicação Entre Serviços
-
Alura+ O que é um API Gateway?
-
Alura+ O que é Service Mesh?
-
Curso Microsserviços: padrões de projeto
06h - Entenda o que são microsserviços e suas (des)vantagens
- Aprenda a separar sua aplicação em microsserviços
- Conheça padrões de integração de microsserviços
- Entenda como lidar com dados usando microsserviços
- Aprenda a realizar a operação e monitoramento de microsserviços
-
Curso Fundamentos de Microsserviços: Se aprofundando nos conceitos
08h - Aprenda como pensar na arquitetura de microsserviços
- Conheça etapas para a criação de um serviço
- Entenda detalhes sobre a comunicação entre serviços
- Veja conceitos de segurança de microsserviços
- Discuta sobre técnicas de deploy de microsserviços
-
Curso Microsserviços na prática: entendendo a tomada de decisões
08h - Execute um projeto real usando microsserviços
- Entenda como organizar serviços
- Isole a infraestrutura de cada serviço
- Tenha um processo de build para cada serviço
- Entenda como organizar o código, incluindo no front-end
Faça esse curso e:
Faça esse curso e:
Mais detalhesdo curso Fundamentos de Microsserviços: Se aprofundando nos conceitos
Faça esse curso e:
Mais detalhesdo curso Microsserviços na prática: entendendo a tomada de decisões
-
4 Devops e monitoramento
Um software somente tem valor quando é entregue em ambiente de produção, para que as pessoas possam o utilizar e usufruir de seus benefícios.
Colocar um software em produção não é uma tarefa tão simples, pois envolve a utilização de diversas ferramentas para realização do deploy, principalmente em ambientes cloud hoje em dia, além de também exigir um acompanhamento contínuo, para garantir que tudo está funcionando corretamente, e, principlamente, detectar e antecipar possíveis problemas.
DevOps é a disciplina responsável por cuidar de todo esse processo de entrega e monitoramento de softwares em ambientes de produção, sendo que existem dezenas de ferramentas para realizar tais tarefas.
Neste passo você vai conhecer sobre os principais conceitos relacionados ao tema DevOps, tais como: integração contínua, entrega contínua, monitoramento de aplicações, etc.
-
Alura+ O que é DevOps?
-
Artigo Devops: o que é e principais práticas
-
Podcast Primeiros passos com Devops – Hipsters #81
-
Alura+ O que é DevSecOps?
-
Curso Integração Contínua: mais qualidade e menos risco no desenvolvimento
06h - Saiba as vantagens e desvantagens da integração contínua no desenvolvimento
- Aprenda quais são os ingredientes e como aplicar a integração contínua
- Entenda a relação entre testes e a integração contínua
- Conheça as estratégias de ramificação mais comuns em projetos
- Saiba quais são as responsabilidades da equipe e qual é o processo correto
-
Curso Entrega Contínua: confiabilidade e qualidade na implantação de software
08h - Saiba os conceitos, práticas e padrões relacionados à entrega contínua
- Conheça a diferença entre entrega contínua e deploy contínuo
- Entenda cada etapa do deployment pipeline
- Conheça os release patterns, como Canary Release e Feature Toggles
- Mergulhe no mundo DevOps e aprenda sobre a entrega de valor contínuo
-
Podcast DevOps: Observabilidade – Hipsters Ponto Tech #260
-
Alura+ SRE - Engenharia de Confiabilidade de Sites
-
Podcast SRE: Site Reliability Engineering – Hipsters #187
-
Alura+ O que é Observabilidade?
-
Alura+ Monitorando aplicações: 4 Golden Signals
-
Alura+ Monitoramento com Netdata
-
Podcast Monitoramento: não receba mais telefonemas de madrugada! – Hipsters #12
-
Alura+ O que são Containers?
-
Alura+ O que é Serverless?
-
Alura+ O que é Infraestrutura como Código (IaC)?
Faça esse curso e:
Mais detalhesdo curso Integração Contínua: mais qualidade e menos risco no desenvolvimento
Faça esse curso e:
Mais detalhesdo curso Entrega Contínua: confiabilidade e qualidade na implantação de software
-
5 Agilidade e times
Desenvolver softwares não envolve apenas a parte técnica, com a escrita de código, execução de testes e deploy em ambiente de produção. São pessoas que vão participar de todo o ciclo de vida de desenvolvimento e manutenção de software, sendo essencial saber como elas serão gerenciadas para todo esse processo flua da melhor maneira possível.
Neste passo vamos estudar sobre gestão ágil de projetos e times de desenvolvimento de software, conhecendo as principais metodologias utilizadas no mercado.
-
Podcast Agilidade – Hipsters #05
-
Alura+ Cascata vs Ágil
-
Curso Scrum: agilidade em seu projeto
10h - Aprenda o processo ágil mais popular do mercado.
- Aplique esse processo em seu projeto
- Veja como práticar uma Retrospectiva
- Melhore o desempenho do seu time
- Entregas mais rápidas e transparentes
-
Curso Organização de Equipes Ágeis: os papéis existentes em uma equipe
06h - Entenda com trabalha uma equipe ágil
- Descubra como se formam os diferentes tipos de equipe ágil
- Aprenda a divisão de tarefas dentro da equipe
- Saiba quais são as responsabilidades do Product Owner e do Scrum Master
-
Artigo Kanban: o que é e como funciona
-
Podcast Kanban e o fluxo de trabalho – Hipsters #74
-
Alura+ Scrum x Kanban
-
Alura+ O que é eXtreme Programming?
-
Curso Extreme Programming: metodologia de desenvolvimento ágil de software
08h - Entenda os problemas que o XP resolve
- Conheça os valores, princípios e práticas do XP
- Entenda como o XP ajuda ao planejar um projeto
- Conheça as práticas de codificação de XP
- Veja as vantagens de se preocupar com qualidade
Faça esse curso e:
Faça esse curso e:
Mais detalhesdo curso Organização de Equipes Ágeis: os papéis existentes em uma equipe
Faça esse curso e:
Mais detalhesdo curso Extreme Programming: metodologia de desenvolvimento ágil de software
-
6 Testes e qualidade
Um software não é considerado como "pronto" apenas com a finalização da escrita do código de suas funcionalidades. É preciso garantir que ele está funcionando conforme o esperado pelos clientes e pessoas que vão o utilizar. Por isso é essencial a realização de diversos tipos de testes que vão garantir a qualidade dele.
Com isso nasce a necessidade de uma disciplina na engenharia de software que é responsável pela garantia da qualidade do software.
Neste passo você vai estudar sobre a disciplina de testes de software, também conhecida como Quality Assurance, conhecendo sobre o processo e as ferramentas utilizadas para garantir a qualidade de um software, que permitem a identificação de bugs e melhorias necessárias.
-
Curso Quality Assurance: plano de testes e gestão de bugs
08h - Crie um plano de teste, documento de planejamento de teste de software
- Aprenda o que são testes, como modelá-los e executá-los
- Saiba encontrar e reportar defeitos em sistemas
- Descubra o papel do profissional de qualidade de software em um time de desenvolvimento
- Entenda o que são cenários e casos de teste
- Aprenda como metrificar a qualidade do seu software
-
Podcast Testes Automatizados – Hipsters #51
-
Alura+ O que é Test-Driven Development (TDD)?
-
Alura+ O que é Behavior-Driven Development (BDD)?
-
Alura+ Entenda a Pirâmide de Teste
-
Alura+ API: Testes de contrato
-
Alura+ Cobertura de Código
-
Alura+ Testes de Mutação - Testando seus testes
Faça esse curso e:
Mais detalhesdo curso Quality Assurance: plano de testes e gestão de bugs
-
nossos alunos e alunas
Experiências de quem já mergulhou com a gente.

Curso incrível. Mudou completamente a maneira de ver o processo de integração contínua.
Integração Contínua: mais qualidade e menos risco no desenvolvimento
Cassius Thalles Costa Mendes

Um curso incrível, cheio de informações. A didática é excepcional e a capacidade de síntese é fora de série. Muito conteúdo condensado em pouco tempo
Entrega Contínua: confiabilidade e qualidade na implantação de software
Cassius Thalles Costa Mendes

Esse é um tipo de curso que vale ser transformado em uma formação. Como eu sou de Java, uma formação de Microservices em Java seria lindo e acredito que seria interessante para muitas pessoas.
Microsserviços: padrões de projeto
Evandro Rosa Santos
Comece hoje mesmo os cursos de Engenharia de software. Matricule-se agora!
Plus
- Acesso a TODOS os cursos da plataforma
Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
- Alura Challenges
Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.
- Alura Cases
Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.
- Certificado
Emitimos certificados para atestar que você finalizou nossos cursos e formações.
- Alura Língua (incluindo curso Inglês para Devs)
Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.
Pro
- Acesso a TODOS os cursos da plataforma
Mais de 1200 cursos completamente atualizados, com novos lançamentos todas as semanas, em Programação, Front-end, UX & Design, Data Science, Mobile, DevOps e Inovação & Gestão.
- Alura Challenges
Desafios temáticos para você turbinar seu portfólio. Você aprende na prática, com exercícios e projetos que simulam o dia a dia profissional.
- Alura Cases
Webséries exclusivas com discussões avançadas sobre arquitetura de sistemas com profissionais de grandes corporações e startups.
- Certificado
Emitimos certificados para atestar que você finalizou nossos cursos e formações.
- Alura Língua (incluindo curso Inglês para Devs)
Estude a língua inglesa com um curso 100% focado em tecnologia e expanda seus horizontes profissionais.
Acesso completo
durante 1 ano
Estude 24h/dia
onde e quando quiser
Novos cursos
todas as semanas