软件工程与计算(卷一):软件开发的编程基础
作者 : 骆斌 主编 邵栋 任桐炜 编著
出版日期 : 2013-05-02
ISBN : 978-7-111-40697-6
适用人群 : 高等院校软件工程、计算机及相关专业本科生。
定价 : 39.00元
教辅资源下载
扩展信息
语种 : 简体中文
页数 : 280
开本 : 16
原书名 :
原出版社:
属性分类: 教材
包含CD :
绝版 :
图书简介

本书是国家精品课程《计算与软件工程》系列课程的第一门课程配套教材。以一个典型的软件开发过程为线索讲授基本的软件工程方法和基于JAVA语言的中小规模软件开发,强调个体级软件开发能力。

图书特色

作为国家级精品课程“软件工程与计算”系列课程的第一门课程配套教材,本书依据CC-SE2004中软件工程优先的理念,以计算示例为线索,侧重在软件工程思想指导下培养个人级小规模软件系统的构建能力,同时让读者初步学习和体会软件工程方法、技术、工具在软件开发中的关键作用。
教材具体内容包括:⑴个人级工程化软件开发的一些基本概念;⑵单个类的基本概念和相应的语法实现,以及相应的工程化实践;⑶多个类开发涉及的面向对象继承和多态的概念和语法,以及使用UML来描述面向对象分析和设计;⑷软件开发简单文档、测试、集成、发布等概念和技术。
本书特色
强调软件工程理念,侧重程序设计教学。以培养读者采用工程化方法构建个人级小规模软件系统能力为目标。
内容安排循序渐进,结构清晰、层次分明。以一个计算示例为线索组织教材内容,该计算示例分三个迭代:独立类开发、多个类开发、具有图形用户界面和网络功能的相对复杂系统开发。在示例开发过程中逐次展开讲述面向对象设计,Java编程语言和个人级软件工程方法、技术与工具。
涵盖主流技术方法,理论与实践相结合。本书内容围绕三个开发迭代,介绍相应的软件工程理论和方法,针对这些理论和方法给出了在示例中的具体实践。同时在每个章节提供了另外一个对应的实践用例,方便读者实践。

图书前言

本书从培养学生软件工程理念出发,侧重于程序设计的教学,以一个计算示例的迭代式开发实践为线索,培养读者在个人开发级别的小规模软件系统构建能力,让读者初步体验软件工程方法与技术在系统开发中的关键作用。本书在写作过程中遵循了以下思路:
  1)以培养读者采用工程化方法构建个人级小规模软件系统能力为目标,内容融合了面向对象程序设计、Java编程语言和个人级软件工程方法与实践。第3、9、12章侧重介绍面向对象程序设计;第4、5、6、7、10、13章侧重介绍Java编程语言;第1、8、11、14章侧重介绍软件工程方法和实践;第2章介绍本书的计算示例。在展开内容时,本书注意了内容之间的融合,介绍软件工程方法和实践时,采用了具体程序作为例子;在介绍程序设计语言时,强调了编码规范等工程规范要求。
  2)以一个计算示例为线索组织内容。该计算示例是一个图书借阅系统,它的开发分为3个迭代:独立类开发、多个类协同系统、具有图形用户界面和网络功能的复杂系统。在示例开发过程中逐次展开面向对象程序设计、Java编程语言和个人级软件工程方法与实践,便于读者由易到难逐步学习。
  3)强调软件工程理论与实践相结合。本书既描述了软件工程的方法和理论,也详细介绍了其具体实践。整本书的内容围绕一个计算示例的三个开发迭代展开,针对每个迭代开发目标,介绍相应的软件工程方法和实践,并且针对这些方法与实践给出了在图书借阅系统开发中的具体实践,同时在每个章节中提供了另外一个对应的实践用例,方便读者练习。
  根据上述写作思路,本书的内容共分为四个部分:
  第一部分“绪论”,介绍了个人级工程化软件开发的一些基本概念,并且给出了计算示例和实践示例的说明。
  第二部分“类职责的设计与实现”,围绕使用工程化方法设计和实现一个基本的类展开,介绍了类的基本概念和相应的语法实现,同时给出了一些工程化实践。
  第三部分“类协作的设计与实现”,在第二部分的基础上围绕使用工程化方法设计和实现多个类协同系统展开,介绍了面向对象的继承和多态的概念及相应语法实现,强调了使用UML来描述面向对象分析和设计,并较为详细地介绍了集成和单元测试的工程实践。
  第四部分“系统的设计与实现”,围绕使用图形用户界面和网络编程构建相对复杂的个人级软件系统展开,介绍了面向对象分析和设计方法,强调了使用简单文档来描述工程行为,并介绍了软件发布和项目回顾的方法。
  本书面向的主要读者对象是学习软件工程入门课程的高等院校低年级学生。
  骆斌老师主持策划了本书,参加了书稿写作的全部讨论,并对整个书稿的具体写作内容进行了指导和审阅。邵栋老师编写了本书的第1、3、8、9、11、12、14章。任桐炜老师编写了本书的第2、4、5、6、7、10、13章。同时,感谢张瑾玉、黄蕾、谢明娟女士以及郑滔、丁二玉、刘钦、刘嘉、庄晨熠先生对本书提出的宝贵意见和帮助,感谢上海交通大学邹恒明教授对本书进行了评审。本书直接或间接引用了许多专家学者的文献和著作,在此向他们表示衷心的感谢。
  由于作者水平有限,书中难免有疏漏和不妥之处,敬请读者批评指正。如对本书有任何意见和建议,可通过电子邮件luobin@nju.edu.cn、dongshao@nju.edu.cn、rentw@software.nju.edu.cn与我们联系。

