应老师要求,我们班学生要自修《软件工程》一书。
前言:
随着信息技术的不断发展,软件产业已经成为信息产业的核心和国民经济信息化的基础。在软件产业走向工程化和规模化发展的过程中,软件工程继承了软件开发的过程、方法和工具题,已解决软件生产的质量和效率问题为宗旨,对软件产业的发展起到了重要的技术保障和促进作用,最终实现软件的工业化成产。
从“软件工程”概念提出至今,有关软件的概念、思想、方法和技术层出不穷。特别是20世纪90年代以来,软件工程不仅从方法论的角度为管理人员和开发人员提供可见的结构好热有序的思考方式,而且从大量软件开发的成功经验中总结设计模式、框架、部件库等,软件工程正在逐步发展为一门成熟的专业学科。
软件工程学科设计的内容十分广泛,包括理论、方法、技术、标准、工具和管理等诸多方面。本书结合当前软件工程的理论和实践,以当前普遍流行的面向对象技术和UML语言为核心,介绍软件工程的基本概念、技术方法和实践原则。在过去的软件工程教学中,学生通常孤立的学习一些编程技术和软件工程技术,而缺乏软件开发整个过程的系统性认识和实践性应用。本书以IEEE最新发布的软件工程体系为基础构建内容框架,采用IEEE给出的一系列软件工程文档标准,从“可实践”软件工程的角度描述需求分析、软件设计、软件实践、软件测试以及软件开发的管理,力求使读者在学习基本理论和方法的过程中学会运用软件工程的思想解决实际问题。
本书反映了作者十余年在软件开发方面的实践经验和近几年在软件工程方面的教学成果,强调理论与实践的有机结合,始终以大量的开发实例贯穿全书,并注重内容的新颖性、条理性、系统性和实用性,期待所有的读者能够从本书中得到有价值的收获,并在自己的软件工程实践中提升自己解决问题的能力。
目标读者:
本书适合作为计算机类专业高年级本科生和低年级研究生学习软件工程课程的教材,软件从业人员同样可以将其作为参考书来充实自己在软件工程方面的知识。
本书要求读者具备计算机专业的基础知识,掌握程序设计基础。数据结构、操作系统、数据库原理等知识,具有一定的编程能力。
本书的组织结构:
全书共有十一章,可以作为一个学期的课程进行教学。
● 第 1 章概括介绍软件工程的历史发展和基本原理,讨论IEEE和ACM最新提出的软件工程体系和软件工程职业道德规范;
● 第 2 章讨论软件过程的基本思想和活动,介绍常见的软件工程模型和微软开发过程的实际案例;
● 第 3 章讨论软件工程的管理技术,主要涉及人员管理、沟通管理、项目规划和风险管理等内容;
● 第 4 章、第 6 章至第 10 章以面向对象技术为核心,全面、深入、系统地介绍软件开发各个阶段的任务、过程、方法和工具;
● 第 5 章介绍软件工程中的形式化方法,包括时序逻辑、Z语言、Petri网等;
● 第 11 章介绍软件演化的概念和方法,包括软件进化的特性、软件维护活动、逆向工程与再工程等内容。
本书的编写:
孙家广院士组织的本书编写工作,刘强副教授编写了全书的第 1 章至第 4 章以及第 6 章至第 11 章,刘璘副教授编写了本书的第 5 章,研究生刘和万欣分别协助第 6 章/第 9 章和第 11 章的资料准备和编写工作。
本书内容在清华大学计算机系和软件学院的本科生课程教学中使用,书中教学案例Minilibrary系统是课程实践案例。