软件编码阶段解读

       软件编码的作用是将系统分析和系统设计的结果和内容转换为多条线实际产品的过程 。 编码是软件项目开展过程中必须的、不可或缺的、极为重要的环节。

   一、编码阶段的目标和任务目标: 按照系统设计阶段产生的文档,进行软 件系统功能开发,整合各个功能模块,实现 系统的集成运行,并满足需求分析阶段提出 的性能要求。

    任务: 将详细设计的结果转化为用具体程序设 计语言编写的程序代码。

    做好:

      (1)对编码任务进行工作分解,在整体项 目计划的基础上,制定本阶段的工作计划(包 括进度、人员、费用、质量、自测试等);

     (2)组建开发团队,进行有效管理,按计 划完成任务;

     (3) 实现系统编程工作;

     (4)管理在开发和实现过程中产生的所有 文档资料和软件系统的临时版本。

二、 编码的基本原则

     (1) 严格按照系统设计说明书完成软件的 编码工作。通过编码完成系统分析和系统设 计阶段制定的目标。

      (2)对于开发过程中发生的需求变更及设 计变更等问题,需要通过项目启动阶段确定 的变更控制流程进行处理。

      (3)执行制定的软件编码规范,确保程序 代码具有良好的编写风格和接口规范。

      (4)注重软件阶段性成果及文档资料的管 理工作,加强版本控制。

      (5)注重团队协作精神的培养和运用,善 于总结、加强沟通,提高团队凝聚力。

      (6)注重提炼公用代码,加强公共模块的 开发,形成公用编程知识库,以利于提高开 发效率。

三、 软件开发阶段往往有这样一个等式存在: “1+1

  a、团队成员及职责

       (1)项目经理 负责编码阶段的项目组织、项目协调、 项目沟通、项目进度的跟踪和控制工作。         (2)编码责任人 是软件实现阶段的核心角色。主要任务有: 1)充分理解系统设计内容,按照软件工程 理念将整个开发工作化整为零,进行合理分 割,并分派给每位程序员; 2)制定软件开发计划,严格按照项目总体 进度开展工作; 3)组建和管理软件开发团队,并落实每个 成员的工作任务; 4)开展编码质量检查,避免在整个系统开 发完成后发现重要的质量问题; 5)组织人员进行技术难题的解决; 6)协调各程序员之间的工作,协调系统编 码实现过程中对系统设计阶段问题的更改和 解决; 7)解决软件编码过程中遇到的难题,必要 的时候需要亲自编写和调试程序代码。

        (3)程序员 负责完成自己承担的软件编码工作。 一般分为高级程序员、中级程序员和初级 程序员。

        (4)文档秘书 负责定期进行程序代码及文档的归档、 保存、借阅等管理工作。

        (5)系统设计员 负责对编码人员讲解、说明相关设计内 容及要求,帮助程序员理解整个系统的设计 思路和实现特点,确保开发人员能够深刻理 解系统设计的核心思想,正确顺利地开展工 作。          (6)质量管理员 负责制定编码规范和编码质量文件、组织 编码阶段的评审工作,监督检查质量标准落 实情况,减少整个项目由于质量原因而造成 的风险,为软件开发过程的阶段性成果和内 容进行把关 。

        (7)配置管理员 负责软件开发阶段的软件配置管理以及设 计变更的控制工作,及时将通过测试的软件 代码及文档纳入配置管理项。

      b、 团队成员的能力因素

          (1)编码责任人的能力要求 应具有相当丰富的专业技术知识和较强的组织管理能力。

          (2)程序员的能力要求 必须具备熟练软件编码的能力、较强的 理解、沟通能力以及团队协作精神。

           (3)文档秘书的能力要求 应具有一定的整理文档和办公室业务管 理的经验,更重要的是需要有较强的责任心。

       c、合理的人员结构

          1)结合本项目的特点及项目涉及的技术领 域及范围,合理搭配人员结构,保证在项目 开发过程中万一碰到任何方面的技术问题, 都有比较熟悉的人员可以予以解决。

           2)考虑人员的成本及他们之间的工作衔接 问题。

       d、明确的职责及工作分工 切忌工作安排上出现所有的事情大家都 在干,而所有的事情都没有最终的责任人的 现象。

       e、适度的激励政策

          1)制定适当的激励制度,使工作优秀员工 获得适当的物质及精神奖励;

           2)激励政策要适度,不要因为不公平奖励 造成团队不稳定。

       f、集体责任感和荣誉感的培养和加强 尊重团队每个成员的工作成果,使其感 觉到自己对于团队和项目成功的重要性。

       g、共同提高的指导思想 学不到新技术和知识是人员跳槽的一个 主要原因,因而,在项目实施过程中,必须 坚持团队成员共同提高的指导思想。

       h、人员风险的考虑

           1)要通过大量的沟通工作,采取有效办法 预防人员流动;

            2)及时采取补救措施,将由于人员流动 造成的危害降到最低限度。

            3)第三根据工作能力和表现,及时地进 行人员工作的调整,将一些不合适在该团队 工作的人员调离,吸纳一些更具竞争优势、 更合适的人员进入团队。切忌由于害怕人员 流动造成损失,而迁就目前已经存在问题的 成员,这样做的结果是最终可能导致项目的 失败。

