個人軟體過程4 功能說明和用戶體驗設計

来源:http://www.cnblogs.com/shouce/archive/2016/03/08/5252660.html
-Advertisement-
Play Games

更新日線,是一項我們經常遇到的數據導入功能。 這項功能的說明文字,我是這麼寫的: 用戶在初次使用本系統的時候,需要安裝滬深兩市從開市到本年度的所有歷史數據,這些數據可以從某證券行情軟體獲得,是遵循一定格式的二進位文件。此後,每天兩市交易結束之後,用戶必須更新當天的日線行情,當然,用戶也可能在幾天後一


 更新日線,是一項我們經常遇到的數據導入功能。

    這項功能的說明文字,我是這麼寫的:

    用戶在初次使用本系統的時候,需要安裝滬深兩市從開市到本年度的所有歷史數據,這些數據可以從某證券行情軟體獲得,是遵循一定格式的二進位文件。此後,每天兩市交易結束之後,用戶必須更新當天的日線行情,當然,用戶也可能在幾天後一次性更新最近幾天的日線行情。用戶更新日線,才能建立完整準確的數據基礎,我們所有的分析工作都基於這些日線數據。

    事實上只需要這麼簡單的描述,就能夠弄清楚這項功能的目標和具體的應用場景。

 

    不可避免的,我們需要做用戶體驗設計,這是將功能轉換為一系列開發任務的前提。所謂用戶體驗設計,我們可以簡單的理解為界面設計的一部分。界面設計包括兩個方面:1、如何更美觀;2、設置哪些最少的功能從而滿足用戶的全部要求。後者可以簡單的理解為“用戶體驗設計”。

    我們可以根據功能的描述按部就班的演繹,接下來就是整個思考過程。首先,我們需要列出用戶可能需要的操作、可能遇到的問題:

    1、 用戶每次更新日線都需要選擇一個行情文件,然後開始更新。

    2、用戶可能誤操作,導致選擇的文件不是一個真正的行情文件。

    3、用戶從分析軟體中生成行情文件的時候,可能僅包括一個市場的數據、或者包含了期貨、港股等其他市場的數據。

    4、用戶可能記不清最近10天是否每天的日線行情都已經更新了。

    5、在更新日線的時候,用戶需要看到更新的進度

    6、用戶可能對系統中保存的數據完全沒有信心,準備重新從兩市開市的第一天開始安裝歷史數據。

    7、用戶可能將一個文件更新兩次,或者一些數據已經安裝了但用戶選擇的另一個行情文件中包含了這部分數據。

 

    針對上述情形,我們可以簡單的對界面元素進行設計,當然這裡無需考慮美觀問題,僅僅關註:1、用戶遇到的問題,是否都能夠處理;2、在能夠處理所有問題的時候,界面是否最簡單且最容易理解。經過簡單的思考,我們可以得到界面的原型,這裡用Vc 2010的對話框設計器可以簡單的繪製草圖如下:

 

 

更新日線窗體

 

      第一行,“日期”那部分,用戶將能夠看到目前已經安裝的行情數據的起止日期,每次安裝數據後這裡要實時刷新,這樣用戶就能夠始終做到心中有數。下麵一行很容易理解,左邊是選擇文件的控制項,右邊是啟動更新的按鈕。第三行是進度的文本信息報告區,剛進入界面的時候顯然要提醒用戶選擇一個文件。第四行是進度條,開始更新之後進度條將報告更新的進度。接下來的兩個按鈕,第一個是刪除最新的五天日線,第二個是刪除全部的日線。

     這裡不需要過多的分析,我們知道這種界面的形式,是能夠應付上面用戶可能遇到的所有情形的。菜鳥程式員很容易忽略的,是報告系統中行情的起止日期和進度文本區兩個部分。

 

     這樣的東西,一些資深的項目經理可能會不屑,因為什麼呢?“你好象過早的進入界面設計了”,是的,確實如此。但老實說,如果項目經理的腦子裡,不能在最快時間出現上面的窗體圖形的話,他會怎樣為團隊的程式員分配開發任務?所以,書生們常常說項目管理大師,未必需要懂得編程,在軟體領域甚至在其他任何領域,這簡直是十足的扯淡。做事的團隊,其實並不需要一個指手畫腳的人,每個人需要很清晰、很簡單的知道自己今天做什麼、明天做什麼、怎樣做是對的也就是標準是什麼,外行如何用他的想象力來實現?一個蹩腳的程式員永遠不可能成為能幹的項目經理,就如同一個從來沒有碰過槍的人,怎麼可能指揮千軍萬馬作戰?當然,公司經理完全可以不懂技術,為什麼,因為他可以將這一塊封裝起來,技術總監會對他負責,公司經理也不會對技術團隊指手畫腳的具體到每一項工作。

 

     那麼,完成用戶體驗設計之後,我們確定開發任務其實就非常簡單了:

