《软件系统分析与设计实训教程》PDF下载

  • 购买积分:14 如何计算积分?
  • 作  者:张家浩编著
  • 出 版 社:北京:清华大学出版社
  • 出版年份:2016
  • ISBN:9787302435633
  • 页数:433 页
图书介绍:

第1章 软件架构设计实训课程导论 1

1.1 实训课程的培养目标 1

1.1.1 架构师是软件开发的“老兵” 2

1.1.2 架构师的知识与能力积累 3

1.1.3 课程目标:“架构意识”的启蒙 4

1.2 实训课程的主要内容 5

1.2.1 实训课程的主要内容和课时安排 5

1.2.2 传统主课程的知识结构和内容安排 6

1.2.3 《软件架构设计实践教程》的知识结构和内容安排 6

1.2.4 与《软件架构设计实践教程》的互补性 7

1.2.5 如何使用本教程 8

1.3 实训课程计划与考核 9

1.3.1 软件逻辑体验实训课程计划 9

1.3.2 树莓派系统开发与集成实训课程计划 10

1.3.3 企业级系统分析与二次开发实训课程 11

1.3.4 考试方法与成绩评定 12

1.3.5 实训课程考核的思路 12

1.4 实训课程的课程资源 14

1.4.1 课程资源 14

1.4.2 参考书目 14

1.5 实训课程的难点与关键点 14

1.5.1 大系统与小系统的区别 15

1.5.2 引进大型系统的难度 15

1.6 构建完整的实训课程体系 17

1.6.1 构建完整实训体系的目标与指导思想 17

1.6.2 主课程改革的三阶段总体设计 18

1.6.3 配套进行的实训课程三阶段设计 20

1.6.4 实训课程的企业本质 20

第2章 软件的逻辑与思维训练 22

2.1 从代码到架构的逻辑思维层次 22

2.1.1 逻辑与程序逻辑 23

2.1.2 程序逻辑与算法逻辑 25

2.1.3 超越程序和算法的系统逻辑 26

2.1.4 逻辑架构与架构逻辑 29

2.2 逻辑思维训练的实训设计 31

2.2.1 本次实训课程的目标 31

2.2.2 本次实训课程的时机安排 32

2.2.3 本次实训的二次开发项目选择 32

2.2.4 本次实训课程的授课方法 33

2.2.5 项目二次开发的意义 33

2.2.6 平台选择 34

2.2.7 实训课程的意义和价值检验 34

2.2.8 课程要求 35

2.2.9 动手能力基础 35

2.2.10 师傅带徒弟式的教学方法 36

2.3 理解程序逻辑 36

2.3.1 读懂别人程序的办法 37

2.3.2 看什么不看什么 38

2.3.3 万年历代码的模块抽取 38

2.3.4 归纳出程序的逻辑流程图 41

2.3.5 增加农历的具体实现步骤分解 42

2.3.6 计算农历的代码 42

2.3.7 显示农历的代码 43

2.3.8 课程小结 44

2.4 从程序到算法 44

2.4.1 修改程序 44

2.4.2 简单改进需求的实现 45

2.4.3 24点计算的第一次优化 47

2.4.4 更复杂的情况 49

2.4.5 课程小结 49

2.5 从算法到业务逻辑 50

2.5.1 五子棋程序的系统构成 50

2.5.2 模块划分与子系统设计 54

2.5.3 添加“人机对弈”功能的系统实现方案 55

2.5.4 智能机器人 58

2.5.5 课程总结 61

2.6 感受架构逻辑思维 62

2.6.1 推箱子游戏的新需求介绍 62

2.6.2 系统层面的新需求分析 64

2.6.3 推箱子程序的主程序代码分析 66

2.6.4 推箱子的move模块代码分析 67

2.6.5 推箱子模块的修改 70

2.6.6 关键质量属性需求 71

2.6.7 推箱子的关键机制分析 73

2.6.8 课程小结 75

第3章 基于Arduino的前端开发 77

3.1 从“码工”到架构师 77

3.1.1 “系统级”应用的概念 78

3.1.2 从“码工”到架构师的沉淀 80

3.1.3 “企业级”系统学习与实践的缺失 81

3.2 小型系统开发与集成实训 82

3.2.1 本次实训课程的目标 83

3.2.2 本次实训课程的课时计划 84

3.2.3 实验设备配置 86

3.2.4 本次实训的二次开发项目选择 87

3.2.5 本次实训课程的授课方法 88

3.2.6 实训课程的意义、价值与检验 88

3.3 树莓派应用开发与参赛 89

3.3.1 树莓派与物联网 89

3.3.2 树莓派与云计算 92

3.3.3 树莓派与大数据 93

3.4 应用平台选择与体验 95

3.4.1 物联网应用系统的逻辑与物理架构 95

3.4.2 物联网应用系统的逻辑和运行架构 96

3.4.3 配置树莓派 97

3.4.4 实现树莓派的远程登录 101

3.4.5 让树莓派成为samba文件服务器 105

