软件工程(第4版)

软件工程(第4版)"

作者:李代平,杨成义
ISBN:9787302473350
定价:¥59
字数:千字
页数:
出版时间:2017.10.01
开本:
版次:4-9
装帧:
出版社:清华大学出版社
简介

本书是在《软件工程》(第3版)的基础上,根据读者的建议进行调整和修改而成,在原有基础上加强了对方法论的介绍。针对软件工程的基本理论、可行性研究、软件需求分析、总体设计、详细设计、面向对象分析与设计、接口设计、软件实现、软件质量、软件测试、软件维护、软件项目管理与计划等知识进行了严格论述,以实例配合解释概念,每章都配有丰富的习题。

与本书配套出版的有《软件工程习题解答(第4版)》和《软件工程实践与课程设计》。本书适合作为高等学校计算机、软件工程等相关专业本科生的教材,也可以作为相关工程技术人员的参考书。

前言

1. 写作背景

在计算机软件开发的工程科学技术中,软件工程的概念、原理、技术与方法已成为计算机科学与技术范畴的一项重要内容,在计算机科学技术领域占据无可争议的主流地位。作为软件技术人员,接受软件工程的概念并不难,但是要真正理解、掌握和运用这门先进的技术并完整地进行系统开发,是有一定难度的。鉴于此,编者编写了这本关于软件工程系统分析、设计和实施的教材,以使更多同行受益。 

几年前,编者编写的《软件工程(第3版)》备受老师和其他读者欢迎。这本书对于应用型本科学校的读者而言,有些内容显得深了些。为更好地反映最近几年软件工程领域的发展现状,编者根据普通高等教育“十二五”国家级规划教材的指导精神,总结近年来教学和科研的经验,在第3版基础上进行了调整和增删,形成了这本第4版教材。为了方便学校教学,编者还编写了配套的《软件工程习题解答(第4版)》(ISBN 9787302473336)和《软件工程实践与课程设计》(ISBN 9787302478676)。 

2. 本书结构

本书由以下四部分组成: 

第一部分基础理论,包括第1~3章。 

第二部分结构化方法,包括第4~6章。 

第三部分面向对象方法与实现,包括第7~11章。 

第四部分质量与工程管理,包括第12~15章。 

3. 本书特点

本书对有用的概念都进行了严格的论述,每一个概念都有相应的例子解释,同时每章都配有习题。此外,编者还编写了与本书配套的《软件工程习题解答(第4版)》和《软件工程实践与课程设计》,帮助读者巩固所学知识。 

4. 适用范围

软件工程是软件系统开发课程的教科书,适合作为软件工程方面课程的教材,也可作为相关工程技术人员的参考用书。 

在选修本课程之前,读者应该具有计算机的基础知识,掌握数据结构和数据库技术。另外,如果具有算法语言的编程经验,会有助于深入理解系统开发过程。 

5. 编写方法

本书是编者根据近20年来对软件工程学、面向对象方法等的教学与研究,以及编者负责或参与几十项软件开发项目的实践经验,并结合软件开发新技术编写而成的。根据编者的教学经验,读者学习一门新技术的时候,教材是非常重要的。因此,编者在修订的时候,对于部分章节和内容进行了更新和修改,以便读者更好地学习与掌握相关知识。 

6. 如何使用本书

根据实际情况,在教授时建议安排54~60学时。教师可以按照自己的风格和喜好删减章节,也可以根据教学目标灵活调整章节顺序。

第1章绪论(2学时) 

第2章基本理论(2学时) 

第3章可行性研究(2学时) 

第4章需求分析(4学时) 

第5章总体设计(4学时) 

第6章软件详细设计(4学时) 

第7章面向对象分析(4学时) 

第8章面向对象设计(2学时) 

第9章用户界面设计(2/4学时) 

第10章数据库及其接口设计(2学时) 

第11章软件实现(2学时) 

第12章软件质量(2学时) 

第13章软件测试(2学时) 

第14章软件维护(2学时) 

第15章软件项目管理与计划(2学时) 

本书的编写过程中,受到广东理工学院李代平负责的广东省级重点学科建设课题——一级学科“计算机科学与技术”项目的支持。信息工程系胡致杰、赖小平、刘建友和张俊林参加了资料的收集与整理工作。由于软件工程的知识面广,书中不可能面面俱到,加上时间仓促,作者水平有限,书中的不足之处在所难免,恳请读者批评指正。