作者
2012年10月于南京大学北园

上架指导

计算机\软件工程

封底文字

本书分为四个部分,以一个图书借阅系统的开发贯穿全书来组织内容,首先解释个人级工程化开发的一些基本概念,为读者建立一个基本的工程化软件开发观念;接着从面向对象的基本概念入手,介绍基本面向对象程序设计方法,帮助读者从面向对象的角度分析问题,构建解决方案;然后介绍面向对象的继承和多态的概念和相应语法实现,强调使用UML来描述面向对象分析和设计;最后介绍面向对象分析和设计方法,强调使用简单文档来描述工程行为,并介绍软件发布和项目回顾的方法。
本书特点:
知识点介绍全面。通过对基本概念的全面介绍,帮助读者了解一般软件开发的过程,明白如何采用分解的方法来解决大型问题,理解为什么需要采用工程化的方法来开发软件和软件职业,了解软件开发生命周期以及迭代式软件开发等内容。
内容安排循序渐进。围绕图书借阅系统开发的三个迭代开发目标分别介绍相应的软件工程方法和实践,每一部分的内容都是在前一部分内容讲解的基础上展开介绍的帮助读者融会贯通。
理论与实践相结合。为了方便读者实际应用所学的知识,以检验其对知识的掌握程度,本书在每章中特设了“项目实践”部分,达到学以致用的目的。

图书目录

