胡致杰 陸玉波 胡羽沫



摘要:根據(jù)用戶需求設(shè)計并實現(xiàn)了基于Android平臺的口袋記賬本軟件,系統(tǒng)采用視圖層、業(yè)務(wù)邏輯層和數(shù)據(jù)層三層模式進(jìn)行設(shè)計,包含用戶管理、記賬管理、查詢與統(tǒng)計、分析與報表4大模塊,實現(xiàn)了記賬的常用功能。該口袋記賬本可以克服傳統(tǒng)記賬的易遺漏、難統(tǒng)計等缺點,使記賬不再受時間和空間的限制。
關(guān)鍵詞:記賬本;口袋;Android;軟件
中圖分類號 TP399? ? ? 文獻(xiàn)標(biāo)識碼:A
文章編號: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 背景
記賬就是將生活中的各項經(jīng)濟(jì)活動按時間順序進(jìn)行記錄,用于日后的查詢和統(tǒng)計[1]。由于傳統(tǒng)手工記賬本具有攜帶不便,不能實時記賬,容易遺失,后期查找分析困難等缺點,電子記賬越來越受到人們的青睞[2]。將智能手機(jī)與記賬相結(jié)合,不僅可解決傳統(tǒng)手工記賬的不足,還使記賬不受時空限制,且能快速進(jìn)行信息的查找和統(tǒng)計。
2 系統(tǒng)分析
2.1 需求分析
Android口袋記賬本可提供便捷的記賬服務(wù),具有用戶管理、記賬管理、查詢與統(tǒng)計、分析與報表等功能,系統(tǒng)基本功能模塊結(jié)構(gòu)如圖1所示。
用戶管理:利用該模塊可實現(xiàn)新用戶注冊及用戶修改密碼等功能。
記賬管理:用戶可以對每一筆收入與支出進(jìn)行登記,還可根據(jù)需要對已登記的賬目進(jìn)行修改和刪除。
查詢與統(tǒng)計:利用查詢功能可進(jìn)行基本查詢和條件查詢,并能根據(jù)一定的要求進(jìn)行數(shù)據(jù)統(tǒng)計,以滿足用戶不同需求。
分析與報表:針對用戶的支出數(shù)據(jù),進(jìn)行用戶消費行為分析,并給出指導(dǎo)性建議。同時可根據(jù)用戶設(shè)置的條件生成相應(yīng)的數(shù)據(jù)報表。
功能性需求是軟件要實現(xiàn)的基本需求,但非功能性需求也將直接影響用戶的使用體驗,在軟件開發(fā)過程中也不容小覷[3]。本系統(tǒng)的非功能性需求主要包括以下幾個方面。
圖1? ?系統(tǒng)功能模塊圖
良好的用戶界面:作為Android的記賬軟件,應(yīng)關(guān)注用戶的感官體驗,注重系統(tǒng)界面的配色與布局,在統(tǒng)計圖表中,使用不同顏色對多種記賬類型進(jìn)行區(qū)分,使得層次清晰。
系統(tǒng)響應(yīng)時間:應(yīng)用啟動、查詢統(tǒng)計、報表生成等操作的響應(yīng)時間應(yīng)控制在用戶可以接收的正常范圍內(nèi)。
操作環(huán)境需求:考慮目前使用中低端手機(jī)用戶數(shù)量較大,開發(fā)軟件時充分考慮系統(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所示。對于頂層數(shù)據(jù)流圖,還可進(jìn)行多層次的分解和細(xì)化,形存多層次結(jié)構(gòu)的數(shù)據(jù)流圖。
3 系統(tǒng)設(shè)計
3.1 設(shè)計原則
系統(tǒng)設(shè)計是根據(jù)系統(tǒng)分析的結(jié)果,運用系統(tǒng)科學(xué)的思想和方法,設(shè)計出能最大限度滿足所要求的目標(biāo) (或目的) 的新系統(tǒng)的過程,包括總體設(shè)計和詳細(xì)設(shè)計兩個階段[4,5]。在Android口袋記賬本的設(shè)計中,應(yīng)考慮以下幾個原則。
實用性:系統(tǒng)功能應(yīng)實用,具有記賬、查詢、統(tǒng)計及報表等常用功能,同時相關(guān)操作的流程應(yīng)簡單明確。
易用性:考慮一般用戶手機(jī)操作習(xí)慣,在系統(tǒng)布局上減少頁面跳轉(zhuǎn),操作界面簡潔明了;減少頁面之間的手勢動作,多用滑動代替手勢。
安全性:對于記賬類的應(yīng)用,它涉及用戶的個人隱私,因此應(yīng)能保證用戶賬單數(shù)據(jù)的安全。
靈活性:系統(tǒng)在架構(gòu)上應(yīng)具備一定的靈活性,便于拓展新業(yè)務(wù)時不需對系統(tǒng)進(jìn)行過大的改動,降低系統(tǒng)擴(kuò)展成本。
3.2 總體設(shè)計
Android口袋記賬本系統(tǒng)總體結(jié)構(gòu)可劃分為三層,分別是視圖層、業(yè)務(wù)邏輯層和數(shù)據(jù)層。視圖層,負(fù)責(zé)對UI界面渲染;業(yè)務(wù)邏輯層,負(fù)責(zé)業(yè)務(wù)的邏輯處理,實現(xiàn)操作流程的控制,規(guī)定業(yè)務(wù)實體類之間的通訊,以及與上下各層之間交互的方法;數(shù)據(jù)層,負(fù)責(zé)數(shù)據(jù)的獲取和寫入,后臺使用SQLite作為數(shù)據(jù)庫。系統(tǒng)總體應(yīng)用結(jié)構(gòu)如圖3所示。
系統(tǒng)采用三層結(jié)構(gòu)有以下幾個優(yōu)點:一是有利于明確系統(tǒng)各層次模塊之間的分工,使得系統(tǒng)開發(fā)更加高效方便。二是視圖層發(fā)生變化時不必關(guān)心系統(tǒng)業(yè)務(wù)邏輯,反之亦然,從而提高軟件的內(nèi)聚性,降低耦合性。
3.3 詳細(xì)設(shè)計
詳細(xì)設(shè)計的主要任務(wù)就是設(shè)計每個模塊的實現(xiàn)算法、所需的局部數(shù)據(jù)結(jié)構(gòu)[4,5]。通過系統(tǒng)分析,Android口袋記賬本軟件主要包括個主要模塊:用戶管理、記賬管理、查詢與統(tǒng)計、分析與報表。
1)用戶管理
用戶管理模塊主要實現(xiàn)兩個方面的功能,一是新用戶注冊,注冊成功后,新用戶將獲得一個合法的用戶名和密碼。二是用戶修改密碼,用戶可不定期修改賬號密碼保證賬號的安全性。
2) 記賬管理
記賬管理模塊主要用于收入記賬和支出記賬,是口袋記賬本系統(tǒng)的核心模塊。
記賬時,先在程序界面選擇添加記賬,然后選擇記賬類別 “收入/支出”,并完成賬目具體內(nèi)容的錄入。
對于已錄入的收支賬目,用戶可以進(jìn)行修改或刪除,在程序界面選擇要修改的收支記錄,重新編輯后提交。選擇要刪除的收支記錄,確認(rèn)刪除后將刪除記錄。
3) 查詢與統(tǒng)計
查詢功能允許用戶對歷史收入、支出賬目進(jìn)行各種條件組合查詢,以滿足用戶多種查詢需求,同時還可根據(jù)統(tǒng)計要求進(jìn)行數(shù)據(jù)的統(tǒng)計操作。
4) 分析與報表
依據(jù)用戶的收入、支出數(shù)據(jù),對用戶的消費模式和消費行為進(jìn)行分析,并給出一定的消費建議供用戶參考。
以月份或年為單位時間統(tǒng)計收支情況,生成收入、支出報表,并以餅狀圖的形式展示。當(dāng)用戶點擊餅狀圖中的某一種記賬類型,將會跳轉(zhuǎn)到二級菜單查詢模塊,此模塊下將給出該記賬類型按時間查詢、按金額排序查詢所得的流水賬單。
4 系統(tǒng)實現(xiàn)
4.1 系統(tǒng)實現(xiàn)環(huán)境
口袋記賬本系統(tǒng)的實現(xiàn)環(huán)境,如1所示。
表1? ?系統(tǒng)實現(xiàn)環(huán)境
[序號 參數(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)框架實現(xiàn)
4.2.1 視圖層
視圖層主要包括每個用戶界面的Activity活動,視圖的組件是用布局文件去實現(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)計頁面(activity_statistics.xml),記賬類型記錄(fragment_type_records.xml),系統(tǒng)視圖層的Activity類圖如圖4所示。
4.2.2 業(yè)務(wù)邏輯層
業(yè)務(wù)邏輯層中包含7個ViewModel類,分別是AddRecordViewModel、AddTypeViewModel、HomeViewModel、SetingViewModel、TypeManageViewModel、StatisticsViewModel和TypeRecordViewModel,每一個ViewModel類對應(yīng)相應(yīng)的視圖層中的Activity類。
4.2.3 數(shù)據(jù)層
數(shù)據(jù)層主要包括系統(tǒng)中所包含的各個實體類,例如Record、RecordType、RecordWithType、DaySumMoneyBean、SumMoneyBean、TypeSumMoneyBean,以及進(jìn)行數(shù)據(jù)操作的DAO類,比如RecordDao、RecordTypeDao。
4.3 系統(tǒng)功能模塊實現(xiàn)
記賬管理模塊是口袋記賬本系統(tǒng)的核心模塊,在該模塊下面可以進(jìn)行賬目的添加、修改和刪除。記賬管理模塊的頁面入口在程序主頁面的下方,用“+”按鈕表示。點擊該按鈕,進(jìn)入記賬管理頁面,在頁面上方有一組RadioButton控件,用于選擇賬目類型“支出”還是“收入”,在支出/收入欄下面是一個recycleView布局,存放記賬類型,點擊相應(yīng)的記賬類型標(biāo)記賬單,即可進(jìn)行記賬,記賬完畢后點擊確定提交記賬記錄。
5 結(jié)束語
本文從實用性,易用性的角度設(shè)計并實現(xiàn)了Android口袋記賬本軟件,該軟件解決了傳統(tǒng)手寫記賬的不方便,數(shù)據(jù)難以保存易遺失等問題,用戶只要手持一臺Android智能手機(jī)便能實現(xiàn)隨時隨地記賬需求。
參考文獻(xiàn):
[1] 鮑美英. 基于Android的理財軟件的設(shè)計與實現(xiàn)[J]. 山西大同大學(xué)學(xué)報: 自然科學(xué)版, 2017, 33(3): 7-9, 15.
[2] 李德華, 司瀟灑. 基于Android平臺的家庭財務(wù)管理軟件的設(shè)計和實現(xiàn)[J]. 電腦知識與技術(shù), 2016, 12(28): 90-92.
[3] 吳想想. 基于Android平臺軟件開發(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平臺移動學(xué)習(xí)軟件的研究與實現(xiàn)[J]. 數(shù)字通信世界, 2011(3): 155-203.
【通聯(lián)編輯:謝媛媛】