Skip to main content

A Concise Introduction to Software Engineering

With Open Source and GenAI

  • Textbook
  • © 2025
  • Latest edition

Overview

  • Offers a solid foundation to this broad-ranging discipline, focusing on the essential elements
  • Includes new material on Generative AI, as well as software deployment, continuous integration
  • Uses a practical, case-study approach taking readers through the life cycle

Part of the book series: Undergraduate Topics in Computer Science (UTICS)

This is a preview of subscription content, log in via an institution to check access.

Access this book

eBook USD 23.99 USD 39.99
Discount applied Price excludes VAT (USA)
  • Available as EPUB and PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book USD 23.99 USD 54.99
Discount applied Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

') var buybox = document.querySelector("[data-id=id_"+ timestamp +"]").parentNode var buyboxMaxSingleColumnWidth = 480 ;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(initCollapsibles) function initCollapsibles(buyingOption, index) { var toggle = buyingOption.querySelector(".buying-option-price") buyingOption.classList.remove("expanded") var form = buyingOption.querySelector(".buying-option-form") var priceInfo = buyingOption.querySelector(".price-info") if (toggle && form && priceInfo) { toggle.setAttribute("role", "button") toggle.setAttribute("tabindex", "0") toggle.addEventListener("click", function (event) { var expandedBuyingOptions = buybox.querySelectorAll(".buying-option.expanded") var buyboxWidth = buybox.offsetWidth ;[].slice.call(expandedBuyingOptions).forEach(function(option) { if (buyboxWidth <= buyboxMaxSingleColumnWidth && option != buyingOption) { hideBuyingOption(option) } }) var expanded = toggle.getAttribute("aria-expanded") === "true" || false toggle.setAttribute("aria-expanded", !expanded) form.hidden = expanded if (!expanded) { buyingOption.classList.add("expanded") } else { buyingOption.classList.remove("expanded") } priceInfo.hidden = expanded }, false) } } function hideBuyingOption(buyingOption) { var toggle = buyingOption.querySelector(".buying-option-price") var form = buyingOption.querySelector(".buying-option-form") var priceInfo = buyingOption.querySelector(".price-info") toggle.setAttribute("aria-expanded", false) form.hidden = true buyingOption.classList.remove("expanded") priceInfo.hidden = true } function initKeyControls() { document.addEventListener("keydown", function (event) { if (document.activeElement.classList.contains("buying-option-price") && (event.code === "Space" || event.code === "Enter")) { if (document.activeElement) { event.preventDefault() document.activeElement.click() } } }, false) } function initialStateOpen() { var buyboxWidth = buybox.offsetWidth var narrowBuyboxArea = buyboxWidth <= buyboxMaxSingleColumnWidth var allOptionsInitiallyCollapsed = buybox.className.indexOf("all-options-initially-collapsed") > -1 ;[].slice.call(buybox.querySelectorAll(".buying-option")).forEach(function (option, index) { var toggle = option.querySelector(".buying-option-price") var form = option.querySelector(".buying-option-form") var priceInfo = option.querySelector(".price-info") if (allOptionsInitiallyCollapsed || narrowBuyboxArea && index > 0) { toggle.setAttribute("aria-expanded", "false") form.hidden = "hidden" priceInfo.hidden = "hidden" } else { toggle.click() } }) } initialStateOpen() if (window.buyboxInitialised) return window.buyboxInitialised = true initKeyControls() })()

Other ways to access

Licence this eBook for your library

Institutional subscriptions

About this book

Software engineering has changed:  A software project today is likely to use large language models (LLMs) for some tasks and will employ some open-source software. It is therefore important to integrate open source and use of LLMs in teaching software engineering – a key goal of this textbook.

This reader-friendly textbook/reference introduces a carefully curated set of concepts and practices essential for key tasks in software projects. It begins with a chapter covering industry-standard software, open-source tools, and the basics of prompt engineering for LLMs. The second chapter delves into project management, including development process models, planning, and team-working. Subsequent chapters focus on requirements analysis and specification, architecture design, software design, coding, testing, and application deployment.

Each chapter presents concepts, practical methods, examples, the application of LLMs, and the role of open-source software. A companion website provides some comprehensive case studies, as well as teaching material including presentation slides.

This textbook is ideal for an introductory course on software engineering where the objective is to develop knowledge and skills to execute a project—specifically in a team employing contemporary software engineering practices and using open source and LLMs. It is also suitable for professionals who want to be introduced to the systematic approach of software engineering and/or use of open source and LLMs.

The author is a distinguished professor at IIIT-Delhi and a well-known academic in software engineering. He has served as vice president in Infosys Technologies Limited and as a visiting researcher at Microsoft Corporation.

Reviews of the first edition:

"This book's title provides an excellent description of its content. ... This compact volume is organized into eight well-focused chapters containing numerous examples and well-designed self-test exercises. Includes an excellent collection of references and a very useful index. Summing Up: Highly recommended. Upper-division undergraduate through professional readers; two-year technical program students." (J. Beidler, Choice, Vol. 46 (6))

"Jalote's intention in this book is to present just enough material to teach beginning software engineers what they need to know to do a development project that carries a smallproduct from conception through delivery. The result is a short book ... making this sort of book very attractive as a text for introductory software engineering. ... topics are well chosen and their discussion is good." (Christopher Fox, ACM Computing Reviews)

Similar content being viewed by others

Table of contents (8 chapters)

Reviews

"This well-written book offers a concise yet comprehensive introduction to software engineering--especially when compared to other textbooks that often exceed 800 pages. ... Authored by an expert in the field, the book effectively covers the essential concepts every software engineer should understand. " (Michael Oudshoorn, Computing Reviews, May 13, 2025)

Authors and Affiliations

  • Indraprastha Institute of Information Technology Delhi (IIIT-Delhi), New Delhi, India

    Pankaj Jalote

About the author

Pankaj Jalote is Distinguished Professor at IIIT-Delhi, of which  he is also the founding Director. Prior to this, he has been a Chair Professor at IIT Delhi, Head of the  Department of Computer Science and Engineering at the IIT Kanpur, and an Assistant Professor at University of Maryland at College Park. He has also served as Vice President of Infosys Technologies and Visiting Researcher at Microsoft Corporation.

He is the author of six books including the highly acclaimed CMM in Practice, which has been translated in many languagesand the best selling text book An Integrated Approach to Software Engineering.

Accessibility Information

Accessibility information for this book is coming soon. We're working to make it available as quickly as possible. Thank you for your patience.

Bibliographic Information

Keywords

Publish with us