3.4.6 让树莓派成为Web服务器 108

3.4.7 让树莓派成为媒体服务器 110

3.4.8 课程小结 112

3.5 用树莓派GPIO控制LED 113

3.5.1 认识树莓派的GPIO 113

3.5.2 GPIO接口编程体验 117

3.5.3 使用函数库实现GPIO接口控制 121

3.6 了解Arduino开发平台 125

3.6.1 Arduino平台介绍 126

3.6.2 Windows环境下的Arduino IDE 127

3.6.3 树莓派环境下的Arduino IDE 131

3.6.4 树莓派与Arduino IDE通信 131

3.7 用DHT11获取温度 135

3.7.1 DHT11温湿度传感器简介 135

3.7.2 DHT11传感器的技术指标 136

3.7.3 连接电路 136

3.7.4 DHT11的时序 137

3.7.5 硬件接线 138

3.7.6 DHT11传感器信息采集软件 138

3.7.7 编译运行 140

3.8 用四位数码管显示温度 141

3.8.1 四位共阴数码管介绍 141

3.8.2 数码管接口说明 141

3.8.3 74HC595的控制逻辑 142

3.8.4 数码管的片选与刷新 143

3.8.5 代码说明 143

3.9 课程小结 146

第4章 基于树莓派的开发与集成 147

4.1 树莓派平台集成的需求 147

4.2 选择树莓派上的PyQt界面框架 148

4.3 显示树莓派CPU温度的界面 150

4.4 前端Arduino与树莓派通信集成 153

4.5 实现温度显示与控制的集成 155

4.6 课程小结 156

第5章 物联网服务器的开发与集成 158

5.1 与Yeelink服务器集成 159

5.1.1 物联网服务器Yeelink的功能与局限 159

5.1.2 Yeelink的接入设备与存储数据类型 160

5.1.3 在Yeelink上创建自己的设备和传感器 161

5.1.4 HTTP协议简介 162

5.1.5 有关Requests 164

5.1.6 有关JSON库 167

5.1.7 上传数据到Yeelink 168

5.1.8 Yeelink服务器的客户端APP 170

5.2 开发自己的云服务器应用 170

5.2.1 搭建苏宁云服务器环境 171

5.2.2 把应用搬到云服务器上去 175

5.2.3 开发自己的Web应用 178

5.2.4 树莓派与Web服务器交互 178

5.2.5 搭建一个Web网站 179

5.2.6 在云上直接控制树莓派点亮LED 184

5.3 将本例改造成电梯群控系统 186

5.3.1 电梯群控的物理架构与系统集成 187

5.3.2 电梯群控的运行架构与功能边界划分 187

5.3.3 电梯群控的逻辑架构与系统信息交互 188

5.3.4 电梯群控的可行性分析 189

5.4 参加物联网创意大赛 190

5.4.1 参赛的项目层面考虑 191

5.4.2 从获奖项目中了解参赛的机会与目标 192

5.4.3 关注数据来源 194

5.4.4 关注数据采集方式 195

5.4.5 关注数据应用 195

5.5 阶段课程小结 195

第6章 STKUI的总体架构分析 197

6.1 软件系统分析的基本概念 197

6.1.1 软件系统分析的目标与过程 198

6.1.2 软件架构的五个基本架构描述方法 201

6.1.3 软件架构分析的UML描述方法 202

6.1.4 基于架构的软件系统分析 204

6.1.5 软件系统的逆向分析 205

6.1.6 应用系统的关键需求与架构 206

6.1.7 基于软件工程过程文档的系统分析 206

6.1.8 理解企业级应用系统的基础与应用框架 208

6.2 股票软件的功能与实现要点 209

6.2.1 股票软件功能及其软件实现概述 209

6.2.2 股票行情功能及其软件实现 212

6.2.3 股票指标分析功能及其软件实现 214

6.2.4 股票交易功能及其软件实现 215

6.3 STKUI系统的物理架构分析 216

6.3.1 STKUI的物理架构 216

6.3.2 STKUI物理架构分析的意义 216

6.4 STKUI系统的开发架构分析 217

6.4.1 STKUI系统的9个开发工程包 217

6.4.2 STKUI开发架构分析与综述 221

6.4.3 理解软件系统开发架构的意义和作用 222

6.5 STKUI系统的运行架构分析 222

6.5.1 系统登录与数据接口界面 223

6.5.2 STKUI的功能层次结构 223

6.5.3 STKUI菜单、工具条按钮与功能窗口 226

6.5.4 STKUI运行架构的评价与改进 228

6.6 STKUI系统的逻辑架构分析 230

6.6.1 理解MFC的应用程序框架 231

6.6.2 从菜单追踪到代码 235

6.6.3 逻辑架构分析中的继承关系与调用关系 239

6.6.4 STKUI的类与继承关系 240

6.6.5 STKUI的类与调用关系 244

6.6.6 STKUI的全局变量 245

6.7 STKUI系统的数据架构分析 245

第7章 STKUI的基本功能分析与二次开发 247