四、主要从编码的进度、质量、成本和开发 过程四个方面来管理。

     a、进度管理 保证编码进度的一致性和协调性是进度 管理的核心问题。

          (1)工作精细化 要使每位软件编码人员清楚自己每天必 须完成的工作。并将阶段性目标管理和过程 管理方法紧密结合起来,做到及时发现问题, 及时处理。

           (2)减少干扰 软件编码时最好进行封闭开发,尽量减 少其他事情对编码工作的影响。

           (3)使用正确有效的激励机制 软件开发是一种智力型的活动 ,要提高 编码人员的工作效率和质量,而不是比谁写 的代码多,比谁加班时间长。项目经理要制 定正确有效的激励机制,充分发挥每个人的 主观能动性。要防止干多干少一个样,干好 干坏一个样,挫伤优秀成员的工作积极性。

           (4)有效沟通 沟通主要解决程序接口、系统集成,以 及团队成员之间互相了解彼此的进度、编程 的风格、实现的思路以及学习他人聪明的编 程模式和解决问题的方法。 沟通采取正式和非正式两种形式来开展。 通过沟通,可以准确掌握编码工作的进 度状况,了解工作中出现的问题及困难,并 及时提出解决问题的办法;同时,还便于了 解团队成员的工作心态,预防消极怠工及员 工突然辞职等现象的发生。

            (5)合理的工作分配 团队成员熟悉的技术层面和技术水平各 不相同,在进行任务分工时要结合每个人的 技术优势、能力水平、经验知识和综合素质, 对每个成员分派适当的任务及工作量,扬长 避短、挖掘潜力、发挥优势,保证每个成员 能够恰如其分地发挥其才能和智慧,从而确 保整个项目的开发工作快速高效地向前推进。

           (6)采用先进的软件开发平台和技术方法 1)善于使用先进的开发工具 软件编码阶段,一方面要选择功能强大 的集成化软件开发平台,以提高软件编码、 调试和集成的工作效率;另一个方面可选择 一些功能强大的中间件接口产品或模块,降 低软件开发的技术难度,提高软件开发的进 度、效率、甚至软件系统的质量和稳定性。

       b、公共代码的抽取及开发 软件开发过程中往往存在大量的公共代 码,在进行任务分解的时候要善于抽取出较 多的公共代码,并安排技术能力较强、开发 经验丰富的软件工程师承担公共模块的开发 任务,降低软件开发中的重复劳动,提高软 件编码的工作效率及软件质量。

       c、重视软件复用工作 借助软件复用的思想,不但能够实现本 项目内部的复用,还能够实现不同项目间的 代码复用。

       d、及时监督与检查 对项目进度要进行日常的监督与检查工 作,及时发现软件编码中存在的问题,对于 已出现的问题要及时解决,对于不能按计划 完成的,要及时做出工作调整。

       e、成本管理 编码阶段的成本管理主要从以下几个方 面来考虑:

            (1)组建合理的人员结构和稳定的项目团 队 在项目实施中,一味地全都使用成本较 高或较低的人员都是不可取的做法。具体人 员的能力要求和各种人员的比例结构要根据 项目的执行情况而定。只有在人员结构合理 的前提下,才能确保以最低的人力成本实现 项目的最终目标。 有了合理的人员结构,还需要有稳定的 开发团队。人员的频繁流动,也会大大影响 团队的工作效率和开发成本。

             (2)实行科学有效的管理 做好各个环节的项目管理工作,实现成 本控制的目标。

             (3)采用现代先进技术和集成平台工具 借助先进的开发技术和快速的开发工具 是加快项目进度的有效手段。

              (4)做好变更控制 用户需求的变更带来的将是大量开发工 作的前功尽弃,使开发进度延期,开发成本 大幅度提高。所以对软件开发中有效的变更 控制是成本控制和管理的保证。

              (5)尽量采用成熟的商品化软件或中间件 首先要认识到自己组织人力开发软件并 不是最省钱。软件的定制开发成本必然会高 于购买商品化软件所付出的费用。 软件自主开发的主要优点在于:满足用 户的个性化需求,缺点是成本较高。因此在 软件开发中,应充分了解和分析自己所需要 实现的目标系统中,哪些模块或功能已经有 一些商品化的组件可以购买,哪些功能是必 须自己开发的,这样既能保证程序实现过程 中的高质量,又有利于提高系统的稳定性, 同时在很大程度上也节约了系统的开发成本。

        f、质量管理 编码工作的优劣直接决定着软件交付成 果的质量。

           (1)正确理解设计说明书 设计人员要参与软件编码阶段的工作, 通过与编码人员的交流、检查,协助编码人 员完成符合设计要求的软件编码工作。

           (2)制定编码规范 通过程序代码编写规范,强制要求所有 代码编写人员按照统一的要求完成代码的编 写任务。

            (3)代码的规范性检查 要开展定期和不定期的对编码规范在编 码工作中落实情况的检查,从而促使程序员 形成自觉执行编码规范的良好习惯。

            (4)编码规范模板 项目组在开展工作过程中,要根据自己 当前承担项目的特点和所选择的编程语言的 特点,制定适合本项目编程工作的规范,使 同一个项目保持和使用统一的编码规范。               

        g、程序代码及文档管理

               (1)做好代码及文档的归档保存 编码人员每日或每周工作结束前,应将 完成代码及文档上缴,配合文档秘书开展编 码阶段的过程管理工作。

                (2)制作程序的进度版本 文档秘书根据编码人员提供的阶段性成 果,制作当周/日的程序进度版本。一旦发 生代码或文档丢失,可通过进度版本恢复最 近的工作成果,将损失减到最小。         

                (3)跟踪公共代码的修改信息 出现对公共代码修改时,文档秘书要及 时检查修改情况,并将修改后的程序代码及 文档送达项目组相关人员。

          h、工作过程检查 工作过程检查的主要内容有两个方面。

               (1)工作进度情况 通过每月/周/天各项目组成员提交的 阶段性成果,检查进度完成情况,发现工作 开展过程中出现的问题,及时进行本阶段计 划的调整,确保按计划完成软件编码阶段的 任务。

               (2)完成的质量情况 一是规范性要求检查,检查是否严格按 照编码规范开展工作;二是检查代码的运行 效率、逻辑的严密性等方面内容,以减少软 件测试阶段的工作量,提高软件的编程质量。

