首页 > 其他分享 >Chapter12_SE负责监管计算机系统的构建

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

时间:2022-12-09 09:11:44浏览次数:55  
标签:计算机系统 程序员 文档 阶段 Chapter12 设计 SE

热身问答

  • SE 是什么的缩略语?
    • SE 是 System Engineer(系统工程师)的缩略语。
    • 在计算机系统的开发过程中,SE 是参与所有开发阶段的工程师。
  • IT 是什么的缩略语?
    • Information Technology
    • IT 是 Information Technology(信息技术)的缩略语。
    • 一提到 IT,通常就意味着充分地运用计算机解决问题,但 Information Technology(信息技术)这个词中并没有包含表示计算机含义的词语。
  • 请列举一个软件开发过程的模型
    • 软 件 开 发 过 程 的 模 型 有“瀑 布 模 型 ”“原 型 模型”“螺旋模型”等。

前面说到了很多构建计算机系统的技术, 那么如何将这些技术组合起来构建完整的计算机系统呢?

首先, 负责将这些技术组合在一起, 负责构建计算机系统的人叫做SE/系统工程师。

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

SE是干什么的人呢?

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

——《日经计算机术语辞典2002》(日经 BP 出版社)

也就是说, SE是自始至终参与系统开发过程的工程师, 而不是只负责编程的程序员。 SE是负责项目管理和软件开发管理的人员, 而编程的工作则由程序员完成。

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

image-20221208082746363

12.2 SE 未必担任过程序员

SE和程序员是两种职业发展路线, 但SE更倾向于“管理”, 而程序员倾向于“建造”, 所以导致了SE的职位比程序员更高。

12.3 系统开发过程的规范

那么计算机系统是由怎样的开发过程构建而成的呢? 过程中的规范是什么呢?

其中一种规范叫做“瀑布模型

在瀑布模型中要进行 7个阶段的开发。虽然实际开发中可能未必如此,但规范毕竟是规范。

image-20221208083117756

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

  • 若审核通过了,就可以从上司或客户那里得到批准,继续进入后续的开发阶段。

  • 若审核没有通过,则不能进入后续的阶段。

一旦进入了后续的阶段,就不能回退到之前的阶段。为了避免回退到上一阶段,一是要力求完美地完成每一个阶段的工作,二是要彻底地执行审核过程,这些就是瀑布模型的特征。

这种开发过程之所以被称为“瀑布模型”,是因为开发流程宛如瀑布,一级一级地自上而下流动,永不后退。如图 12.2 所示,开发过程就好像是开发团队乘着小船,一边克服着一个又一个的瀑布(通过审核),一边从上流顺流而下漂向下游。而坐在船头的人当然就是 SE 了。

image-20221208083445948

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

下面介绍瀑布模型各个阶段的工作内容及所要书写的文档的种类:

image-20221208083509874

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

  2. 接下来是设计计算机系统,该过程可以分为 3 个阶段。虽然看起来有些啰嗦,但规范终归是规范。

    • 第一个阶段是“外部设计”,进行与从外部观察计算机系统相关的设计。设计内容包括系统处理的数据、显示在画面上的用户界面以及打印机打印的样式等。
    • 第二个阶段是“内部设计”,进行与从内部观察计算机系统相关的设计。内部设计的目的是将外部设计的内容具体化。在计算机行业中常会提及“外部”和“内部”,一般情况下,把从用户的角度看到的东西称为“外部”,把从开发者的角度看到的东西称为“内部”。也许这样说会更容易理解,外部设计设计的是用户看得到的部分,而内部设计设计的是开发者看得到(用户看不到)的部分。
    • 第三个阶段是“程序设计”,为了用程序将内部设计的内容实现出来而做出的更加详细的设计。作为以上 3 个设计阶段的结果,SE 要分别书写“外部设计文档”“内部设计文档”和“程序设计文档”。
  3. 再接下来,就进入了“编码实现”阶段,要进行的工作是编写代码,由程序员根据程序设计文档的内容,把程序输入到计算机中。只要经过了充分的程序设计,编程就变成一项十分简单的工作了。因为所做的只是把程序设计书上的内容翻译成程序代码。作为本阶段的文档,SE要书写用于说明程序构造的“模块设计文档”和用于下一阶段的“测试计划文档”。这里所说的模块,就是拆解出来的构成程序的要素。

  4. 到了“测试”阶段,测试人员要根据测试计划文档的内容确认程序的功能。在最后编写的“测试报告”中,还必须定量地(用数字)标示出测试结果。如果只记录了一些含糊的测试结果,比如“已测试”或是“没问题”,那么就难以判断系统是否合格了。在定量地标示测试结果的方法中,有“涂色检查”和“覆盖测试”等方法。

    • “涂色检查”的做法是一个个地确认“系统功能需求规格文档”中的功能,如果该功能实现了,就用红笔把它涂红。
    • “覆盖测试”则是一种表示有多少代码的行为已经经过确认的方法。“通过涂色检查,已确认了系统 95% 的功能。剩下的 5% 虽然有问题,但已经查明了原因,可以在 1 周内修正”“已完成了 99% 的覆盖测试。由于剩余的 1% 是不可达代码(Dead Code,绝不会被执行的代码),所以可以删除”。如果能像这样给出定量的测试结果,那么就很容易判定系统是否合格了吧。
  5. 如果测试合格了,就会进入“部署、维护”阶段。“部署”指的是将计算机系统引进(安装)到客户的环境中,让客户使用。“维护”指的是定期检查计算机系统是否能正常工作,根据需要进行文件备份或根据应用场景的变化对系统进行部分改造。只要客户还在使用该计算机系统,这个阶段就会一直持续下去。在这一阶段要书写的文档是“部署手册”和“维护手册”。