编者

2017年5月于振华楼

第3版

1. 写作背景

软件工程是指导计算机软件开发的工程科学技术。软件工程的概念、原理、技术与方法已成为计算机科学与技术范畴的一项重要内容。用软件工程的思想进行软件设计与开发的先进性众所周知,它在计算机科学技术领域占据无可争议的主流地位。作为软件技术人员,接受软件工程的概念并不难,但是要真正理解、掌握和运用这门先进的技术并完整地进行系统开发,是有一定难度的。鉴于此,编者编写了这本关于软件工程系统分析、设计和实施的教材,以使更多同行受益。

几年前,编者编写的《软件工程(第2版)》备受老师和读者欢迎。为更好地反映最近几年软件工程领域的发展现状,编者根据普通高等教育“十二五”国家级规划教材的指导精神,总结近年来教学和科研的经验,在第2版基础上做了调整和增删,形成了这本教材。主要从下述4个方面进行了精心修改; 删掉了一些较陈旧或较次要的内容; 增加了一些较新颖或较重要的内容; 用UML的概念与符号重新改定了有关面向对象方法学的内容; 结构上也进行了必要的调整。

2. 本书结构

本书由以下四部分组成:

第一部分基础理论,包括第1~3章。

第二部分结构化方法,包括第4~6章。

第三部分面向对象方法与实现,包括第7~16章。

第四部分质量与工程管理,包括第17~20章。

3. 本书特点

本书对各章的概念都进行了严格的论述,每一个概念都有相应的例子解释,同时各章都配有习题。编者还编写了与本书配套的《软件工程习题与解答》,帮助读者巩固所学知识。

4. 适用范围

软件工程是软件系统开发课程的教科书,适合开设有软件工程课程的大学高年级和低年级研究生作为教材,也可作为工程技术人员的参考用书。

在选修本课程之前,读者应该具有计算机的基础知识,掌握数据结构和数据库技术。另外,如果具有算法语言的编程经验,会有助于深入理解系统开发过程。

5. 编写方法

本书是编者根据近10年来对软件工程学、面向对象方法等的教学与研究,以及编者负责或参与几十项软件开发项目的实践经验,并结合软件开发新技术编写而成。根据编者的教学经验,读者学习一门新技术的时候,教材是非常重要的。因此,编者在修订的时候,对于部分章节和内容做了更新和修改。

6. 如何使用本书

根据实际情况,在教授时建议安排54~60学时。教师可以按照自己的风格和喜好删除章节,也可以根据教学目标灵活调整章节顺序。另外,前面带“*”的部分为选学内容。

第1章绪论(2学时)

第2章基本理论(2学时)

第3章可行性研究(2学时)

第4章需求分析与*体系结构(4学时)

第5章总体设计(4学时)

第6章软件详细设计(4学时)

第7章面向对象方法概论(4学时)

第8章模型(2学时)

第9章对象分析(4学时)

第10章关系分析(4学时)

第11章控制驱动部分的设计(4学时)

第12章问题域部分设计(4学时)

第13章用户界面设计(2/4学时)

第14章数据库及其接口设计(2学时)

第15章*形式化方法(0/4学时)

第16章软件实现(2学时)

第17章软件质量(2学时)

第18章软件测试(2学时)

第19章软件维护(2学时)

第20章软件项目管理与计划(2学时)

编者

2011年1月于广州小谷围岛

第2版

1. 本书背景

本书是根据普通高等教育“十一五”国家级规划教材的指导精神而编写的。出版后我们在教学的使用过程中,觉得有许多地方不是很理想,因此,我们根据使用该教材的教师和读者的意见,对原书在结构和内容上做了很大的调整和修改。

随着科学技术的进步,软件的理论与开发方法不断涌现。软件工程是指导计算机软件开发的工程科学技术。软件工程的概念、原理、技术与方法已成为计算机科学与技术的一项重要内容。

用软件工程进行软件设计与开发的先进性是众所周知的,它在计算机科学技术领域占据了无可争议的主流地位。作为软件技术人员,接受软件工程的概念并不难,但是要真正理解、掌握和运用这门先进的技术并完整地进行系统开发,是有一定难度的。鉴于此我们编写了本书,目的是向读者提供一本关于软件工程系统分析、设计和实施的教科书,以使更多同行受益。

