打字猴:1.70041759e+09
1700417590 阶段           文档
1700417591
1700417592 需求分析        系统策划文档、系统功能需求规格文档
1700417593
1700417594 外部设计        外部设计文档
1700417595
1700417596 内部设计        内部设计文档
1700417597
1700417598 程序设计        程序设计文档
1700417599
1700417600 编码实现        模块设计文档、测试计划文档
1700417601
1700417602 测试            测试报告
1700417603
1700417604 部署维护        部署手册、维护手册
1700417605
1700417606 在“需求分析”阶段,SE倾听将要使用计算机系统的客户的需求,调查、分析目前靠手工作业完成的业务内容。作为本阶段的成果,SE要书写“系统策划文档”或“系统功能需求规格文档”
1700417607
1700417608 第二步是设计计算机系统,该过程可分为3个阶段。虽然看起来有些啰嗦。第一个阶段是“外部设计”,进行与外部观察计算机系统相关的设计。设计内容包括系统处理的数据、显示在屏幕上的用户界面以及打印机打印的样式等。第二阶段是“内部设计”,进行与从内部观察计算机系统相关的设计,内部设计的目的是将外部设计的内容具体化,在计算机行业中常会提及“外部”和“内部”,一般情况下,把从用户的角度看到的东西称为“外部”,把从开发者的角度看到的东西称为“内部”。也许这样说会更容易理解,外部设计的是用户看得到的部分,而内部设计的是开发者看得到(用户看不到)的部分。第三个阶段是“程序设计”,为了用程序将内部设计的内容实现出来而做出的更加详细的设计。作为以上3个设计阶段的结果,SE要书写“外部设计文档”、“内部设计文档”和“程序设计文档”
1700417609
1700417610 第三步进入“编程实现”阶段,要进行的工作是编写代码,由程序员根据程序设计文档的内容,把程序输入到计算机。只要经过充分的程序设计,编程就变成一项十分简单的工作了。因为所做的只是把程序设计书上的内容翻译成程序代码,作为本阶段的文档,SE要书写用于说明唾弃构造的“模块设计文档”和用于下一阶段的“测试计划文档”。这里所说的模块,就是拆解出来的构成程序的要素
1700417611
1700417612 到了“测试”阶段,测试人员要根据测试计划文档的内容确认程序的功能。在最后编写的“测试报告”中,还必须定量地(用数字)标示出测试结果。如果只记录了一些含糊的测试结果,比如“已测试”或“没问题”那么就难以判断系统是否合格
1700417613
1700417614 在定量地标示测试结果的方法中,有“涂色检查”和“覆盖测试”等方法。“涂色检查”的做法是一个个地确认“系统功能需求规格文档”中的功能,如果该功能实现了,就用红笔把它涂红。“覆盖测试”则是一种表示有多少代码的行为已经经过确认的方法。“通过涂色检查,已确认了系统95%的功能,剩下的5%虽然有问题,但已经查明了原因,可以在1周内修正”、“已完成了99%的覆盖测试,由于剩余的1%是不可达代码(Dead Code,绝不会被执行的代码),所以可以删除。”如果能像这样给出定量的测试结果,就很容易判定系统是否合格了
1700417615
1700417616 如果测试合格,就会进入“部署、维护”阶段。“部署”指的是将计算机系统引进(安装)到客户的环境中,让客户使用。“维护”指的是定期检查计算机系统是否能正常工作,根据需要进行文件备份或根据应用场景的变化对系统进行部分改造。只要客户还在使用该计算机系统,这这个阶段就会一直持续下去。在这一阶段要书写的文档是“部署手册”和“维护手册”
1700417617
1700417618
1700417619
1700417620
1700417621 计算机是怎样跑起来的 [:1700412751]
1700417622 计算机是怎样跑起来的 12.5 所谓设计就是拆解
1700417623
1700417624 下面先回到图12.1所示的瀑布模型,从上游到下游再回顾一遍该模型中的各个开发阶段。从需求分析到程序设计,所进行的工作都是拆解业务,把将要为计算机系统所替代的手工业务拆解为细小的要素。从编码实现到部署、维护阶段,所进行的工作则是集成,把拆解后的细小要素转换成程序的模块,再把这些模块拼装在一起构成计算机系统。
1700417625
1700417626 庞大复杂的事物往往无法直接做出来。这个道理不仅适用于计算机系统,也同样适用于建筑物、飞机……人们往往要把庞大复杂的事物先分解成细小简单的要素来进行设计。有了各个要素的设计图,整体的设计图也就出来了。先根据每个要素的设计图制成小零件(程序中的模块),待每个小零件的测试(单元测试)都通过了,剩下的就只是一边看着整体的设计图,一边把这些零件组装起来了。然后再来一轮测试(集成测试),测试组装起来的零件是否能正确地协作运转。大型的计算机系统就是这样构建出来的(如图12.3所示)
1700417627
1700417628 图12.3 把小的模块组装起来,构成大的计算机系统
1700417629
1700417630
1700417631
1700417632
1700417633 可以说,所谓计算机系统的设计,就是拆解。老一辈工程师们已经发明出了可作为规范的各种各样的设计方法,这些方法之间的差异只是拆解时的关注点不同,这里先把几个具有代表性的程序设计方法列在表12.3中
1700417634
1700417635 表12.3 具有代表性的程序设计方法
1700417636
1700417637 设计方法            拆解时所关注的事物
1700417638
1700417639 通用功能分割法        在整个计算机系统中通用的功能
[ 上一页 ]  [ :1.70041759e+09 ]  [ 下一页 ]