Practical Handbook to understand the hidden language of computer hardware and softwareDESCRIPTIONThis book teaches the essentials of software engineering to anyone who wants to become an active and independent software engineer expert. It covers all the software engineering fundamentals without forgetting a few vital advanced topics such as software engineering with artificial intelligence, ontology, and data mining in software engineering.The primary goal of the book is to introduce a limited number of concepts and practices which will achieve the following two objectives:Teach students the skills needed to execute a smallish commercial project.Provide students with the necessary conceptual background for undertaking advanced studies in software engineering through courses or on their own.KEY FEATURESThis book contains real-time executed examples along with case studies.Covers advanced technologies that are intersectional with software engineering.Easy and simple language, crystal clear approach, and straight forward comprehensible presentation.Understand what architecture design involves, and where it fits in the full software development life cycle.Learning and optimizing the critical relationships between analysis and design.Utilizing proven and reusable design primitives and adapting them to specific problems and contexts.WHAT WILL YOU LEARNThis book includes only those concepts that we believe are foundational. As executing a software project requires skills in two dimensions-engineering and project management-this book focuses on crucial tasks in these two dimensions and discuss the concepts and techniques that can be applied to execute these tasks effectively. WHO THIS BOOK IS FORThe book is primarily intended to work as a beginner's guide for Software Engineering in any undergraduate or postgraduate program. It is directed towards students who know the program but have not had formal exposure to software engineering.The book can also be used by teachers and trainers who are in a similar state-they know some programming but want to be introduced to the systematic approach of software engineering.TABLE OF CONTENTS1. Introductory Concepts of Software Engineering2. Modelling Software Development Life Cycle3. Software Requirement Analysis and Specification4. Software Project Management Framework5. Software Project Analysis and Design6. Object-Oriented Analysis and Design7. Designing Interfaces & Dialogues and Database Design8. Coding and Debugging9. Software Testing10. System Implementation and Maintenance11. Reliability12. Software Quality13. CASE and Reuse14. Recent Trends and Development in Software Engineering15. Model Questions with AnswersABOUT THE AUTHORHitesh Mohapatra received a B.E. degree in Information Technology from Gandhi Institute of Engineering and Technology, Gunupur, Biju Patnaik University of Technology, Odisha in 2006, and an MTech. Degree in CSE from Govt. College of Engineering and Technology, Bhubaneswar, Biju Patnaik University of Technology, Odisha in 2009. He is currently a full-time PhD scholar at Veer Surendra Sai University of Technology, Burla, India since 2017 and expected to complete by August 2020. He has contributed 10+ research-level papers (SCI/Scopus), eight international/national conferences (Scopus), and a book on C Programming. He has 12+ years of teaching experience both in industry and academia. His current research interests include wireless sensor network, smart city, smart grid, smart transportation, and smart water. Amiya Kumar Rath received a B.E. degree in computer from Dr Babasaheb Ambedkar Marathwada University, Aurangabad, in 1990, and an M.B.A. degree in systems management from Shivaji University in 1993. He also received an MTech. Degree in computer science from Utkal University in 2001, and a PhD degree in computer science from Utkal University, in 2005, with a focus on embedded systems. He is currently a Professor with the Department of Computer Science and Enginee