12.5 所谓设计,就是拆解

image-20221208083117756

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

image-20221208084032657

image-20221208084115627

回顾一下计算机的三大原则:

原则 1:计算机只能够做输入、运算、输出三种操作
原则 2:程序是指令和数据的集合
原则 3:计算机有自己的处理方法

我们的重点在输入、运算、输出、指令、数据这几个要素的某一个上, 或者在某几个的组合上。引进计算机系统的目的是通过用计算机替代靠手工作业进行的业务,来提升工作效率。因此在设计时,要使手工作业的业务顺应计算机的处理方式来进行替换,这一点也值得注意。

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

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

在面向对象的方法中,设计者就是关注对象,即事物来拆解那些靠手工作业进行的业务的。可以说现实世界的业务其实就是事物的集合,而面向对象法的特征正是可以把这些事物直接搬到计算机中。

而应用面向对象的方法设计出来的计算机系统既易于维护,又便于开发者改造其中的部分功能。

image-20221208084433462

12.7 技术能力和沟通能力

12.8 IT 不等于引进计算机

IT 是 Information Technology(信息技术)的缩写。

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

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

image-20221208084840702

image-20221208084857287

image-20221208084910125

总结

标签:计算机系统,程序员,文档,阶段,Chapter12,设计,SE
From: https://www.cnblogs.com/Natsumeno/p/16968028.html

相关文章

  • Mysql连接报错:1130-Host is not allowed to connect to this MySQL server
    这个问题是因为在数据库服务器中的mysql数据库中的user的表中没有权限(也可以说没有用户),下面将记录我遇到问题的过程及解决的方法。在搭建完LNMP环境后用Navicate连......
  • Reverse - Angr angr_ctf
    Reverse-Angrangr_ctf实验题目地址:这里这套题目也做了两三次了,但是不经常用就老忘,这次记录一下。里面有一些是自己的粗浅理解,有不正确的地方欢迎评论。Angr介绍Angr......
  • servlet
          一定注意hello前面的/   配置tomcat运行测试 ......
  • Android 10机型安装Xposed框架教程VCAM
    OverridetheentrypointofanimageIntroducedinGitLabandGitLabRunner9.4.Readmoreaboutthe extendedconfigurationoptions.Beforeexplainingtheav......
  • JavaSE复习day4
    JavaSE复习day4胡家伟13.多态基本介绍概念多态是方法或对象具有多种形态,是面向对象的第三大特征。多态的前提是两个对象(类)存在继承关系,多态是建立在封装和继承基础......
  • 如何参与开源贡献—SeaTunnel为例 文2
    如何参与开源贡献—SeaTunnel为例文2创建issue5.3.1什么是issue每个github的仓库下都会有一个项目独立的issue板块。在这个板块里面,大家可以提出自己的问题,也可以去和大......
  • 如何参与开源贡献—SeaTunnel为例 文1
    如何参与开源贡献—SeaTunnel为例文15.1基本概念5.1.1参与开源贡献的常见方法1)参与解答在社区中,帮助使用过程中遇到困难的人,帮他们解释框架的用法也算是一种贡献。2)文档......
  • SeaTunnel入门教程
    SeaTunnel教程第1章Seatunnel概述1.1SeaTunnel是什么SeaTunnel是一个简单易用的数据集成框架,在企业中,由于开发时间或开发部门不通用,往往有多个异构的、运行在不同的软硬......
  • 【linux常用命令】用户命令之useradd和sudoer
    useradd添加用户123useradd123为用户123设置密码passwd123sudoer资料https://www.cnblogs.com/yanling-coder/p/10947157.html在root用户视图下执行命令visudo......
  • [未解决] write javaBean error, fastjson version 1.2.76, class org.springframewor
    本地测试正常,打包部署后报错如下:writejavaBeanerror,fastjsonversion1.2.76,classorg.springframework.security.web.header.HeaderWriterFilter$HeaderWriterResp......