设想的用户交互流程

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

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

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

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

假设挑选了下面这个类。

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

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

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

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

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

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

来自为知笔记(Wiz)

时间: 2024-10-06 01:42:47

设想的用户交互流程的相关文章

Python基础一: 计算机基础,Python相关介绍,变量,常量,注释,基础数据类型(int,str,bool),用户交互input,流程控制语句if

1.CPU 内存 硬盘 操作系统 CPU:计算机的运算和控制中心,相当于人类的大脑. 内存:用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据.(暂时存储数据,临时加载数据及应用程序) 4G,8G,16G,32G 速度快,效率高,造价高 断电数据丢失 硬盘:磁盘,长期存储数据,存放文件,视频,音频等等.500G,1T 造价相对低 操作系统:是一个连接计算机硬件与所有软件的一个软件. 2.Python的发展与应用 Python的创始人为吉多·范罗苏姆(Guido van Rossum

Python的简单介绍/解释器/变量/变量的数据类型/用户交互及流程控制(if)

一.Python的简单介绍 1.python是一门 解释型弱类型编程语言. 2.特点: 简单.明确.优雅 二.python的解释器有哪些 CPython -- 官方提供的.,内部使用c语言来实现 IPython -- IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的.好多很多国产浏览器虽然外观不同,但内核其实都是调用了IE PyPy -- PyPy是另一个Python解释器,它的

day1 安装ipython,用户交互,流程控制

一.安装ipython 1.升级pyton到2.7.0以上 [[email protected] ~]# yum install gcc gcc-c++ make -y [[email protected] ~]# wget https://www.python.org/ftp/python/2.7.5/Python-2.7.5.tar.bz2 [[email protected] ~]# tar xf Python-2.7.5.tar.bz2 [[email protected] ~]# cd

bing背单词交互流程--Chongyang Bai

昨天和travis,钟秋开会确认了bing背单词的手机界面交互流程.我在这里简单描述一下,设计页面暂时不能贴出来,期待大家的宝贵意见 b( ̄▽ ̄)d. 单词本浏览界面:单词本被分为两类,用户单词本和单词书.每个单词本条目有一个小图标,点击图标则进入单词总览,点击条目其它部分则展开单词本的统计信息和学习情况. 单词本展开子页面:除了统计信息(如总词数,已学词数等)和学习情况外,还有两个按钮,开始学习和更改计划.若选择更改计划,则进入长期背单词计划设置,比如完成天数:若从未设定过计划,则点击开始背词

Android SDK上手指南 3:用户交互

在这篇教程中,我们将对之前所添加的Button元素进行设置以实现对用户点击的检测与响应.为了达成这一目标,我们需要在应用程序的主Activity类中略微涉及Java编程内容.如果大家在Java开发方面的经验不太丰富也没必要担心,只要按步骤进行即可完成学习.我们将在本系列的下一篇文章中深入探讨Java语法,从而保证大家了解初步Android开发任务中所必需的编程语言知识. 大家可以在Android当中以多种不同方式实现用户交互.我们将学习两种最为典型的处理方案,从而实现应用按钮对用户点击的感应--

python--变量,常量,用户交互

1.变量 概念:把程序运行过程中产生的中间值保存在内存,方便后面使用 命名规范: 1.字母,数字,下划线组成 2.不能用数字开头,且不能用纯数字 3.不能用python关键字 4.不要用中文 5.要有意义 6.不能太长 7.区分大小写 8.驼峰形式或者下划线命名 数据类型: 1. int 整数 +-*/ % // ** 2. str 字符串 ', ", ''', """ 括起来的内容 +拼接 *重复 3. bool 布尔 True, False 1. 整数(int)

1-8 用户交互和条件判断

一. 用户交互: ····input()函数    输入 ····output()函数    输出 # a = ("请输入姓名")           print ("这个人的名字是"+a) = 这个人的名字是XXX # a = ("任意数字")     b = ("另一个任意数字")         假如输入1和2 print (a + b) = 12      因为接收到的数据类型都是字符串 c = int(a)    d

python变量及用户交互,用户名格式化输出

变量 name = wwjun Name2 = "wwjun" print ("name,Name2") 用户交互 Username = input ("username:") Password = input ("password:") Print(username,password) 用户名格式化输出 name = input ("name:") age = input ("age:"

python-FIrst1--变量赋值-注释-用户交互-条件判断与缩进

变量与赋值 name='mike'          #这里一定要注意,如果右边的值不是数字,就一定要加引号,否则系统会认为右边也是一个变量,而右边我们希望是一个值,所以这时候我们就需要给右边加上单引号或者双引号,以表示右边是一个字符串. age=39 把右边的值赋予左边,就是赋值,左边的name和age就叫做变量. 注释 可以用#符号来表示,也可以用一对三个连续的单引号和双引号来表示多行注释,当要注释的内容不多的时候用#比较方便,当要注释很多行内容尤其是超过三行的时候最好用,一对 三个单引号或