1、纸上设计的重要性
新的想法是令人振奋的。然而,一旦你想到创新想法时,你从何处开始着手呢? 如何创建一个功能原型的第一步从而帮助你在当今经济竞争激烈的市场上走向成功呢?
本文概述了创建原型设计的第一步——一种有助于你以最小的困难向软件设计转变的纸上设计方法。
当你对新设备具有令人兴奋和创新的想法时,你可能想跳过纸上设计,马上从物理原型设计开始实现该想法。从长远考虑来说,停止这种想法可以节省你大量的返工和浪费的精力。你在纸上设计所投入的时间,以后会给你带来很大的回报,这有助于你在设计过程中避免许多常见的陷阱。纸上设计并不意味着用钢笔或铅笔在纸上勾画出你对原型的详细设计。纸上设计包括在软件编程之前建立计划,这能带来很多好处。
1.1 从头脑中获取想法,落实到纸上设计
围绕你从多角度考虑的伟大想法,落实具体细节。在纸上写的细节越多,你就越容易将其转化为实际的功能原型。
宁可现在失败,不要将来失败
对你想法的所有可能排列情况进行探索。这是让你恣意想像的时刻,因为在这个阶段,你的最大代价只是时间。此时应找到一种最佳的实施方法,因为没有与失败设计相联系的成本损失。在纸上设计阶段,应越早失败,经常失败和提前失败,确保你的设计符合标准。
获得同行和客户的反馈
我们应该建立与合作伙伴和同行的一致意见,从早期客户和投资者处获得购买订单。一个优秀的设计有助于其他人完全掌握你的想法。你对你的设计想法解释得越有效,你获得同行反馈的质量就越高,你就越有可能得到资助和支持。即使在早期阶段,你也应该对你的设计重复修改直到其站得住脚,经得起评论。
1.2 利用CAD软件进行可视化
利用现有的计算机资源进行专业的,详细的物理设计。用CAD软件定义的设计具有尺寸、注释和特定材料的说明,比简单的画草图具有更强的说服力。它意味着一个详细的,周密的设计和严谨的意图。这将有助于你获得同行的认同,以及获得客户和投资者的购买订单,因为其他人可以更有效地对你的设计进行可视化。
1.3 使用图形来表现你的系统
利用标准技术如流程图或状态图,对你的设备功能进行定义。该流程图或状态图形成了你需要作出软件体系结构决策的基础,并定义了你的算法设计框架。
1.4 定义你的需求
你如何从一个伟大的创意和简单的画草图变为一个详细的纸上设计呢?第一步是通过列出用户需求,明确定义你的目标。这些需求应尽可能的具体。在早期阶段,研究是至关重要的,以确保你可以满足你概括的需求。你的设计是可行的吗?它真的能满足你的需求吗?确定你能对你的设计需求和欲望加以区别。作为一个创新者,你可能想对你的原型设计增加高级的,但并不是完全必要的功能。认清你的目标并专注于它。
1.5 从需求中抽取模块
你可以抽象地描述一个应用程序,而无需具体定义如何编写应用程序。抽象将应用程序概括到一个高概念层次。通常有两种类型的抽象,即过程抽象和数据抽象。
过程抽象将过程实现的是什么和过程如何实现加以区分。过程抽象的一个实例是打开一个文件。你可以采用许多方式来打开文件,但在过程抽象时你不必关心如何打开文件的。
数据抽象将你想存储的数据和存储数据的物理方法加以区分。数据抽象的一个实例是数组。数组可以从更为逻辑的角度表示一组数据,不需要用户关心其实现的具体细节。为了有助于数据抽象,你可以从你的系统需求文档中移除其关键动词和名词。从这些动词和名词中,你可以确定你的程序必须实现什么以及会成为你的用户界面一部分的对象。这些动词和名词也有助于你确定硬件组件,这对完成你的原型设计是必要的。
2 流程图
一旦你从你的设备需求中收集到一组被抽取的组件,你可以使用流程图从被抽取的组件上转移到软件程序上。流程图通过将应用程序划分为更易于管理的块,即所谓的节点(见图1.),有助于你更好的理解应用程序流程。NILabVIEW是一种针对测量和自动化应用而设计的高级别的图形化编程语言,,其对于将你的纸上设计迅速转变为软件设计而言是一种理想的工具。因为 LabVIEW框图类似于流程图,从流程图到软件代码的转变是一个快速的过程。
3 状态结构
3.1 状态图
状态图是流程图的一种特殊类型,表示了程序的状态和状态间的转换。每个状态满足一个条件,执行一个动作或等待一个事件的发生。状态间的转换可以是条件,行为或使程序转移到下一个状态的事件。状态图有益于原型设计,因为几乎所有的嵌入式系统都使用状态结构。也就是说,嵌入式系统的设计思想是,系统原型总是处在某个特定的状态,即使这个状态是空闲的。
为了开始创建一个状态图,你必须全面了解你的应用程序以及系统中任何属于你用户界面的部分。它可以是一个显示的数值或用户的输入,如数字或布尔控件。一个优秀的设计流程图可以为这个过程提供帮助。下一步,写出每个状态以及你的原型如何从一个状态转变到另一状态。
3.2 状态机结构
状态机对于交互系统很有用。也就是说,其行为由基于用户输入、采集的信号和系统改变的逻辑决定。当你实现一个状态机时,基于该逻辑值,你可以定义你的系统转换特性。
在LabVIEW软件中,状态机由条件结构, While循环和移位寄存器组成。初始条件被指定在循环之外。状态机中的每个状态对应于条件结构中的一个条件。每个条件包括实现一个状态的代码及定义转换到其他条件的逻辑。这种结构使你有能力对状态机添加更多的条件和逻辑来扩展你的应用程序。
图1. 该图片显示了血压监测的流程图,状态图和状态机。请注意定义在状态图中的五个状态在状态机中得以实现。
4 LabVIEW状态图模块
LabVIEW状态图模块提供从纸上设计到软件设计转换的更直接途径。利用LabVIEW状态图模块,你可以在一个状态图中设计软件组件,定义状态和转换逻辑的行为。状态图完全与LabVIEW集成,因此所有相同的图形化编程概念和数据流编程准则仍然适用。状态图有益于描述交互系统。你可以针对硬件设备或者用户界面上的触发或事件来设计不同的响应。这些响应由LabVIEW图形化编程实现。对职业程序员来说,LabVIEW状态图模块非常适合于原型设计应用程序。
图2.LabVIEW状态图模块实现血压监测的状态
下一步
原型设计在设计和部署创意并将其推向市场中起着关键的作用。创建一个成功原型设计的第一步是正确的纸上设计,以使得软件设计的转换尽可能天衣无缝。
通过全面地对你的设计定义需求,抽取模块和创建流程图或状态转移图,你可以确保一个坚实的基础来建立你的原型设计。利用LabVIEW状态图模块,你可以实现原型设计所需的快速开发以及通过LabVIEW平台实现与硬件的紧密集成。