This textbook is designed for undergraduate software engineering courses. Additionally, it can be used by junior developers looking to consolidate their knowledge in the field. The book has 350 pages, 10 chapters, and includes 120 exercises. A Portuguese edition is also available here.
E-book
Buy on Leanpub (pdf and epub)Web Version
Chapter 1: Introduction
Historical Context, Topics of Study
Chapter 2: Processes
Agile Manifesto, XP, Scrum, Kanban
Chapter 3: Requirements
User Stories, Use Cases, MVP, A/B Testing
Chapter 4: Models
Class, Package, Sequence, Activity Diagrams
Chapter 5: Design Principles
Conceptual Integrity, Information Hiding, Cohesion, Coupling, SOLID
Chapter 6: Design Patterns
Factory, Singleton, Proxy, Adapter, Facade, Decorator, Strategy, Observer, Template Method, Visitor
Chapter 7: Architecture
MVC, Microservices, Message-Oriented, Pub/Sub
Chapter 8: Testing
Unit Tests, Principles and Smells, Coverage, Testability, Mocks, TDD, Integration Tests, E2E Tests
Chapter 9: Refactoring
Examples, Refactoring Practice, Automated Refactorings, Code Smells
Chapter 10: DevOps
Version Control, Continuous Integration, Continuous Deployment
Appendix: Git
License: Version for personal use only. Redistribution or modifications are prohibited.
Resources
- Slides with exercises (pdf, by chapter): 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, Ap
- True or False exercises (by chapter): 1, 2, 3, 4, 5, 6, 7, 8, 9, 10
- Hands-on exercises: CI Servers
- Source code examples on an online IDE (by chapter): 6, 8
Instructors
If you're an instructor, use this form to request the exercise answers and links to the slides in Google Slides.
Short Articles
These articles complement the content of the book:
- Ch. 2: Agile Teams
- Ch. 3: MVPs, Product Discovery
- Ch. 5: Domain-Driven Design, Deep Modules, Dependency Injection
- Ch. 6: Composite Design Pattern
- Ch. 7: Clean Architecture, Hexagonal Architecture, Serverless, Sagas
- Ch. 8: Mutation Testing, Examples of Tests
- Ch. 10: Branching Strategies, Code Review
FAQ
1. Will an open version of the book remain available? Yes, the web version will remain open.
2. What is the difference between the web and e-book versions? The content is identical, but the e-book has more refined formatting.
3. Who is the publisher of the book? It's self-published.
4. How can I support this project? The best way is to purchase the e-book.
Universities Using Our Book
College Cork (Ireland), Thai Binh Duong (Vietnam), North Carolina State (USA), Loyola Maryland (USA), Utrecht (Netherlands), FMV Isik (Turkey).
If you are also using the book, please let us know by filling out this brief form.
Author
Marco Tulio Valente holds a Ph.D. in Computer Science from the Federal University of Minas Gerais, Brazil, where he is an Associate Professor in the Department of Computer Science since 2009. Previously, he was an adjunct professor at PUC Minas for 11 years and a senior systems analyst at a telecommunication company for four years. He has authored more than 170 papers and has supervised more than 30 master's theses and 15 doctoral dissertations.
Citing the Book
Marco Tulio Valente. Software Engineering: A Modern Approach, 2024. (bibtex)
Contact
To report errors or typos, use this form. All other feedback is also welcome.