Engenharia de Software Moderna é um livro-texto destinado a alunos de cursos de graduação em Computação. Pode ser lido também por profissionais que buscam atualização nos seguintes temas:
* Métodos ágeis, como Scrum, XP e Kanban. * Levantamento ágil de requisitos, incluindo histórias de usuários, MVPs e testes A/B. * Projeto de Software, tratando de propriedades de projeto, princípios e padrões de projeto. * Arquitetura de Software, incluindo padrões arquiteturais como MVC, microsserviços e publish/subscribe. * Testes de Software, com ênfase em testes de unidade, testabilidade, cobertura e Desenvolvimento Dirigido por Testes (TDD). * Refactoring, com exemplos reais de refactorings e code smells. * DevOps, incluindo controle de versões (usando git), integração e deployment contínuo.
O livro possui 395 páginas, 10 capítulos e 1 apêndice. Inclui ainda 25 seções "Mundo Real" (descrevendo estudos de casos) e 125 exercícios.Sobre o Autor:
Sobre o autor:
Marco Tulio Valente é doutor em Ciência da Computação (2002), pela Universidade Federal de Minas Gerais, onde atualmente é Professor Associado do Departamento de Ciência da Computação (desde 2010).
Como o próprio autor declara, é um livro para ser usado em uma disciplina única sobre Engenharia de Software, 60 horas, na graduação. Excelente livro, moderno, faz uma cobertura abrangente do tema vindo até tópicos modernos, como DevOps e Git (para controle de versões). Na versão web, https://engsoftmoderna.info/, que está disponível para uso, estão disponiveis também as transparências para as aulas. Fiz uma excelente atualização lendo o livro de ponta a ponta. Recomendo demais.
A Engenharia de Software mudou muito nos últimos anos, especialmente com a disseminação dos métodos ágeis, mas também com novos métodos, práticas e tecnologias. Não é possível ignorar essas mudanças, mas também não se deve desprezar o conhecimento clássico de Engenharia de Software. Livros clássicos como o do Sommerville e do Pressman têm uma dificuldade em se modernizar – o que é normal em livros cuja primeira edição é do início da década de 1980 (!). Algo que pessoalmente me incomoda nos livros clássicos é que eles mostram pouco código. Por mais que Engenharia de Software não seja só programação, ela envolve muita programação – ainda mais quando se considera uma perspectiva ágil.
O livro “Engenharia de Software Moderna” do prof. Marco Tulio Valente (da UFMG) faz muito bem essa ponte entre modernidade e conceitos clássicos. É um livro bem escrito, fácil de ler e que cobre os principais conceitos de Engenharia de Software com uma visão ágil e próxima ao código. Mas, além disso, apresenta os conceitos de forma bem fundamentada, considerando o conhecimento tradicional da área.
Essa relação entre o clássico e o moderno fica evidente na preocupação do livro com o design. Há um capítulo que apresenta UML de uma forma mínima necessária suficiente, não ignorando a utilidade de modelos para a Engenharia de Software (a minha crítica é só a falta de rigor na notação). Depois são dois capítulos tratando de princípios de projeto (SOLID e alguns outros) e padrões de projeto, recheados de código.
Um outro exemplo dessa relação entre o clássico e o moderno é no capítulo de requisitos que enfatiza histórias do usuário, mas também fala de casos de uso. Como um pesquisador da área de requisitos, senti falta de uma visão mais ágil para casos de uso (e, claro, tenho alguns outros comentários específicos), mas de uma forma geral o texto é bem fundamentado, direto e objetivo – como todo o livro.
Além desses capítulos, existem também capítulos sobre processo de software, arquitetura, testes, refatoração, DevOps e um apêndice sobre Git. Um capítulo que me chamou bastante a atenção foi o sobre testes, que é bem técnico e muito bem fundamentado. Ou seja, é dada a atenção que essa área atualmente possui. Em contraposição, o capítulo sobre refatoração pareceu exagerado (não precisava de um capítulo inteiro). Mas é de se esperar essa ênfase, considerando a área de pesquisa do autor. Um outro destaque positivo, além do capítulo sobre testes, é o sobre DevOps, um assunto bastante atual e que está bem explicado.
Como conclusão, o livro é direto e objetivo, escrito por um pesquisador de ponta na área de Engenharia de Software no Brasil. É uma boa recomendação para quem quer aprender Engenharia de Software – e também para quem, como eu, ministra disciplinas nessa área. O melhor do livro é que ele está disponível gratuitamente. Também é possível comprar uma versão impressa (que foi a que eu li), muito bem editada e com 395 páginas.
Todo mundo q trabalha com desenv de soft PRECISA ler! Vi muito esse livro no LinkedIn e resolvi ler. Por ser um livro mais abrangente e não especificamente da área de Qualidade de Software, pensei que não ia gostar muito, mas gostei. Aprendi muito com esse livro, com ele finalmente entendi sobre diagramas, e finalmente também entendi o que é branch, entre outras inúmeras coisas. Eu sou de Qualidade de Software, mas é importante sabermos dessas coisas que envolvem o ciclo de vida do desenvolvimento de um software para não ficarmos "boiando" quando falarem sobre certas coisas.
É um livro bom para que está iniciando como engenheiro de software/computação ou deseja entrar na área. Assim como próprio autor sugere, o livro foi pensado no estudante de graduação. Devido a sua baixa complexidade e não aprofundar nos temas que aborda, a sua leitura flui muito rápido e consegui finalizar o livro em pouco mais de um mês.
Mas, mesmo assim eu conseguir ter insights sobre a área e sobre minha própria profissão (Dev Frontend). Recomendo muito para quem está iniciando ou não tem nenhuma noção de Eng. Software.