7.1 股票软件系统的分析与二次开发实训 247

7.1.1 本次实训课程的目标 247

7.1.2 本次实训课程的课时计划 249

7.1.3 本次实训的二次开发项目选择 249

7.1.4 实训课题的意义、价值与检验 250

7.2 股票用户图形界面的实现分析与二次开发 250

7.2.1 MFC文档与视图的简单回顾 250

7.2.2 STKUI所使用的第三方用户界面框架 252

7.2.3 STKUI的窗口实现 255

7.2.4 STKUI的菜单与工具条实现 257

7.2.5 Qt5及其用户界面开发 260

7.2.6 基于Qt5+VS 2010的STKUI用户界面二次开发 264

7.2.7 STKUI移植的可行性实验 266

7.2.8 STKUI的移植开发 271

7.3 股票分时行情显示的实现分析与二次开发 271

7.3.1 STKUI的行情功能 271

7.3.2 STKUI的分时曲线绘制及其软件实现 273

7.3.3 STKUI行情功能的二次开发 276

7.4 股票指标分析的实现分析与二次开发 277

7.4.1 股票指标分析算法概述 277

7.4.2 股票指标分析的软件实现 281

7.4.3 股票指标分析的二次开发 294

7.5 STKUI数据接口的实现分析与二次开发 298

7.5.1 有关接口的概念 298

7.5.2 STKUI的数据接口分析 300

7.5.3 从接口到硬盘 306

7.5.4 通过接口获得实时数据 308

7.5.5 有关数据接口的二次开发 309

7.6 STKUI数据存储结构的实现分析 311

7.6.1 STKUI的数据存储 311

7.6.2 STKUI的数据获取过程 315

7.6.3 数据的使用方法 320

7.7 课程小结 322

第8章 STKUI的扩展功能分析与二次开发 323

8.1 策略模型的建立与模拟交易分析 324

8.1.1 策略及其意义 324

8.1.2 STKUI策略系统的功能实现分析 328

8.1.3 STKUI策略的实现代码分析 332

8.1.4 STKUI策略实现的改进与二次开发 336

8.2 基于策略模拟的程序化交易实现 338

8.2.1 STKUI的程序交易 338

8.2.2 一个程序交易程序的DEMO 340

8.2.3 程序交易接口的概念 341

8.2.4 通达信程序化交易接口 342

8.2.5 程序交易的实现方案 349

8.2.6 从策略模拟到量化投资 352

8.3 基于盘口的数据技术分析 354

8.3.1 什么是“盘口” 355

8.3.2 盘口数据与Level2 355

8.3.3 基于盘口Level2的数据分析软件 358

8.3.4 盘口数据程序来源于接口 364

8.3.5 基于盘口数据的二次开发 368

8.4 股票的大数据分析与应用 370

8.4.1 大数据技术的基本概念 370

8.4.2 股市舆情的大数据分析 372

8.4.3 热点股票的大数据舆情分析 373

8.4.4 “百度股市通”软件 374

8.4.5 第三维看股 374

8.5 课程小结 376

第9章 面向服务的STKUI架构再造 377

9.1 面向服务的系统新需求 377

9.1.1 机构可提供的股票服务 378

9.1.2 面向股票服务的新需求 379

9.2 面向服务需求与架构关系分析 380

9.2.1 STKUI功能与架构的关系 380

9.2.2 面向服务的关键质量需求 382

9.2.3 D-Alpha系统的架构蓝图参考 384

9.3 FB2K的架构设计新思路与参考 385

9.3.1 FB2K的用户界面框架样式 386

9.3.2 FB2K界面框架与插件的载入与使用设置 388

9.3.3 架构师眼中的FB2K插件逻辑 390

9.3.4 面向对象设计模式的工厂方法 392

9.3.5 FB2K SDK工厂方法的运用 396

9.3.6 SDK部分代码分析 399

9.4 轻量级行业框架的系统架构设计 403

9.4.1 框架与行业应用框架的概念 403

9.4.2 轻量级框架的概念 404

9.4.3 面向股票的行业框架与轻量化方案 405

9.5 轻量级框架下的插件开发 406

9.5.1 业务插件的分类 407

9.5.2 业务插件的加载方式 407

9.5.3 加载业务插件的呈现 408

9.5.4 业务插件的接口标准 409

9.5.5 业务插件的开发实现 409

9.6 面向服务的SOA架构分析 411

9.6.1 服务提供的架构和机制 411

9.6.2 面向服务的SOA架构 413

9.6.3 SOA架构的实现机制 415

9.6.4 基于SOA的应用案例需求 416

9.6.5 基于SOA特色的应用案例实现 418

9.7 基于SOA的公式自定义设计与实现 423

9.7.1 股票软件公式的自定义 423

9.7.2 华泰专业版Ⅱ的公式自定义功能 425

9.7.3 STKUI的公式自定义功能实现 427

9.7.4 面向服务的公式自定义设计与实现 430

9.8 阶段课程小结 432

参考文献 433