zoukankan      html  css  js  c++  java
  • 面向使用的软件设计随笔12

      不论在任何时候,建模都是软件开发的一个组成部分,人们最早使用流程图来建模,后来使用由它演变出来的各式各样的建模手段对早期编程语言编写的过程和算法进行建模。随着结构化设计的兴起和最近诸多软件工程方法的登场,以分析和设计为目的的建模发展成为一个相对独立的领域。从结构图到对象通信图,从数据流图到有限状态机,分析和设计模型自此已经成为计算科学和软件工程不可缺少的核心内容。模型在开发过程中有许多用途和优点,其中最主要的是帮助开发人员组织他们的思考。通过使用模型,分析和设计人员可以将他们的理解和认识“外化” 在纸上或者计算机文件中,这就可以让其他人对其理解和认识进行评价和讨论,并进行测试、评审和精化。模型还可以充当开发人员之间一种简明而确切的沟通语言。对许多人来说,模型不是开发更好软件的手段,而是一种高级文档化的形式,用来避免程序员触及加工“真实的东西"一编码本身。 建模所导致的一个经常提到的后果就是所谓的"分析迷恋症”,这是一种十分常见的病态,即开发人员沉迷于模型,而不是程序的开发。的确,分析迷恋症并不是模型的过错,而是某些开发人员在某些环境下使用模型的方式造成的问题。软件开发过程中的任何活动,如果将其自身作为目的的话,都将对开发起到阻碍而不是加速的作用。当需要快速建立起对一个问题的理解并将其迅速转换为解决方案的时候,建模经常是最高效的途径。即使在十分紧张的开发进度压力下,那些花时间来对问题领域建模并对程序设计进行规划的开发团队最终会比那些直接进行编码的团队开发出更完整和更好的系统。在许多情况下,他们的时间进度将与那些跳过建模的团队的时间进度一样快,甚至会更快一些。

      以使用为中心的设计方法的创新之一在于它采用抽象手段来解决具体问题的方式。这些模型并不是原原本本地表示用户的操作和它们所处理的具体对象,而是表示抽象概念,即那些构成工作和作为支持系统基础的概念和思路。抽象和抽象模型有许多优点。从抽象数据类型到抽象类,抽象构成了现代软件开发实践的基础。抽象使得我们可以宏观地进行思考,去建造尚未建造和原来不可建造的事物,在不必实际编程的情况下探索可能的程序构造途径。基于抽象的模型肯定比它们所表示的东西要简单,它们隐藏细节并有选择地忽略信息,从而比所表示的东西更容易建造。抽象模型在用户界面设计人员和可用性专业人员中用得并不多。交互设计人员和用户界面工程师使用的手段包括简单草图、细致草图、设计模型和原型。所画的图有时可能很潦草、很平淡和不美观,但看起来仍然是那些带有菜单、工具条、选择列表、选项按钮等设施的屏幕、表格和对话框的样子。专业的可用性专家和图形设计人员可能会勾画出具体的场景,并在其办公室里挂上详细描述用户与所选软件交互操作场景序列的记事板。抽象模型不是让我们考虑这样的细节,而是让我们保持对宏观轮廓的关注。通过这种手段,我们就能够看到森林,而不会为具体树木而分散过多的注意力。抽象用户界面模型有利于所谓的双焦点建模。双焦点建模方法能够帮助设计人员和用户在设计方案和设计对象的全景视图和局部细节之间进行切换。抽象模型还可以鼓励创新。通过提供更多的选择余地,使我们能更好地发挥想像力。当时间比较充裕时,我们可以考虑和确定不同的选择,如果能够在不受那些顺手拈来的约定俗成的设计方案束缚的情况下,用更多的时间来进行思考,我们就有更大可能找到更好的设计方案。抽象模型对于我们设计更好的用户界面来说是一件有力的工具。它们可以帮助普通开发人员设计出使用效果好得多的出色界面。

  • 相关阅读:
    python移动文件
    python分割多个分隔符
    pywintypes.com_error: (-2147418111, '被呼叫方拒绝接收呼叫。', None, None)
    MySQL查看和修改字符集的方法
    Django创建超级管理员用户
    P2567.[SCOI2009] windy 数(数位DP)
    920G.List of Integers(莫比乌斯函数+二分)
    916E.Jamie and Tree (倍增LCA+线段树维护DFS序)
    GYM100376F.Circle and Trees(树形DP+倍增LCA)
    GYM100376E.LinearMapReduce(线段树维护矩阵乘法)
  • 原文地址:https://www.cnblogs.com/dgb152/p/12301884.html
Copyright © 2011-2022 走看看