Quer ter acesso a todos os cursos desse Guia?
Engenharia de Software para programadores
Ter boas noções sobre engenharia de Software pode alavancar muito sua carreira e a sua forma de programar. Descubra nesse guia tudo o que um programador precisa saber sobre a ciência que existe por trás dos códigos.
Análise e Projeto
Quando iniciamos um novo projeto, a etapa de análise normalmente é a primeira realizada. É nessa fase que levantamos os requisitos e desenhamos o software a ser desenvolvido, a fim de alcançar o objetivo de forma alinhada às necessidades do cliente.
Veja abaixo como realizar o levantamento de requisitos para a criação de novas aplicações:
-
DevCastTécnicas para entrevista de coleta de requisitosQuer ter acesso completo a todos os conteúdos?Saiba mais
-
DevCastDocumentando requisitos de um sistema - Abordagem práticaQuer ter acesso completo a todos os conteúdos?Saiba mais
O curso a seguir mostra esse levantamento de requisitos na prática, envolvendo diversas equipes do mesmo projeto:

Ver grade completa
Nessa etapa é comum o uso da UML para modelar o sistema. Essa linguagem visual conta com diversos diagramas que podem ser usados para representar o software sob diferentes pontos de vista. Com o curso a seguir você entenderá sobre a UML e os seus diagramas:

Ver grade completa
Confira no curso abaixo como realizar a análise e projeto de softwares de forma orientada a objetos e utilizando a UML:

Ver grade completa
Um caso de uso é uma descrição de um conjunto de sequência de ações realizadas pelo sistema para produzir um resultado de valor para uma pessoa no sistema. Identificar os requisitos por meio desses casos de uso é fundamental na construção do sistema. Veremos isso na prática com os cursos a seguir:
Tudo bem, agora que você tem os requisitos, o que fazer com eles? Por onde começar a programar a aplicação? Assista no DevCast abaixo uma conversa cheia de dicas sobre esse próximo passo.

Para entender mais sobre modelagem, como elicitar requisitos e gerenciá-los além do uso da UML, acesse:

Controle de versão
Atualmente existem diversas formas de controlar a evolução do código das aplicações. Essas permitem que o time trabalhe em um mesmo projeto de forma organizada, versionando os arquivos utilizados.
O Git e o Github estão entre as ferramentas mais utilizadas hoje em dia e conhecê-las é de extrema importância para os desenvolvedores, pois com frequência precisamos utilizá-las nos projetos em que participamos. Nos cursos abaixo você entenderá o que é Git e Github e aprenderá a controlar a versão dos seus projetos com essas ferramentas:
Testes de software
O Test Driven Development é uma prática que tem se tornando cada vez mais comum no mundo do desenvolvimento devido a vantagem de garantir que você está entregando um software consistente. Nos conteúdos abaixo falamos sobre o primeiro passo nessa metodologia, os testes unitários. Confira.
Para entendermos na prática, confira no curso a seguir o que é teste unitário:

Ver grade completa
Nos links abaixo você verá como realizar testes unitários em diferentes linguagens de programação, inclusive no PHPUnit:
-
ProjetoDocumentação PHPUnit Novo!Quer ter acesso completo a todos os conteúdos?Saiba mais
-
ProjetoDocumentação Teste Unitário Novo!Quer ter acesso completo a todos os conteúdos?Saiba mais
O TDD é abordagem de desenvolvimento baseada em testes e que é explicada em mais detalhes no curso abaixo:

Ver grade completa
No artigo a seguir você confere boas práticas que podem ser empregadas ao Test Driven Development:

Ver introdução
E que tal se aprofundar em testes de software? Com o guia a seguir você conhecer todos os tipos disponíveis de testes para entregar uma aplicação funcionando corretamente:

Metodologias Ágeis
Além das linguagens, frameworks e diversas ferramentas, o desenvolvimento de software envolve processos que são realizados e aprimorados constantemente. Esses processos definem quais tarefas devem ser realizadas e de que forma isso deve ocorrer para que se consiga alcançar o objetivo da melhor forma possível.
As chamadas metodologias ágeis são processos que visam entregar produtos mais rapidamente, com mais qualidade e respondendo rapidamente a mudanças. Entre essas metodologias destaca-se o Scrum, que inclusive nós usamos aqui na DevMedia. Conheça mais nos links a seguir:
-
CursoScrum: Conhecendo o Product Owner
Ver grade completa
Quer ter acesso completo a todos os conteúdos?Saiba mais -
DevCastComo usamos o Scrum na DevMediaQuer ter acesso completo a todos os conteúdos?Saiba mais
Com o guia de conteúdo a seguir você aprenderá todas as fases, papéis e muito mais sobre essa metodologia ágil:

Outra metodologia também muito empregada no desenvolvimento de software é a XP (eXtreme Programming), que é apresentada nos conteúdos abaixo:
-
DevCastPor que devo aprender XPQuer ter acesso completo a todos os conteúdos?Saiba mais
-
DevCastPanorama da eXtreme Programing (XP) Novo!Quer ter acesso completo a todos os conteúdos?Saiba mais
-
MeetUpConhecendo eXtreme Programming Novo!Quer ter acesso completo a todos os conteúdos?Saiba mais
-
MeetUpCalculando estimativas da eXtreme Programming Novo!Quer ter acesso completo a todos os conteúdos?Saiba mais
-
CursoExtreme Programming (XP)
Ver grade completa
Quer ter acesso completo a todos os conteúdos?Saiba mais -
CursoAplicando eXtreme Programming (XP) na prática Novo!
Ver grade completa
Quer ter acesso completo a todos os conteúdos?Saiba mais
Além disso, os artigos a seguir trazem um conteúdo extra sobre a metodologia:
-
ArtigoIntegrando XP as principais metodologias agéis
Ver introdução
free -
ArtigoImplantando práticas do Scrum e do XP em um projeto de software
Ver introdução
free -
ArtigoAgile Development: XP e Scrum em uma Abordagem Comparativa
Ver introdução
free -
ArtigoExtreme Programming (XP) e Crystal: Modelos de Processos Ágeis
Ver introdução
free -
ArtigoeXtreme Programming: Aprendendo XP com Jogos
Ver introdução
Quer ter acesso completo a todos os conteúdos?Saiba mais
Aprenda mais sobre XP com a série a seguir:

Mais sobre Engenharia de Software
Além dos cursos sugeridos nesse guia, a DevMedia publica com frequência novos conteúdos sobre Engenharia de Software, os quais você pode conferir nos Guias de Consulta abaixo:
-
Guia de ConsultaGestão de Projetosfree
-
Guia de ConsultaScrumfree
-
Guia de ConsultaRequisitos, Modelagem e UMLfree
-
Guia de ConsultaModelagem de Processos de Negóciofree
-
Guia de ConsultaTestes de Softwarefree
Você também pode listar todo o conteúdo de Engenharia de Software clicando aqui.
<Perguntas frequentes>