胡致杰 陸玉波 胡羽沫
摘要:根據(jù)用戶需求設(shè)計(jì)并實(shí)現(xiàn)了基于Android平臺(tái)的口袋記賬本軟件,系統(tǒng)采用視圖層、業(yè)務(wù)邏輯層和數(shù)據(jù)層三層模式進(jìn)行設(shè)計(jì),包含用戶管理、記賬管理、查詢與統(tǒng)計(jì)、分析與報(bào)表4大模塊,實(shí)現(xiàn)了記賬的常用功能。該口袋記賬本可以克服傳統(tǒng)記賬的易遺漏、難統(tǒng)計(jì)等缺點(diǎn),使記賬不再受時(shí)間和空間的限制。
關(guān)鍵詞:記賬本;口袋;Android;軟件
中圖分類號(hào) TP399? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2019)27-0050-03
Abstract: According to the user's needs, the pocket bookkeeping software based on Android platform is designed and implemented. The system is designed with three layers of view layer, business logic layer and data layer. It includes four modules: user management, bookkeeping management, query and statistics, analysis and report forms. It realizes the common functions of bookkeeping. This pocket book can overcome the shortcomings of traditional bookkeeping, such as easy omission and difficult statistics, so that bookkeeping is no longer limited by time and space.
Key words: bookkeeping; pocket; Android; software
1 背景
記賬就是將生活中的各項(xiàng)經(jīng)濟(jì)活動(dòng)按時(shí)間順序進(jìn)行記錄,用于日后的查詢和統(tǒng)計(jì)[1]。由于傳統(tǒng)手工記賬本具有攜帶不便,不能實(shí)時(shí)記賬,容易遺失,后期查找分析困難等缺點(diǎn),電子記賬越來越受到人們的青睞[2]。將智能手機(jī)與記賬相結(jié)合,不僅可解決傳統(tǒng)手工記賬的不足,還使記賬不受時(shí)空限制,且能快速進(jìn)行信息的查找和統(tǒng)計(jì)。
2 系統(tǒng)分析
2.1 需求分析
Android口袋記賬本可提供便捷的記賬服務(wù),具有用戶管理、記賬管理、查詢與統(tǒng)計(jì)、分析與報(bào)表等功能,系統(tǒng)基本功能模塊結(jié)構(gòu)如圖1所示。
用戶管理:利用該模塊可實(shí)現(xiàn)新用戶注冊(cè)及用戶修改密碼等功能。
記賬管理:用戶可以對(duì)每一筆收入與支出進(jìn)行登記,還可根據(jù)需要對(duì)已登記的賬目進(jìn)行修改和刪除。
查詢與統(tǒng)計(jì):利用查詢功能可進(jìn)行基本查詢和條件查詢,并能根據(jù)一定的要求進(jìn)行數(shù)據(jù)統(tǒng)計(jì),以滿足用戶不同需求。
分析與報(bào)表:針對(duì)用戶的支出數(shù)據(jù),進(jìn)行用戶消費(fèi)行為分析,并給出指導(dǎo)性建議。同時(shí)可根據(jù)用戶設(shè)置的條件生成相應(yīng)的數(shù)據(jù)報(bào)表。
功能性需求是軟件要實(shí)現(xiàn)的基本需求,但非功能性需求也將直接影響用戶的使用體驗(yàn),在軟件開發(fā)過程中也不容小覷[3]。本系統(tǒng)的非功能性需求主要包括以下幾個(gè)方面。
圖1? ?系統(tǒng)功能模塊圖
良好的用戶界面:作為Android的記賬軟件,應(yīng)關(guān)注用戶的感官體驗(yàn),注重系統(tǒng)界面的配色與布局,在統(tǒng)計(jì)圖表中,使用不同顏色對(duì)多種記賬類型進(jìn)行區(qū)分,使得層次清晰。
系統(tǒng)響應(yīng)時(shí)間:應(yīng)用啟動(dòng)、查詢統(tǒng)計(jì)、報(bào)表生成等操作的響應(yīng)時(shí)間應(yīng)控制在用戶可以接收的正常范圍內(nèi)。
操作環(huán)境需求:考慮目前使用中低端手機(jī)用戶數(shù)量較大,開發(fā)軟件時(shí)充分考慮系統(tǒng)的兼容性。
2.2 數(shù)據(jù)流圖
數(shù)據(jù)流圖(Data Flow Diagram)是從數(shù)據(jù)傳遞和加工的角度,以圖形方式來表達(dá)系統(tǒng)的邏輯功能、數(shù)據(jù)在系統(tǒng)內(nèi)部的邏輯流向和邏輯變換過程,是進(jìn)行結(jié)構(gòu)化系統(tǒng)分析的主要表達(dá)工具[4,5]。根據(jù)系統(tǒng)功能需求的描述,口袋記賬本系統(tǒng)的頂層數(shù)據(jù)流圖如圖2所示。對(duì)于頂層數(shù)據(jù)流圖,還可進(jìn)行多層次的分解和細(xì)化,形存多層次結(jié)構(gòu)的數(shù)據(jù)流圖。
3 系統(tǒng)設(shè)計(jì)
3.1 設(shè)計(jì)原則
系統(tǒng)設(shè)計(jì)是根據(jù)系統(tǒng)分析的結(jié)果,運(yùn)用系統(tǒng)科學(xué)的思想和方法,設(shè)計(jì)出能最大限度滿足所要求的目標(biāo) (或目的) 的新系統(tǒng)的過程,包括總體設(shè)計(jì)和詳細(xì)設(shè)計(jì)兩個(gè)階段[4,5]。在Android口袋記賬本的設(shè)計(jì)中,應(yīng)考慮以下幾個(gè)原則。
實(shí)用性:系統(tǒng)功能應(yīng)實(shí)用,具有記賬、查詢、統(tǒng)計(jì)及報(bào)表等常用功能,同時(shí)相關(guān)操作的流程應(yīng)簡(jiǎn)單明確。
易用性:考慮一般用戶手機(jī)操作習(xí)慣,在系統(tǒng)布局上減少頁面跳轉(zhuǎn),操作界面簡(jiǎn)潔明了;減少頁面之間的手勢(shì)動(dòng)作,多用滑動(dòng)代替手勢(shì)。
安全性:對(duì)于記賬類的應(yīng)用,它涉及用戶的個(gè)人隱私,因此應(yīng)能保證用戶賬單數(shù)據(jù)的安全。
靈活性:系統(tǒng)在架構(gòu)上應(yīng)具備一定的靈活性,便于拓展新業(yè)務(wù)時(shí)不需對(duì)系統(tǒng)進(jìn)行過大的改動(dòng),降低系統(tǒng)擴(kuò)展成本。
3.2 總體設(shè)計(jì)
Android口袋記賬本系統(tǒng)總體結(jié)構(gòu)可劃分為三層,分別是視圖層、業(yè)務(wù)邏輯層和數(shù)據(jù)層。視圖層,負(fù)責(zé)對(duì)UI界面渲染;業(yè)務(wù)邏輯層,負(fù)責(zé)業(yè)務(wù)的邏輯處理,實(shí)現(xiàn)操作流程的控制,規(guī)定業(yè)務(wù)實(shí)體類之間的通訊,以及與上下各層之間交互的方法;數(shù)據(jù)層,負(fù)責(zé)數(shù)據(jù)的獲取和寫入,后臺(tái)使用SQLite作為數(shù)據(jù)庫。系統(tǒng)總體應(yīng)用結(jié)構(gòu)如圖3所示。
系統(tǒng)采用三層結(jié)構(gòu)有以下幾個(gè)優(yōu)點(diǎn):一是有利于明確系統(tǒng)各層次模塊之間的分工,使得系統(tǒng)開發(fā)更加高效方便。二是視圖層發(fā)生變化時(shí)不必關(guān)心系統(tǒng)業(yè)務(wù)邏輯,反之亦然,從而提高軟件的內(nèi)聚性,降低耦合性。
3.3 詳細(xì)設(shè)計(jì)
詳細(xì)設(shè)計(jì)的主要任務(wù)就是設(shè)計(jì)每個(gè)模塊的實(shí)現(xiàn)算法、所需的局部數(shù)據(jù)結(jié)構(gòu)[4,5]。通過系統(tǒng)分析,Android口袋記賬本軟件主要包括個(gè)主要模塊:用戶管理、記賬管理、查詢與統(tǒng)計(jì)、分析與報(bào)表。
1)用戶管理
用戶管理模塊主要實(shí)現(xiàn)兩個(gè)方面的功能,一是新用戶注冊(cè),注冊(cè)成功后,新用戶將獲得一個(gè)合法的用戶名和密碼。二是用戶修改密碼,用戶可不定期修改賬號(hào)密碼保證賬號(hào)的安全性。
2) 記賬管理
記賬管理模塊主要用于收入記賬和支出記賬,是口袋記賬本系統(tǒng)的核心模塊。
記賬時(shí),先在程序界面選擇添加記賬,然后選擇記賬類別 “收入/支出”,并完成賬目具體內(nèi)容的錄入。
對(duì)于已錄入的收支賬目,用戶可以進(jìn)行修改或刪除,在程序界面選擇要修改的收支記錄,重新編輯后提交。選擇要?jiǎng)h除的收支記錄,確認(rèn)刪除后將刪除記錄。
3) 查詢與統(tǒng)計(jì)
查詢功能允許用戶對(duì)歷史收入、支出賬目進(jìn)行各種條件組合查詢,以滿足用戶多種查詢需求,同時(shí)還可根據(jù)統(tǒng)計(jì)要求進(jìn)行數(shù)據(jù)的統(tǒng)計(jì)操作。
4) 分析與報(bào)表
依據(jù)用戶的收入、支出數(shù)據(jù),對(duì)用戶的消費(fèi)模式和消費(fèi)行為進(jìn)行分析,并給出一定的消費(fèi)建議供用戶參考。
以月份或年為單位時(shí)間統(tǒng)計(jì)收支情況,生成收入、支出報(bào)表,并以餅狀圖的形式展示。當(dāng)用戶點(diǎn)擊餅狀圖中的某一種記賬類型,將會(huì)跳轉(zhuǎn)到二級(jí)菜單查詢模塊,此模塊下將給出該記賬類型按時(shí)間查詢、按金額排序查詢所得的流水賬單。
4 系統(tǒng)實(shí)現(xiàn)
4.1 系統(tǒng)實(shí)現(xiàn)環(huán)境
口袋記賬本系統(tǒng)的實(shí)現(xiàn)環(huán)境,如1所示。
表1? ?系統(tǒng)實(shí)現(xiàn)環(huán)境
[序號(hào) 參數(shù)名稱 參數(shù)值 1 編程開發(fā)語言 JAVA 2 數(shù)據(jù)庫管理系統(tǒng) SQLite3 3 集成開發(fā)環(huán)境(IDE) Android Studio3.0 4 開發(fā)工具包(JDK) JDK1.8 5 操作系統(tǒng) Windows10 ]
4.2 系統(tǒng)框架實(shí)現(xiàn)
4.2.1 視圖層
視圖層主要包括每個(gè)用戶界面的Activity活動(dòng),視圖的組件是用布局文件去實(shí)現(xiàn),詳細(xì)是在res目錄下的布局文件夾.xml文件配置的[6,7]。主要用戶界面有:記賬頁面(activity_add_record.xml)、增加記賬類型頁面(activity_add_type.xml)、賬單主頁(activity_ home)、設(shè)置頁面(activity_setting.xml)、賬單類型管理頁面(activity_type+manage.xml)、賬單統(tǒng)計(jì)頁面(activity_statistics.xml),記賬類型記錄(fragment_type_records.xml),系統(tǒng)視圖層的Activity類圖如圖4所示。
4.2.2 業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層中包含7個(gè)ViewModel類,分別是AddRecordViewModel、AddTypeViewModel、HomeViewModel、SetingViewModel、TypeManageViewModel、StatisticsViewModel和TypeRecordViewModel,每一個(gè)ViewModel類對(duì)應(yīng)相應(yīng)的視圖層中的Activity類。
4.2.3 數(shù)據(jù)層
數(shù)據(jù)層主要包括系統(tǒng)中所包含的各個(gè)實(shí)體類,例如Record、RecordType、RecordWithType、DaySumMoneyBean、SumMoneyBean、TypeSumMoneyBean,以及進(jìn)行數(shù)據(jù)操作的DAO類,比如RecordDao、RecordTypeDao。
4.3 系統(tǒng)功能模塊實(shí)現(xiàn)
記賬管理模塊是口袋記賬本系統(tǒng)的核心模塊,在該模塊下面可以進(jìn)行賬目的添加、修改和刪除。記賬管理模塊的頁面入口在程序主頁面的下方,用“+”按鈕表示。點(diǎn)擊該按鈕,進(jìn)入記賬管理頁面,在頁面上方有一組RadioButton控件,用于選擇賬目類型“支出”還是“收入”,在支出/收入欄下面是一個(gè)recycleView布局,存放記賬類型,點(diǎn)擊相應(yīng)的記賬類型標(biāo)記賬單,即可進(jìn)行記賬,記賬完畢后點(diǎn)擊確定提交記賬記錄。
5 結(jié)束語
本文從實(shí)用性,易用性的角度設(shè)計(jì)并實(shí)現(xiàn)了Android口袋記賬本軟件,該軟件解決了傳統(tǒng)手寫記賬的不方便,數(shù)據(jù)難以保存易遺失等問題,用戶只要手持一臺(tái)Android智能手機(jī)便能實(shí)現(xiàn)隨時(shí)隨地記賬需求。
參考文獻(xiàn):
[1] 鮑美英. 基于Android的理財(cái)軟件的設(shè)計(jì)與實(shí)現(xiàn)[J]. 山西大同大學(xué)學(xué)報(bào): 自然科學(xué)版, 2017, 33(3): 7-9, 15.
[2] 李德華, 司瀟灑. 基于Android平臺(tái)的家庭財(cái)務(wù)管理軟件的設(shè)計(jì)和實(shí)現(xiàn)[J]. 電腦知識(shí)與技術(shù), 2016, 12(28): 90-92.
[3] 吳想想. 基于Android平臺(tái)軟件開發(fā)方法的研究與應(yīng)用[D]. 北京: 北京郵電大學(xué), 2011.
[4] 李代平, 楊成義. 軟件工程[M]. 4版. 北京: 清華大學(xué)出版社, 2017.
[5] 錢樂秋, 趙文耘, 牛軍鈺. 軟件工程[M]. 3版. 北京: 清華大學(xué)出版社, 2016.
[6] 李寧. Android開發(fā)權(quán)威指南[M]. 2版. 北京: 人民郵電出版社, 2013.
[7] 丁永明, 紀(jì)方明. 基于Android平臺(tái)移動(dòng)學(xué)習(xí)軟件的研究與實(shí)現(xiàn)[J]. 數(shù)字通信世界, 2011(3): 155-203.
【通聯(lián)編輯:謝媛媛】