Skip to content

第十二章 SE负责监管计算机系统的构建

SE 是什么的缩略语?

SE 是 System Engineer ( 系统工程师 ) 的缩略语

12.1 SE是自始至终参与系统开发过程的工程师

SE 是的指在进行业务的信息化时,负责调查、分析业务内容,确定计算机系统的基础设计及其详细设计规格的技术人员。同时 SE 也负责系统开发的项目管理和软件的开发管理、维护管理工作。由于主要的工作是基础设计,所以不同于编写程序的程序员, SE 需要具备从硬件结构、软件的构建方法乃至横跨整个业务的广泛知识以及项目管理的经验。

12.2 SE未必担任过程序员

SE 虽然也是工程师,但他们并不同于孜孜不倦地处理具体工作的专业技术人员。可以说 SE 是一种更接近“管理者”的职业,负责管理技术人员。

12.3 系统开发过程的规范

无论任何事都需要规范,即便未能按其实践,规范的存在也算是一种参考。

在瀑布模型中,每完成一个阶段,都要书写文档并进行审核。进行审核是还需要召开会议,在会上由 SE 为开发团队的成员、上司以及客户讲解文档的内容。

12.4 各个阶段的工作内容及文档

阶段文档
需求分析系统策划文档、系统功能需求规格文
外部设计外部设计文档
内部设计内部设计文档
程序设计程序设计文档
编码实现模块设计文档、测试计划文档
测试测试报告
部署、维护部署手册、维护手册

12.5 所谓设计,就是拆解

从需求分析到程序设计, 所进行的工作都是拆解业务, 把将要为计算机系统所替代的手工业务拆解为细小的要素。

从编码实现到部署、 维护阶段, 所进行的工作则是集成, 把拆解后的细小要素转换成程序的模块, 再把这些模块拼装在一起构成计算机系统。

庞大复杂的事物往往无法直接做出来。人们往往要把庞大复杂的事物先分解成细小简单的要素来设计。有了各个要素的设计图,整体的设计图也就出来了。

12.6 面向对象法简化了系统维护工作

最近, 称作“面向对象” 的设计、 编程方法备受瞩目。 所谓“对象”( Object), 就是把指令和数据归拢到具有一定意义的组中而形成的整体。 在面向对象的方法中, 设计者就是关注对象, 即事物来拆解那些靠手工作业进行的业务的。 可以说现实世界的业务其实就是事物的集合, 而面向对象法的特征正是可以把这些事物直接搬到计算机中

只有以易于维护为标准把业务拆解成对象的做法, 才是具有专家风范的面向对象法。

12.7 技术能力和沟通能力

SE 所要具备的能力是多种多样的。这些能力大体上可以分为两类——技术能力和沟通能力。所谓技术能力,是指灵活运用硬件、软件、网络、数据库等技术的能力。而沟通能力,是指和他人交换信息的能力,而且这里要求的是双向的信息交换能力。

12.8 IT 不等于引进计算机

IT 是信息技术的缩写,也许翻译成“充分运用信息的技术”会更容易理解。若手工作业也能充分地利用信息,那么即便未使用计算机,也是了不起的信息化。

SE 的工作是分析靠手工作业完成的业务,提出能够用计算机解决客户所面临问题的方法。如果靠手工作业完成的业务根本“无法用信息化的方法解决”,而客户又深信“只要引进了计算机,自然就可以用信息化的方法解决了”, SE 这时应该向客户说明,计算机并不是万能的机器,并不是什么解决。

12.9 计算机系统的成功与失败

成功的计算机系统是什么样的呢? 那就是能完全满足客户需求的计算机系统。 客户期待的是由计算机带来的 IT 解决方案, 而并非计算机技术。 能满足需求且稳定地工作, 这样的计算机系统正是被客户所需要的。

12.10 大幅提升设备利用率的多机备份

构成计算机系统的每个要素只有一个状态, 要么处于正常运转状态, 要么是出现故障处于维修状态。 其中, 处于正常运转状态的比率叫作“设备利用率”。

将计算机系统的构成要素设成多机备份,可以出乎意料地大幅度提升设备利用率。

我们都知道,单点是系统高可用的大敌,单点往往是系统高可用最大的风险和敌人,应该尽量在系统设计的过程中避免单点。方法论上,高可用保证的原则是“集群化”,或者叫“冗余”:只有一个单点,挂了服务会受影响;如果有冗余备份,挂了还有其他备份能够顶上。