概覽 功能原型設計系列 是有關(guān)原型設計過(guò)程的一個(gè)文章集。從中您可以閱讀相關(guān)的重要概念、原型設計的優(yōu)勢、產(chǎn)品選擇研討和其他技術(shù)資料。 紙上設計的重要性 新的想法是令人振奮的。然而,一旦你想到創(chuàng )新想法時(shí),你從何處開(kāi)始著(zhù)手呢? 如何創(chuàng )建一個(gè)功能原型的第一步從而幫助你在當今經(jīng)濟競爭激烈的市場(chǎng)上走向成功呢? 本教程概述了創(chuàng )建原型設計的第一步——一種有助于你以最小的困難向軟件設計轉變的紙上設計方法。 當你對新設備具有令人興奮和創(chuàng )新的想法時(shí),你可能想跳過(guò)紙上設計,馬上從物理原型設計開(kāi)始實(shí)現該想法。從長(cháng)遠考慮來(lái)說(shuō),停止這種想法可以節省你大量的返工和浪費的精力。你在紙上設計所投入的時(shí)間,以后會(huì )給你帶來(lái)很大的回報,這有助于你在設計過(guò)程中避免許多常見(jiàn)的陷阱。紙上設計并不意味著(zhù)用鋼筆或鉛筆在紙上勾畫(huà)出你對原型的詳細設計。紙上設計包括在軟件編程之前建立計劃,這能帶來(lái)很多好處。 從頭腦中獲取想法,落實(shí)到紙上設計 圍繞你從多角度考慮的偉大想法,落實(shí)具體細節。在紙上寫(xiě)的細節越多,你就越容易將其轉化為實(shí)際的功能原型。 寧可現在失敗,不要將來(lái)失敗 對你想法的所有可能排列情況進(jìn)行探索。這是讓你恣意想像的時(shí)刻,因為在這個(gè)階段,你的最大代價(jià)只是時(shí)間。此時(shí)應找到一種最佳的實(shí)施方法,因為沒(méi)有與失敗設計相聯(lián)系的成本損失。在紙上設計階段,應越早失敗,經(jīng)常失敗和提前失敗,確保你的設計符合標準。 獲得同行和客戶(hù)的反饋 我們應該建立與合作伙伴和同行的一致意見(jiàn),從早期客戶(hù)和投資者處獲得購買(mǎi)訂單。一個(gè)優(yōu)秀的設計有助于其他人完全掌握你的想法。你對你的設計想法解釋得越有效,你獲得同行反饋的質(zhì)量就越高,你就越有可能得到資助和支持。即使在早期階段,你也應該對你的設計重復修改直到其站得住腳,經(jīng)得起評論。 利用CAD軟件進(jìn)行可視化 利用現有的計算機資源進(jìn)行專(zhuān)業(yè)的,詳細的物理設計。用CAD軟件定義的設計具有尺寸、注釋和特定材料的說(shuō)明,比簡(jiǎn)單的畫(huà)草圖具有更強的說(shuō)服力。它意味著(zhù)一個(gè)詳細的,周密的設計和嚴謹的意圖。這將有助于你獲得同行的認同,以及獲得客戶(hù)和投資者的購買(mǎi)訂單,因為其他人可以更有效地對你的設計進(jìn)行可視化。 使用圖形來(lái)表現你的系統 利用標準技術(shù)如流程圖或狀態(tài)圖,對你的設備功能進(jìn)行定義。該流程圖或狀態(tài)圖形成了你需要作出軟件體系結構決策的基礎,并定義了你的算法設計框架。 定義你的需求 你如何從一個(gè)偉大的創(chuàng )意和簡(jiǎn)單的畫(huà)草圖變?yōu)橐粋(gè)詳細的紙上設計呢?第一步是通過(guò)列出用戶(hù)需求,明確定義你的目標。這些需求應盡可能的具體。在早期階段,研究是至關(guān)重要的,以確保你可以滿(mǎn)足你概括的需求。你的設計是可行的嗎?它真的能滿(mǎn)足你的需求嗎?確定你能對你的設計需求和欲望加以區別。作為一個(gè)創(chuàng )新者,你可能想對你的原型設計增加高級的,但并不是完全必要的功能。認清你的目標并專(zhuān)注于它。 從需求中抽取模塊 你可以抽象地描述一個(gè)應用程序,而無(wú)需具體定義如何編寫(xiě)應用程序。抽象將應用程序概括到一個(gè)高概念層次。通常有兩種類(lèi)型的抽象,即過(guò)程抽象和數據抽象。 過(guò)程抽象將過(guò)程實(shí)現的是什么和過(guò)程如何實(shí)現加以區分。過(guò)程抽象的一個(gè)實(shí)例是打開(kāi)一個(gè)文件。你可以采用許多方式來(lái)打開(kāi)文件,但在過(guò)程抽象時(shí)你不必關(guān)心如何打開(kāi)文件的。 數據抽象將你想存儲的數據和存儲數據的物理方法加以區分。數據抽象的一個(gè)實(shí)例是數組。數組可以從更為邏輯的角度表示一組數據,不需要用戶(hù)關(guān)心其實(shí)現的具體細節。為了有助于數據抽象,你可以從你的系統需求文檔中移除其關(guān)鍵動(dòng)詞和名詞。從這些動(dòng)詞和名詞中,你可以確定你的程序必須實(shí)現什么以及會(huì )成為你的用戶(hù)界面一部分的對象。這些動(dòng)詞和名詞也有助于你確定硬件組件,這對完成你的原型設計是必要的。 流程圖 一旦你從你的設備需求中收集到一組被抽取的組件,你可以使用流程圖從被抽取的組件上轉移到軟件程序上。流程圖通過(guò)將應用程序劃分為更易于管理的塊,即所謂的節點(diǎn)(見(jiàn)圖1.),有助于你更好的理解應用程序流程。NI LabVIEW是一種針對測量和自動(dòng)化應用而設計的高級別的圖形化編程語(yǔ)言,,其對于將你的紙上設計迅速轉變?yōu)檐浖O計而言是一種理想的工具。因為 LabVIEW框圖類(lèi)似于流程圖,從流程圖到軟件代碼的轉變是一個(gè)快速的過(guò)程。 狀態(tài)結構 狀態(tài)圖 狀態(tài)圖是流程圖的一種特殊類(lèi)型,表示了程序的狀態(tài)和狀態(tài)間的轉換。每個(gè)狀態(tài)滿(mǎn)足一個(gè)條件,執行一個(gè)動(dòng)作或等待一個(gè)事件的發(fā)生。狀態(tài)間的轉換可以是條件,行為或使程序轉移到下一個(gè)狀態(tài)的事件。狀態(tài)圖有益于原型設計,因為幾乎所有的嵌入式系統都使用狀態(tài)結構。也就是說(shuō),嵌入式系統的設計思想是,系統原型總是處在某個(gè)特定的狀態(tài),即使這個(gè)狀態(tài)是空閑的。 為了開(kāi)始創(chuàng )建一個(gè)狀態(tài)圖,你必須全面了解你的應用程序以及系統中任何屬于你用戶(hù)界面的部分。它可以是一個(gè)顯示的數值或用戶(hù)的輸入,如數字或布爾控件。一個(gè)優(yōu)秀的設計流程圖可以為這個(gè)過(guò)程提供幫助。下一步,寫(xiě)出每個(gè)狀態(tài)以及你的原型如何從一個(gè)狀態(tài)轉變到另一狀態(tài)。 狀態(tài)機結構 狀態(tài)機對于交互系統很有用。也就是說(shuō),其行為由基于用戶(hù)輸入、采集的信號和系統改變的邏輯決定。當你實(shí)現一個(gè)狀態(tài)機時(shí),基于該邏輯值,你可以定義你的系統轉換特性。 在LabVIEW軟件中,狀態(tài)機由條件結構, While循環(huán)和移位寄存器組成。初始條件被指定在循環(huán)之外。狀態(tài)機中的每個(gè)狀態(tài)對應于條件結構中的一個(gè)條件。每個(gè)條件包括實(shí)現一個(gè)狀態(tài)的代碼及定義轉換到其他條件的邏輯。這種結構使你有能力對狀態(tài)機添加更多的條件和邏輯來(lái)擴展你的應用程序。 ![]() ![]() 圖1. 該圖片顯示了血壓監測的流程圖,狀態(tài)圖和狀態(tài)機。請注意定義在狀態(tài)圖中的五個(gè)狀態(tài)在狀態(tài)機中得以實(shí)現。 LabVIEW狀態(tài)圖模塊 LabVIEW狀態(tài)圖模塊提供從紙上設計到軟件設計轉換的更直接途徑。利用LabVIEW狀態(tài)圖模塊,你可以在一個(gè)狀態(tài)圖中設計軟件組件,定義狀態(tài)和轉換邏輯的行為。狀態(tài)圖完全與LabVIEW集成,因此所有相同的圖形化編程概念和數據流編程準則仍然適用。狀態(tài)圖有益于描述交互系統。你可以針對硬件設備或者用戶(hù)界面上的觸發(fā)或事件來(lái)設計不同的響應。這些響應由LabVIEW圖形化編程實(shí)現。對職業(yè)程序員來(lái)說(shuō),LabVIEW狀態(tài)圖模塊非常適合于原型設計應用程序。 ![]() 圖2. LabVIEW狀態(tài)圖模塊實(shí)現血壓監測的狀態(tài) 下一步 原型設計在設計和部署創(chuàng )意并將其推向市場(chǎng)中起著(zhù)關(guān)鍵的作用。創(chuàng )建一個(gè)成功原型設計的第一步是正確的紙上設計,以使得軟件設計的轉換盡可能天衣無(wú)縫。 通過(guò)全面地對你的設計定義需求,抽取模塊和創(chuàng )建流程圖或狀態(tài)轉移圖,你可以確保一個(gè)堅實(shí)的基礎來(lái)建立你的原型設計。利用LabVIEW狀態(tài)圖模塊,你可以實(shí)現原型設計所需的快速開(kāi)發(fā)以及通過(guò)LabVIEW平臺實(shí)現與硬件的緊密集成。 欲了解更多關(guān)于紙上設計到軟件設計轉換技術(shù)方面的信息,請參閱以下相關(guān)資源。了解原型設計過(guò)程中的下一步驟,請返回到功能原型設計系列 。 NI公司供稿 |