五、与需求分析及设计阶段工作的协调 编码阶段与需求、设计阶段工作协调

        主要表现为:

            (1)对需求和设计的正确理解 编码人员需要很好地理解用户需求及设 计说明书的内容,保证开发出来的软件是符 合用户要求的产品。本阶段需要用户代表及 设计人员参与软件编码的活动,通过与编码 人员的有效沟通完成。

            (2)需求与设计的变更 在软件编码阶段碰到的最严重的问题就 是需求和设计的变更。需求及设计的变更带 来的是编码人员大量的重复劳动、项目的延 期及开发费用的超支。所以,对需求及设计 变更的处理要慎重对待,编码人员不能随便 接受用户的变更请求,要严格执行项目启动 阶段制定的变更处理规定。

六、与测试阶段的工作协调 软件测试的目的就是要尽可能多地发现 软件中存在的错误。

      编码和测试两个阶段共 同构成了软件项目的实施内容。两个阶段在 项目实施中要循环反复多次。 这两个阶段的工作协调体现在:

         (1)编码人员与测试人员的工作协作

              ▲编码人员在完成软件编码的同时完成 使用文档的编写工作,以便测试人员能尽快 进行软件测试,尽最大可能发现程序中的问 题;

              ▲编码人员要根据测试结果,分析造成 错误的原因,完成软件的修改和完善工作。

          (2)制定协作计划和工作流程 由于测试和修改工作需要循环反复多次, 为了确保软件开发的工作进度和工作质量, 项目经理要制定协同工作计划和工作流程。

           (3)工作矛盾的解决 这个阶段容易出现测试人员与编码人员 工作配合上的矛盾,项目经理要做好矛盾的 协调解决工作。测试人员要积极协助编码人 员发现问题;编码人员更要尊重测试人员的 工作成果,认真对待测试问题并及时完成修 改和完善工作。

七、工作成果 软件编码阶段完成后

         (1)可交付的阶段性成果包括:

            1)源程序代码 根据满足系统设计要求,符合编码规范的 全部源程序代码。

            2)软件开发文档资料 包括用户手册,系统管理及维护手册等。

        (2)工作评价

             1)正确性 在编码阶段进行程序代码的正确性检查 工作,确保开发出来的程序代码具有较高的 质量,为软件测试工作奠定良好的基础。

             2)规范性 程序代码的编写符合编码规范的工作要 求,就可以认为代码编写具有良好的规范性。 

              3)算法的高效性 在编写软件代码时,在保证程序正确的前 提下,开发人员要尽量采用高效率的处理算 法。

              4)程序的健壮性 在软件编码时,编码人员不仅要考虑正常 情况下程序的运行情况,更要关注程序在异 常情况下可能出现的问题。这要求每个编码 人员在编码时要具有严格的逻辑思维能力, 对程序运行将会出现的各种情况都要严格地 分析和考虑,将之纳入程序的控制之下,在 编码阶段尽可能多的堵塞各种程序漏洞,使 留给测试和维护阶段的问题尽可能减少。

            5)可扩展性和易修改性 在业务需求发生变化时,程序是否具有良 好的可扩展性和易修改性,关系到能否避免 牵一发而动全局的现象发生。

提示: 提高软件开发效率和质量,主要有 哪些方法/p>

         a.提取公用模块

         b.使用程序模板

         c.使用开源软件

         d.采用先进的开发工具(包括代码生成工具 等)

         e.面向对象方法

来源:Jason snow

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年5月11日
下一篇 2021年5月11日

相关推荐