2. 本书结构

本书由四部分组成:

第一部分基础理论,包括第1~3章。

第二部分结构化方法,包括第4~6章。

第三部分面向对象方法与实现,包括第7~15章。

第四部分质量与工程管理,包括第16~19章。

3. 本书特点

本书对每章的概念都进行了严格的论述,每一个概念都有相应的例子解释,同时每章都配有习题,使读者巩固所学知识。

4. 适用范围

软件工程是软件系统开发课程的教科书。讲授时间一般为40~60学时。本书适合开设有软件工程课程的大学高年级本科生和低年级研究生作教材,也可作为工程技术人员的参考用书。

在选修本课程之前,读者应该具有计算机的基础知识,掌握数据结构和数据库技术。同时具有可视化类语言的编程经验,会有助于深入理解系统开发过程。

5. 编写方法

本书是作者根据近10年来对软件工程学、面向对象方法等的教学与研究,以及作者领导或参与的20项软件项目开发的实际应用经验,并结合软件开发新技术编写而成。根据过去的教学经验,读者学习一门新技术,教材是非常重要的。因此,在修订的时候,对于部分章节和内容做了调整和修改。

6. 如何使用本书

根据读者的实际情况,教师在教授本书时,建议一般在54~60学时。可以按照自己的风格和喜好删除章节,也可以根据教学目标灵活调整章节顺序。另外,前面带“*”为选学内容。

第1章绪论(1学时)

第2章基本理论(2学时)

第3章可行性研究(2学时)

第4章软件需求分析(4学时)

第5章总体设计(4学时)

第6章软件详细设计(4学时)

第7章面向对象方法概论(4学时)

第8章模型(2学时)

第9章对象分析(4/6学时)

第10章关系分析(4/6学时)

第11章面向对象设计原则(2学时)

第12章对象设计(5/6学时)

第13章接口设计(4/6学时)

*第14章形式化方法(4学时)

第15章软件实现(2学时)

第16章软件质量(2学时)

第17章软件测试(2学时)

第18章软件维护(2学时)

第19章软件项目管理与计划(2学时)

由于软件工程知识面广,在介绍中不能面面俱到。加上时间仓促,作者水平有限,书中的不足之处在所难免,恳请读者批评指正。

编者

2007年5月于小谷围岛

第1版

1. 关于本书

软件工程是指导计算机软件开发的工程科学。人们希望通过用工程技术和管理方法使软件开发工程化,由此产生了软件工程学。软件工程学是采用工程的概念、原理、技术与方法,把当前先进的技术与已经实践证明了的正确管理方法相结合来开发软件。从20世纪60年代提出软件工程的概念以来,软件工程技术逐渐成熟,现在已成为计算机科学技术中的一门重要学科。但是,还有些公司和个人仍然在随意开发软件,将编写高质量的程序与开发系统混为一谈,也有些软件专业的学生或软件开发人员还没有掌握软件开发出现的新技术,鉴于此我们编写了本书。

本书是作者根据近10年来对软件工程学、面向对象方法等教学与研究的经验,以及领导或参与的20项软件项目开发的实际应用经验,并结合软件开发新技术编写而成。根据过去的教学经验,读者学习一门新技术,教材是非常重要的。因此,我们在编写本书之前,在各方面进行了充分的准备。

2. 本书结构安排

本书由16章构成,内容如下。

第1章: 绪论。介绍的主要内容有软件的特点、软件的发展、软件危机、软件工程、软件工程与方法学、软件工程的基本原理等。

第2章: 软件工程的基本理论。介绍的主要内容有软件工程过程、软件生存周期、软件生存周期模型、软件开发方法、软件开发工具。

第3章: 可行性研究。介绍的主要内容有可行性研究的任务与步骤、系统分析、分析原理、结构化分析、系统流程图、数据流图、数据字典、成本效益分析、可行性研究的文档、项目开发计划。

第4章: 软件需求分析与概念模型。介绍的主要内容有需求分析、IDEF方法、概念模型与规范化。

