Foreword
“Software Engineering” is a core course for students in computer-related disciplines of higher level education. The main topics include software engineering background, software process models, software requirements analysis, software design, software coding standards, software testing, software project management, software project metrics, software risk management, software quality management and so on.
This book is characterized by close integration of theory and practice. It not only describes main content of the traditional software life cycle process, but also introduces some new technologies in the modern software engineering methods, including new process models, software as a service, new parallel distributed programming models etc.
This book covers main content of 10 areas suggested by IEEE and ACM Joint research projects-SWEBOK (The Software Engineering Body of Knowledge). It introduces the background of software engineering, software process models, requirements analysis, requirements modeling, design engineering, architecture, design, coding, and requirements of new technology trends, testing techniques and strategies, project management summary, risk analysis and management, software quality management and so on. Through the close combination of theory and practice, students can understand and master the basic concepts, principles and methods of software engineering and apply them to real projects.
This book will explain:
● What are software engineering backgrounds and development trends?
● What are the major contents of software engineering suggested by IEEE ACM and SWEBOK?
● What are core contents of software engineering?
● Which key elements are included in classic software engineering process?
● How to combine main software engineering theories and practices?
● How to create a global view and world view of analysis, design, testing and maintenance in software engineering?
● What are commonly used software development tools and coding standards?
This book accumulates experience of the teaching practice and reform during past years, collects feedbacks from students, combines with the advantages of the current software engineering books and takes into account the study characteristics of students. Key features of this book include but not limited to the followings:
(1) Enhancing the integration of theory and practice through case studies: teaching cases from actual development projects are selected, all the concepts, methods will be applied to the one or two cases. All teaching materials and case-studies are carefully chosen for students so that there are not too much or too less contents. Teaching by case-study is popular abroad, this approach can help students the ability to analyze and solve problems.
(2) Highlighting the logic of the organization and increasing students’ interests to learn: through years usage of materials and the classic textbook for teaching, the students generally reflect that there are too many principles or concepts in them; content organization and logical thinking is not very clear; too many technical issues are described boringly.
(3) Introducing popular and hot technical knowledge in the software industry: the appropriate introduction to popular software platforms, such as software as a service to broaden students horizons and prepare for their employment.
This book includes introduction to software engineering (Chapter 1), process models (Chapter 2), software requirements (Chapter 3), software design engineering (Chapter 4), software productivity and effort metrics (Chapter 5), software quality management (Chapter 6), testing techniques (Chapter 7), test strategies (Chapter 8), software maintenance (Chapter 9), software project management (Chapter 10), software risk analysis and management (Chapter 11), software engineering development tools (Chapter 12), and a appendix of “General Style And Coding Standards For Software Projects.”
This book is good for senior undergraduate students and graduate students and can be a reference guide to researchers.
This book is a product of accumulation of large number of theories and practices, and edited by a group members through extensive teaching and research experience. Due to time constraints, there may be something missing or mistake, please correct and email to SE_Coevolutionary@gmail.com