首页 > 其他 > 详细

伪代码与UML

时间:2020-02-19 19:44:55      阅读:92      评论:0      收藏:0      [点我收藏+]

为什么要使用伪代码

伪代码的好处:

          1.辅助开发,可以站在一较高层次上编写代码,而不陷入语法细节.     (完全代替uml 中的流程图, 流程图其实与最终代码没有多大关系, 就不推荐使用)。
          2.可以直接将伪代码变成注释,省去编写注释的时间
          3.代码变更时,修改伪代码,比修改几十行代码来的容易

要求:

        1. 避免使用目标语言的语法元素。
        2. 在意图层面上编写伪代码  。更加接近解决问题的核心,不落入语法细节。
        3. 在一个足够低的层次上编写伪代码  。便于伪代码转化成代码。

为什么要使用 UML:

很多人知道并会使用UML, 但我认为他们其实忽视了UML, UML 其实是一种抛弃代码, 思考代码的一种方式.

UML的意图是图解问题, 既可用任何图形来表达想法,解决问题, 而不仅仅是使用UML 里面的各种图形. 因为UML 图并不完善, 里面的有些图并不实用, 有些图又没有, 例如架构图.
这里提到的图解法是UML的核心思想, 用图形表达想法, 用图形设计代码 . 额外的思维导图也提供了一些图解的方式.

伪代码 与UML

伪代码是解决问题的步骤, UML是分析问题的方式. 二者都是应该放入程序员的工具箱子. 而何时图解? 何时伪代码?

一般解决复杂问题, 推荐使用图解法. 例如架构(建议不同方框, 颜色的组合 组合使用)的设计, 核心问题的分析.

伪代码适用于编写代码之前, 思考问题, 罗列解决问题的步骤, 因为它不适合思考问题, 但是适合罗列以及记录.

写伪代码的案例

案例:产生4位数的验证码

第一步 写伪代码

    //产生安全码,使用表驱动法
    public void 伪代码() {
    //        1.定义一个空的字符变量,保存安全码
    //        2.创建安全码的表,使用数组
    //        3.循环4次产生四个在指定范围的数字(为数组的下标),查表,添加到字符变量
    //        4.输出字符变量
    }

第二步 脑中运行伪代码 (口读一遍)

假设在大脑中运行伪代码,一次编写就成功。而不是直接运行代码,调试错误。
检查伪代码,是否简洁,是否能够完成目标。

第三步 填写代码

  @Test
    public void 伪代码() {
        //产生安全码,使用表驱动法

        //1.定义一个空的字符变量,保存安全码

        String safeCode="";
        //        2.创建安全码的表,使用数组
        char [] safeCodeList={'a','b','c','d','e','f','d','h','i','g','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'};

//        3.循环4次产生四个在指定范围的数字(为数组的下标),查表,添加到字符变量

        for (int i = 0; i <4 ; i++) {
            safeCode+=safeCodeList[(int)(Math.random()*26)];

        }
//        4.输出字符变量
        System.out.println(safeCode);
//
//

编写完成后
审查代码:如果代码填充时候,一行伪代码其实现代码过多。应当考虑创建子程序,保证伪代码的简洁,同时细化伪代码。
代码出现错误时:
首先调试代码是否按照伪代码执行。
其次检查伪代码是否有漏洞,修改伪代码,保证逻辑可行,重新编码。

总结

从这个角度分析, 伪代码其实是设计图与代码之间的过度. 是代码的前身, 但是有些问题就不适用于伪代码当合理使用.

附: 关于伪代码的写法: 可参考《代码大全2》
其中:表驱动法:可以大大减少逻辑判断,简化代码。

伪代码与UML

原文:https://www.cnblogs.com/rainbowbridge/p/12332540.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!