购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

前言

编写一本适合本科生学习的软件工程教材,实在是一件很困难的事情。其原因主要有三:一是软件工程这门课程所涉及的内容十分宽泛,既涉及技术层面,又涉及管理层面;既关联实际问题的理解和描述,又关联软件工具的使用;二是在社会需求的拉动下,软件工程技术发展非常迅速,新概念、新技术、新方法不断出现;三是作为一门技术学科,其内容具有很强的技术特征,而且仅仅走过了40余年的发展历程,与其他学科相比,例如数学、物理、化学以及建筑等,还是相当“年轻”的一门学科。因此,在教材内容的选取与组织方面,在有关概念的表述方面,实 在是一种挑战。

通过参与杨芙清院士主持的国家科技攻关项目,通过参与张效祥院士主编的《计算机科学技术百科全书》,通过参与国家有关标准规范的制定,特别是通过几年来的教学实践,对软件工程有 关的知识还有些领悟,有所积累。

在教材内容的选取方面,基本遵循以下两条原则:

一是选取的内容能够有助于提高读者求解软件的能力,特别是提高读者直接参与软件开发实 践和工程管理的能力;

二是选取的内容基本上是基础性的,是比较“稳定”的,尽量介绍有关软件工程的国际标准,尽量讲解成熟技术。

在教材内容的组织方面,依据内容选取的基本原则,基于对软件开发本质的认识,紧紧围绕软件开发,主要讲解了软件工程的两大技术问题,一是开发逻辑,二是开发途径。其中,开发逻辑涉及软件生存周期过程、工程中常用的软件生存周期模型——有关过程、活动和任务的组织框架,以及项目软件生存周期的规划与监控;开发途径涉及结构化方法和面向对象方法,以及支持软件评估所需要的软件测试技术等。并且简单介绍作用于开发活动上的一些管理活动,其 中重点介绍支持管理活动的一些基础性技术,例如规模、成本、进度估算等。

本书的内容组织可图示如下:

在概念的表述方面,依据内容组织的特定层面,尽量引用《计算机科学技术百科全书》中有关的条目和相关国际标准中的定义,并注重其中概念语境和语义的讲解。在不失严谨的条件下,尽量采用“图-文”形式,使所表达的概念容易理解。

在第一章绪论中,通过软件工程概念的提出以及发展历程,试图回答软件开发的本质。

在第二章软件过程中,通过讲解ISO/IEC12207标准,试图回答软件开发需要进行哪些映射;通过讲解一些典型的软件生存周期模型,试图回答组织一个软件工程中活动的框架;通过应用软件生存周期过程和软件生存周期模型,试图回答如何形成一个软件工程项目的生存周期 过程,即如何正确给出求解软件的逻辑。

在第三章需求与需求规约中,讲解了软件开发中的最重要的概念——需求和需求规约,基本性 质以及作用,试图回答问题定义在软件开发中的重要性。

在第四章结构化分析和第五章结构化设计中,从“如何做”这一视角,详细讲解了结构化分析和 结构化设计,以期回答如何开展软件工程中的需求和设计活动。

在第六章和第七章中,从“方法学”这一视角,详细讲解了UML(统一模型化语言)和RUP(统一 软件开发过程),还是以期回答如何开展软件工程中的需求、设计等活动。

在第八章软件测试中,通过讲解软件测试技术,包括基于程序结构的路径测试技术和几个基于 软件规约的功能测试技术,试图回答如何支持对软件系统/产品质量的评估。

在第九章中,基于一个典型的管理模型,通过讲解软件工程项目管理的基本活动,以及其中具有基础性的管理技术(例如规模、成本和进度估算方法等)和过程评估准则——CMM,试图回 答在开展软件工程中的诸多活动中,如何对之进行有效管理。

在第十章计算机辅助软件工程中,通过讲解软件工具、开发环境以及相关模型,试图回答实现软件开发自动化的基本途径。

在第十一章内容总结一章中,对本书中主要内容进行了系统的归纳和总结,以帮助读者把书读 薄。

由于时间仓促,更主要的是由于水平问题,本书中依然还会存在很多不足和错误,真诚地希望读者提出,并通过电子邮件(wlf@sei.pku.edu.cn)和其他方式,进行有意义的讨论。 G6Wng8H7B/NC7SpZcKyf8SyTyHWZGwCHiTpXseZHPuitvXatoox9aoK8kz42wAs2

点击中间区域
呼出菜单
上一章
目录
下一章
×