返回首页
苏宁会员
购物车 0
易付宝
手机苏宁

服务体验

店铺评分与同行业相比

用户评价:----

物流时效:----

售后服务:----

  • 服务承诺: 正品保障
  • 公司名称:
  • 所 在 地:

  • 代码中的软件工程 孟宁 著 专业科技 文轩网
  • 新华书店正版
    • 作者: 孟宁著
    • 出版社: 人民邮电出版社
    • 出版时间:2022-05-01 00:00:00
    送至
  • 由""直接销售和发货,并提供售后服务
  • 加入购物车 购买电子书
    服务

    看了又看

    商品预定流程:

    查看大图
    /
    ×

    苏宁商家

    商家:
    文轩网图书旗舰店
    联系:
    • 商品

    • 服务

    • 物流

    搜索店内商品

    商品分类

         https://product.suning.com/0070067633/11555288247.html

     

    商品参数
    • 作者: 孟宁著
    • 出版社:人民邮电出版社
    • 出版时间:2022-05-01 00:00:00
    • 版次:1
    • 印次:1
    • 印刷时间:2022-05-01
    • 页数:278
    • 开本:16开
    • 装帧:平装
    • ISBN:9787115578501
    • 国别/地区:中国
    • 版权提供:人民邮电出版社

    代码中的软件工程

    作  者:孟宁 著
    定  价:89.9
    出 版 社:人民邮电出版社
    出版日期:2022年05月01日
    页  数:278
    装  帧:平装
    ISBN:9787115578501
    主编推荐

    1.以在线开放课程“工程化编程实战”为核心内容,增加了常用工具、需求分析与建模方法、软件架构和软件过程等相关内容。 2.作者系中国科学技术大学软件学院软件工程10年教学改革的实践者,具有近20年代码编程+12年软件工程教学经验,他的慕课荣获“国家精品在线开放课程”。 3.本书反其道而行之,以“实用”为原则构成全书体系,从写代码的工具着手,逐步深入到模块化设计、需求建模、设计模式和软件架构等内容,章末设有练习环节,并提供可下载的配套源代码文件,让读者在做中学,进而从“程序员”修炼成“软件工程师”。 4. 软件工程领域刘强、朱少民、邹欣、陈振宇倾情推荐!

    内容简介

    本书共五篇:第一篇介绍常用工具VS Code、Git 和正则表达式;第二篇以C 语言代码为例介绍工程化编程的基本方法,涵盖代码的风格和规范、模块化、可复用、可重入函数与线程安全等;第三篇介绍从需求分析到软件设计的基本建模方法——从需求分析开始,以UML 为工具完成用例建模、业务领域建模、对象交互建模,最终形成设计方案;第四篇探讨软件的元素、结构、特性和描述方法,以及高质量软件的内涵等;第五篇回顾软件危机的前因后果,并将之与PSP、TSP、CMM/CMMI、敏捷开发、DevOps 等软件过程和生命周期管理衔接起来。 本书以国家精品在线开放课程——“工程化编程实战”为核心内容,增加了常用工具、需求分析与建模方法、软件结构和软件过程等相关内容,内容全面、新颖,实践性强。本书主要针对在校学生编写,适合开设相关专业的普通高校和高职院校作为主要教材,也可供不同层次的自学者学习参考。

    作者简介

    孟宁 中国科学技术大学软件学院专职教师,主讲“不错软件工程”“ Linux操作系统分析”等课程。 他讲授的两门慕课获评国家精品在开放课程和本科课程,入选华为“智能基座”精品慕课,被中国高校计算机教育MOOC联盟评为很好课程,荣获安徽省教学成果奖二等奖,等等。在线课程视频在读行学、网易云课堂、学堂在线、B站等在线平台的累计学员达20余万人。 他专注于 Linux操作系统、软件工程、人工智能和区块链等技术领域,与华为、OPPO、龙芯中科等多家国内外企业和创业公司有技术合作。

    精彩内容

    目录
    第 一篇 工欲善其事,必先利其器 第 1 章 编程“利器”Visual Studio Code 2 1.1 Visual Studio Code 的安装和基本用法 2 1.1.1 下载和安装Visual Studio Code 2 1.1.2 VS Code 界面概览 2 1.1.3 VS Code 的基本配置 3 1.1.4 VS Code 的基本用法 3 1.2 VS Code 为什么能这么牛 4 1.2.1 简洁而聚焦的产品定位贯穿始终 4 1.2.2 进程隔离的插件模型是“定海神针” 5 1.2.3 代码理解和调试——LSP 和DAP 两大协议“厥功至伟” 6 1.2.4 集大成的VS Code 远程开发环境 8 1.3 基于VS Code 的C/C++开发调试环境配置 9 1.3.1 安装C/C++插件 9 1.3.2 安装C/C++编译器和调试器 10 1.3.3 配置Visual Studio Code 构建任务 11 1.3.4 配置Visual Studio Code 调试环境 12 1.4 VS Code 远程开发环境配置 13 1.4.1 VS Code 远程开发环境概述 13 1.4.2 VS Code 远程开发环境Remote-SSH 配置 15 1.4.3 VS Code 远程开发环境Web Remote-code-server 配置 20 本章练习 21 第 2 章 五大场景玩转Git 22 2.1 Git 分布式版本控制系统 22 2.1.1 版本控制概述 22 2.1.2 Git 的历史 22 2.1.3 Git 的基本操作 23 2.2 场景一:Git 本地版本库的基本用法 25 2.2.1 安装Git 25 2.2.2 初始化一个本地版本库 25 2.2.3 查看当前工作区的状态 26 2.2.4 暂存更改的文件 27 2.2.5 把暂存区里的文件提交到仓库 28 2.2.6 Git 本地版本库的基本用法参考 30 2.3 场景二:Git 远程版本库的基本用法 31 2.3.1 克隆远程版本库 31 2.3.2 远程版本库的基本命令简介 31 2.3.3 Git 远程版本库的基本用法参考 32 2.4 Git 背后的设计理念 34 2.5 场景三:团队项目中的分叉合并 36 2.5.1 团队项目的一个参考工作流程 36 2.5.2 分支的基本用法 36 2.5.3 团队项目工作流程参考 39 2.6 场景四:Git Rebase 整理提交记录 40 2.7 场景五:Fork + Pull request 开发工作流程 43 本章练习 46 第3 章 正则表达式十步通关 48 3.1 为什么使用正则表达式 48 3.2 第 一关:基本的字符串搜索方法 49 3.3 第二关:同时搜索多个字符串的方法 50 3.4 第三关:在匹配字符串时的大小写问题 50 3.5 第四关:通配符的基本用法 51 3.6 第五关:匹配具有多种可能性的字符集 52 3.7 第六关:贪婪匹配和懒惰匹配 53 3.8 第七关:一些特殊位置和特殊字符 53 3.9 第八关:使用捕获组复用模式 54 3.10 第九关:基本的字符串搜索替换方法 54 3.11 第十关:在替换中使用捕获组复用模式 55 本章练习 56 第二篇 工程化编程实战 第4 章 简约而不简单——代码规范和代码风格 58 4.1 实验项目介绍 58 4.2 代码风格的原则:简明、易读、无二义性 61 4.3 编写高质量代码的基本方法 66 4.3.1 通过控制结构简化代码 66 4.3.2 通过数据结构简化代码 67 4.3.3 一定要有错误处理 68 4.3.4 性能优先策略背后隐藏的代价 68 4.3.5 拒绝修修补补,要不断重构代码 69 4.3.6 编码过程中的团队合作 69 本章练习 69 第5 章 模块化软件设计 71 5.1 模块化思想背后的基本原理 71 5.2 模块化代码的基本写法举例 72 5.3 传统单体集中式架构与微服务架构 78 5.4 模块化软件设计中的基本方法 80 5.4.1 KISS 原则 80 5.4.2 使用本地化外部接口来提高代码的适应能力 80 5.4.3 保持设计结构和代码结构的一致性 81 本章练习 81 第6 章 可复用软件设计 83 6.1 消费者复用和生产者复用 83 6.2 接口的基本概念 83 6.2.1 软件模块接口举例 84 6.2.2 微服务接口举例 86 6.2.3 接口与耦合度之间的关系 88 6.2.4 同步接口和异步接口 88 6.3 可复用软件模块的接口设计示例 89 6.3.1 通用LinkTable 模块的接口设计 89 6.3.2 给LinkTable 增加Callback 方式的接口 95 6.3.3 进一步改进LinkTable 的Callback 方式的接口 97 6.4 通用接口定义的基本方法 99 6.4.1 参数化上下文 99 6.4.2 移除前置条件 99 6.4.3 简化后置条件 100 本章练习 100 第7 章 可重入函数与线程安全 103 7.1 线程的基本概念 103 7.2 函数调用堆栈 103 7.3 可重入函数 105 7.4 什么是线程安全 106 7.5 LinkTable 软件模块的线程安全分析 108 本章练习 112 第8 章 子系统的工程化 113 8.1 menu 子系统的可复用接口设计 113 8.2 Makefile 工程文件举例 116 8.3 带参数的复杂命令函数接口的写法 117 8.4 看待软件质量的几个不同角度 118 8.5 编程的基本方法和原则 119 本章练习 120 第三篇 需求分析和软件设计 第9 章 获取需求的主要方法 122 9.1 什么是需求 122 9.2 为什么需求很好重要 122 9.3 有哪些类型的需求 123 9.4 有哪些和需求相关的人员 123 9.5 获取需求的主要方法 124 9.6 高质量的需求是什么样子 124 9.6.1 便于验证的需求是高质量的 124 9.6.2 解决了内在冲突的需求是高质量的 124 9.6.3 高质量需求的典型特征 125 9.7 绘图工具VS Code 和draw.io 125 9.7.1 在线绘图工具draw.io 125 9.7.2 安装draw.io 插件 126 9.7.3 快速入门VS Code+draw.io 画图 127 本章练习 130 第 10 章 对需求进行分析和建模 131 10.1 原型化方法和建模的方法 131 10.2 用例建模 131 10.2.1 什么是用例 131 10.2.2 用例的三个抽象层级 132 10.2.3 用例建模的基本步骤 133 10.2.4 准确提取用例的基本方法 134 10.2.5 用例图的基本画法 135 10.3 业务领域建模 136 10.3.1 面向对象分析涉及的基本概念 136 10.3.2 业务领域建模的基本步骤 137 10.3.3 头脑风暴的具体做法 138 10.3.4 业务领域概念分类的方法 139 10.4 关联类及其关系数据模型 140 10.4.1 关联类的基本概念及其UML 类图 140 10.4.2 关联类的面向对象设计与实现 141 10.4.3 关联类的关系数据模型 142 10.5 关系数据的MongoDB 数据建模 143 10.5.1 基于文档的数据库MongoDB 143 10.5.2 一对多关系建模的三种基础方案 144 10.5.3 几种反范式设计方法 147 10.5.4 MongoDB 数据建模总结 150 10.6 软件业务概念的原型 150 本章练习 151 第 11 章 从需求分析向软件设计的过渡 153 11.1 敏捷统一过程 153 11.1.1 瀑布模型 153 11.1.2 统一过程 153 11.1.3 敏捷统一过程的计划阶段 154 11.1.4 敏捷统一过程的增量阶段 154 11.2 对象交互建模 155 11.2.1 对象交互建模的基本步骤 155 11.2.2 找出关键步骤进行剧情描述 156 11.2.3 将剧情描述转换成剧情描述表 158 11.2.4 将剧情描述表转换成时序图 158 11.2.5 从分析时序图到设计时序图 161 11.2.6 完整的“借书”用例对象交互建模 163 11.3 形成软件设计方案 164 11.3.1 设计类图和分析类图 164 11.3.2 形成设计类图的基本步骤 165 11.3.3 形成软件设计方案的整体思路 169 本章练习 170 第四篇 软件科学基础概论 第 12 章 软件是什么 172 12.1 软件的基本构成元素 172 12.1.1 对象 172 12.1.2 函数和变量/常量 172 12.1.3 指令和操作数 173 12.1.4 0 和1 是什么 174 12.2 软件的基本结构 176 12.2.1 顺序结构 176 12.2.2 分支结构 176 12.2.3 循环结构 178 12.2.4 函数调用框架 179 12.2.5 继承和对象组合 180 12.3 软件中的一些特殊机制 181 12.3.1 回调函数 181 12.3.2 多态 182 12.3.3 闭包 183 12.3.4 异步调用 184 12.3.5 匿名函数 185 12.4 软件的内在特性 186 12.4.1 靠前的复杂度 186 12.4.2 抽象思维和逻辑思维 186 12.4.3 专享不变的就是变化本身 187 12.4.4 难以达成的概念完整性和一致性 188 本章练习 188 第 13 章 软件设计模式 190 13.1 什么是设计模式 190 13.1.1 软件设计模式的优点 190 13.1.2 软件设计模式的含义和构成 191 13.2 软件设计模式的分类 191 13.3 常用的软件设计模式 192 13.4 观察者模式举例 196 13.5 软件设计模式背后的设计原则 200 13.5.1 开闭原则 200 13.5.2 丽斯科夫替换原则 200 13.5.3 依赖倒置原则 200 13.5.4 单一职责原则 201 13.5.5 德米特法则 201 13.5.6 合成复用原则 201 13.5.7 反思软件设计模式的根基 202 本章练习 202 第 14 章 软件架构举例 204 14.1 三层架构 204 14.2 MVC 架构 204 14.2.1 什么是MVC 204 14.2.2 MVC 模式 205 14.2.3 MVC 架构 207 14.3 MVVM 架构 208 14.3.1 什么是MVVM 208 14.3.2 Vue.js 的基本用法 209 14.3.3 Vue.js 背后的MVVM 211 本章练习 216 第 15 章 软件架构风格与描述方法 217 15.1 构建软件架构的基本方法 217 15.2 软件架构风格与策略 218 15.2.1 管道-过滤器 218 15.2.2 客户-服务器 219 15.2.3 P2P 219 15.2.4 发布/订阅 219 15.2.5 CRUD 220 15.2.6 层次化 221 15.3 软件架构的描述方法 221 15.3.1 分解视图 221 15.3.2 依赖视图 222 15.3.3 泛化视图 222 15.3.4 执行视图 223 15.3.5 实现视图 223 15.3.6 部署视图 223 15.3.7 工作分配视图 223 本章练习 224 第 16 章 什么是高质量软件 225 16.1 软件质量的3 种视角 225 16.1.1 软件质量的含义 225 16.1.2 产品视角下的软件质量 225 16.1.3 过程视角下的软件质量 228 16.1.4 价值视角下的软件质量 229 16.2 几种重要的软件质量属性 230 16.2.1 易于修改维护 230 16.2.2 良好的性能表现 231 16.2.3 安全性 231 16.2.4 可靠性 231 16.2.5 健壮性 232 16.2.6 易用性 232 16.2.7 商业目标 232 本章练习 234 第五篇 软件危机的前生后世 第 17 章 软件危机概述 236 17.1 软件危机产生的背景 236 17.2 软件危机的主要表现及根源 237 17.3 有关软件危机的争论 238 本章练习 239 第 18 章 软件过程模型 240 18.1 软件的生命周期概述 240 18.2 瀑布模型 241 18.3 原型化的瀑布模型 242 18.4 V 模型 243 18.5 分阶段的增量和迭代开发过程 243 18.6 螺旋模型 244 本章练习 245 第 19 章 PSP 和TSP 246 19.1 个体和团队 246 19.2 个体软件过程 246 19.2.1 PSP 0 247 19.2.2 PSP 0.1 247 19.2.3 PSP 1 247 19.2.4 PSP 1.1 248 19.2.5 PSP 2 248 19.2.6 PSP 2.1 249 19.2.7 PSP 3 250 19.3 团队软件过程 250 19.3.1 团队概述 250 19.3.2 TSP 概述 251 19.3.3 TSP 的基本原理 251 19.3.4 TSP 的基本工作方法 252 本章练习 253 第 20 章 CMM/CMMI 254 20.1 CMM/CMMI 简介 254 20.2 CMM/CMMI 的作用 255 20.3 CMM/CMMI 的主要内容 256 20.4 CMMI 的评估过程 257 本章练习 257 第 21 章 敏捷方法 258 21.1 敏捷方法产生的背景 258 21.2 敏捷软件开发宣言及所遵循的原则 258 21.3 Scrum 敏捷开发方法 259 本章练习 263 第 22 章 DevOps 265 22.1 什么是DevOps . 265 22.2 DevOps 和敏捷方法 266 22.3 DevOps 和精益原则 266 22.4 DevOps 和全栈自动化 267 本章练习 269 测验题 270

    售后保障

    最近浏览

    猜你喜欢

    该商品在当前城市正在进行 促销

    注:参加抢购将不再享受其他优惠活动

    x
    您已成功将商品加入收藏夹

    查看我的收藏夹

    确定

    非常抱歉,您前期未参加预订活动,
    无法支付尾款哦!

    关闭

    抱歉,您暂无任性付资格

    此时为正式期SUPER会员专享抢购期,普通会员暂不可抢购