您的位置:首页 > 理论基础

rw_《计算机是怎样跑起来的》12 章 & 总结

2016-09-01 00:19 176 查看
2016.08.30 – 08.31

[目标]

《计算机是怎样跑起来的》12 章 & 总结。

- 矢泽久雄 / 著

- 胡屹 / 译

个人学习笔记。

08.30

12 SE负责监管计算机系统的构建

0 问题 & 重点

初级问题。SE是什么的缩写语?

[2] System Engineer,系统工程师。

中级问题。IT是什么的缩写语?

[2] Information Technology,信息技术。

高级问题。请列举一个软件开发过程的模型。

[2] 软件开发过程的模型有“瀑布模型”“原型模型”“螺旋模型”等。

重点。介绍由前些章节中的技术构成的计算机系统,以及负责构建计算机系统的SE。

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

系统。由多个要素相互关联,结合而成的带有一定功能的整体。将各种各样的硬件和软件组合起来构建而成的系统就是计算机系统。

SE。SE就是自始至终参与系统开发过程的工程师,而不是只负责编程的程序员。

SE是从构建计算机系统的最初阶段(调查分析)开始,一直到最后的阶段(维护管理)都会参与其中的工程师。比起只参与编写程序这一工作的程序员,SE所参与的工作范围更加广泛。为此,SE就必须掌握从硬件到软件再到项目管理的多种多样的技能。

12.2 SE未必担任过程序员

SE是一种更接近“管理者”的职业,负责管理技术人员。确实有人是从程序员的岗位转到了SE,二十几岁时是程序员,三十几岁时当上了SE。但是也有人是从SE的新手成长为SE的老手,二十几岁时担任小型计算机系统的SE,三十几岁时担任大型计算机系统的SE。

对于不制作诸如OS或DBMS这样大型程序的企业(程序员部分规模通常不大),多数情况下程序员部分隶属于SE部分或其他管理部门,甚至有时企业还会把整个编码工作委托给外包公司。因此,很少有人能够以程序员的身份升迁到部长的职位,从而造成了程序员成为SE的下属这样的现状(虽然程序员和SE是两种完全不同的职业)

12.3 系统开发过程的规范

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

瀑布模型。是一种计算机系统开发过程的规范。在瀑布模型中有7个阶段的开发(虽然实际开发可能未必如此,但规范毕竟可作为参考)。

[开始 –> 需求分析 –> 外部设计 –> 内部设计 –> 程序设计 –> 编码实现 –> 测试 –> 部署、维护 –> 目标]

每完成一个阶段,都要书写文档(报告)并进行审核。进行审核时还要召开会议,在会上由SE为开发团队的成员、上司以及客户讲解文档内容。若审核通过了,就可以从上司或客户那里得到批准,继续进入后续的阶段。一旦进入了后续阶段,就不能回到之前的阶段。为了避免回退到上一阶段,一是要力求完美地完成每一个阶段的工作,而是要彻底地执行审核过程。这些都是瀑布模型的特征。

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

需求分析,在需求分析阶段,SE倾听将要使用计算机系统的客户的要求,调查、分析目前靠手工作业完成的业务内容。作为本阶段的成果,SE要书写“系统策划文档”或是“系统功能需求规格文档”。

设计计算机系统外部设计进行从外部观察计算机系统相关的设计。设计内容包括系统处理的数据、显示在画面上的用户界面以及打印机打印的样式等。内部设计是将外部设计的内容具体化。一般情况下,把从用户角度看到的东西称为外部,把从开发角度看到的东西称为内部程序设计是用程序将内部设计的内容实现出来而做出更加详细的设计。以上三部分分别对应“外部设计文档”“内部设计文档”和“程序设计文档”。

编码实现。编码实现的工作就是编写代码,由程序员根据程序设计文档的内容,把程序输入到计算机中。只要经过了充分的设计,编程就变成一项十分简单的工作了(是吗)。SE要书写用于说明程序构造的“程序模块设计文档”和用于下一阶段的“测试计划文档”。这里的模块是指拆解出来的构成程序的要素。

