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)