《大话软件工程-需求分析与软件设计》阅读笔记


软件工程,是一门研究用工程化方法构建和维护软件的学科,对于完成一个高质量、高水平的软件系统来说软件工程的重要性是毋容置疑的,但是软件工程知识在开发现场的实际作用效果却不尽人意。在大学学习的软件编码知识进入企业后可以快速地运用到实际开发工作中,但是同样在大学学习到的软件工程知识却不容易应用到实际工作中,一个很重要的原因就是从“知识传播”视角研究软件工程方法的较多,从“工程操作”视角研究软件工程方法的较少,这就造成了软件工程知识在开发现场落地的困难。

《大话软件工程-需求分析与软件设计》一书参照传统工程的分类与标准制定的方法,探索将软件工程从一门“知识体系”转化成一门可以按部就班学习、并且可以指导软件开发的 “实操技术”。

书中的研究重点放在了需求工程和设计工程(部分)两个阶段上,因为这两个阶段的工作是决定软件客户价值的最重要部分,同时也是在开发现场相对比较难以工程化和有效管理的部分,这里所谓的“实操技术”指的就是软件的“工程化设计方法”。

软件的工程化设计特点就是:将需求分析/软件设计过程的工作和交付物标准化、规范化、模块化,按照一定的流程和协同关系进行接力式的操作,上游工作成果要满足下游工作的要求、下游工作必须要继承上游工作的成果。也就是说要实现与传统行业(建筑工程、制造工程等)一样的工作流程方式。

实现软件的工程化设计,首先要求分析与设计的工作内容能够做到“定性、定量”,只有建立了软件工作内容的量化体系,才能实现设计的标准化、结构化、工程化。

1. 书的核心内容

1) 软件的分析与设计工作如何进行定性、量化。

2) 软件的分析与设计过程如何标准化、结构化。

3) 如何建立软件分析与设计过程的工程化作业流程、标准。

4) 需求分析与软件设计过程的作业理论、方法、工具、标准、交付物、模板等。

2. 书的主要特点

1) 首先建立软件工程的过程结构图,这个结构图给出了需求分析与软件设计各个工作环节之间的传递、继承的衔接关系、它是构建软件工程化设计的基础。

2) 全书的讲解以“逻辑”为主线,详细地讲述如何将松散的客户需求转变为软件设计资料的过程。这个“逻辑主线”使得软件工程的内容不再是一个“知识群”,而是一整套由逻辑串联起来的、有关联、有输入/输出关系的工作流程。

3) 因为是工程化设计,所以全书的内容都以图形为主(480多幅精细的彩色插图)、表格(70多幅表格模板)和与字为辅进行说明和表达的,用图表达设计意图是工程化设计的最重要标志。这些图形和模板具有实用价值,内容直观、易懂、不枯燥。

3. 书的实用价值

1) 软件工程的过程实现了标准化的操作、表达,易于学习、掌握,

2) 由于内容的实操性和实战性,可使学生进入工作岗位后直接使用、立竿见影。

另外,实现了软件的工程化设计,不但给软件的设计带来了便利,而且还为软件过程的管理带来质的提升。软件项目管理的三大目标是:质量管理、进度管理和成本管理,要实现这三个管理目标,前提是要做到对软件过程各项工作的“量化”,因为只有做到了量化才能进行有效的管理。

《大话软件工程-需求分析与软件设计》一书为软件工程知识的工程化、实用化进行了有益的探索,为学习软件工程专业的学生提供了可以进行实战的技能。