测试。测试人员要根据计划文档的内容确认程序的功能。在最后编写的“测试报告”中,还必须定量地标示出测试结果。在定量测试结果的方法中,有“涂色检查”和“覆盖测试”等方法。

部署、维护部署指的是将计算机系统引进(安装)到客户的环境中,让客户使用。维护指的是定期检查计算机系统是否能正常工作,根据需要进行文件备份或根据应用场景的变化对系统进行部分改造。这一阶段对应的文档是“部署手册”和“维护手册”。

初学者对详细的度不好把握

12.5 所谓设计,就是拆解

在瀑布模型中,从需求分析到程序设计,所进行的工作都是拆解业务,把将要为计算机系统所替代的手工业务拆解为细小的要素。从编码实现到部署、维护阶段,所进行的工作则是集成,把拆解后的细小要素转化成程序的模块,再把这些模块拼装在一起构成计算机系统。

[靠手工作业完成的任务 (分解成小的要素) –> 设计 –> 编程 (把各个小的模块组装起来) –> 计算机系统]

[-具有代表性的程序设计方法-]

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

对象。即把指令和数据归拢到具有一定意义的组中而形成的整体。

应用面向对象的方法设计出来的计算机系统既易于维护,又便于开发者改造其中的部分功能。诸位知道这是为什么吗?对于已进入了部署、维护阶段的系统而言,早则几个月、迟则几年,日后都免不了要进行或多或少的改造。这是由于现实世界的部分业务发生了变化,为了响应现实世界的变化,计算机系统的某些部分也必须随之改造,否则就不能支撑业务了。举例来说,消费税从3%提到了5%,邮政编码的位数从5位增加到了7位等都是现实世界的变化。如果计算机系统是以消费税对象或邮政对象为单位拆解业务的,那么只需要改造这两个对象就万事大吉了。甚至可以这样说,只有以易于维护为标准把业务解成对象的做法,才是具有专家风范的面向对象法

12.7 技术能力和沟通能力

SE需要具备的能力。SE所要具备的能力大体可以分为技术能力和沟通能力两类。技术能力指能够灵活应用硬件、软件、网络、数据库等技术的能力。沟通能力是指和他人交换信息的能力,而且这里要求的是双向的信息交换能力。SE必须同时具备技术能力和沟通能力。为此,首先就要牢牢地掌握这两种能力的基础知识

12.8 IT不等于引进计算机

作为SE,不能把信息化(IT)和引进计算机混同。要说二者的联系,也只不过是碰巧计算机作为信息化的工具很实用。如果说得更极端些,不使用计算机,信息化照样能进行。

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

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

客户期待的是由计算机带来的IT解决方案,而并非计算机技术。能满足需求且稳定地工作,这样的计算机系统正是被客户所需要的。以此为标准,计算机系统是成功还是失败就很容易判断了。

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

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

将计算机的构成要素设成多机备份,可以出乎意料地大幅度提升设备利用率。(作为SE,要用这个数据来说服客户加钱做一个多机备份)

若要立志成为计算机行业的专家,就不能仅仅关注技术。

13 1-12总结

08.31

13.1 学习学问的方法参考

Created with Raphaël 2.1.0划出“知识范围”划出“知识范围”掌握该范围内每个知识点中“基础中的基础知识”掌握该范围内每个知识点中“基础中的基础知识”能独当一面的“目标”能独当一面的“目标”[1] to [2]精通一门学问所必知必会的知识都在这个范围内即掌握了目标可以做什么[2] to [3]

13.2 关于计算机技术的知识范围



Figure 1. 关于计算机技术的知识范围

13.3 关于计算机技术知识范围内每个知识点中“基础中的基础知识”



Figure 2. 计算机组成原理基础中基础关键词



Figure 3. 手工汇编基础中基础的关键词



Figure 4. 程序执行基础中基础关键词



Figure 5. 算法基础关键中基础关键词



Figure 6. 数据结构基础中基础关键词



Figure 7. 面向对象基础中基础关键词



Figure 8. 数据库基础中基础关键词



Figure 9. TCP/IP基础中基础关键词



Figure 10. 加密基础中的基础关键词



Figure 11. XML基础中基础关键词

13.4 计算机的三大原则(基础中基础开端)



[2016.09.01 - 00:20]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: