版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 本科畢業(yè)論文</b></p><p><b> ?。?0 屆)</b></p><p> 中小企業(yè)倉庫管理系統(tǒng)——總體設(shè)計與編碼</p><p><b> 摘要</b></p><p> 通過信息化手段進(jìn)行倉庫管理是企業(yè)信息化的一個重要組成
2、部分。如何實(shí)現(xiàn)一個好的管理信息系統(tǒng)是目前重點(diǎn)研究的對象。在中小企業(yè)管理過程中,庫存管理一直通過紙筆表格完成,倉庫管理系統(tǒng)具有很大的應(yīng)用前景。而傳統(tǒng)的系統(tǒng)架構(gòu)往往在實(shí)際應(yīng)用中不能恰好滿足企業(yè)需求,與此同時,敏捷開發(fā)日益受到業(yè)界的重視。</p><p> 本文將在對中小企業(yè)倉庫管理系統(tǒng)進(jìn)行需求分析的基礎(chǔ)上,重點(diǎn)闡述系統(tǒng)模塊分解、原型設(shè)計和多層架構(gòu)設(shè)計這三個在總體設(shè)計時需要集中考慮的方面。并積極實(shí)踐,設(shè)計并實(shí)現(xiàn)了更利
3、于快速開發(fā)的單一功能分層架構(gòu)。</p><p> 關(guān)鍵字:中小企業(yè)倉庫管理系統(tǒng) ,單一功能分層架構(gòu)</p><p><b> Abstract</b></p><p> Warehouse management by using information techonologies has been an important part of
4、 enterprise informationization. How to realize a well-worked management information system has been the key object of study at present. In the process of Small and Medium-sized Enterprise management, Warehouse management
5、 has been being finished by filling tables with pens and papers. There is a good application prospect in the development of Warehouse management information system. Regularly, Traditional archite</p><p> On
6、 the basis of the requirement analysis of the Warehouse Management Information System for Small and Medium-sized Enterprise, this text mainly covers three parts, including system module decomposition, prototype design an
7、d multi-layer architecture design. After active practice, We have designed the multi-layer architecture with single function to meet the actual demand, which has an advantage in agile development.</p><p> K
8、eywords:Warehouse Management Information System for Small and Medium-sized Enterprise, the multi-layer architecture with single function</p><p><b> 目錄</b></p><p><b> 1引言1<
9、;/b></p><p> 1.1中小企業(yè)倉庫管理系統(tǒng)的研究意義1</p><p><b> 1.2 C#1</b></p><p> 1.3 Visual Studio 2010和SQL Server 20052</p><p><b> 2 系統(tǒng)分析3</b></p&
10、gt;<p> 2.1 可行性分析3</p><p> 2.2 需求分析3</p><p> 3 模塊分解與原型設(shè)計8</p><p> 3.1 模塊化與快速原型8</p><p> 3.2 建賬管理及其原型設(shè)計10</p><p> 3.3 保管明細(xì)賬管理及其原型設(shè)計11<
11、/p><p> 3.4 添加入庫信息及其原型設(shè)計11</p><p> 3.5 管理入庫信息及其原型設(shè)計13</p><p> 3.6 全部材料入庫明細(xì)表及其原型設(shè)計14</p><p> 3.7 材料入庫分類匯總表及其原型設(shè)計15</p><p> 3.8 供貨單位供貨明細(xì)表及其原型設(shè)計16</
12、p><p> 3.9 添加出庫信息及其原型設(shè)計17</p><p> 3.10 管理出庫信息及其原型設(shè)計19</p><p> 3.11 全部材料出庫明細(xì)表及其原型設(shè)計20</p><p> 3.12 材料出庫分類匯總表及其原型設(shè)計21</p><p> 3.13 產(chǎn)品材料耗用匯總表及其原型設(shè)計22&l
13、t;/p><p><b> 4 架構(gòu)設(shè)計24</b></p><p> 4.1 單一功能分層架構(gòu)的特點(diǎn)24</p><p> 4.2 單一功能分層架構(gòu)的優(yōu)缺點(diǎn)25</p><p> 4.3 單一功能分層架構(gòu)在本項目中的應(yīng)用26</p><p> 5 數(shù)據(jù)庫設(shè)計28</p>
14、;<p> 5.1實(shí)體-聯(lián)系圖28</p><p> 5.2關(guān)系數(shù)據(jù)模型28</p><p><b> 6 編碼風(fēng)格29</b></p><p><b> 7 結(jié)束語31</b></p><p><b> 參考文獻(xiàn)32</b></p>
15、;<p><b> 1引言</b></p><p> 1.1中小企業(yè)倉庫管理系統(tǒng)的研究意義</p><p> 一直以來,在中小企業(yè)的倉庫管理中,出入庫登記一直靠紙筆填表格的方式完成。缺點(diǎn)很多:首先,人力成本較高,需要雇用更多的人力進(jìn)行倉庫管理;其次,手工錄入容易出現(xiàn)差錯,而且紙質(zhì)賬簿保存時被損壞的風(fēng)險較高;更值得一提的缺點(diǎn)是,如果想得到一份詳細(xì)的庫
16、存匯總信息,需要統(tǒng)計大量數(shù)據(jù),花費(fèi)大量時間。長期以來,這樣的問題阻礙了很多中小生產(chǎn)企業(yè)的發(fā)展,在計算機(jī)信息化高速發(fā)展的今天,數(shù)據(jù)的存儲、運(yùn)算和匯總都可以通過程序自動完成,早已不是那個看著賬本敲算盤的舊世紀(jì),也已不是指著表格按計算器的年代。現(xiàn)在的管理信息系統(tǒng)正在中小企業(yè)管理中發(fā)揮著越來越重要的作用,就倉庫管理系統(tǒng)而言,中小企業(yè)只需要出入庫管理員錄入出入庫信息,中小企業(yè)管理者就可以坐在辦公室里,通過電腦屏幕,查看關(guān)于庫存的各種信息,規(guī)劃企業(yè)
17、發(fā)展。這極大地降低了中小企業(yè)管理的成本,減少了繁瑣的流程,加快了工作效率,而且在一定程度上降低了員工的工作量。由于所有的數(shù)據(jù)均在系統(tǒng)內(nèi)流動,只要數(shù)據(jù)由出入庫管理員錄入系統(tǒng),每一步流動都可以記錄,這也極大地減少了倉庫管理的漏洞。而計算機(jī)強(qiáng)大的統(tǒng)計功能,可以在幾秒內(nèi)匯總一年、甚至幾年的出入庫數(shù)據(jù),并可以將結(jié)果用圖表的形式展</p><p> 本文將在對中小企業(yè)倉庫管理系統(tǒng)進(jìn)行需求分析的基礎(chǔ)上,重點(diǎn)闡述系統(tǒng)模塊分解、
18、原型設(shè)計和多層架構(gòu)設(shè)計這三個在總體設(shè)計時需要集中考慮的方面。</p><p><b> 1.2 C#</b></p><p> C# 是一種多范式編程語言(multi-paradigm programming language)。包含強(qiáng)類型(strong typing)、命令式(imperative)、聲明式(declarative)、函數(shù)式(functional
19、)、過程式(procedural)、泛型(generic)、面向?qū)ο?object-oriented)和面向組件(component-oriented)等編程范式。它是由微軟公司基于.NET平臺開發(fā)并于2000年6月發(fā)布的面向通用語言架構(gòu)(CLI)的新的編程語言。[1]</p><p> C#是由C和C++衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C++強(qiáng)大功能的同時去掉了一些復(fù)雜特性。C#綜合了VB簡單的可視
20、化操作和C++的高運(yùn)行效率,以其強(qiáng)大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持而成為.NET開發(fā)的首選語言。[2]</p><p> 由于C++發(fā)展了C,Java舍掉C++中較為復(fù)雜的特性,并且在C++的基礎(chǔ)上增加了更多適合工程開發(fā)的機(jī)制,而C#又在很大程度上借鑒了Java。所以,不管對于目前可以使用C、C++、Java三者中的哪一門語言的程序員,上手C#的難度都相對較低。因此,在限定
21、工期較短并且團(tuán)隊成員只具備初級開發(fā)能力的情況下,C#理應(yīng)作為開發(fā)管理信息系統(tǒng)優(yōu)先選擇的編程語言。</p><p> 1.3 Visual Studio 2010和SQL Server 2005</p><p> Visual Studio是微軟公司推出的開發(fā)環(huán)境。是目前最流行的Windows平臺應(yīng)用程序開發(fā)環(huán)境。Visual Studio 2010版本于2010年4月12日上市,其集成
22、開發(fā)環(huán)境(IDE)的界面被重新設(shè)計和組織,變得更加簡單明了。Visual Studio 2010同時帶來了 .NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview--CTP),并且支持開發(fā)面向Windows 7的應(yīng)用程序。除了Microsoft SQL Server,它還支持 IBM DB2和Oracle數(shù)據(jù)庫。[3]</p
23、><p> Microsoft SQL Server 2005 是一個全面的數(shù)據(jù)庫平臺,使用集成的商業(yè)智能 (BI)工具提供了企業(yè)級的數(shù)據(jù)管理。Microsoft SQL Server 2005數(shù)據(jù)庫引擎為關(guān)系型數(shù)據(jù)和結(jié)構(gòu)化數(shù)據(jù)提供了更安全可靠的存儲功能,可以構(gòu)建和管理用于業(yè)務(wù)的高可用和高性能的數(shù)據(jù)應(yīng)用程序。[4]</p><p> 為了獲得較新的開發(fā)體驗(yàn),我們選擇了Visual Stud
24、io 2010,而考慮到數(shù)據(jù)庫平臺僅僅用來存儲數(shù)據(jù),并且高版本的數(shù)據(jù)庫平臺較難被低版本的數(shù)據(jù)庫平臺兼容,并且團(tuán)隊開發(fā)環(huán)境使用的操作系統(tǒng)中,Windows XP和Windows7均有涉及,所以我們選擇了對目前來說,版本相對較低并可以在Windows7上正常運(yùn)行的Microsoft SQL Server 2005。</p><p><b> 2 系統(tǒng)分析</b></p><
25、p><b> 2.1 可行性分析</b></p><p> 可行性分析的任務(wù)是確定系統(tǒng)在技術(shù)上能不能實(shí)現(xiàn)、做出來的東西用戶能不能用以及是否需要太多的資金來實(shí)現(xiàn)這個系統(tǒng)。</p><p> 1. 技術(shù)可行性: 客戶機(jī)可以運(yùn)行Windows XP及以上版本的操作系統(tǒng),有足夠大的硬盤空間存儲數(shù)據(jù)。</p><p> 2. 操作可行性:
26、可以為出入庫管理員進(jìn)行使用培訓(xùn),界面十分簡潔,提示信息豐富,易用性可以滿足使用的要求。</p><p> 3. 經(jīng)濟(jì)可行性: 只需要為出入庫管理員配置一臺電腦,并運(yùn)行Windows XP及以上版本的操作系統(tǒng)即可。</p><p> 從技術(shù)可行性、操作可行性和經(jīng)濟(jì)可行性三個角度進(jìn)行可行性分析,開發(fā)這個中小型的倉庫管理系統(tǒng)完全可行。</p><p><b>
27、; 2.2 需求分析</b></p><p> 需求分析的任務(wù)是確定系統(tǒng)必須完成的工作,通過對需求文檔的分析和建立原型,并不斷和用戶交流系統(tǒng)的設(shè)計方案,可以在一定程度上獲得相對準(zhǔn)確的用戶需求。如果不進(jìn)行需求分析,直接進(jìn)行總體設(shè)計,我們無法知道到底該設(shè)計什么,或者我們設(shè)計的東西到底該什么樣子。所以,需求分析在軟件定義中占有很重要的地位。</p><p> 本系統(tǒng)作為一款中小
28、企業(yè)倉庫管理系統(tǒng),主要完成材料出入庫管理、賬目管理、供貨單位管理、產(chǎn)品耗材管理和一些數(shù)據(jù)匯總報表功能。主要完成以下幾個功能: </p><p><b> A) 添加入庫信息</b></p><p> 1. 需要添加的信息包括:入庫單編號、入庫日期、供貨單位、供貨單號、制單人、入庫材料類別、入庫材料名稱、入庫材料規(guī)格、入庫數(shù)目、入庫金額。</p>&l
29、t;p> 2. 可以修改和刪除入庫信息。</p><p><b> B) 管理入庫信息</b></p><p> 1. 可以根據(jù)入庫單編號、入庫日期、供貨單位、供貨單號中的任意條件組合查詢?nèi)霂靻涡畔ⅰ?lt;/p><p> 2. 可以更改和刪除入庫單信息。</p><p><b> C) 添加出庫信
30、息</b></p><p> 1. 需要添加的信息包括:出庫單編號、出庫日期、領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名、經(jīng)領(lǐng)人、批準(zhǔn)人、制單人、出庫材料類別、出庫材料名稱、出庫材料規(guī)格、出庫數(shù)目、出庫金額。</p><p> 2. 可以更改和刪除出庫信息。</p><p><b> D) 管理出庫信息</b></p><
31、;p> 1. 可以根據(jù)出庫單編號、出庫日期、領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名中的任意條件組合查詢出庫單信息。</p><p> 2. 可以更改和刪除出庫單信息。</p><p><b> E) 建賬管理</b></p><p> 從無到有地將庫存的初始數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,數(shù)據(jù)包括材料類別、材料名稱、材料規(guī)格、材料數(shù)目、材料金額。</
32、p><p> F) 保管明細(xì)賬管理</p><p> 匯總在某一時間段內(nèi),某種特定規(guī)格的材料的出入庫和結(jié)存情況,反饋的數(shù)據(jù)包括日期、入庫單編號、入庫數(shù)量、入庫單價、入庫金額、出庫單編號、出庫數(shù)量、出庫單價、出庫金額、結(jié)存數(shù)量、結(jié)存單價、結(jié)存金額。</p><p> G) 供貨單位供貨匯總</p><p> 匯總在某一時間段內(nèi),某一特定的供
33、貨單位的供貨情況,反饋的數(shù)據(jù)包括日期、材料類別、材料名稱、材料規(guī)格、數(shù)目、單價、金額。</p><p><b> H) 產(chǎn)品耗材匯總</b></p><p> 匯總在某一時間段內(nèi),某一特定產(chǎn)品消耗材料的情況,反饋的數(shù)據(jù)包括材料編號、材料類別、材料名稱、材料規(guī)格、數(shù)目、單價、金額。</p><p><b> I) 材料入庫匯總&l
34、t;/b></p><p> 1. 全部材料入庫明細(xì)表,匯總在某一時間段內(nèi)的全部材料入庫情況,反饋的數(shù)據(jù)包括日期、材料類別、材料名稱、材料規(guī)格、供貨單位、數(shù)目、單價、金額。</p><p> 2. 材料入庫分類匯總表,匯總在某一時間段內(nèi),某一特定類別的材料的入庫情況,反饋的數(shù)據(jù)包括日期、材料名稱、材料規(guī)格、供貨單位、數(shù)目、單價、金額。</p><p>&l
35、t;b> J) 材料出庫匯總</b></p><p> 1. 全部材料出庫明細(xì)表,匯總在某一時間段內(nèi)的全部材料出庫情況,反饋的數(shù)據(jù)包括日期、生產(chǎn)計劃號、產(chǎn)品名、材料類別、材料名稱、材料規(guī)格、數(shù)目、單價、金額。</p><p> 2. 材料出庫分類匯總表,匯總在具體某一天的材料出庫與產(chǎn)品生產(chǎn)的對應(yīng)情況,反饋的數(shù)據(jù)包括材料類別、產(chǎn)品名、對應(yīng)的出庫金額。</p>
36、;<p> 3 模塊分解與原型設(shè)計</p><p> 3.1 模塊化與快速原型</p><p> 模塊化是把系統(tǒng)劃分成獨(dú)立命名且獨(dú)立訪問的模塊,每個模塊完成一個特定的子功能,把這些模塊集成起來,構(gòu)成目標(biāo)系統(tǒng),完成指定的功能以滿足用戶的需求。模塊化使得系統(tǒng)可以為人所管理,便于控制系統(tǒng)行為。如果一個系統(tǒng)僅由一個模塊組成,那么它將很難被人理解。所以我們要把復(fù)雜的問題分解成許多
37、容易解決的小問題,各個擊破,這樣原來的問題也就容易解決了。</p><p> 然而,事實(shí)證明,過多的模塊,劃分過細(xì),會極大增加系統(tǒng)的模塊數(shù)目,導(dǎo)致過大的模塊間通信開銷,設(shè)計模塊間接口所需要的工作量也將大量增加。</p><p> 所以,我們應(yīng)在模塊劃分與系統(tǒng)功能之間建立聯(lián)系,使得模塊與功能一一對應(yīng),或者在可控范圍內(nèi)多個模塊與一個功能對應(yīng)。采用模塊化開發(fā)方法,可以使系統(tǒng)結(jié)構(gòu)清晰,不僅容易
38、設(shè)計,而且容易閱讀和理解。并且程序錯誤會被限定在涉及的模塊之中,易于測試和調(diào)試,從而提高軟件的可靠性。而添加功能只需修改其中的部分模塊,增大了程序的可擴(kuò)展性。只修改最底層代碼,就可以讓我們的系統(tǒng)運(yùn)行在不同的數(shù)據(jù)庫系統(tǒng)上,如果修改最上層代碼,甚至可以讓我們的系統(tǒng)運(yùn)行在不同的操作系統(tǒng)上,提高了程序的可移植性。</p><p> 因此,我們按照系統(tǒng)需求分析中涉及的功能,將系統(tǒng)劃分成如下幾個模塊:</p>
39、<p> 通過快速原型設(shè)計工具,可以迅速建立系統(tǒng)的原型,盡快向用戶提供一個直觀的目標(biāo)系統(tǒng)的模型,有利于用戶和開發(fā)者在目標(biāo)系統(tǒng)“什么樣子”和目標(biāo)系統(tǒng)“能做什么”這兩個的問題上盡可能快地達(dá)成共識。因此,可以忽略原型中不損害系統(tǒng)功能和行為的小瑕疵。并且原型容易修改,開發(fā)人員可以根據(jù)用戶的意見迅速修改,構(gòu)建更符合用戶要求的版本,如果仍然存在問題,還可以再修改,不斷靠近用戶的實(shí)際需求。但要避免對無關(guān)系統(tǒng)功能和行為上的小瑕疵的不斷更改
40、,以免延誤軟件的開發(fā)時間。在本文中,我們使用Pencil作為我們的原型圖繪制工具。Pencil是一款開源的原型圖繪制工具,效果和手繪基本一致,十分有利于引起用戶的視覺關(guān)注,增強(qiáng)用戶參與系統(tǒng)開發(fā)的積極性。</p><p> 3.2 建賬管理及其原型設(shè)計</p><p><b> 添加建賬</b></p><p> 從數(shù)據(jù)庫中讀取已有材料類別
41、,根據(jù)材料類別,從數(shù)據(jù)庫中讀取材料名稱,根據(jù)材料類別和材料名稱讀取材料規(guī)格。如果是新添加的材料類別、材料名稱和材料規(guī)格,可以通過“新建類別”按鈕、“新建名稱”按鈕和“新建規(guī)格”按鈕,添加新的材料類別、新的材料名稱和新的材料規(guī)格;</p><p> 填寫材料數(shù)目和材料金額;</p><p> 點(diǎn)擊“添加”按鈕,讀取界面上填寫的數(shù)據(jù),顯示提示信息;</p><p>
42、 傳入數(shù)據(jù)到數(shù)據(jù)鏈接層;</p><p> 從數(shù)據(jù)庫中讀取添加后的建賬數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯示添加的結(jié)果。</b></p><p><b> B) 更改建賬</b></p><p> 修改表格中的數(shù)目或者金額,點(diǎn)擊“更改”按鈕,顯示提示信息;</p
43、><p> 將新的數(shù)據(jù)傳入數(shù)據(jù)鏈接層;</p><p> 更改數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);</p><p> 從數(shù)據(jù)庫中讀取更改后的建賬數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯示更改的結(jié)果。</b></p><p><b> C) 刪除建賬</b></p
44、><p> 選中表格中要刪除的數(shù)據(jù)行,點(diǎn)擊“刪除”按鈕,顯示提示信息;</p><p> 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;</p><p> 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);</p><p> 從數(shù)據(jù)庫中讀取刪除后的建賬數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯示刪除的結(jié)果。</b&g
45、t;</p><p> 3.3 保管明細(xì)賬管理及其原型設(shè)計</p><p><b> 查看保管明細(xì)賬</b></p><p> 從數(shù)據(jù)庫中讀取已有材料類別、材料名稱和材料規(guī)格;</p><p> 選擇查詢的開始日期和結(jié)束日期;</p><p><b> 點(diǎn)擊“查詢”按鈕;<
46、;/b></p><p> 傳入查詢條件到數(shù)據(jù)鏈接層;</p><p> 根據(jù)查詢條件查詢數(shù)據(jù)庫,計算入庫單價、出庫單價和結(jié)存信息,返回到界面;</p><p><b> 顯示查詢的結(jié)果。</b></p><p> B) 導(dǎo)出到Excel</p><p> 點(diǎn)擊“導(dǎo)出到Excel”
47、按鈕;</p><p> 選擇要導(dǎo)出的位置和文件名;</p><p> 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。</p><p> 3.4 添加入庫信息及其原型設(shè)計</p><p><b> 添加入庫基本信息</b></p><p>
48、 產(chǎn)生入庫單編號,獲得入庫日期;</p><p> 加載已有供貨單位。如果是新添加的供貨單位,可點(diǎn)擊“供貨單位”按鈕,添加新的供貨單位;</p><p> 添加供貨單號和制單人;</p><p> 點(diǎn)擊“下一步”按鈕,傳入數(shù)據(jù)到添加入庫詳細(xì)信息窗體。</p><p> B) 添加入庫詳細(xì)信息</p><p>
49、 獲取從添加入庫基本信息中讀取的基本信息;</p><p> 從數(shù)據(jù)庫中讀取已有材料類別,根據(jù)材料類別,從數(shù)據(jù)庫中讀取材料名稱,根據(jù)材料類別和材料名稱讀取材料規(guī)格。如果是新添加的材料類別、材料名稱和材料規(guī)格,可以通過“新建類別”按鈕、“新建名稱”按鈕和“新建規(guī)格”按鈕,添加新的材料類別、新的材料名稱和新的材料規(guī)格;</p><p> 添加材料數(shù)目和材料金額;</p>&l
50、t;p> 點(diǎn)擊“添加”按鈕,讀取界面上填寫的數(shù)據(jù),顯示提示信息;</p><p> 傳入數(shù)據(jù)到數(shù)據(jù)鏈接層;</p><p> 從數(shù)據(jù)庫中讀取添加后的建賬數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯示添加的結(jié)果。</b></p><p><b> C) 修改基本信息</b>
51、;</p><p> 點(diǎn)擊“修改基本信息”按鈕;</p><p> 供貨單位、供貨單號和制單人變?yōu)榭删庉嫚顟B(tài);</p><p> 修改要修改的基本信息,點(diǎn)擊“確定”按鈕。</p><p><b> D) 更改入庫信息</b></p><p> 修改表格中的數(shù)目或者金額,點(diǎn)擊“更改”按鈕,
52、顯示提示信息;</p><p> 將新的數(shù)據(jù)傳入數(shù)據(jù)鏈接層;</p><p> 更改數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);</p><p> 從數(shù)據(jù)庫中讀取更改后的入庫數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯示更改的結(jié)果。</b></p><p><b> E) 刪除入庫信息&
53、lt;/b></p><p> 選中表格中要刪除的數(shù)據(jù)行,點(diǎn)擊“刪除”按鈕,顯示提示信息;</p><p> 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;</p><p> 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);</p><p> 從數(shù)據(jù)庫中讀取刪除后的入庫數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯
54、示刪除的結(jié)果。</b></p><p><b> F) 生成入庫單</b></p><p> 點(diǎn)擊“生成入庫單”按鈕;</p><p> 選擇要導(dǎo)出的入庫單文件的位置和文件名;</p><p> 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。</p
55、><p> 3.5 管理入庫信息及其原型設(shè)計</p><p><b> 查詢?nèi)霂靻涡畔?lt;/b></p><p> 1. 填寫查詢條件,按照下列查詢規(guī)則返回查詢結(jié)果。</p><p><b> 查詢規(guī)則:</b></p><p> 如果填寫了入庫單編號,則優(yōu)先根據(jù)入庫單編
56、號查詢,日期、供貨單位、供貨單號無效;</p><p> 如果只填寫供貨單位或只填寫供貨單號,則按照供貨單位或供貨單號,且入庫日期在前后三天范圍內(nèi)進(jìn)行查詢;</p><p> 如果只填寫供貨單號和供貨單位,則按照供貨單號、供貨單位和日期進(jìn)行查詢;</p><p> 如果什么也不填入,則顯示前后三天的入庫記錄。</p><p> 傳入查
57、詢條件到數(shù)據(jù)鏈接層;</p><p> 返回查詢的入庫單結(jié)果,返回到界面。</p><p> B) 更改入庫單信息</p><p> 選中要更改的入庫單數(shù)據(jù)行,點(diǎn)擊“更改”按鈕;</p><p> 跳轉(zhuǎn)到添加入庫詳細(xì)信息窗體,余下操作和添加入庫詳細(xì)信息一致,提交完數(shù)據(jù)后關(guān)閉添加入庫詳細(xì)信息窗體;</p><p>
58、;<b> 點(diǎn)擊“刷新”按鈕;</b></p><p> 將原查詢條件傳到數(shù)據(jù)鏈接層;</p><p> 查詢?nèi)霂靻胃暮蟮慕Y(jié)果,返回到界面。</p><p> C) 刪除入庫單信息</p><p> 選中表格中要刪除的數(shù)據(jù)行,點(diǎn)擊“刪除”按鈕,顯示提示信息;</p><p> 將要刪
59、除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;</p><p> 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);</p><p> 將原查詢條件傳到數(shù)據(jù)鏈接層;</p><p> 查詢?nèi)霂靻蝿h除后的結(jié)果,返回到界面。</p><p> 3.6 全部材料入庫明細(xì)表及其原型設(shè)計</p><p> 查看全部材料入庫明細(xì)表</p><
60、p> 選擇查詢的開始日期和結(jié)束日期;</p><p><b> 點(diǎn)擊“查詢”按鈕;</b></p><p> 傳入日期條件到數(shù)據(jù)鏈接層;</p><p> 根據(jù)日期條件查詢數(shù)據(jù)庫,計算單價,返回到界面;</p><p><b> 顯示查詢的結(jié)果。</b></p><
61、;p> B) 導(dǎo)出到Excel</p><p> 點(diǎn)擊“導(dǎo)出到Excel”按鈕;</p><p> 選擇要導(dǎo)出的位置和文件名;</p><p> 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。</p><p> 3.7 材料入庫分類匯總表及其原型設(shè)計</p><
62、;p> A) 查看材料入庫分類匯總表</p><p> 1. 選擇材料類別;</p><p> 2. 選擇查詢的開始日期和結(jié)束日期;</p><p> 3. 點(diǎn)擊“查詢”按鈕;</p><p> 4. 傳入查詢條件到數(shù)據(jù)鏈接層;</p><p> 5. 根據(jù)查詢條件查詢數(shù)據(jù)庫,計算單價,返回到界面;&
63、lt;/p><p><b> 顯示查詢的結(jié)果。</b></p><p> B) 導(dǎo)出到Excel</p><p> 點(diǎn)擊“導(dǎo)出到Excel”按鈕;</p><p> 選擇要導(dǎo)出的位置和文件名;</p><p> 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)
64、據(jù)的電子表格。</p><p> 3.8 供貨單位供貨明細(xì)表及其原型設(shè)計</p><p> 查看供貨單位供貨明細(xì)表</p><p> 1. 選擇供貨單位;</p><p> 2. 選擇查詢的開始日期和結(jié)束日期;</p><p> 3. 點(diǎn)擊“查詢”按鈕;</p><p> 4. 傳入
65、查詢條件到數(shù)據(jù)鏈接層;</p><p> 5. 根據(jù)查詢條件查詢數(shù)據(jù)庫,計算單價,返回到界面;</p><p> 6. 顯示查詢的結(jié)果。</p><p> B) 導(dǎo)出到Excel</p><p> 點(diǎn)擊“導(dǎo)出到Excel”按鈕;</p><p> 選擇要導(dǎo)出的位置和文件名;</p><p&
66、gt; 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。</p><p> 3.9 添加出庫信息及其原型設(shè)計</p><p><b> 添加出庫基本信息</b></p><p> 產(chǎn)生出庫單編號,獲得出庫日期;</p><p> 添加領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名、經(jīng)
67、領(lǐng)人、批準(zhǔn)人和制單人;</p><p> 點(diǎn)擊“下一步”按鈕,傳入數(shù)據(jù)到添加出庫詳細(xì)信息窗體。</p><p> B) 添加出庫詳細(xì)信息</p><p> 獲取從添加出庫基本信息中讀取的基本信息;</p><p> 從數(shù)據(jù)庫中讀取已有材料類別,根據(jù)材料類別,從數(shù)據(jù)庫中讀取材料名稱,根據(jù)材料類別和材料名稱讀取材料規(guī)格。</p>
68、;<p> 添加材料數(shù)目和材料金額;</p><p> 點(diǎn)擊“添加”按鈕,讀取界面上填寫的數(shù)據(jù),顯示提示信息;</p><p> 傳入數(shù)據(jù)到數(shù)據(jù)鏈接層;</p><p> 從數(shù)據(jù)庫中讀取添加后的出庫數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯示添加的結(jié)果。</b></p>
69、<p><b> C) 修改基本信息</b></p><p> 點(diǎn)擊“修改基本信息”按鈕;</p><p> 領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名、經(jīng)領(lǐng)人、批準(zhǔn)人和制單人變?yōu)榭删庉嫚顟B(tài);</p><p> 修改要修改的基本信息,點(diǎn)擊“確定”按鈕。</p><p><b> D) 更改出庫信息&l
70、t;/b></p><p> 修改表格中的數(shù)目或者金額,點(diǎn)擊“更改”按鈕,顯示提示信息;</p><p> 將新的數(shù)據(jù)傳入數(shù)據(jù)鏈接層;</p><p> 更改數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);</p><p> 從數(shù)據(jù)庫中讀取更改后的出庫數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯示更改的結(jié)果
71、。</b></p><p><b> E) 刪除出庫信息</b></p><p> 選中表格中要刪除的數(shù)據(jù)行,點(diǎn)擊“刪除”按鈕,顯示提示信息;</p><p> 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;</p><p> 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);</p><p> 從數(shù)據(jù)庫中讀取
72、刪除后的出庫數(shù)據(jù),計算單價,返回到界面;</p><p><b> 顯示刪除的結(jié)果。</b></p><p><b> F) 生成出庫單</b></p><p> 點(diǎn)擊“生成出庫單”按鈕;</p><p> 選擇要導(dǎo)出的出庫單文件的位置和文件名;</p><p>
73、按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。</p><p> 3.10 管理出庫信息及其原型設(shè)計</p><p> A) 查詢出庫單信息</p><p> 1. 填寫查詢條件,按照下列查詢規(guī)則返回查詢結(jié)果。</p><p><b> 查詢規(guī)則:</b></
74、p><p> 如果填寫了出庫單編號,則優(yōu)先根據(jù)出庫單編號查詢,日期、領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名均無效。</p><p> 如果只填寫生產(chǎn)計劃號,則按照生產(chǎn)計劃號且日期在出庫日期前后三天范圍內(nèi)進(jìn)行查詢。</p><p> 如果只填寫領(lǐng)用班組,則按照領(lǐng)用班組且在出庫日期的前后三天范圍內(nèi)進(jìn)行查詢。</p><p> 如果只填寫產(chǎn)品名,則按照產(chǎn)
75、品名且在出庫日期的前后三天范圍內(nèi)進(jìn)行查詢。</p><p> 如果只填寫生產(chǎn)計劃號、產(chǎn)品名和領(lǐng)用班組,則按照生產(chǎn)計劃號、產(chǎn)品名和領(lǐng)用班組,且在出庫日期前后三天范圍內(nèi)進(jìn)行查詢;如果只填寫任意兩項,則按照所填寫的項和日期在出庫日期前后三天范圍內(nèi)進(jìn)行查詢。</p><p> 傳入查詢條件到數(shù)據(jù)鏈接層;</p><p> 返回查詢的出庫單結(jié)果,返回到界面。</p
76、><p> B) 更改出庫單信息</p><p> 選中要更改的出庫單數(shù)據(jù)行,點(diǎn)擊“更改”按鈕;</p><p> 跳轉(zhuǎn)到添加出庫詳細(xì)信息窗體,余下操作和添加出庫詳細(xì)信息一致,提交完數(shù)據(jù)后關(guān)閉添加出庫詳細(xì)信息窗體;</p><p><b> 點(diǎn)擊“刷新”按鈕;</b></p><p> 將原
77、查詢條件傳到數(shù)據(jù)鏈接層;</p><p> 查詢出庫單更改后的結(jié)果,返回到界面。</p><p> C) 刪除出庫單信息</p><p> 選中表格中要刪除的數(shù)據(jù)行,點(diǎn)擊“刪除”按鈕,顯示提示信息;</p><p> 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;</p><p> 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);</p
78、><p> 將原查詢條件傳到數(shù)據(jù)鏈接層;</p><p> 查詢出庫單刪除后的結(jié)果,返回到界面。</p><p> 3.11 全部材料出庫明細(xì)表及其原型設(shè)計</p><p> 查看全部材料出庫明細(xì)表</p><p> 選擇查詢的開始日期和結(jié)束日期;</p><p><b> 點(diǎn)
79、擊“查詢”按鈕;</b></p><p> 傳入日期條件到數(shù)據(jù)鏈接層;</p><p> 根據(jù)日期條件查詢數(shù)據(jù)庫,計算單價,返回到界面;</p><p><b> 顯示查詢的結(jié)果。</b></p><p> B) 導(dǎo)出到Excel</p><p> 點(diǎn)擊“導(dǎo)出到Excel”按
80、鈕;</p><p> 選擇要導(dǎo)出的位置和文件名;</p><p> 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。</p><p> 3.12 材料出庫分類匯總表及其原型設(shè)計</p><p> 查看材料出庫分類匯總表</p><p><b> 選擇查
81、詢?nèi)掌冢?lt;/b></p><p><b> 點(diǎn)擊“查詢”按鈕;</b></p><p> 傳入日期條件到數(shù)據(jù)鏈接層;</p><p> 根據(jù)日期條件查詢數(shù)據(jù)庫,返回界面;</p><p> 查詢所有相關(guān)的材料類別,返回界面;</p><p> 查詢所有相關(guān)的產(chǎn)品,返回界面;&
82、lt;/p><p> 根據(jù)上述返回的信息,拼接查詢結(jié)果;</p><p><b> 顯示查詢結(jié)果。</b></p><p> B) 導(dǎo)出到Excel</p><p> 點(diǎn)擊“導(dǎo)出到Excel”按鈕;</p><p> 選擇要導(dǎo)出的位置和文件名;</p><p> 按
83、單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。</p><p> 3.13 產(chǎn)品材料耗用匯總表及其原型設(shè)計</p><p> A) 查看產(chǎn)品材料耗用匯總表</p><p><b> 1. 選擇產(chǎn)品名;</b></p><p> 2. 選擇查詢的開始日期和結(jié)束日期;&l
84、t;/p><p> 3. 點(diǎn)擊“查詢”按鈕;</p><p> 4. 傳入查詢條件到數(shù)據(jù)鏈接層;</p><p> 5. 根據(jù)查詢條件查詢數(shù)據(jù)庫,計算單價,返回到界面;</p><p> 6. 顯示查詢的結(jié)果。</p><p> B) 導(dǎo)出到Excel</p><p> 點(diǎn)擊“導(dǎo)出到Ex
85、cel”按鈕;</p><p> 選擇要導(dǎo)出的位置和文件名;</p><p> 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。</p><p><b> 4 架構(gòu)設(shè)計</b></p><p> 架構(gòu)設(shè)計往往決定了系統(tǒng)開發(fā)中后期的進(jìn)度。一個不好的架構(gòu),往往會讓項目在后
86、期演變成“邊做邊設(shè)計”,出現(xiàn)很多無謂的修改和時間的浪費(fèi)。從理論上講,軟件開發(fā)應(yīng)該是分析、設(shè)計、編碼、測試、維護(hù)這五個大體的步驟。但是我們發(fā)現(xiàn),到了測試階段,發(fā)現(xiàn)錯誤,需要修改的時候,經(jīng)常會修改設(shè)計。這樣直接造成了較大的修改工作量,甚至可能使問題越改越多。</p><p> 很多人認(rèn)為,用戶需要什么功能,我們就實(shí)現(xiàn)什么功能,沒必要花時間去設(shè)計軟件架構(gòu)。但當(dāng)這些人發(fā)現(xiàn),到了項目后期,重構(gòu)代碼幾乎等于重寫代碼的時候,
87、為時已晚。還有些人認(rèn)為,既有的成熟架構(gòu)已經(jīng)很多,我們沒必要自己設(shè)計,浪費(fèi)時間,并且容易出問題。但這些人會發(fā)現(xiàn),既有的架構(gòu)很多時候不是太大,就是太小,團(tuán)隊學(xué)習(xí)既有架構(gòu)的過程也會浪費(fèi)系統(tǒng)開發(fā)的時間。</p><p> 良好的架構(gòu)設(shè)計,不僅可以讓我們的系統(tǒng)滿足用戶的需求,而且可以在用戶需求改變的時候,我們可以用最小的代價滿足用戶需求的改變。除此之外,良好的設(shè)計架構(gòu)意味著良好的可移植性、良好的可維護(hù)性、較高的開發(fā)效率等
88、等。所以我們應(yīng)該重視架構(gòu)設(shè)計在軟件開發(fā)中的作用。</p><p> 在本項目中,我們設(shè)計并使用了單一功能分層架構(gòu)。對于傳統(tǒng)三層架構(gòu)中不適合本項目的地方進(jìn)行了取舍,并加入了我們自己的設(shè)計理念。</p><p> 4.1 單一功能分層架構(gòu)的特點(diǎn)</p><p> 所謂單一功能分層架構(gòu),就是把整個項目分解為界面層、業(yè)務(wù)邏輯層、若干中間數(shù)據(jù)處理層和數(shù)據(jù)鏈接層。(待修改
89、)中間的邏輯層,每一層實(shí)現(xiàn)且僅實(shí)現(xiàn)一個功能。相比較傳統(tǒng)三層架構(gòu)對數(shù)據(jù)業(yè)務(wù)邏輯處理這一略顯寬泛含混的作用,我們的架構(gòu)可以更清晰,并且增強(qiáng)了系統(tǒng)的功能內(nèi)聚,使得每個模塊的功能單一,降低了模塊的規(guī)模,雖然增加了處理結(jié)構(gòu)的深度,但其規(guī)模在可控范圍之內(nèi)。在系統(tǒng)開發(fā)過程中,團(tuán)隊分工可以更加明確,由于功能單一,團(tuán)隊成員上手的成本低,每個人僅需要完成若干功能中的一個或幾個。下一小節(jié),我們將重點(diǎn)闡述,單一功能分層架構(gòu)的優(yōu)缺點(diǎn)。</p>&l
90、t;p> 4.2 單一功能分層架構(gòu)的優(yōu)缺點(diǎn)</p><p> 單一功能分層架構(gòu)的主要優(yōu)點(diǎn)如下:</p><p> 分工明確,職責(zé)劃分清晰</p><p> 明確的分工有利于團(tuán)隊成員各盡所能,有利于評價團(tuán)隊成員的貢獻(xiàn),避免利益上的沖突,避免爭功,有利于維護(hù)團(tuán)隊的穩(wěn)定。</p><p><b> 工作內(nèi)容專一</b
91、></p><p> 工作內(nèi)容的專一使得團(tuán)隊成員可以專注于自己的模塊,有利于加快項目開發(fā)速度,并可培養(yǎng)團(tuán)隊成員的一技之長,甚至多技之長,易產(chǎn)生工作積極性。</p><p> 可移植性、可擴(kuò)展性好</p><p> 每一層只做一件事情,需要添加處理,就添加新的處理層;需要添加功能,就增加寬度?;静恍枰淖兲喈?dāng)前項目的已有成果,便于擴(kuò)展。而如果換數(shù)據(jù)庫,
92、只需更換數(shù)據(jù)鏈接層;換操作系統(tǒng),只需更換界面層。有較強(qiáng)的可移植性,可以應(yīng)對各種環(huán)境變化。(通過GTK#,在Windows上用C#開發(fā)的程序也可以移植到Linux操作系統(tǒng)上)</p><p> 不存在過度設(shè)計,簡單可靠</p><p> 架構(gòu)簡單,不用花費(fèi)太多時間在架構(gòu)學(xué)習(xí)和架構(gòu)維護(hù)上。模塊功能單一,易查錯,可測試性好,隨之而來的,可維護(hù)性好。</p><p>
93、 易上手,對團(tuán)隊成員的能力要求低</p><p> 同樣是因?yàn)榧軜?gòu)簡單,對團(tuán)隊成員上手的要求較低,一個小時就足可以適應(yīng)此架構(gòu)。團(tuán)隊成員也容易知道自己對整個項目的貢獻(xiàn)在什么地方。有利于形成開發(fā)熱情。</p><p> 功能與文件對應(yīng),間接減少了關(guān)鍵路徑占用的時間</p><p> 我們假設(shè)就一個模塊的開發(fā)與傳統(tǒng)三層架構(gòu)進(jìn)行對比:</p><p
94、> 用戶界面的開發(fā)時間是0.5小時</p><p> 數(shù)據(jù)鏈接層的開發(fā)是1小時</p><p><b> 傳統(tǒng)三層架構(gòu):</b></p><p> Model的開發(fā)是0.2小時</p><p> 業(yè)務(wù)邏輯層的開發(fā)是3小時(包括錯誤檢驗(yàn)、數(shù)據(jù)壓縮和數(shù)據(jù)加密...)</p><p>&
95、lt;b> 單一功能分層架構(gòu):</b></p><p><b> 沒有Model</b></p><p> 業(yè)務(wù)邏輯層的開發(fā)是0.3小時(只是傳遞參數(shù))</p><p> 錯誤檢驗(yàn)層的開發(fā)是0.3小時</p><p> 數(shù)據(jù)壓縮層的開發(fā)是0.3小時</p><p>
96、數(shù)據(jù)加密層的開發(fā)是0.3小時</p><p><b> ...</b></p><p> ......................................0.3小時</p><p> 由于傳統(tǒng)三層架構(gòu)需要進(jìn)行數(shù)據(jù)庫的OR-Mapping和每個函數(shù)處理后對Model的封裝,這部分時間我們算在了業(yè)務(wù)邏輯層的開發(fā)里。</p&g
97、t;<p> 通過上述例子,我們很容易發(fā)現(xiàn),傳統(tǒng)三層架構(gòu)在開發(fā)過程中,業(yè)務(wù)邏輯層由于要完成的處理步驟較多,需要耗費(fèi)較長的時間,而對于使用Visual Studio的前臺開發(fā)人員來說,用戶界面的開發(fā)只需要很短的時間,而對于有熟練數(shù)據(jù)庫經(jīng)驗(yàn)的人來說,數(shù)據(jù)鏈接層的開發(fā)也十分簡單。只有業(yè)務(wù)邏輯層,由于不同的模塊的邏輯可能不同,需要耗費(fèi)的時間必然會較其他兩層更長。并且,由于開發(fā)過程中,一般情況下,一個代碼文件不能被兩個人同時讀寫,
98、致使前臺開發(fā)人員和數(shù)據(jù)鏈接層開發(fā)人員等待業(yè)務(wù)邏輯層開發(fā)人員的現(xiàn)象時有發(fā)生。</p><p> 而在我們的單一功能分層架構(gòu)中,沒有Model,不需要封裝,在項目規(guī)模較小的情況下,函數(shù)接口中的變量數(shù)目可以接受,不需要浪費(fèi)時間在OR-Mapping上。</p><p> 同時,克服了傳統(tǒng)三層架構(gòu)開發(fā)過程中的閑置問題,前臺開發(fā)人員和數(shù)據(jù)鏈接層開發(fā)人員可以在自身工作完成的情況下,幫助完成處理層的
99、各個模塊,團(tuán)隊成員互補(bǔ),有利于縮短工期。</p><p> 性能優(yōu)化空間大,關(guān)鍵環(huán)節(jié)可根據(jù)對應(yīng)平臺換用動態(tài)鏈接庫。</p><p> 解釋型語言,如Python,程序的執(zhí)行速度相對編譯型語言要慢,那么我們可以把中間的處理層用C或C++編譯成動態(tài)鏈接庫,進(jìn)行性能優(yōu)化。劃分多個處理層,使得動態(tài)鏈接庫的功能和調(diào)用可以更清晰明了。</p><p> Simple is
100、 better</p><p> 一個架構(gòu)的簡潔對于這個架構(gòu)的推廣十分重要,如果一個架構(gòu)的使用可以被寫成一本將近百頁的教材,我想這不是一個好的架構(gòu),至少不是一個敏捷開發(fā)的架構(gòu),也不是一個可以迅速被廣泛應(yīng)用的架構(gòu)。</p><p> 不應(yīng)為了面向?qū)ο蠖嫦驅(qū)ο螅粦?yīng)為了設(shè)計模式而設(shè)計模式。開發(fā)的速度可以帶來直接的經(jīng)濟(jì)效益,外加用戶的滿意度。用戶想要的是盡快拿出方案、盡快看到原型、盡快交付
101、使用。一個設(shè)計完善,可以沿用百年的架構(gòu)固然理論上是好,但是過長的設(shè)計時間,較高的學(xué)習(xí)成本,都會阻礙系統(tǒng)開發(fā)的進(jìn)程,降低用戶的滿意度。簡單的是最好的。</p><p> 但我們不得不承認(rèn),在某些時候,單一功能分層架構(gòu)存在一定的缺點(diǎn):</p><p> 由于沒有使用OR-Mapping,沒有持久化層,所以代碼的可重用性不高。</p><p> 由于沒有封裝Mode
102、l,函數(shù)接口的參數(shù)個數(shù)在某些情況下會比較多。</p><p> 當(dāng)對數(shù)據(jù)的處理步驟過多時,會帶來過深的層次,對系統(tǒng)性能的影響會較大。</p><p> 4.3 單一功能分層架構(gòu)在本項目中的應(yīng)用</p><p> 通過需求分析,我們可以看到,這個倉庫管理系統(tǒng)的規(guī)模不是很大,要完成的功能的邏輯也較為清晰,而團(tuán)隊開發(fā)人員都相對缺少開發(fā)經(jīng)驗(yàn),都是在摸索中開發(fā)。所以,我
103、們設(shè)計了單一功能分層架構(gòu)。整個系統(tǒng)包括:用戶接口層、業(yè)務(wù)邏輯層、錯誤檢驗(yàn)層和數(shù)據(jù)鏈接層。</p><p> 用戶接口層負(fù)責(zé)和用戶的交互,包括用戶的輸入、控件的觸發(fā)事件和數(shù)據(jù)的顯示;</p><p> 業(yè)務(wù)邏輯層負(fù)責(zé)傳送數(shù)據(jù),并清晰展示所有調(diào)用的函數(shù),方便對功能的控制;</p><p> 錯誤檢驗(yàn)層負(fù)責(zé)檢查用戶輸入的合法性;</p><p&g
104、t; 數(shù)據(jù)鏈接層負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行增刪改查。</p><p> 在實(shí)際開發(fā)過程中,一個人負(fù)責(zé)用戶接口層編碼,一個人負(fù)責(zé)數(shù)據(jù)鏈接層編碼,另一個人負(fù)責(zé)錯誤檢驗(yàn)層編碼,之后先完成任務(wù)的人連接業(yè)務(wù)邏輯層。開發(fā)中通過局域網(wǎng)即時通信軟件,共享函數(shù)接口。并在一臺電腦上進(jìn)行代碼版本管理,每次開發(fā)均進(jìn)行源代碼備份和測試信息備份。</p><p> 在有序的開發(fā)過程中,充分體現(xiàn)了單一功能分層架構(gòu)在迭代開發(fā)
105、過程中的優(yōu)勢。并且較低的學(xué)習(xí)成本也帶來了較高的工作積極性。每次構(gòu)建均有新的模塊完成,并保證系統(tǒng)可用,不斷添加功能的成就感使得團(tuán)隊開發(fā)的積極性較高。</p><p><b> 5 數(shù)據(jù)庫設(shè)計</b></p><p> 信息管理系統(tǒng)實(shí)質(zhì)上,就如同是為數(shù)據(jù)庫的增刪改查設(shè)計用戶界面和業(yè)務(wù)邏輯。所以,數(shù)據(jù)庫在信息管理系統(tǒng)中地位的重要性不言而喻。一個好的數(shù)據(jù)庫設(shè)計可以帶來好的
106、系統(tǒng)擴(kuò)展性,對于系統(tǒng)性能也有很大的影響。缺乏必要的字段、非必要數(shù)據(jù)的冗余、數(shù)據(jù)完整性的喪失等等問題都會對信息管理系統(tǒng)的開發(fā)造成致命的影響。由于數(shù)據(jù)庫設(shè)計不是本文的重點(diǎn),在這里我們只是列舉一下本項目的實(shí)體-聯(lián)系圖和關(guān)系數(shù)據(jù)模型。</p><p><b> 5.1實(shí)體-聯(lián)系圖</b></p><p> 以下為本項目的實(shí)體-聯(lián)系圖:</p><p&g
107、t;<b> 5.2關(guān)系數(shù)據(jù)模型</b></p><p> 以下為本項目的關(guān)系數(shù)據(jù)模型:</p><p> 材料(編號,類別,名稱,規(guī)格,累計數(shù)量,累計金額)</p><p> 建賬(編號,材料編號,金額,數(shù)量,日期)</p><p> 出庫單(編號,產(chǎn)品名,生產(chǎn)計劃號,經(jīng)領(lǐng)人,批準(zhǔn)人,制單人,領(lǐng)用班組,日期)
108、</p><p> 入庫單(編號,供貨單位,供貨單號,制單人,日期)</p><p> 入庫(編號,入庫單編號,材料編號,數(shù)量,金額)</p><p> 出庫(編號,出庫單編號,材料編號,數(shù)量,金額)</p><p><b> 6 編碼風(fēng)格</b></p><p> 為了保證程序的易讀易
109、懂,編碼風(fēng)格十分重要。Programs must be written for people to read, and only incidentally for machines to execute.[5] 通過積累和分析,我們認(rèn)為一個好的編碼風(fēng)格應(yīng)具有以下特點(diǎn):</p><p> 標(biāo)識符命名應(yīng)有明確的意義</p><p> 標(biāo)識符盡量采用英文命名,有明確的意義,并且定義最好按照字
110、母順序或在業(yè)務(wù)邏輯中出現(xiàn)的順序。</p><p><b> 程序中有適當(dāng)?shù)淖⑨?lt;/b></p><p> 關(guān)鍵的算法實(shí)現(xiàn)部分,應(yīng)有注釋以標(biāo)明該算法實(shí)現(xiàn)的功能。但不要每一句都注釋,這樣會占據(jù)太多代碼篇幅,影響代碼的可讀性。</p><p> 3.函數(shù)應(yīng)有功能性注釋,用以說明函數(shù)的功能</p><p> 函數(shù)之前,應(yīng)
111、用注釋標(biāo)明該函數(shù)實(shí)現(xiàn)的功能、輸入?yún)?shù)的類型和作用與輸出參數(shù)的類型和作用。</p><p> 4.每行語句不宜過長,更不要把兩行語句寫到一行里</p><p> 每行語句應(yīng)控制在一屏可以放置的范圍內(nèi),不要使用自動折行的功能,某些高級語言可以使用折行符。</p><p> 5.避免大量使用嵌套循環(huán)</p><p> 嵌套循環(huán)不容易讀懂,單
112、步調(diào)試也較為費(fèi)時,如非極其必要,應(yīng)避免使用嵌套循環(huán)。</p><p><b> 6.代碼應(yīng)保證縮進(jìn)</b></p><p> 全篇齊頭的代碼更像是E-mail而不是程序源碼。一個好的程序源碼,應(yīng)在函數(shù)定義、循環(huán)、條件選擇、類的定義等程序執(zhí)行流程發(fā)生變化的地方進(jìn)行縮進(jìn)。這樣別人可以更清楚地讀懂程序的功能。</p><p><b>
113、 7 結(jié)束語</b></p><p> 本文通過對倉庫管理信息系統(tǒng)開發(fā)流程中的可行性分析、需求分析、原型設(shè)計、模塊分解、架構(gòu)設(shè)計和數(shù)據(jù)庫設(shè)計等幾個步驟的闡述,著重分析了單一功能分層架構(gòu)在管理信息系統(tǒng)開發(fā)上的意義。我們始終認(rèn)為:More choice means unhappier, simple is better. 最簡單最適合項目需求的就是最好的,我們不應(yīng)被架構(gòu)所束縛,而應(yīng)根據(jù)需求,設(shè)計最簡單最
114、適合需求的架構(gòu)。簡單意味著可以更快交付,適合意味著可以更少修改。從而,在完善系統(tǒng)開發(fā)的同時,不斷推進(jìn)管理信息系統(tǒng)領(lǐng)域的創(chuàng)新和進(jìn)步。</p><p><b> 參考文獻(xiàn)</b></p><p> [1]:C Sharp (programming language). http://en.wikipedia.org/wiki/C_Sharp_%28programm
115、ing_language%29</p><p> [2]:C#_百度百科.http://baike.baidu.com/view/6590.htm</p><p> [3]:Microsoft Visual Studio 2010_百度百科. http://baike.baidu.com/view/2950556.htm?fromId=2200635</p>&l
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中小企業(yè)倉庫管理系統(tǒng)——總體設(shè)計與編碼
- 中小企業(yè)倉庫管理系統(tǒng)——總體設(shè)計與編碼畢業(yè)論文終稿.doc
- 中小企業(yè)倉庫管理系統(tǒng)—用戶體驗(yàn)設(shè)計與編碼【畢業(yè)論文】
- 中小企業(yè)倉庫管理系統(tǒng)的設(shè)計與實(shí)現(xiàn)【畢業(yè)論文】
- 中小企業(yè)倉庫管理系統(tǒng)—用戶體驗(yàn)設(shè)計與編碼
- 中小企業(yè)倉庫管理系統(tǒng)—用戶體驗(yàn)設(shè)計與編碼論文正文.doc
- 中小企業(yè)倉庫管理系統(tǒng)——數(shù)據(jù)庫設(shè)計與編碼
- 中小企業(yè)erp管理系統(tǒng)設(shè)計與實(shí)現(xiàn)【畢業(yè)論文】
- 中小企業(yè)倉庫賬務(wù)管理系統(tǒng)設(shè)計論文.doc
- 中小企業(yè)倉庫管理系統(tǒng)——數(shù)據(jù)庫設(shè)計與編碼正文.doc
- 中小企業(yè)人事管理系統(tǒng)設(shè)計與實(shí)現(xiàn) 【畢業(yè)論文】
- 中小企業(yè)erp管理系統(tǒng)的設(shè)計與開發(fā)【畢業(yè)論文】
- 中小企業(yè)erp系統(tǒng)設(shè)計與開發(fā) 畢業(yè)論文
- 畢業(yè)論文---中小企業(yè)存貨管理與探討
- 中小企業(yè)倉庫管理系統(tǒng)的設(shè)計與實(shí)現(xiàn).pdf
- 中小企業(yè)績效管理流程設(shè)計[畢業(yè)論文]
- 畢業(yè)論文--中小企業(yè)成本管理研究
- 中小企業(yè)績效管理畢業(yè)論文
- 中小企業(yè)貿(mào)易畢業(yè)論文
- 中小企業(yè)融資畢業(yè)論文
評論
0/150
提交評論