软件工程教材序
《软件工程与计算》使用说明
前言
第一部分 绪论
第1章 软件开发概述  2
1.1 问题、解决方案、算法与编程  2
1.1.1 问题  3
1.1.2 解决方案  3
1.1.3 算法  4
1.1.4 编程  4
1.2 编程  4
1.2.1 机器语言与汇编语言  4
1.2.2 面向问题的语言  6
1.2.3 编译和解释  7
1.3 软件开发与软件工程职业  8
1.4 软件开发过程模型  10
1.5 个人软件过程基础  14
1.5.1 基本原则  15
1.5.2 时间度量  15
1.5.3 缺陷度量  16
1.6 习题  18
第2章 计算系统示例说明  19
2.1 系统功能说明  19
2.1.1 系统功能要求  19
2.1.2 系统功能详细分析  20
2.2 开发阶段规划与约束说明  21
2.2.1 开发阶段规划  21
2.2.2 迭代一开发需求说明  22
2.2.3 迭代二开发需求说明  22
2.2.4 迭代三开发需求说明  25
2.3 项目实践示例说明  28
2.3.1 系统功能要求  28
2.3.2 开发阶段规划  29
2.3.3 迭代一开发要求  29
2.3.4 迭代二开发要求  30
2.3.5 迭代三开发要求  31
2.4 项目实践  33
第二部分 类职责的设计与实现
第3章 类和对象  37
3.1 类和对象的概念  37
3.2 职责的概念  39
3.3 UML与简单的类图  40
3.4 使用Java语言编写简单类  42
3.4.1 Java简介  42
3.4.2 安装Java开发环境  43
3.4.3 编写一个Java程序HelloWorld  43
3.4.4 编写一个类Car  44
3.5 项目实践  45
3.6 习题  46
第4章 类的状态实现——成员变量  47
4.1 变量  47
4.2 成员变量的命名  48
4.2.1 标识符  48
4.2.2 关键字和保留字  49
4.2.3 命名规范  50
4.3 成员变量的类型  51
4.3.1 数据类型概述  51
4.3.2 基本数据类型  51
4.3.3 引用类型  54
4.3.4 数组  55
4.3.5 命名常量  56
4.3.6 枚举类型  57
4.4 成员变量的操作  57
4.4.1 表达式和语句  57
4.4.2 赋值与初始化  61
4.4.3 算术运算  65
4.4.4 关系运算  67
4.4.5 布尔逻辑运算  67
4.4.6 类型转换  68
4.4.7 优先级和结合性  71
4.5 作用域与生存期  72
4.5.1 作用域  72
4.5.2 生存期  73
4.5.3 全局变量  74
4.6 项目实践  74
4.7 习题  75
第5章 类的行为实现——成员方法  76
5.1 方法  76
5.2 参数传递  81
5.3 控制语句  83
5.3.1 顺序语句  83
5.3.2 条件语句  83
5.3.3 switch语句  86
5.3.4 循环语句  87
5.3.5 跳转语句  90
5.4 方法重载  91
5.5 函数副作用  92
5.6 项目实践  93
5.7 习题  94
第6章 类的封装  95
6.1 类的声明  95
6.2 成员变量和方法的访问  97
6.2.1 通过对象的访问  97
6.2.2 静态变量与静态方法  97
6.3 访问控制Ⅰ  99
6.3.1 私有权限  99
6.3.2 默认权限  100
6.3.3 公开权限  101
6.4 封装的作用  103
6.5 对象初始化和清理Ⅰ  105
6.5.1 构造器  105
6.5.2 对象的初始化  107
6.5.3 垃圾回收器  109
6.6 项目实践  110
6.7 习题  111
第7章 Java简单类库的使用  112
7.1 数组  112
7.2 字符串  115
7.2.1 String类  115
7.2.2 常用的字符串操作  116
7.2.3 StringBuffer类和StringBuilder类  121
7.3 容器  122
7.3.1 容器的概念  122
7.3.2 ArrayList类  122
7.3.3 迭代器  124
7.4 输入和输出  124
7.4.1 流的概念  124
7.4.2 字节流和字符流  124
7.4.3 文件的读写  125
7.4.4 缓冲区的读写  126
7.4.5 对象的序列化读写  126
7.4.6 标准输入/输出  128
7.5 项目实践  128
7.6 习题  129
第8章 软件工程工具与调试  130
8.1 集成开发环境  130
8.2 代码管理  131
8.3 版本控制  132
8.3.1 软件配置管理概述  133
8.3.2 版本控制概念  133
8.3.3 常用版本控制工具  135
8.4 基本调试技术  136
8.4.1 概述  136
8.4.2 调试基本过程  137
8.4.3 基本调试操作  137
8.4.4 调试示例  139
8.5 准备测试  142
8.6 项目实践  143
8.7 习题  143
第三部分 类协作的设计与实现
第9章 协作行为分析和设计  146
9.1 类的协作  146
9.2 用例文本描述  148
9.3 用例图  150
9.4 类图  151
9.5 顺序图  153
9.6 项目实践  156
9.7 习题  156
第10章 协作行为的实现  157
10.1 类的复用  157
10.1.1 聚合和组合  157
10.1.2 内部类  159
10.1.3 继承  159
10.1.4 接口  168
10.1.5 多态  170
10.2 对象初始化和清理Ⅱ  174
10.3 访问控制Ⅱ  174
10.4 异常处理  176
10.4.1 异常的概念  176
10.4.2 异常的抛出  177
10.4.3 异常的捕获和处理  178
10.4.4 Java标准异常  179
10.4.5 自定义异常  181
10.5 项目实践  181
10.6 习题  184
第11章 集成与测试  185
11.1 自动化集成  185
11.1.1 集成概念  185
11.1.2 集成过程  185
11.1.3 自动化构建工具Ant  186
11.1.4 集成频率  192
11.2 测试的简单分类  192
11.3 单元测试  193
11.3.1 单元测试是什么  193
11.3.2 如何进行单元测试用例设计  193
11.4 自动化单元测试(JUnit)  196
11.4.1 简单JUnit测试用例  196
11.4.2 断言  196
11.4.3 骨架  197
11.4.4 套件  198
11.4.5 测试执行器  199
11.4.6 JUnit 4新特性  200
11.5 集成测试  202
11.6 系统测试  202
11.7 项目实践  203
11.8 习题  204
第四部分 系统的设计与实现
第12章 软件系统分析与设计  206
12.1 系统  206
12.2 系统分析  207
12.2.1 面向对象分析基础  207
12.2.2 软件需求文档  208
12.3 系统设计  209
12.3.1 CRC卡  209
12.3.2 图书借阅系统CRC卡设计  211
12.3.3 软件设计文档  215
12.4 项目实践  215
12.5 习题  216
第13章 Java部分常用类库  217
13.1 图形用户界面编程  217
13.1.1 Swing  217
13.1.2 常用容器  218
13.1.3 常用组件  220
13.1.4 布局管理器  228
13.1.5 事件处理  231
13.2 网络通信编程  234
13.2.1 网络通信基本概念  234
13.2.2 套接字编程  235
13.3 项目实践  244
13.4 习题  245
第14章 发布与项目总结  246
14.1 程序部署与发布  246
14.2 用户培训  248
14.3 文档  249
14.4 项目评审与回顾  251
14.5 项目实践  252
14.6 习题  252
附录A 软件工程道德和职业实践规范(5.2版)的八项规则  253
附录B Java程序设计补充阅读  257
附录C 图书借阅系统设计与实现说明  261
参考文献  267