zoukankan      html  css  js  c++  java
  • 设想的用户交互流程


     

    1.       一开始,显示整个工程的状况

    这一步具体有很多工作要做,最终目标是能够让用户快速分辨出工程由几个模块组成,哪些模块属于高层模块,哪些属于底层模块,分辨出每个模块中比较重要的类。还有每个类在程序里面的实际影响范围。

    具体的设想在下一步进行,当前重点考虑类内部的设计。

     

    2.       用户选出感兴趣的模块,进而挑选感兴趣的类。

    假设挑选了下面这个类。

    3.       用户第一眼,应该能够分辨出这个类最主要的成员。包括处理核心计算的1-2个函数,最重要的3-4个变量。其余函数、变量以不显眼的形式(例如灰色或淡色的节点)展示,这样用户可以看出一些额外的信息,例如这个类是函数多,还是变量多。最主要的函数,其相关的调用关系也以显眼的边画出。我认为可以借助城市不同等级道路的表示方式。

     

    当前函数的效果如下面左图,而函数加变量的效果为下面右图。主要问题是所有的函数、变量都显得同等重要,无法分出主次,连接边太过乱。


     

    4.       为了让用户对类的工作方式有进一步了解,需要以某种形式展示类的数据流图。

     

    首先需要分出数据入口和出口。初步的方法可以检查类的公有成员函数(因为这部分成员才与外部发生数据交换,先不考虑友元、静态函数等特殊情况),若函数设置了类内部的变量,认为其为数据入口,若函数设置了传入的变量,或者返回内部变量,认为其为数据出口。可以以一些简单的图标展示,例如下图的箭头(下图仅仅根据函数的setget前缀标注了相应的函数)。但是这些图标默认必须是隐藏的,只有在用户打开开关时才显示,以防一开始分散用户的注意力。

     

    然后可以指出一些重要的数据流向。例如,用户指定几个入口,几个出口,系统找出几个可能的数据流。下图中用户指定setSelectedEntity为入口,getSelectedEdges为出口,系统计算出可能的数据流。即通过setSelectedEntity->updateSelectedRendering->getSelectedEdges 这样的函数调用顺序,有可能(不保证完全准确)把输入的entity数据转换成输出的selectedEdges数据。


     

    5.       用户还可以通过交互,从核心函数开始,逐步了解类的其余部分。例如通过选定其中一个函数,知道与其相关的函数和变量。







  • 相关阅读:
    将springboot安装成windows服务启动。
    jackson将json数组转成List、普通数组。
    maven编译正常,运行报错:中没有主清单属性
    [SQL]SUTFF内置函数的用法 (删除指定长度的字符并在指定的起始点插入另一组字符)
    sql语句中charindex的用法 可用于截取字符串
    C# 中怎么将string转换成int型
    C#判断奇偶数的函數
    asp.net 下载Excel (数据流,不保存)--客户端
    C# DateTime 日期加1天 减一天 加一月 减一月 等方法(转)
    ASP.NET jquery ajax传递参数
  • 原文地址:https://www.cnblogs.com/dydx/p/4534834.html
Copyright © 2011-2022 走看看