第5章: 总体设计。介绍的主要内容有软件设计的重要性、设计过程、软件总体设计、设计基本原理、体系结构设计、结构化设计、IDEF0图的设计方法、软件结构优化。

第6章: 软件细节设计。介绍的主要内容有细节设计任务与方法、设计表示法、结构化程序设计、结构化定理、图形工具,面向数据结构的设计。

第7章: 面向对象方法学。介绍的主要内容有传统方法学的缺点、面向对象的基本概念、对象模型、动态模型、功能模型。

第8章: 面向对象分析。介绍的主要内容有面向对象分析的基本过程、对象的发现和标识、发现对象方法、定义属性、定义服务、定义结构、实例连接、消息连接、建立功能模型。

第9章: 面向对象设计。介绍的主要内容有设计的准则、启发式规则、系统分解、设计问题域子系统、设计任务子系统、设计数据管理子系统、面向对象程序设计、软件重用、统一建模语言UML。

第10章: 形式化方法。介绍的主要内容有形式化方法的基础知识、有限状态机(FSM)、Petri网的基本原理、净室方法学、客户/服务器模式。

第11章: 用户界面设计。介绍的主要内容有界面软件开发综述、人机交互子系统设计、图形用户界面设计、多媒体用户界面设计、用户界面模型、用户界面的描述方法与技术等。

第12章: 软件质量。介绍的主要内容有软件质量的概述、软件质量的度量和评价、软件质量保证、技术评审与审查,软件的可靠性。

第13章: 软件实现。介绍的主要内容有程序设计语言的特性及选择、程序设计风格、程序设计效率、冗余编程、软件容错技术。

第14章: 软件测试。介绍的主要内容有软件测试概述、测试方法、测试用例的设计、测试过程、调试。

第15章: 软件维护。介绍的主要内容有软件维护概述、软件可维护性、软件维护的特点、软件维护的实施、维护“老化代码”、逆向工程和再工程。

第16章: 软件项目管理与计划。介绍的主要内容有软件项目管理概述、项目管理过程、软件开发成本估算、风险分析、进度安排、软件项目的组织。

此外,本书的最后给出了一个附录,列出了软件产品的主要文件,以供读者参考。

3. 本书特点

本书侧重于理论联系实际,从实用性、易懂性出发,重点突出,内容丰富而实用。在详细介绍理论的同时,给出了部分示例,以利于读者掌握其实际应用的方法。此外,为了便于读者巩固所学的知识,在各章的后面都附有相应的小结与练习题。

4. 适用对象

本书可作为大专院校相关专业高年级学生的教材和参考书,也可供计算机专业的高级人员参考。

本书由李代平编写,另外张信一参加了第9、11、12章的编写,彭重嘉参加了第13~16章的编写。

由于作者水平有限,书中的不足之处在所难免,恳请读者批评指正。

编者

2002年7月

目录

第1章绪论

1.1软件概述

1.1.1什么是计算机软件

1.1.2软件的特点

1.1.3软件的分类

1.1.4软件的发展

1.1.5软件危机

1.2软件工程概述

1.2.1软件工程与方法学

1.2.2软件工程的基本原理

1.2.3软件工程的目标

1.2.4软件工程的内容

1.2.5软件工程原则

1.2.6软件工程面临的问题

小结

综合练习1

第2章基本理论

2.1软件工程过程

2.2软件生命周期

2.2.1软件分析时期

2.2.2软件设计时期

2.2.3编码与测试时期

2.2.4运行与维护时期

2.3软件生命周期模型

2.3.1软件生命周期模型的概念

2.3.2瀑布模型

2.3.3原型模型

2.3.4增量模型

2.3.5螺旋模型

2.3.6喷泉模型

2.3.7基于知识的模型

2.3.8变换模型

2.4软件开发方法

2.4.1结构化方法

2.4.2Jackson方法

2.4.3维也纳开发方法

2.4.4面向对象的开发方法

2.5软件工具与开发

2.5.1软件工具箱

2.5.2软件开发环境

2.5.3计算机辅助软件工程

小结

综合练习2

第3章可行性研究

3.1可行性研究任务与步骤

3.1.1研究任务

3.1.2研究步骤

3.2系统分析

3.2.1系统分析员

3.2.2面临的问题域

3.2.3通信技术

3.3分析原理

3.3.1信息域

3.3.2建立模型

