近年来,软件工程得到学术界和产业界的广泛重视,大量的理论和应用研究成果不断涌现,形成和促进了软件产业的飞速发展,在社会生活中扮演着愈来愈重要的角色。实践表明,不掌握一定的软件工程知识,不按软件工程的有关原理进行软件开发,不积极学习新的软件开发方法和技术,就不能高效高质量地开发软件。本教材正是为了适应软件工程高等教育的需要,由多年从事软件工程教学和科研的教师编写而成的。
本书系统地介绍了软件工程的有关概念、标准、原理、方法和技术,其目标是使学生理解有关软件生存期过程与模型概念和软件工程基本原理,掌握建造软件系统的有关方法、技术和标准。本课程是一门工程性课程,实践性很强,学生在学习时除了对概念、原理等的理解之外,更应结合实际,注重方法、技术等的运用。
全书共分10章。第1章简述软件工程的产生、软件工程学的研究对象与原理、软件开发工具与方法、软件工程的生存期过程和模型以及软件工程标准和文档。第2章对系统的组织结构、处理流程和数据流程的分析进行了阐述,详细叙述了成本估计和效益分析的有关内容。第3章介绍与项目计划有关的风险分析、进度安排和项目组织的有关内容。第4章至第8章叙述软件开发和维护阶段的概念、任务、原理、方法和技术。第9章介绍软件质量的有关概念、分析技术和质量保证体系等。第10章主要介绍有关软件复用的概念和技术,包括领域工程、组件技术、设计模式和应用框架等。如果教学时间有限,则可以只讲授第1至8章,其内容依然是完整的。为了便于学生的学习,本书在介绍有苯内容时,给出了丰富的例子,并且每章均附有相当数量的练习题。
本书主要是在编者近年来讲授软件工程或相关课程的讲义和研究成果的基础上改写而成的,由任胜兵和邢琳共同编著。在改写时,充分考虑了目前高等学校对软件工程课程教与学的要求。一方面强调软件工程的实用性和实时性。对于理论性要求较高而实际中不常用的一些内容,如程序正确性证明、形式化需求分析等,没有详细讨论,而对于当前流行的一些软件工程内容,如UML的应用、复用技术、用例建模、类设计原则等,介绍的比较充分。另一方面在介绍软件工程的有关内容时不仅考虑内容的深度和广度,而且也考虑到教学内容的连续性和系统性。例如编码部分,目前高校均有相当的课程与此有关,故本书没有再对此进行重复介绍,又如本书将所有相关内容纳入到软件生存期的各阶段来介绍,而不是一个一个方法单独处理。
在编写过程中,中南大学信息科学与工程学院博士生导师陈松乔教授提出了不少指导意见,为本书的编写奠定了基础。此外,中南大学信息科学与工程学院副院长杨路明教授、王国军博士等为本书的编写提供了许多很有价值的帮助。谨在此向他们表示衷心感谢。
由于作者水平所限,加之时间仓促,书中错误和不当之处在所难免,还望各位读者批评指正。
编 者
2004年3月