新書推薦:
《
跨界:蒂利希思想研究
》
售價:HK$
109.8
《
千万别喝南瓜汤(遵守规则绘本)
》
售價:HK$
44.7
《
大模型启示录
》
售價:HK$
112.0
《
东法西渐:19世纪前西方对中国法的记述与评价
》
售價:HK$
201.6
《
养育男孩:官方升级版
》
售價:HK$
50.4
《
小原流花道技法教程
》
售價:HK$
109.8
《
少女映像室 唯美人像摄影从入门到实战
》
售價:HK$
110.9
《
詹姆斯·伍德系列:不负责任的自我:论笑与小说(“美国图书评论奖”入围作品 当代重要文学批评家詹姆斯·伍德对“文学中的笑与喜剧”的精湛研究)
》
售價:HK$
87.4
內容簡介:
本书以一个案例的演变模拟不断变化的用户需求,按照增量迭代的开发模式,将碎片化的功能开发、用户交互、数据处理等知识,以及软件设计、软件测试及敏捷开发的最佳实践,与软件开发的原理、技术和工具融合到设计、编码、调试及测试的构造过程。内容包括软件构造的一般原理(如依赖倒转原则、增量迭代)、常用技术(如表驱动编程、测试驱动开发)、软件设计(契约式设计、设计模式)、软件知识(如软件测试、软件复用)及软件构造的工作要素(如编码规范、构造工具)和活动(如设计、编码、调试、测试、交付)。本书提供配套的电子课件、案例源程序、例子代码、教学参考方案等。
關於作者:
李劲华,(德国)计算机科学博士,教授,博导。山东省计算机类专业及大学计算机课程教学指导委员会委员,青岛市船舶建造智能精度测量工程研究中心主任,山东省工业大数据发展创新实验室主任。长期讲授软件工程、编译原理、IT项目管理、软件体系结构、软件测试、《计算机导论》(双语)等课程。主编教材《编译原理》获十二五普通高等教育本科级国家规划教材,主编教材《基于案例的软件构造教程》获山东省普通高等教育一流教材,在中国大学MOOC上主讲课程《软件构造》获得山东省一流本科课程。近年来重点研究大数据技术、智能算法、新型IT的软件技术及其工业级应用。主持和参与过多项国家/省自然科学基金项目、省部级科研项目以及企业研究课题。在IEEE Internet of Thing、IEEE Network Magazine以及计算机辅助设计与图形学学报等专业杂志发表论文40余篇;首位获批发明专利3件、软件著作权10件。
目錄 :
目 录第1章 软件开发概述11.1 程序与软件11.1.1 从程序到软件11.1.2 软件类型21.1.3 程序设计与软件开发21.2 软件生存周期41.2.1 使用角度的软件生存周期41.2.2 开发角度的软件生存周期41.3 软件开发过程61.3.1 瀑布式开发过程71.3.2 增量开发过程71.3.3 个体软件过程81.4 敏捷开发91.4.1 概述101.4.2 Scrum方法121.5 软件构造131.5.1 有关概念131.5.2 构造与开发过程141.5.3 主要内容141.5.4 软件构造的重要性151.6 为什么不直接编写软件151.6.1 软件开发语言161.6.2 编程工具与集成化开发环境181.6.3 软件运行环境191.6.4 软件开发的最佳实践191.6.5 开发过程与管理221.7 案例导读221.8 讨论与提高241.8.1 案例的文档管理241.8.2 课程思政251.9 思考与练习题25第2章 模块化软件构造272.1 分解与模块化282.1.1 分解282.1.2 模块化292.2 数据结构与算法302.2.1 数据结构与算法的关系312.2.2 选择与设计数据结构322.2.3 选择与设计算法352.3 模块化设计理论初步372.3.1 模块化原则372.3.2 模块的内聚性372.3.3 模块的耦合性382.4 测试程序402.4.1 测试需求412.4.2 测试设计与测试用例422.4.3 测试覆盖与黑盒测试432.5 调试程序482.5.1 缺陷的相关术语482.5.2 调试基础482.6 案例分析与实践492.6.1 案例程序的初始构造492.6.2 无相同算式的基础构造512.6.3 编程实现测试542.6.4 创建代码仓库572.7 讨论与提高572.7.1 软件质量572.7.2 软件测试的其他观点582.7.3 编程风格592.7.4 撰写软件需求说明书602.7.5 课程思政612.8 思考与练习题61第3章 面向对象的软件构造633.1 抽象与封装633.1.1 模块产生与合成633.1.2 抽象与封装643.1.3 抽象数据类型653.2 认识面向对象673.2.1 软件设计673.2.2 设计类673.2.3 设计操作683.2.4 分类693.3 面向对象的设计703.3.1 面向对象的设计符号703.3.2 案例设计一713.3.3 案例设计二753.4 调试的基本技术823.4.1 单步调试源程序833.4.2 检查或更改变量的值843.4.3 设置监视点观察变量843.4.4 上下移动调用栈843.5 软件的自动化测试853.5.1 初识JUnit853.5.2 编写JUnit测试代码873.6 案例分析与实践893.6.1 分析893.6.2 构造893.6.3 代码托管923.7 讨论与提高933.7.1 进一步认识调试933.7.2 设计原则与设计模式933.7.3 面向对象的设计原则953.7.4 课程思政983.8 思考与练习题98第4章 数据处理的软件构造1024.1 数据及其持久性1034.2 文件与输入/输出流1044.2.1 文件1044.2.2 输入/输出流1054.2.3 数据序列化1064.2.4 CSV格式的文本文件1074.3 编写健壮的程序1074.3.1 防御性编程1084.3.2 使用断言1114.4 字符串处理与正则表达式1124.5 持久使用程序中的数据集1154.5.1 算式基1154.5.2 表驱动编程1164.6 基于程序结构的测试1184.6.1 语句覆盖测试1184.6.2 程序控制测试1194.6.3 逻辑覆盖测试1204.6.4 路径覆盖测试1214.7 运用JUnit1234.7.1 异常测试1234.7.2 参数化测试1244.7.3 测试套件1254.7.4 JUnit断言1264.7.5 JUnit使用指南1264.8 案例分析与实践1264.8.1 批量生成100以内算式1284.8.2 构造并应用算式基1304.8.3 批改练习并存储1324.8.4 管理测试1344.9 讨论与提高1344.9.1 应用表驱动编程1344.9.2 使用文件还是数据库1364.9.3 契约式编程1364.9.4 撰写设计文档1364.9.5 课程思政1374.10 思考与练习题137第5章 用户交互的软件构造1405.1 程序及其功能的使用1415.1.1 程序的两个观察视角1415.1.2 多个功能程序的整合1415.1.3 多个功能的组织与呈现1425.1.4 基于菜单式功能选择的用户交互1435.2 用户交互概述1485.2.1 基本概念1485.2.2 交互设备1485.2.3 交互风格1485.2.4 交互界面1495.2.5 交互设计的原则1505.3 用户交互的开发1515.3.1 交互设计的基本过程1515.3.2 快速原型法1525.4 静态测试1535.4.1 程序的可用性与静态测试1535.4.2 基本的静态测试1535.4.3 检查表1555.4.4 静态程序分析1555.4.5 代码覆盖率与工具1565.5 软件集成与测试1575.5.1 驱动模块和桩模块1585.5.2 集成策略1595.5.3 回归测试1605.5.4 集成测试与策略1605.6 案例分析与实践1625.6.1 分析与设计1625.6.2 案例的菜单式用户交互的构造1635.6.3 循环语句的路径测试1705.7 讨论与提高1705.7.1 软件建模1705.7.2 基于模型的测试1725.7.3 执行函数名符号串的表驱动编程1745.7.4 持续集成1755.7.5 测试报告的撰写1765.7.6 课程思政1765.8 思考与练习题176第6章 软件重构与交付1786.1 代码重构1786.1.1 代码重构的案例研究1786.1.2 代码重构概述1896.2 软件交付1906.2.1 构建与打包1906.2.2 实现构建自动化的工具1916.2.3 Java程序的打包与交付1936.3 案例分析与实践1966.3.1 代码重构的案例分析1966.3.2 代码重构实践1976.3.3 提交案例程序1986.4 讨论与提高1996.4.1 测试层次1996.4.2 测试驱动开发2006.4.3 软件交付及其发展2076.4.4 撰写用户手册2076.4.5 课程思政2076.5 思考与练习题207第7章 GUI软件构造2107.1 GUI简介2107.1.1 Java GUI发展轨迹2107.1.2 Java GUI的构造工具2107.2 GUI的基本元素与设计规范2117.2.1 GUI的基本元素2127.2.2 GUI基本设计规范2157.3 Java GUI设计模式2157.3.1 观察者模式2167.3.2 MVC模式2187.4 事件驱动编程2187.4.1 事件捕捉与处理2187.4.2 焦点事件和Tab顺序2197.4.3 实例讲解2207.5 案例分析与实践2237.5.1 探路的案例GUI构造2237.5.2 重构GUI构造任务2287.5.3 重构任务9.2的案例代码2347.6 讨论与提高2367.6.1 GUI的设计原则2367.6.2 GUI的测试2377.6.3 课程思政2397.7 思考与练习题239第8章 应用数据库2408.1 数据库概述2408.1.1 关系数据库2408.1.2 关系数据库的数据模型2448.2 结构化查询语言SQL2448.2.1 SQL概述2448.2.2 创建基本表的CREATE语句2458.2.3 插入元组的INSERT语句2478.2.4 删除元组的DELETE语句2478.2.5 更新元组的UPDATE语句2478.2.6 选择元组的SELECT语句2488.3 数据库的开发过程2528.4 编程操作数据库2558.4.1 连接数据库2568.4.2 查询数据库2578.5 案例分析与实践2598.5.1 分析与设计2598.5.2 设计数据库2598.5.3 开发数据库应用程序2618.6 讨论与提高2658.6.1 事务与并发2658.6.2 使用存储过程2668.6.3 查询优化——消除不必要的循环2688.6.4 测试数据库2698.6.5 课程思政2708.7 思考与练习题270第9章 基于复用的软件构造2729.1 软件复用2729.1.1 软件产品复用2739.1.2 基于复用的软件开发2749.1.3 程序库2759.2 设计模式2759.2.1 基本概念2759.2.2 基本设计模式目录2769.2.3 设计模式举例2769.3 框架2839.3.1 基本概念2839.3.2 框架和设计模式2849.3.3 框架开发2859.3.4 软件测试框架JUnit2859.4 案例分析与实践2869.4.1 生成Word格式的习题2869.4.2 口算习题练习得分的可视化展示2919.4.3 完整案例的软件构造2959.5 讨论与提高2979.5.1 案例的Web应用程序2979.5.2 Android应用框架2979.5.3 课程思政2989.6 思考与练习题298参考文献300