3.3.3分解

3.4系统模型与模拟

3.4.1系统模型

3.4.2系统建模和模拟

3.5成本效益分析

3.6可行性研究的文档

3.7项目开发计划

3.7.1方案选择

3.7.2制订项目开发计划

小结

综合练习3

第4章软件需求分析

4.1需求分析

4.1.1需求分析的特点

4.1.2需求分析的原则

4.1.3需求分析的任务

4.1.4需求分析的方法

4.2结构化分析

4.2.1自顶向下逐层分解

4.2.2结构化分析步骤

4.3系统流程图

4.4数据流图

4.4.1基本图形符号

4.4.2画数据流图

4.4.3结构化分析方法的应用

4.5数据字典

4.5.1内容及格式

4.5.2数据字典的实现

小结

综合练习4

第5章总体设计

5.1软件设计的重要性

5.2设计过程

5.3软件总体设计

5.4设计基本原理

5.4.1抽象

5.4.2细化

5.4.3模块化

5.4.4软件体系结构

5.4.5程序结构

5.4.6数据结构

5.4.7软件过程

5.5体系结构设计

5.5.1软件结构图

5.5.2模块的大小

5.5.3扇出和扇入与深度和宽度

5.5.4模块的耦合

5.5.5模块的内聚

5.5.6结构设计的一般准则

5.5.7模块的作用域与控制域

5.6结构化设计

5.6.1数据流的类型

5.6.2过程步骤

5.6.3变换分析设计

5.6.4事务分析设计

5.6.5混合流设计

5.6.6结构化设计方法应用示例

5.6.7设计的后期处理

5.7软件结构优化

5.7.1软件结构设计优化准则

5.7.2软件结构的HIPO图

小结

综合练习5

第6章软件详细设计

6.1详细设计的任务与方法

6.1.1详细设计的基本任务

6.1.2详细设计方法

6.2设计表示法

6.2.1结构化语言

6.2.2判定表

6.2.3判定树

6.3结构化程序设计

6.3.1流程图程序

6.3.2三种基本控制结构

6.3.3常用符号

6.3.4正规程序

6.3.5基本程序

6.3.6结构化程序

6.4结构化定理

6.4.1程序函数

6.4.2基本定理

6.4.3非结构化转换为结构化

6.4.4常见错误

6.5过程设计语言

小结

综合练习6

第7章面向对象分析

7.1面向对象的相关概念

7.1.1对象

7.1.2类

7.1.3属性

7.1.4服务(操作或方法)

7.1.5封装

7.1.6继承

7.1.7消息

7.1.8结构与连接

7.2UML的基本图标

7.3对象分析

7.3.1用户需求与研究问题域

7.3.2发现对象方法

7.3.3定义属性

7.3.4定义服务

7.4一般特殊结构

7.5整体部分结构

7.6实例连接

7.6.1简单的实例连接

7.6.2复杂的实例连接及其表示

7.7消息连接

小结

综合练习7

第8章面向对象设计

8.1系统总体方案

8.2软件体系结构

8.3设计环境

8.3.1为适应编程环境的调整

8.3.2对象设计的步骤

8.4完善对象的细节

8.5设计算法

8.5.1选择算法

8.5.2选择数据结构

8.6关联设计

8.6.1单向关联

8.6.2双向关联

8.7设计优化

小结

综合练习8

第9章用户界面设计

9.1人的因素

9.1.1分析活动者

9.1.2从Use Case分析人机交互

9.1.3分析处理异常事件的人机交互

9.1.4命令的组织

9.1.5输出信息的组织结构

9.2界面设计风格

9.2.1菜单的选择

9.2.2对话框

9.2.3窗口

9.3人机界面的设计准则

9.4人机界面设计过程

9.4.1用户界面模型

9.4.2界面支持系统

9.4.3界面元素

9.4.4设计的形式

9.5描述方法与技术

9.5.1灵境技术

9.5.2多通道人机交互技术

小结

综合练习9

第10章数据库及其接口设计

10.1数据管理系统及其选择

10.2技术整合

10.3数据接口

10.4对象存储方案和数据接口的设计策略

10.4.1针对文件系统的设计

10.4.2针对RDBMS的设计

10.4.3使用OODBMS

小结

综合练习10

第11章软件实现

