免费智能真题库 > 历年试卷 > 信息系统项目管理师 > 2020年下半年 信息系统项目管理师 下午试卷 案例
第1题      
知识点   项目经理   敏捷开发   验收测试   数据传输加密   编码阶段   加密   APP   应用服务   编码   传输加密   评审

 
【说明】
信管网集成公司和某地区的燃气公司签订了系统升级合同,将原有的终端抄表系统升级改造,实现远程自动抄表且提供APP终端应用服务
公司指定原系统的项目经理张工来负责该项目,目前张工已经升任新产品研发部经理。张工调派了原项目团队的核心骨干刘工和李工分别负责新项目的需求调研和开发工作。刘工和李工带领团队根据以往经验完成了需求调研和范围说明书。但由于该项目甲方负责人负责多个项目,时间紧张,导致需求评审会无法召开。张工考虑到双方已经有合作基础,李工和刘工对原系统非常熟悉,为了不影响进度,张工让项目组采用敏捷开发模式,直接进入了设计和编码阶段
在客户验收测试时,甲方负责人提出APP的UI设计不符合公司风格、不兼容新燃气表的数据接口、数据传输加密算法不符合要求等多项问题,要求必须全部实现这些需求后才能验收。此时张工把公司新产品研发部正在研发的新产品给甲方负责人展示,双方口头约定可以采用新产品部分功能实现未完善的需求。经过增加人员和加班赶工,延期1个月完成。项目上线后用户又发现了若干问题。
 
问题:1.1   结合案例,请从项目范围管理的角度指出该项目实施过程中存在的问题。
 
问题:1.2   请写出范围说明书的内容和作用。
 
问题:1.3   结合案例。请阐述张工在需求变更过程中需要完成的具体工作内容。
 