任務清單

 

    上面的截圖是第一項功能的任務清單,當然Tfs的一些術語翻譯的很生硬,比如堆棧級別,其實是開發的順序,用戶情景,就是功能;不用太理會,我們簡單的將這些任務指派給團隊不同的成員,項目經理大體上就能開始輕鬆的當監工了。

    針對這項功能,我比較看重的是一個簡單的重覆測試,也就是迴圈執行安裝一個文件、刪除全部日線、安裝同一個文件,這樣迴圈多次,從而確定這兩項功能的穩固性。因為顯示進度的需要,更新日線的操作最好在後臺運行,這樣界面才不會僵死,那麼這種亂序測試是對這部分後臺操作的一個考驗。

    到現在,我們已經完整的講述了從啟動項目開始,到程式員開始寫代碼之間的全過程。事實上沒有多少多餘的工作量,但整個開發過程將在這種簡單的模式下,更趨規範。後面如果仍然有時間和興趣,可能會對開發過程完整描述,記錄學習VC++2010的過程。


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 只要使用過jQuery的,想必對ready都不陌生,$(function(){})和$(document).ready(function(){})的使用更是習以為常。那它內部是怎麼實現的呢,嘿嘿,我們不妨一同學習學習
  • fancybox可以彈出很多窗體,甚至一個swf格式的小視頻。但這樣的swf視頻播放的時候並沒有任何的控制項。只能重頭看到尾,或者關閉。我們可以利用fancybox彈出div盒子的方式配合html5很快的寫出彈出一個小視頻的代碼。首先,效果如下圖所示。點擊播放的圖片,彈出播放視頻。背景自動虛化。 首先
  • 今天分享使用html+css3+少量jquery實現滑鼠移入移出圖片生成隨機動畫,我們先看最終效果圖(截圖為靜態效果,做出來可是動態的喲) 左右旋轉 上下移動 縮放 由於時間關係我就不一步步解析各段代碼所代表含義,我這裡就給出一些思路及關鍵 代碼: 1、首先使用ul li展現4張圖片 本示例中不僅使...
  • 出處:http://www.cnblogs.com/edisonfeng/p/3830224.html 一、服務端 1、主要結構: 2、主要代碼: 1)web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version="2.5" xmln
  • 一、前言 我很喜歡電腦,可是筆記本還是太大,筆記本電腦再小還是要弄個小包背起來的,智能手機則不同,它完全就是一個手機,可以隨意裝在一個口袋裡隨身攜帶。因此我在2002年左右時最喜歡玩裝備是Dell的PDA,2007年的時候最喜歡玩的是N73,而在2010年最喜歡玩的則是Milestone。眼見著手機
  • Button btNext=(Button)findViewById(R.id.next); btNext.setOnClickListener(new Button.OnClickListener(){ public void onClick(View view){ //創建一個佈局管理器控制項 L
  • 服務 服務的生命周期 --- 1 開啟服務的生命周期 完整的生命周期:onCreate()-->onStartCommand()-->onDestroy() * 開啟服務:onCreate()-->onStartCommand() * 停止服務:onDestroy() * 特點: 1. 服務可以被多
  • · 代碼段。這個功能很早就知道了,Framework已經提供了很多代碼段,我們也可以自定義代碼段,不過之前一直沒有用過,今天實踐了一下,還是挺有意思的,這種代碼自動生成的思想其實挺有用的。另外發現一點,Framework中提供的代碼段中,關於C#和VB的數量明顯不一樣,不知道為啥C#要少呢?上網查了
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...