11.1程序设计语言的特性及选择

11.1.1程序设计语言特性

11.1.2程序设计语言的选择

11.2程序设计风格

11.3程序设计效率

11.3.1代码效率

11.3.2内存效率

11.3.3I/O效率

11.4冗余编程

11.5软件容错技术

11.5.1容错软件

11.5.2容错的一般方法

11.5.3容错软件的设计过程

11.5.4软件的容错系统结构

小结

综合练习11

第12章软件质量

12.1软件质量概述

12.1.1软件质量的定义

12.1.2软件质量特性

12.1.3软件质量特性之间的竞争

12.2软件质量的度量和评价

12.2.1软件质量的度量

12.2.2软件质量度量的分类

12.2.3软件质量评价

12.3软件质量保证

12.3.1软件质量保证的概述

12.3.2软件质量保证原则

12.3.3软件质量保证计划

12.3.4软件质量保证的措施

12.3.5软件质量管理小组

12.4技术评审与审查

12.4.1评审过程

12.4.2选择参加评审的成员

12.4.3评审的管理和组织

12.4.4评审的方法

12.4.5走查和审查

12.4.6开发过程的评审

12.4.7对评审的综合评价

12.5软件的可靠性

小结

综合练习12

第13章软件测试

13.1软件测试概述

13.1.1软件测试的目的

13.1.2软件测试的原则

13.2测试方法

13.2.1静态测试

13.2.2动态测试

13.3测试用例的设计

13.3.1白盒技术

13.3.2黑盒技术

13.4测试过程

13.4.1软件测试过程中的信息

13.4.2软件测试的步骤与各开发阶段的关系

13.4.3单元测试

13.4.4集成测试

13.4.5确认测试

13.5调试

小结

综合练习13

第14章软件维护

14.1软件维护概述

14.1.1软件维护的定义

14.1.2影响维护工作的因素

14.1.3维护成本

14.2软件可维护性

14.2.1软件可维护性的定义

14.2.2可维护性的度量

14.3软件维护的特点

14.3.1非结构化维护和结构化维护

14.3.2维护的困难性

14.3.3软件维护的费用

14.4软件维护的实施

14.4.1维护的组织

14.4.2维护的流程

14.4.3维护技术

14.4.4维护的副作用

14.5维护“老化代码”

14.6逆向工程和再工程

14.6.1预防性维护

14.6.2逆向工程的元素

14.6.3再工程中的重构技术

小结

综合练习14

第15章软件项目管理与计划

15.1软件项目管理概述

15.1.1软件管理的对象

15.1.2软件开发中的资源

15.1.3分解技术

15.2项目管理过程

15.3软件开发成本估算

15.3.1软件开发成本估算方法

15.3.2软件开发成本估算的经验模型

15.4风险分析

15.4.1风险识别

15.4.2风险估算

15.4.3风险评价

15.4.4风险驾驭和监控

15.5进度安排

15.5.1软件开发小组人数与软件生产率

15.5.2任务的确定与并行性

15.5.3制定开发进度计划

15.5.4进度安排的图形方法

15.5.5项目的追踪和控制

15.6软件项目的组织

15.6.1软件项目管理的特点

15.6.2软件项目组织的建立

15.6.3人员配备

小结

综合练习15

参考答案

参考文献

作者简介

编辑推荐

1. 本书针对软件工程的基本理论、可行性研究、软件需求分析、总体设计、详细设计、面向对象分析与设计、接口设计、软件实现、软件质量、软件测试、软件维护、软件项目管理与计划等知识进行严格论述,以实例配合解释概念。配有丰富习题。

2. 本书与《软件工程习题解答(第4版)》(ISBN9787302473350)和《软件工程实践与课程设计》(ISBN9787302478676)配套使用,学习效果**。

作者寄语

1. 本书针对软件工程的基本理论、可行性研究、软件需求分析、总体设计、详细设计、面向对象分析与设计、接口设计、软件实现、软件质量、软件测试、软件维护、软件项目管理与计划等知识进行严格论述,以实例配合解释概念。配有丰富习题。

2. 本书与《软件工程习题解答(第4版)》(ISBN9787302473350)和《软件工程实践与课程设计》(ISBN9787302478676)配套使用,学习效果**。

电子资料

www.luweidong.cn

下一个