问题:1.4   请将下面1-5处的答案填写在答题纸的对应栏内。
(1)在每个项目任务的分解单元中都存在可交付成果和,标志着某个可交付成果或阶段的正式完成。
(2)创建是将项目的可交付成果和项目工作分解为较小的、更易管理的组件的过程,其主要作用是对所要交付的内容提供一个结构化的视图。其最底层的可交付成果或项目工作组成部分称为
(3)项目干系人提出变更申请后,一般由进行初审。
 
 
 



   知识点讲解    
   · 项目经理    · 敏捷开发    · 验收测试    · 数据传输加密    · 编码阶段    · 加密    · APP    · 应用服务    · 编码    · 传输加密    · 评审
 
       项目经理
        项目经理是负责实现项目目标的个人。
        一般要求
        .广博的知识(项目管理知识、系统集成行业知识、客户行业知识)。
        .丰富的经历。
        .良好的协调能力。
        .良好的职业道德。
        .良好的沟通与表达能力。
        .良好的领导能力。
        好的项目经理
        一个好的项目经理能够使项目完成得出色,把握项目计划包括成本、进度、范围以及质量等,把客户的满意度提到最高。要做好一个项目经理,需要:
        .真正理解项目经理的角色。
        .重视项目团队的管理,奖罚分明。
        .计划、计划、再计划。
        .真正理解“一把手工程”。
        .切记注重用户参与。
 
       敏捷开发
        敏捷软件开发简称敏捷开发,是从20世纪90年代开始逐渐引起广泛关注的一些新型软件开发方法,以应对快速变化的需求。它们的具体名称、理念、过程、术语都不尽相同,相对于“非敏捷”,更强调程序员团队与业务专家之间的紧密协作、面对面沟通、频繁交付新的软件版本、紧凑而自我组织型的团队、能够很好地适应需求变化的代码编写和团队组织方法,也更注重人的作用。
        敏捷开发的发展过程中出现了多个不同的流派,例如极限编程(Extreme Programming,XP)、自适应软件开发、水晶方法、特性驱动开发等。但其中的基本原则是一致的。从开发者的角度,主要的关注点有短平快会议(Stand Up)、小版本发布(Frequent Release)、较少的文档(Minimal Documentation)、合作为重(Collaborative Focus)、客户直接参与(Customer Engagement)、自动化测试(Automated Testing)、适应性计划调整(Adaptive Planning)和结对编程(Pair Programming);从管理者的角度,主要的关注点有测试驱动开发(Test-Driven Development)、持续集成(Continuous Integration)和重构(Refactoring)。
        XP是一种轻量(敏捷)、高效、低风险、柔性、可预测、科学且充满乐趣的软件开发方式,适用于小型或中型软件开发团队,并且客户的需求模糊或需求多变。与其他方法相比,其最大的不同如下:
        (1)在更短的周期内,更早地提供具体、持续的反馈信息。
        (2)迭代地进行计划编制,首先在最开始迅速生成一个总体计划,然后在整个项目开发过程中不断地发展它。
        (3)依赖于自动测试程序来监控开发进度,并及早地捕获缺陷。
        (4)依赖于口头交流、测试和源程序进行沟通。
        (5)倡导持续的演化式的设计。
        (6)依赖于开发团队内部的紧密协作。
        (7)尽可能达到程序员短期利益和项目长期利益的平衡。
        XP由价值观、原则、实践和行为4个部分组成,它们彼此相互依赖、关联,并通过行为贯穿于整个生命周期。XP的核心是其总结的4大价值观,即沟通、简单、反馈和勇气。它们是XP的基础,也是XP的灵魂。XP的5个原则是快速反馈、简单性假设、逐步修改、提倡更改和优质工作。而在XP方法中,贯彻的是“小步快走”的开发原则,因此工作质量决不可打折扣,通常采用测试先行的编码方式来提供支持。
        在XP中集成了12个最佳实践:计划游戏、小型发布、隐喻、简单设计、测试先行、重构、结对编程、集体代码所有制、持续集成、每周工作40小时、现场客户和编码标准。
        敏捷方法主要适用于小规模软件的开发和小型团队的开发。这些方法所提出来的一些所谓的“最佳实践”并非对每个项目都是最佳的,需要项目团队根据实际情况决定。而且,敏捷方法的有些原则在应用中不一定能得到贯彻和执行。因此,在实际工作中,可以“取其精华,去其糟粕”,把敏捷方法和其他方法结合起来。
 
       验收测试
        验收测试是部署软件之前的最后一个测试操作。验收测试的目的是确保软件准备就绪,并且可以让最终用户将其用于执行软件的既定功能和任务。验收测试是向未来的用户表明系统能够像预定要求的那样工作。经集成测试后,已经按照设计把所有的模块组装成一个完整的软件系统了,接口错误也已经基本排除了,接着就应该进一步验证软件的有效性,这就是验收测试的任务,即软件的功能和性能是否如同用户所合理期待的那样。
        验收测试的结果有两种可能:一种是功能和性能指标满足软件需求说明的要求,用户可以接受;另一种是软件不满足软件需求说明的要求,用户无法接受。项目进行到这个阶段才发现严重错误和偏差一般很难在预定的工期内改正,因此必须与用户协商,寻求一个妥善解决问题的方法。
               验收测试的常用策略
               验收测试通常可以分为正式验收和非正式验收,具体选择的策略通常建立在合同需求、组织和公司标准,以及应用领域的基础上。
                      正式验收测试
                      正式验收测试是一项管理严格的过程,它通常是系统测试的延续。计划和设计这些测试的周密和详细程度不亚于系统测试。选择的测试用例应该是系统测试中所执行测试用例的子集。不要偏离所选择的测试用例方向,这一点很重要。在很多组织中,正式验收测试是完全自动执行的。
                      在某些组织中,开发组织(或其独立的测试小组)与最终用户组织的代表一起执行验收测试。在其他组织中,验收测试则完全由最终用户组织执行,或者由最终用户组织选择人员组成一个客观公正的小组来执行。这种测试形式的优点是:
                      .要测试的功能和特性都是已知的。
                      .测试的细节是已知的,并且可以对其进行评测。
                      .这种测试可以自动执行,支持回归测试。
                      .可以对测试过程进行评测和监测。
                      .可接受性标准是已知的。
                      缺点包括:
                      .要求大量的资源和计划。
                      .这些测试可能是系统测试的再次实施。
                      .可能无法发现软件中由于主观原因造成的缺陷,这是因为只查找了预期要发现的缺陷。
                      非正式验收测试
                      在非正式验收测试中,执行测试过程的限定不像正式验收测试中那样严格。在此测试中,确定并记录要研究的功能和业务任务,但没有可以遵循的特定测试用例。测试内容由各测试员决定。这种验收测试方法不像正式验收测试那样组织有序,而且更为主观。
                      大多数情况下,非正式验收测试是由最终用户组织执行的。这种测试形式的优点是:
                      .要测试的功能和特性都是已知的。
                      .可以对测试过程进行评测和监测。
                      .可接受性标准是已知的。
                      .与正式验收测试相比,可以发现更多由于主观原因造成的缺陷。
                      缺点包括:
                      .要求资源、计划和管理资源。
                      .无法控制所使用的测试用例。
                      .最终用户可能沿用系统工作的方式,并可能无法发现缺陷。
                      .最终用户可能专注于比较新系统与遗留系统,而不是专注于查找缺陷。
                      .用于验收测试的资源不受项目的控制,并且可能受到压缩。
               验收测试的条件
               在真正进行用户验收测试之前,一般应该已经完成了以下工作(也可以根据实际情况有选择地采用或增加)。
               (1)软件开发已经完成,并全部解决了已知的软件缺陷。
               (2)验收测试计划已经过评审和批准,并且置于文档控制之下。
               (3)对软件需求说明书的审查已经完成。
               (4)对概要设计及详细设计的审查已经完成。
               (5)对所有关键模块的代码审查已经完成。
               (6)对单元、集成、系统测试计划和报告的审查已经完成。
               (7)所有的测试脚本已完成,并至少执行过一次,且通过评审。
               (8)使用配置管理工具且代码置于配置控制之下。
               (9)软件问题处理流程已经就绪。
               (10)已经制定、评审并批准验收测试完成标准。
               验收测试的过程
               (1)软件需求分析:了解软件功能和性能要求、软硬件环境要求等,并特别要了解软件的质量要求和验收要求。
               (2)编制《验收测试计划》和《项目验收准则》:根据软件需求和验收要求编制测试计划,制定需测试的测试项,制定测试策略及验收通过准则,并制订出经过客户参与评审的计划。
               (3)测试设计和测试用例设计:根据《验收测试计划》和《项目验收准则》编制测试用例,并经过评审。
               (4)测试环境搭建:,建立测试的硬件环境和软件环境等(可在委托客户提供的环境中进行测试)。
               (5)测试实施:测试并记录测试结果。
               (6)测试结果分析:根据验收通过准则分析测试结果,做出验收是否通过的决定,给出测试评价。
               (7)测试报告:根据测试结果编制缺陷报告和验收测试报告,并提交给客户。
               软件配置审核
               软件配置审核包括审查和审核。
               审查是指审查可执行程序、源程序、配置脚本、测试程序或脚本、主要的开发类文档和主要的管理类文档。
               通常,正式的审核过程分为5个步骤,即计划、预备会议(可选)、准备阶段、审核会议和问题追踪。预备会议是指对审核内容进行介绍并讨论。准备阶段就是各责任人事先审核并记录发现的问题。审核会议是指最终确定工作产品中包含的错误和缺陷。
               审核要达到的基本目标是根据共同制定的审核表,尽可能地发现被审核内容中存在的问题,并最终得到解决。在根据相应的审核表进行文档审核和源代码审核时,还要注意文档与源代码的一致性。
               在实际的验收测试执行过程中,常常会发现文档审核是最难的工作,一方面,由于市场需求等方面的压力使这项工作常常被弱化或推迟,造成持续时间变长,加大文档审核的难度;另一方面,文档审核中不易把握的地方非常多,每个项目都有一些特别的地方,而且也很难找到可用的参考资料。
               对软件需求说明书的审查,可以从清晰性、完整性、依从性、一致性、可行性和可管理性等几个方面考虑。对软件设计说明书(详细设计说明书、概要设计说明书)的审查,可以从清晰性、完整性、依从性、一致性、可行性、数据使用性、功能性、接口、可维护性、性能、可靠性、易测性和可追溯性等方面考虑。对测试计划(单元测试计划、集成测试计划、确认测试计划、系统测试计划)的审查,可以从完整性、依从性、一致性、正确性、详细级别/程度、易测性/可行性和可追溯性等方面考虑。对软件编码规范的审查,可以考虑源程序文档化、数据说明、输入输出等方面,评审的目的是为了使程序具有良好的风格,便于阅读。
               可执行程序的测试
               在文档审核、源代码审核、配置脚本审核、测试程序或脚本审核都顺利完成后,就可以进行验收测试的最后一个步骤——可执行程序的测试了,包括功能、性能等方面的测试,每种测试也都包括目标、启动标准、活动、完成标准和度量5个部分。
               不能直接使用开发方提供的可执行程序用于测试,而要按照开发方提供的编译步骤,从源代码重新生成可执行程序。
               验收测试的内容
               具体的测试内容通常可以包括安装(升级)、启动与关机、功能测试(正例、重要算法、边界、时序、反例、错误处理)、性能测试(正常的负载、容量变化)、压力测试(临界的负载、容量变化)、配置测试、平台测试、安全性测试、恢复测试(在出现掉电、硬件故障或切换、网络故障等情况时,系统是否能够正常运行)及可靠性测试等。
               如果执行了所有的测试案例、测试程序或脚本,用户验收测试中发现的所有软件问题也都已解决,而且所有的软件配置均已更新和审核,可以反映出软件在用户验收测试中所发生的变化,用户验收测试就完成了。
 
       数据传输加密
        数据传输加密技术的目的是对传输中的数据流加密,以防止通信线路上的窃听、泄露、篡改和破坏。如果以加密实现的通信层次来区分,加密可以在通信的三个不同层次来实现,即链路加密(位于网络层以下的加密)、节点加密和端到端加密(传输前对文件加密,位于网络层以上的加密)。一般常用的是链路加密和端到端加密这两种方式。
        链路加密侧重于在通信链路上而不考虑信源和信宿,是对保密信息通过各链路采用不同的加密密钥提供安全保护。链路加密是面向节点的,对于网络高层主体是透明的,它对高层的协议信息(地址、检错、帧头帧尾)都加密,因此数据在传输中是密文的,但在中央节点必须解密得到路由信息。
        节点加密的加解密都在节点中进行,即每个节点中装有加解密保护装置,用于完成一个密钥向另一个密钥的转换。节点中虽然不会出现明文,但是需要在经过的每个节点加装保护装置,这不仅不方便使用,而且会增加开支。
        端到端加密则是指信息由发送端自动加密,并进入TCP/IP数据包回封,然后作为不可阅读和不可识别的数据穿过因特网,当这些信息一旦到达目的地,将自动重组、解密,成为可读数据。端到端加密是面向网络高层主体的,它不对下层协议进行信息加密,协议信息以明文形式传输,用户数据在中央节点不需解密。
 
       编码阶段
        . 可靠性测试(含于单元测试);
        . 排错;
        . 调整可靠性活动计划;
        . 收集可靠性数据;
        . 明确后续阶段的可靠性活动的详细计划;
        . 编制可靠性文档。
 
       加密
               保密与加密
               保密就是保证敏感信息不被非授权的人知道。加密是指通过将信息进行编码而使得侵入者不能够阅读或理解的方法,目的是保护数据和信息。解密是将加密的过程反过来,即将编码信息转化为原来的形式。古时候的人就已经发明了密码技术,而现今的密码技术已经从外交和军事领域走向了公开,并结合了数学、计算机科学、电子与通信等诸多学科而成为了一门交叉学科。现今的密码技术不仅具有保证信息机密性的信息加密功能,而且还具有数字签名、身份验证、秘密分存、系统安全等功能,来鉴别信息的来源以防止信息被篡改、伪造和假冒,保证信息的完整性和确定性。
               加密与解密机制
               加密的基本过程包括对原来的可读信息(称为明文或平文)进行翻译,译成的代码称为密码或密文,加密算法中使用的参数称为加密密钥。密文经解密算法作用后形成明文,解密算法也有一个密钥,这两个密钥可以相同也可以不相同。信息编码的和解码方法可以很简单也可以很复杂,需要一些加密算法和解密算法来完成。
               从破译者的角度来看,密码分析所面对的问题有三种主要的变型:①“只有密文”问题(仅有密文而无明文);②“已知明文”问题(已有了一批相匹配的明文与密文);③“选择明文”(能够加密自己所选的明文)。如果密码系统仅能经得起第一种类型的攻击,那么它还不能算是真正的安全,因为破译者完全可能从统计学的角度与一般的通信规律中猜测出一部分的明文,而得到一些相匹配的明文与密文,进而全部解密。因此,真正安全的密码机制应使破译者即使拥有了一些匹配的明文与密文也无法破译其他的密文。
               如果加密算法是可能公开的,那么真正的秘密就在于密钥了,密钥长度越长,密钥空间就越大,破译密钥所花的时间就越长,破译的可能性就越小。所以应该采用尽量长的密钥,并对密钥进行保密和实施密钥管理。
               国家明确规定严格禁止直接使用国外的密码算法和安全产品,原因主要有两点:①国外禁止出口密码算法和产品,目前所出口的密码算法都有破译手段,②国外的算法和产品中可能存在“后门”,要防止其在关键时刻危害我国安全。
               密码算法
               密码技术用来进行鉴别和保密,选择一个强壮的加密算法是至关重要的。密码算法一般分为传统密码算法(又称为对称密码算法)和公开密钥密码算法(又称为非对称密码算法)两类,对称密钥密码技术要求加密解密双方拥有相同的密钥。而非对称密钥密码技术是加密解密双方拥有不相同的密钥。
               对称密钥密码体制从加密模式上可分为序列密码和分组密码两大类(这两种体制之间还有许多中间类型)。
               序列密码是军事和外交场合中主要使用的一种密码技术。其主要原理是:通过有限状态机产生性能优良的伪随机序列,使用该序列将信息流逐比特加密从而得到密文序列。可以看出,序列密码算法的安全强度由它产生的伪随机序列的好坏而决定。分组密码的工作方式是将明文分成固定长度的组(如64比特一组),对每一组明文用同一个密钥和同一种算法来加密,输出的密文也是固定长度的。在序列密码体制中,密文不仅与最初给定的密码算法和密钥有关,同时也是被处理的数据段在明文中所处的位置的函数;而在分组密码体制中,经过加密所得到的密文仅与给定的密码算法和密钥有关,而与被处理的明数据段在整个明文中所处的位置无关。
               不同于传统的对称密钥密码体制,非对称密码算法要求密钥成对出现,一个为加密密钥(可以公开),另一个为解密密钥(用户要保护好),并且不可能从其中一个推导出另一个。公共密钥与专用密钥是有紧密关系的,用公共密钥加密的信息只能用专用密钥解密,反之亦然。另外,公钥加密也用来对专用密钥进行加密。
               公钥算法不需要联机密钥服务器,只在通信双方之间传送专用密钥,而用专用密钥来对实际传输的数据加密解密。密钥分配协议简单,所以极大简化了密钥管理,但公共密钥方案较保密密钥方案处理速度慢,因此,通常把公共密钥与专用密钥技术结合起来实现最佳性能。
               密钥及密钥管理
               密钥是密码算法中的可变参数。有时候密码算法是公开的,而密钥是保密的,而密码分析者通常通过获得密钥来破译密码体制。也就是说,密码体制的安全性建立在对密钥的依赖上。所以,保守密钥秘密是非常重要的。
               密钥管理一般包括以下8个内容。
               (1)产生密钥:密钥由随机数生成器产生,并且应该有专门的密钥管理部门或授权人员负责密钥的产生和检验。
               (2)分发密钥:密钥的分发可以采取人工、自动或者人工与自动相结合的方式。加密设备应当使用经过认证的密钥分发技术。
               (3)输入和输出密钥:密钥的输入和输出应当经由合法的密钥管理设备进行。人工分发的密钥可以用明文形式输入和输出,并将密钥分段处理;电子形式分发的密钥应以加密的形式输入和输出。输入密钥时不应显示明文密钥。
               (4)更换密钥:密钥的更换可以由人工或自动方式按照密钥输入和密钥输出的要求来实现。
               (5)存储密钥:密钥在加密设备内采用明文形式存储,但是不能被任何外部设备访问。
               (6)保存和备份密钥:密钥应当尽量分段保存,可以分成两部分并且保存在不同的地方,例如一部分存储在保密设备中,另一部分存储在IC卡上。密钥的备份也应当注意安全并且要加密保存。
               (7)密钥的寿命:密钥不可以无限期使用,密钥使用得越久风险也就越大。密钥应当定期更换。
               (8)销毁密钥:加密设备应能对设备内的所有明文密钥和其他没受到保护的重要保护参数清零。
 
       APP
        (1)APP的定义。APP就是应用程序Application的意思,APP营销是通过智能手机、社区、SNS等平台上运行的应用程序来开展的营销活动。
        (2)APP营销模式。APP营销的主要模式有广告植入、用户植入和购物网站植入。
        ①广告植入。APP营销常见的广告植入有三种:加载应用时段植入的广告、运行应用时穿插的广告及运行主界面中商家LOGO广告。
        ②用户植入。主要的应用类型是网站移植类和品牌应用类,企业把符合自己定位的应用发布到应用商店内,供智能手机用户下载,用户利用这种应用可以很直观地了解企业的信息。这种营销模式具有很强的实验价值,让用户了解产品,增强产品信心,提升品牌美誉度。
        ③购物网站植入。将购物网站移植到收集上,用户可以随时随地浏览网站获取商品信息,进行下单。这种模式相对于手机购物网站的优势是快速便捷、内容丰富,并且这种应用一般具有很多优惠措施。
 
       应用服务
        电子商务应用是企业利用电子手段展开商务活动的核心,也是电子商务系统组成的核心部分,是通过应用程序来实现的。事实上,企业商务服务的业务逻辑规划是否合理,直接影响到电子商务系统的功能。
 
       编码
               编码过程
               在给定了软件设计规格说明书后,下一步的工作就是编写代码。一般来说,编码工作可以分为四个步骤:
               (1)确定源程序的标准格式,制订编程规范。
               (2)准备编程环境,包括软硬件平台的选择,包括操作系统、编程语言、集成开发环境等。
               (3)编写代码。
               (4)进行代码审查,以提高编码质量。为提高审查的效率,在代码审查前需要准备一份检查清单,并设定此次审查须找到的bug数量。在审查时,要检查软件规格说明书与编码内容是否一致;代码对硬件和操作系统资源的访问是否正确;中断控制模块是否正确等。
               编码准则
               在嵌入式系统中,由于资源有限,且实时性和可靠性要求较高,因此,在开发嵌入式软件时,要注意对执行时间、存储空间和开发/维护时间这三种资源的使用进行优化。也就是说,代码的执行速度要越快越好,系统占用的存储空间要越小越好,软件开发和维护的时间要越少越好。
               具体来说,在编写代码时,需要做到以下几点:
               .保持函数短小精悍。一个函数应该只实现一个功能,如果函数的代码过于复杂,将多个功能混杂在一起,就很难具备可靠性和可维护性。另外,要限制函数的长度,一般来说,一个函数的长度最好不要超过100行。
               .封装代码。将数据以及对其进行操作的代码封装在一个实体中,其他代码不能直接访问这些数据。例如,全局变量必须在使用该变量的函数或模块内定义。对代码进行封装的结果就是消除了代码之间的依赖性,提高了对象的内聚性,使封装后的代码对其他行为的依赖性较小。
               .消除冗余代码。例如,将一个变量赋给它自己,初始化或设置一个变量后却从不使用它,等等。研究表明,即使是无害的冗余也往往和程序的缺陷高度关联。
               .减少实时代码。实时代码不但容易出错、编写成本较高,而且调试成本可能更高。如果可能,最好将对执行时间要求严格的代码转移到一个单独的任务或者程序段中。
               .编写优雅流畅的代码。
               .遵守代码编写标准并借助检查工具。用自动检验工具寻找缺陷比人工调试便宜,而且能捕捉到通过传统测试检查不到的各种问题。
               编码技术
                      编程规范
                      在嵌入式软件开发过程中,遵守编程规范,养成良好的编程习惯,这是非常重要的,将直接影响到所编写代码的质量。
                      编程规范主要涉及的三方面内容:
                      .命名规则。从编译器的角度,一个合法的变量名由字母、数字和下画线三种字符组成,且第一个字符必须为字母或下画线。但是从程序员的角度,一个好的名字不仅要合法,还要载有足够的信息,做到“见名知意”,并且在语意清晰、不含歧义的前提下,尽可能地简短。
                      .编码格式。在程序布局时,要使用缩进规则,例如变量的定义和可执行语句要缩进一级,当函数的参数过长时,也要缩进。另外,括弧的使用要整齐配对,要善于使用空格和空行来美化代码。例如,在二元运算符与其运算对象之间,要留有空格;在变量定义和代码之间要留有空行;在不同功能的代码段之间也要用空行隔开。
                      .注释的书写。注释的典型内容包括:函数的功能描述;设计过程中的决策,如数据结构和算法的选择;错误的处理方式;复杂代码的设计思想等。在书写注释时要注意,注释的内容应该与相应的代码保持一致,同时要避免不必要的注释,过犹不及。
                      性能优化
                      由于嵌入式系统对实时性的要求较高,因此一般要求对代码的性能进行优化,使代码的执行速度越快越好。以算术运算为例,在编写代码时,需要仔细地选择和使用算术运算符。一般来说,整数的算术运算最快,其次是带有硬件支持的浮点运算,而用软件来实现的浮点运算是非常慢的。因此,在编码时要遵守以下准则:
                      .尽量使用整数(char、short、int和long)的加法和减法。
                      .如果没有硬件支持,尽量避免使用乘法。
                      .尽量避免使用除法。
                      .如果没有硬件支持,尽量避免使用浮点数。
                      下图是一个例子,其中两段代码的功能完全一样,都是对一个结构体数组的各个元素进行初始化,但采用两种不同的方法来实现。下图(a)采用数组下标的方法,在定位第i个数组元素时,需要将i乘以结构体元素的大小,再加上数组的起始地址。下图(b)采用的是指针访问的方法,先把指针fp初始化为数组的起始地址,然后每访问完一个数组元素,就把fp加1,指向下一个元素。在一个奔腾4的PC上,将这两段代码分别重复10 700次,右边这段代码需要1ms,而左边这段代码需要2.13ms。
                      
                      算术运算性能优化的例子
 
       传输加密
        启用路由器的IPSec功能,对路由器之间传输的信息进行加密。借助IPSec,路由器支持建立虚拟专用网(VPN),因而可以用在公共IP网络上确保数据通信的保密性。由于IPSec的部署简便,只须安全通道两端的路由器支持IPSec协议即可,几乎不需要对网络现有的基础设施进行变动。
 
       评审
        对设计部分是否完整地实现了需求中规定的功能、性能等要求,设计方法的可行性,关键的处理及内外部接口定义的正确性、有效性、各部分之间的一致性等都一一进行评审。


 题号导航      2020年下半年 信息系统项目管理师 下午试卷 案例   本试卷我的完整做题情况 
1 /
2 /
3 /
 
↓第1题