![中小企業(yè)倉庫管理系統(tǒng)——總體設(shè)計與編碼_第1頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/26/df1619d2-df25-4837-ad33-9b6831e5c718/df1619d2-df25-4837-ad33-9b6831e5c7181.gif)
![中小企業(yè)倉庫管理系統(tǒng)——總體設(shè)計與編碼_第2頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/26/df1619d2-df25-4837-ad33-9b6831e5c718/df1619d2-df25-4837-ad33-9b6831e5c7182.gif)
![中小企業(yè)倉庫管理系統(tǒng)——總體設(shè)計與編碼_第3頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/26/df1619d2-df25-4837-ad33-9b6831e5c718/df1619d2-df25-4837-ad33-9b6831e5c7183.gif)
![中小企業(yè)倉庫管理系統(tǒng)——總體設(shè)計與編碼_第4頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/26/df1619d2-df25-4837-ad33-9b6831e5c718/df1619d2-df25-4837-ad33-9b6831e5c7184.gif)
![中小企業(yè)倉庫管理系統(tǒng)——總體設(shè)計與編碼_第5頁](http://file3.renrendoc.com/fileroot_temp3/2022-5/26/df1619d2-df25-4837-ad33-9b6831e5c718/df1619d2-df25-4837-ad33-9b6831e5c7185.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 本科畢業(yè)論文(設(shè)計) 題 目: 中小企業(yè)倉庫管理系統(tǒng)總體設(shè)計與編碼 學(xué) 院: 專業(yè)班級: 學(xué) 號: 學(xué)生姓名: 指導(dǎo)教師姓名: 指導(dǎo)教師職稱: 年 月 日摘要 通過信息化手段進(jìn)行倉庫管理是企業(yè)信息化的一個重要組成部分。如何實現(xiàn)一個好的管理信息系統(tǒng)是目前重點研究的對象。在中小企業(yè)管理過程中,庫存管理一直通過紙筆表格完成,倉庫管理系統(tǒng)具有很大的應(yīng)用前景。而傳統(tǒng)的系統(tǒng)架構(gòu)往往在實際應(yīng)用中不能恰好滿足企業(yè)需求,與此同時,敏捷開發(fā)日益受到業(yè)界的重視。本文將在對中小企業(yè)倉庫管理系統(tǒng)進(jìn)行需求分析的基礎(chǔ)上,重點闡述系統(tǒng)模塊分解、原型設(shè)計和多層架構(gòu)設(shè)計這三個在總體設(shè)計時需要集中考慮的方面。并積極實踐,設(shè)計并實
2、現(xiàn)了更利于快速開發(fā)的單一功能分層架構(gòu)。關(guān)鍵字:中小企業(yè)倉庫管理系統(tǒng) ,單一功能分層架構(gòu)AbstractWarehouse management by using information techonologies has been an important part of 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
3、Medium-sized Enterprise management, Warehouse management 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 architectures don't fit the requirement of products
4、in the practical application. At the same time, agile development has been under the attention of the industry increasingly.On 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 sy
5、stem module decomposition, prototype design and 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.Keywords:Warehouse Management Information System for Small
6、 and Medium-sized Enterprise, the multi-layer architecture with single function目錄1引言11.1中小企業(yè)倉庫管理系統(tǒng)的研究意義11.2 C#11.3 Visual Studio 2010和SQL Server 200522 系統(tǒng)分析32.1 可行性分析32.2 需求分析33 模塊分解與原型設(shè)計83.1 模塊化與快速原型83.2 建賬管理及其原型設(shè)計103.3 保管明細(xì)賬管理及其原型設(shè)計113.4 添加入庫信息及其原型設(shè)計113.5 管理入庫信息及其原型設(shè)計133.6 全部材料入庫明細(xì)表及其原型設(shè)計143.7 材料入
7、庫分類匯總表及其原型設(shè)計153.8 供貨單位供貨明細(xì)表及其原型設(shè)計163.9 添加出庫信息及其原型設(shè)計173.10 管理出庫信息及其原型設(shè)計193.11 全部材料出庫明細(xì)表及其原型設(shè)計203.12 材料出庫分類匯總表及其原型設(shè)計213.13 產(chǎn)品材料耗用匯總表及其原型設(shè)計224 架構(gòu)設(shè)計244.1 單一功能分層架構(gòu)的特點244.2 單一功能分層架構(gòu)的優(yōu)缺點254.3 單一功能分層架構(gòu)在本項目中的應(yīng)用265 數(shù)據(jù)庫設(shè)計285.1實體-聯(lián)系圖285.2關(guān)系數(shù)據(jù)模型286 編碼風(fēng)格297 結(jié)束語31參考文獻(xiàn)3241引言1.1中小企業(yè)倉庫管理系統(tǒng)的研究意義一直以來,在中小企業(yè)的倉庫管理中,出入庫登記一
8、直靠紙筆填表格的方式完成。缺點很多:首先,人力成本較高,需要雇用更多的人力進(jìn)行倉庫管理;其次,手工錄入容易出現(xiàn)差錯,而且紙質(zhì)賬簿保存時被損壞的風(fēng)險較高;更值得一提的缺點是,如果想得到一份詳細(xì)的庫存匯總信息,需要統(tǒng)計大量數(shù)據(jù),花費大量時間。長期以來,這樣的問題阻礙了很多中小生產(chǎn)企業(yè)的發(fā)展,在計算機信息化高速發(fā)展的今天,數(shù)據(jù)的存儲、運算和匯總都可以通過程序自動完成,早已不是那個看著賬本敲算盤的舊世紀(jì),也已不是指著表格按計算器的年代?,F(xiàn)在的管理信息系統(tǒng)正在中小企業(yè)管理中發(fā)揮著越來越重要的作用,就倉庫管理系統(tǒng)而言,中小企業(yè)只需要出入庫管理員錄入出入庫信息,中小企業(yè)管理者就可以坐在辦公室里,通過電腦屏幕
9、,查看關(guān)于庫存的各種信息,規(guī)劃企業(yè)發(fā)展。這極大地降低了中小企業(yè)管理的成本,減少了繁瑣的流程,加快了工作效率,而且在一定程度上降低了員工的工作量。由于所有的數(shù)據(jù)均在系統(tǒng)內(nèi)流動,只要數(shù)據(jù)由出入庫管理員錄入系統(tǒng),每一步流動都可以記錄,這也極大地減少了倉庫管理的漏洞。而計算機強大的統(tǒng)計功能,可以在幾秒內(nèi)匯總一年、甚至幾年的出入庫數(shù)據(jù),并可以將結(jié)果用圖表的形式展示出來,通過一些統(tǒng)計模型,還可以預(yù)測未來的發(fā)展趨勢,為中小企業(yè)管理者的決策帶來了極大的便利。當(dāng)前,云計算的迅速發(fā)展,使得數(shù)據(jù)存儲可以放在云端,數(shù)據(jù)運算也可以分布到無數(shù)終端上。作為中小企業(yè)管理者,完全不必?fù)?dān)心數(shù)據(jù)的丟失,只需要借助先進(jìn)的技術(shù),進(jìn)行企
10、業(yè)的管理,制定戰(zhàn)略決策。本文將在對中小企業(yè)倉庫管理系統(tǒng)進(jìn)行需求分析的基礎(chǔ)上,重點闡述系統(tǒng)模塊分解、原型設(shè)計和多層架構(gòu)設(shè)計這三個在總體設(shè)計時需要集中考慮的方面。1.2 C#C# 是一種多范式編程語言(multi-paradigm programming language)。包含強類型(strong typing)、命令式(imperative)、聲明式(declarative)、函數(shù)式(functional)、過程式(procedural)、泛型(generic)、面向?qū)ο?object-oriented)和面向組件(component-oriented)等編程范式。它是由微軟公司基于.NET平
11、臺開發(fā)并于2000年6月發(fā)布的面向通用語言架構(gòu)(CLI)的新的編程語言。1C#是由C和C+衍生出來的面向?qū)ο蟮木幊陶Z言。它在繼承C和C+強大功能的同時去掉了一些復(fù)雜特性。C#綜合了VB簡單的可視化操作和C+的高運行效率,以其強大的操作能力、優(yōu)雅的語法風(fēng)格、創(chuàng)新的語言特性和便捷的面向組件編程的支持而成為.NET開發(fā)的首選語言。2由于C+發(fā)展了C,Java舍掉C+中較為復(fù)雜的特性,并且在C+的基礎(chǔ)上增加了更多適合工程開發(fā)的機制,而C#又在很大程度上借鑒了Java。所以,不管對于目前可以使用C、C+、Java三者中的哪一門語言的程序員,上手C#的難度都相對較低。因此,在限定工期較短并且團(tuán)隊成員只具備
12、初級開發(fā)能力的情況下,C#理應(yīng)作為開發(fā)管理信息系統(tǒng)優(yōu)先選擇的編程語言。1.3 Visual Studio 2010和SQL Server 2005Visual Studio是微軟公司推出的開發(fā)環(huán)境。是目前最流行的Windows平臺應(yīng)用程序開發(fā)環(huán)境。Visual Studio 2010版本于2010年4月12日上市,其集成開發(fā)環(huán)境(IDE)的界面被重新設(shè)計和組織,變得更加簡單明了。Visual Studio 2010同時帶來了 .NET Framework 4.0、Microsoft Visual Studio 2010 CTP( Community Technology Preview-CTP
13、),并且支持開發(fā)面向Windows 7的應(yīng)用程序。除了Microsoft SQL Server,它還支持 IBM DB2和Oracle數(shù)據(jù)庫。3Microsoft 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為了獲得較新的開發(fā)體驗,我們選擇了Visual Studio 2010,而考慮到數(shù)據(jù)庫平臺僅僅用來存儲數(shù)據(jù),并且高版本的數(shù)據(jù)庫平臺較難被低版本的數(shù)據(jù)庫平臺兼
14、容,并且團(tuán)隊開發(fā)環(huán)境使用的操作系統(tǒng)中,Windows XP和Windows7均有涉及,所以我們選擇了對目前來說,版本相對較低并可以在Windows7上正常運行的Microsoft SQL Server 2005。2 系統(tǒng)分析2.1 可行性分析可行性分析的任務(wù)是確定系統(tǒng)在技術(shù)上能不能實現(xiàn)、做出來的東西用戶能不能用以及是否需要太多的資金來實現(xiàn)這個系統(tǒng)。1. 技術(shù)可行性: 客戶機可以運行Windows XP及以上版本的操作系統(tǒng),有足夠大的硬盤空間存儲數(shù)據(jù)。2. 操作可行性: 可以為出入庫管理員進(jìn)行使用培訓(xùn),界面十分簡潔,提示信息豐富,易用性可以滿足使用的要求。3. 經(jīng)濟(jì)可行性: 只需要為出入庫管理員
15、配置一臺電腦,并運行Windows XP及以上版本的操作系統(tǒng)即可。從技術(shù)可行性、操作可行性和經(jīng)濟(jì)可行性三個角度進(jìn)行可行性分析,開發(fā)這個中小型的倉庫管理系統(tǒng)完全可行。2.2 需求分析需求分析的任務(wù)是確定系統(tǒng)必須完成的工作,通過對需求文檔的分析和建立原型,并不斷和用戶交流系統(tǒng)的設(shè)計方案,可以在一定程度上獲得相對準(zhǔn)確的用戶需求。如果不進(jìn)行需求分析,直接進(jìn)行總體設(shè)計,我們無法知道到底該設(shè)計什么,或者我們設(shè)計的東西到底該什么樣子。所以,需求分析在軟件定義中占有很重要的地位。本系統(tǒng)作為一款中小企業(yè)倉庫管理系統(tǒng),主要完成材料出入庫管理、賬目管理、供貨單位管理、產(chǎn)品耗材管理和一些數(shù)據(jù)匯總報表功能。主要完成以下
16、幾個功能: 圖2-1 入庫單樣表A) 添加入庫信息1. 需要添加的信息包括:入庫單編號、入庫日期、供貨單位、供貨單號、制單人、入庫材料類別、入庫材料名稱、入庫材料規(guī)格、入庫數(shù)目、入庫金額。2. 可以修改和刪除入庫信息。B) 管理入庫信息1. 可以根據(jù)入庫單編號、入庫日期、供貨單位、供貨單號中的任意條件組合查詢?nèi)霂靻涡畔ⅰ?. 可以更改和刪除入庫單信息。圖2-2 出庫單樣表C) 添加出庫信息1. 需要添加的信息包括:出庫單編號、出庫日期、領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名、經(jīng)領(lǐng)人、批準(zhǔn)人、制單人、出庫材料類別、出庫材料名稱、出庫材料規(guī)格、出庫數(shù)目、出庫金額。2. 可以更改和刪除出庫信息。D) 管理出庫
17、信息1. 可以根據(jù)出庫單編號、出庫日期、領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名中的任意條件組合查詢出庫單信息。2. 可以更改和刪除出庫單信息。圖2-3 保管明細(xì)賬樣表E) 建賬管理1. 從無到有地將庫存的初始數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫,數(shù)據(jù)包括材料類別、材料名稱、材料規(guī)格、材料數(shù)目、材料金額。F) 保管明細(xì)賬管理1. 匯總在某一時間段內(nèi),某種特定規(guī)格的材料的出入庫和結(jié)存情況,反饋的數(shù)據(jù)包括日期、入庫單編號、入庫數(shù)量、入庫單價、入庫金額、出庫單編號、出庫數(shù)量、出庫單價、出庫金額、結(jié)存數(shù)量、結(jié)存單價、結(jié)存金額。圖2-4 供貨單位供貨明細(xì)表樣表G) 供貨單位供貨匯總1. 匯總在某一時間段內(nèi),某一特定的供貨單位的供貨情況,
18、反饋的數(shù)據(jù)包括日期、材料類別、材料名稱、材料規(guī)格、數(shù)目、單價、金額。圖2-5 產(chǎn)品材料耗用匯總表樣表H) 產(chǎn)品耗材匯總1. 匯總在某一時間段內(nèi),某一特定產(chǎn)品消耗材料的情況,反饋的數(shù)據(jù)包括材料編號、材料類別、材料名稱、材料規(guī)格、數(shù)目、單價、金額。圖2-6 全部材料入庫明細(xì)表樣表圖2-7 材料入庫分類匯總表樣表I) 材料入庫匯總1. 全部材料入庫明細(xì)表,匯總在某一時間段內(nèi)的全部材料入庫情況,反饋的數(shù)據(jù)包括日期、材料類別、材料名稱、材料規(guī)格、供貨單位、數(shù)目、單價、金額。2. 材料入庫分類匯總表,匯總在某一時間段內(nèi),某一特定類別的材料的入庫情況,反饋的數(shù)據(jù)包括日期、材料名稱、材料規(guī)格、供貨單位、數(shù)目、
19、單價、金額。圖2-8 全部材料出庫明細(xì)表樣表圖2-9 材料出庫分類匯總表樣表J) 材料出庫匯總1. 全部材料出庫明細(xì)表,匯總在某一時間段內(nèi)的全部材料出庫情況,反饋的數(shù)據(jù)包括日期、生產(chǎn)計劃號、產(chǎn)品名、材料類別、材料名稱、材料規(guī)格、數(shù)目、單價、金額。2. 材料出庫分類匯總表,匯總在具體某一天的材料出庫與產(chǎn)品生產(chǎn)的對應(yīng)情況,反饋的數(shù)據(jù)包括材料類別、產(chǎn)品名、對應(yīng)的出庫金額。3 模塊分解與原型設(shè)計3.1 模塊化與快速原型模塊化是把系統(tǒng)劃分成獨立命名且獨立訪問的模塊,每個模塊完成一個特定的子功能,把這些模塊集成起來,構(gòu)成目標(biāo)系統(tǒng),完成指定的功能以滿足用戶的需求。模塊化使得系統(tǒng)可以為人所管理,便于控制系統(tǒng)行
20、為。如果一個系統(tǒng)僅由一個模塊組成,那么它將很難被人理解。所以我們要把復(fù)雜的問題分解成許多容易解決的小問題,各個擊破,這樣原來的問題也就容易解決了。然而,事實證明,過多的模塊,劃分過細(xì),會極大增加系統(tǒng)的模塊數(shù)目,導(dǎo)致過大的模塊間通信開銷,設(shè)計模塊間接口所需要的工作量也將大量增加。所以,我們應(yīng)在模塊劃分與系統(tǒng)功能之間建立聯(lián)系,使得模塊與功能一一對應(yīng),或者在可控范圍內(nèi)多個模塊與一個功能對應(yīng)。采用模塊化開發(fā)方法,可以使系統(tǒng)結(jié)構(gòu)清晰,不僅容易設(shè)計,而且容易閱讀和理解。并且程序錯誤會被限定在涉及的模塊之中,易于測試和調(diào)試,從而提高軟件的可靠性。而添加功能只需修改其中的部分模塊,增大了程序的可擴展性。只修改
21、最底層代碼,就可以讓我們的系統(tǒng)運行在不同的數(shù)據(jù)庫系統(tǒng)上,如果修改最上層代碼,甚至可以讓我們的系統(tǒng)運行在不同的操作系統(tǒng)上,提高了程序的可移植性。因此,我們按照系統(tǒng)需求分析中涉及的功能,將系統(tǒng)劃分成如下幾個模塊:倉庫管理系統(tǒng)入庫管理與匯總建賬管理保管明細(xì)賬管理出庫管理與匯總管理入庫信息添加入庫信息全部材料入庫明細(xì)表材料入庫分類匯總表供貨單位供貨明細(xì)表產(chǎn)品材料耗用匯總表材料出庫分類匯總表全部材料出庫明細(xì)表管理出庫信息添加出庫信息圖3-1 倉庫管理系統(tǒng)模塊分解圖通過快速原型設(shè)計工具,可以迅速建立系統(tǒng)的原型,盡快向用戶提供一個直觀的目標(biāo)系統(tǒng)的模型,有利于用戶和開發(fā)者在目標(biāo)系統(tǒng)“什么樣子”和目標(biāo)系統(tǒng)“能做
22、什么”這兩個的問題上盡可能快地達(dá)成共識。因此,可以忽略原型中不損害系統(tǒng)功能和行為的小瑕疵。并且原型容易修改,開發(fā)人員可以根據(jù)用戶的意見迅速修改,構(gòu)建更符合用戶要求的版本,如果仍然存在問題,還可以再修改,不斷靠近用戶的實際需求。但要避免對無關(guān)系統(tǒng)功能和行為上的小瑕疵的不斷更改,以免延誤軟件的開發(fā)時間。在本文中,我們使用Pencil作為我們的原型圖繪制工具。Pencil是一款開源的原型圖繪制工具,效果和手繪基本一致,十分有利于引起用戶的視覺關(guān)注,增強用戶參與系統(tǒng)開發(fā)的積極性。圖3-2 主窗體原型設(shè)計3.2 建賬管理及其原型設(shè)計A) 添加建賬1. 從數(shù)據(jù)庫中讀取已有材料類別,根據(jù)材料類別,從數(shù)據(jù)庫中
23、讀取材料名稱,根據(jù)材料類別和材料名稱讀取材料規(guī)格。如果是新添加的材料類別、材料名稱和材料規(guī)格,可以通過“新建類別”按鈕、“新建名稱”按鈕和“新建規(guī)格”按鈕,添加新的材料類別、新的材料名稱和新的材料規(guī)格;2. 填寫材料數(shù)目和材料金額;3. 點擊“添加”按鈕,讀取界面上填寫的數(shù)據(jù),顯示提示信息;4. 傳入數(shù)據(jù)到數(shù)據(jù)鏈接層;5. 從數(shù)據(jù)庫中讀取添加后的建賬數(shù)據(jù),計算單價,返回到界面;6. 顯示添加的結(jié)果。B) 更改建賬1. 修改表格中的數(shù)目或者金額,點擊“更改”按鈕,顯示提示信息;2. 將新的數(shù)據(jù)傳入數(shù)據(jù)鏈接層;3. 更改數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);4. 從數(shù)據(jù)庫中讀取更改后的建賬數(shù)據(jù),計算單價,返回到界面
24、;5. 顯示更改的結(jié)果。C) 刪除建賬1. 選中表格中要刪除的數(shù)據(jù)行,點擊“刪除”按鈕,顯示提示信息;2. 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;3. 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);4. 從數(shù)據(jù)庫中讀取刪除后的建賬數(shù)據(jù),計算單價,返回到界面;5. 顯示刪除的結(jié)果。圖3-3 建賬管理窗體原型設(shè)計3.3 保管明細(xì)賬管理及其原型設(shè)計A) 查看保管明細(xì)賬1. 從數(shù)據(jù)庫中讀取已有材料類別、材料名稱和材料規(guī)格;2. 選擇查詢的開始日期和結(jié)束日期;3. 點擊“查詢”按鈕;4. 傳入查詢條件到數(shù)據(jù)鏈接層;5. 根據(jù)查詢條件查詢數(shù)據(jù)庫,計算入庫單價、出庫單價和結(jié)存信息,返回到界面;6. 顯示查詢的結(jié)果。B) 導(dǎo)出到Ex
25、cel1. 點擊“導(dǎo)出到Excel”按鈕;2. 選擇要導(dǎo)出的位置和文件名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3-4 保管明細(xì)賬窗體原型設(shè)計3.4 添加入庫信息及其原型設(shè)計A) 添加入庫基本信息1. 產(chǎn)生入庫單編號,獲得入庫日期;2. 加載已有供貨單位。如果是新添加的供貨單位,可點擊“供貨單位”按鈕,添加新的供貨單位;3. 添加供貨單號和制單人;4. 點擊“下一步”按鈕,傳入數(shù)據(jù)到添加入庫詳細(xì)信息窗體。B) 添加入庫詳細(xì)信息1. 獲取從添加入庫基本信息中讀取的基本信息;2. 從數(shù)據(jù)庫中讀取已有材料類別,根據(jù)材料類別,從數(shù)據(jù)庫中讀
26、取材料名稱,根據(jù)材料類別和材料名稱讀取材料規(guī)格。如果是新添加的材料類別、材料名稱和材料規(guī)格,可以通過“新建類別”按鈕、“新建名稱”按鈕和“新建規(guī)格”按鈕,添加新的材料類別、新的材料名稱和新的材料規(guī)格;3. 添加材料數(shù)目和材料金額;4. 點擊“添加”按鈕,讀取界面上填寫的數(shù)據(jù),顯示提示信息;5. 傳入數(shù)據(jù)到數(shù)據(jù)鏈接層;6. 從數(shù)據(jù)庫中讀取添加后的建賬數(shù)據(jù),計算單價,返回到界面;7. 顯示添加的結(jié)果。C) 修改基本信息1. 點擊“修改基本信息”按鈕;2. 供貨單位、供貨單號和制單人變?yōu)榭删庉嫚顟B(tài);3. 修改要修改的基本信息,點擊“確定”按鈕。D) 更改入庫信息1. 修改表格中的數(shù)目或者金額,點擊“
27、更改”按鈕,顯示提示信息;2. 將新的數(shù)據(jù)傳入數(shù)據(jù)鏈接層;3. 更改數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);4. 從數(shù)據(jù)庫中讀取更改后的入庫數(shù)據(jù),計算單價,返回到界面;5. 顯示更改的結(jié)果。E) 刪除入庫信息1. 選中表格中要刪除的數(shù)據(jù)行,點擊“刪除”按鈕,顯示提示信息;2. 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;3. 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);4. 從數(shù)據(jù)庫中讀取刪除后的入庫數(shù)據(jù),計算單價,返回到界面;5. 顯示刪除的結(jié)果。F) 生成入庫單1. 點擊“生成入庫單”按鈕;2. 選擇要導(dǎo)出的入庫單文件的位置和文件名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3
28、-5 添加入庫基本信息窗體原型設(shè)計圖3-6 添加入庫詳細(xì)信息窗體原型設(shè)計3.5 管理入庫信息及其原型設(shè)計A) 查詢?nèi)霂靻涡畔?. 填寫查詢條件,按照下列查詢規(guī)則返回查詢結(jié)果。查詢規(guī)則:(1) 如果填寫了入庫單編號,則優(yōu)先根據(jù)入庫單編號查詢,日期、供貨單位、供貨單號無效;(2) 如果只填寫供貨單位或只填寫供貨單號,則按照供貨單位或供貨單號,且入庫日期在前后三天范圍內(nèi)進(jìn)行查詢;(3) 如果只填寫供貨單號和供貨單位,則按照供貨單號、供貨單位和日期進(jìn)行查詢;(4) 如果什么也不填入,則顯示前后三天的入庫記錄。2. 傳入查詢條件到數(shù)據(jù)鏈接層;3. 返回查詢的入庫單結(jié)果,返回到界面。B) 更改入庫單信息1
29、. 選中要更改的入庫單數(shù)據(jù)行,點擊“更改”按鈕;2. 跳轉(zhuǎn)到添加入庫詳細(xì)信息窗體,余下操作和添加入庫詳細(xì)信息一致,提交完數(shù)據(jù)后關(guān)閉添加入庫詳細(xì)信息窗體;3. 點擊“刷新”按鈕;4. 將原查詢條件傳到數(shù)據(jù)鏈接層;5. 查詢?nèi)霂靻胃暮蟮慕Y(jié)果,返回到界面。C) 刪除入庫單信息1. 選中表格中要刪除的數(shù)據(jù)行,點擊“刪除”按鈕,顯示提示信息;2. 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;3. 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);4. 將原查詢條件傳到數(shù)據(jù)鏈接層;5. 查詢?nèi)霂靻蝿h除后的結(jié)果,返回到界面。圖3-7 管理入庫信息窗體原型設(shè)計3.6 全部材料入庫明細(xì)表及其原型設(shè)計A) 查看全部材料入庫明細(xì)表1. 選擇查詢的
30、開始日期和結(jié)束日期;2. 點擊“查詢”按鈕;3. 傳入日期條件到數(shù)據(jù)鏈接層;4. 根據(jù)日期條件查詢數(shù)據(jù)庫,計算單價,返回到界面;5. 顯示查詢的結(jié)果。B) 導(dǎo)出到Excel1. 點擊“導(dǎo)出到Excel”按鈕;2. 選擇要導(dǎo)出的位置和文件名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3-8 全部材料入庫明細(xì)表窗體原型設(shè)計3.7 材料入庫分類匯總表及其原型設(shè)計A) 查看材料入庫分類匯總表1. 選擇材料類別;2. 選擇查詢的開始日期和結(jié)束日期;3. 點擊“查詢”按鈕;4. 傳入查詢條件到數(shù)據(jù)鏈接層;5. 根據(jù)查詢條件查詢數(shù)據(jù)庫,計算單價,返
31、回到界面;6. 顯示查詢的結(jié)果。B) 導(dǎo)出到Excel1. 點擊“導(dǎo)出到Excel”按鈕;2. 選擇要導(dǎo)出的位置和文件名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3-9 材料入庫分類匯總表窗體原型設(shè)計3.8 供貨單位供貨明細(xì)表及其原型設(shè)計A) 查看供貨單位供貨明細(xì)表1. 選擇供貨單位;2. 選擇查詢的開始日期和結(jié)束日期;3. 點擊“查詢”按鈕;4. 傳入查詢條件到數(shù)據(jù)鏈接層;5. 根據(jù)查詢條件查詢數(shù)據(jù)庫,計算單價,返回到界面;6. 顯示查詢的結(jié)果。B) 導(dǎo)出到Excel1. 點擊“導(dǎo)出到Excel”按鈕;2. 選擇要導(dǎo)出的位置和文件
32、名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3-10 供貨單位供貨明細(xì)表窗體原型設(shè)計3.9 添加出庫信息及其原型設(shè)計A) 添加出庫基本信息1. 產(chǎn)生出庫單編號,獲得出庫日期;2. 添加領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名、經(jīng)領(lǐng)人、批準(zhǔn)人和制單人;3. 點擊“下一步”按鈕,傳入數(shù)據(jù)到添加出庫詳細(xì)信息窗體。B) 添加出庫詳細(xì)信息1. 獲取從添加出庫基本信息中讀取的基本信息;2. 從數(shù)據(jù)庫中讀取已有材料類別,根據(jù)材料類別,從數(shù)據(jù)庫中讀取材料名稱,根據(jù)材料類別和材料名稱讀取材料規(guī)格。3. 添加材料數(shù)目和材料金額;4. 點擊“添加”按鈕,讀取界面上填
33、寫的數(shù)據(jù),顯示提示信息;5. 傳入數(shù)據(jù)到數(shù)據(jù)鏈接層;6. 從數(shù)據(jù)庫中讀取添加后的出庫數(shù)據(jù),計算單價,返回到界面;7. 顯示添加的結(jié)果。C) 修改基本信息1. 點擊“修改基本信息”按鈕;2. 領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名、經(jīng)領(lǐng)人、批準(zhǔn)人和制單人變?yōu)榭删庉嫚顟B(tài);3. 修改要修改的基本信息,點擊“確定”按鈕。D) 更改出庫信息1. 修改表格中的數(shù)目或者金額,點擊“更改”按鈕,顯示提示信息;2. 將新的數(shù)據(jù)傳入數(shù)據(jù)鏈接層;3. 更改數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);4. 從數(shù)據(jù)庫中讀取更改后的出庫數(shù)據(jù),計算單價,返回到界面;5. 顯示更改的結(jié)果。E) 刪除出庫信息1. 選中表格中要刪除的數(shù)據(jù)行,點擊“刪除”按鈕,顯
34、示提示信息;2. 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;3. 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);4. 從數(shù)據(jù)庫中讀取刪除后的出庫數(shù)據(jù),計算單價,返回到界面;5. 顯示刪除的結(jié)果。F) 生成出庫單1. 點擊“生成出庫單”按鈕;2. 選擇要導(dǎo)出的出庫單文件的位置和文件名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3-11 添加出庫基本信息窗體原型設(shè)計圖3-12 添加出庫詳細(xì)信息窗體原型設(shè)計3.10 管理出庫信息及其原型設(shè)計A) 查詢出庫單信息1. 填寫查詢條件,按照下列查詢規(guī)則返回查詢結(jié)果。查詢規(guī)則:(1) 如果填寫了出庫單編號,則優(yōu)先根據(jù)出庫單編號
35、查詢,日期、領(lǐng)用班組、生產(chǎn)計劃號、產(chǎn)品名均無效。(2) 如果只填寫生產(chǎn)計劃號,則按照生產(chǎn)計劃號且日期在出庫日期前后三天范圍內(nèi)進(jìn)行查詢。(3) 如果只填寫領(lǐng)用班組,則按照領(lǐng)用班組且在出庫日期的前后三天范圍內(nèi)進(jìn)行查詢。(4) 如果只填寫產(chǎn)品名,則按照產(chǎn)品名且在出庫日期的前后三天范圍內(nèi)進(jìn)行查詢。(5) 如果只填寫生產(chǎn)計劃號、產(chǎn)品名和領(lǐng)用班組,則按照生產(chǎn)計劃號、產(chǎn)品名和領(lǐng)用班組,且在出庫日期前后三天范圍內(nèi)進(jìn)行查詢;如果只填寫任意兩項,則按照所填寫的項和日期在出庫日期前后三天范圍內(nèi)進(jìn)行查詢。2. 傳入查詢條件到數(shù)據(jù)鏈接層;3. 返回查詢的出庫單結(jié)果,返回到界面。B) 更改出庫單信息1. 選中要更改的出庫
36、單數(shù)據(jù)行,點擊“更改”按鈕;2. 跳轉(zhuǎn)到添加出庫詳細(xì)信息窗體,余下操作和添加出庫詳細(xì)信息一致,提交完數(shù)據(jù)后關(guān)閉添加出庫詳細(xì)信息窗體;3. 點擊“刷新”按鈕;4. 將原查詢條件傳到數(shù)據(jù)鏈接層;5. 查詢出庫單更改后的結(jié)果,返回到界面。C) 刪除出庫單信息1. 選中表格中要刪除的數(shù)據(jù)行,點擊“刪除”按鈕,顯示提示信息;2. 將要刪除的數(shù)據(jù)行編號傳入數(shù)據(jù)鏈接層;3. 刪除數(shù)據(jù)庫中對應(yīng)的數(shù)據(jù);4. 將原查詢條件傳到數(shù)據(jù)鏈接層;5. 查詢出庫單刪除后的結(jié)果,返回到界面。圖3-13 管理出庫信息窗體原型設(shè)計3.11 全部材料出庫明細(xì)表及其原型設(shè)計A) 查看全部材料出庫明細(xì)表1. 選擇查詢的開始日期和結(jié)束日
37、期;2. 點擊“查詢”按鈕;3. 傳入日期條件到數(shù)據(jù)鏈接層;4. 根據(jù)日期條件查詢數(shù)據(jù)庫,計算單價,返回到界面;5. 顯示查詢的結(jié)果。B) 導(dǎo)出到Excel1. 點擊“導(dǎo)出到Excel”按鈕;2. 選擇要導(dǎo)出的位置和文件名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3-14 全部材料出庫明細(xì)表窗體原型設(shè)計3.12 材料出庫分類匯總表及其原型設(shè)計A) 查看材料出庫分類匯總表1. 選擇查詢?nèi)掌冢?. 點擊“查詢”按鈕;3. 傳入日期條件到數(shù)據(jù)鏈接層;4. 根據(jù)日期條件查詢數(shù)據(jù)庫,返回界面;5. 查詢所有相關(guān)的材料類別,返回界面;6. 查詢
38、所有相關(guān)的產(chǎn)品,返回界面;7. 根據(jù)上述返回的信息,拼接查詢結(jié)果;8. 顯示查詢結(jié)果。B) 導(dǎo)出到Excel1. 點擊“導(dǎo)出到Excel”按鈕;2. 選擇要導(dǎo)出的位置和文件名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3-15 材料出庫分類匯總表窗體原型設(shè)計3.13 產(chǎn)品材料耗用匯總表及其原型設(shè)計A) 查看產(chǎn)品材料耗用匯總表1. 選擇產(chǎn)品名;2. 選擇查詢的開始日期和結(jié)束日期;3. 點擊“查詢”按鈕;4. 傳入查詢條件到數(shù)據(jù)鏈接層;5. 根據(jù)查詢條件查詢數(shù)據(jù)庫,計算單價,返回到界面;6. 顯示查詢的結(jié)果。B) 導(dǎo)出到Excel1. 點
39、擊“導(dǎo)出到Excel”按鈕;2. 選擇要導(dǎo)出的位置和文件名;3. 按單元格讀取表格的數(shù)據(jù),拼接xml字符串,填入數(shù)據(jù),得到預(yù)先確定好規(guī)格并填寫好數(shù)據(jù)的電子表格。圖3-16 產(chǎn)品材料耗用匯總表窗體原型設(shè)計4 架構(gòu)設(shè)計架構(gòu)設(shè)計往往決定了系統(tǒng)開發(fā)中后期的進(jìn)度。一個不好的架構(gòu),往往會讓項目在后期演變成“邊做邊設(shè)計”,出現(xiàn)很多無謂的修改和時間的浪費。從理論上講,軟件開發(fā)應(yīng)該是分析、設(shè)計、編碼、測試、維護(hù)這五個大體的步驟。但是我們發(fā)現(xiàn),到了測試階段,發(fā)現(xiàn)錯誤,需要修改的時候,經(jīng)常會修改設(shè)計。這樣直接造成了較大的修改工作量,甚至可能使問題越改越多。很多人認(rèn)為,用戶需要什么功能,我們就實現(xiàn)什么功能,沒必要花時
40、間去設(shè)計軟件架構(gòu)。但當(dāng)這些人發(fā)現(xiàn),到了項目后期,重構(gòu)代碼幾乎等于重寫代碼的時候,為時已晚。還有些人認(rèn)為,既有的成熟架構(gòu)已經(jīng)很多,我們沒必要自己設(shè)計,浪費時間,并且容易出問題。但這些人會發(fā)現(xiàn),既有的架構(gòu)很多時候不是太大,就是太小,團(tuán)隊學(xué)習(xí)既有架構(gòu)的過程也會浪費系統(tǒng)開發(fā)的時間。良好的架構(gòu)設(shè)計,不僅可以讓我們的系統(tǒng)滿足用戶的需求,而且可以在用戶需求改變的時候,我們可以用最小的代價滿足用戶需求的改變。除此之外,良好的設(shè)計架構(gòu)意味著良好的可移植性、良好的可維護(hù)性、較高的開發(fā)效率等等。所以我們應(yīng)該重視架構(gòu)設(shè)計在軟件開發(fā)中的作用。在本項目中,我們設(shè)計并使用了單一功能分層架構(gòu)。對于傳統(tǒng)三層架構(gòu)中不適合本項目的
41、地方進(jìn)行了取舍,并加入了我們自己的設(shè)計理念。4.1 單一功能分層架構(gòu)的特點所謂單一功能分層架構(gòu),就是把整個項目分解為界面層、業(yè)務(wù)邏輯層、若干中間數(shù)據(jù)處理層和數(shù)據(jù)鏈接層。(待修改)中間的邏輯層,每一層實現(xiàn)且僅實現(xiàn)一個功能。相比較傳統(tǒng)三層架構(gòu)對數(shù)據(jù)業(yè)務(wù)邏輯處理這一略顯寬泛含混的作用,我們的架構(gòu)可以更清晰,并且增強了系統(tǒng)的功能內(nèi)聚,使得每個模塊的功能單一,降低了模塊的規(guī)模,雖然增加了處理結(jié)構(gòu)的深度,但其規(guī)模在可控范圍之內(nèi)。在系統(tǒng)開發(fā)過程中,團(tuán)隊分工可以更加明確,由于功能單一,團(tuán)隊成員上手的成本低,每個人僅需要完成若干功能中的一個或幾個。下一小節(jié),我們將重點闡述,單一功能分層架構(gòu)的優(yōu)缺點。圖4-1 單
42、一功能分層架構(gòu)4.2 單一功能分層架構(gòu)的優(yōu)缺點單一功能分層架構(gòu)的主要優(yōu)點如下:1) 分工明確,職責(zé)劃分清晰明確的分工有利于團(tuán)隊成員各盡所能,有利于評價團(tuán)隊成員的貢獻(xiàn),避免利益上的沖突,避免爭功,有利于維護(hù)團(tuán)隊的穩(wěn)定。2) 工作內(nèi)容專一工作內(nèi)容的專一使得團(tuán)隊成員可以專注于自己的模塊,有利于加快項目開發(fā)速度,并可培養(yǎng)團(tuán)隊成員的一技之長,甚至多技之長,易產(chǎn)生工作積極性。3) 可移植性、可擴展性好每一層只做一件事情,需要添加處理,就添加新的處理層;需要添加功能,就增加寬度?;静恍枰淖兲喈?dāng)前項目的已有成果,便于擴展。而如果換數(shù)據(jù)庫,只需更換數(shù)據(jù)鏈接層;換操作系統(tǒng),只需更換界面層。有較強的可移植性,
43、可以應(yīng)對各種環(huán)境變化。(通過GTK#,在Windows上用C#開發(fā)的程序也可以移植到Linux操作系統(tǒng)上)4) 不存在過度設(shè)計,簡單可靠架構(gòu)簡單,不用花費太多時間在架構(gòu)學(xué)習(xí)和架構(gòu)維護(hù)上。模塊功能單一,易查錯,可測試性好,隨之而來的,可維護(hù)性好。5) 易上手,對團(tuán)隊成員的能力要求低同樣是因為架構(gòu)簡單,對團(tuán)隊成員上手的要求較低,一個小時就足可以適應(yīng)此架構(gòu)。團(tuán)隊成員也容易知道自己對整個項目的貢獻(xiàn)在什么地方。有利于形成開發(fā)熱情。6) 功能與文件對應(yīng),間接減少了關(guān)鍵路徑占用的時間我們假設(shè)就一個模塊的開發(fā)與傳統(tǒng)三層架構(gòu)進(jìn)行對比:用戶界面的開發(fā)時間是0.5小時數(shù)據(jù)鏈接層的開發(fā)是1小時傳統(tǒng)三層架構(gòu):Model
44、的開發(fā)是0.2小時業(yè)務(wù)邏輯層的開發(fā)是3小時(包括錯誤檢驗、數(shù)據(jù)壓縮和數(shù)據(jù)加密.)單一功能分層架構(gòu):沒有Model業(yè)務(wù)邏輯層的開發(fā)是0.3小時(只是傳遞參數(shù))錯誤檢驗層的開發(fā)是0.3小時數(shù)據(jù)壓縮層的開發(fā)是0.3小時數(shù)據(jù)加密層的開發(fā)是0.3小時.0.3小時由于傳統(tǒng)三層架構(gòu)需要進(jìn)行數(shù)據(jù)庫的OR-Mapping和每個函數(shù)處理后對Model的封裝,這部分時間我們算在了業(yè)務(wù)邏輯層的開發(fā)里。通過上述例子,我們很容易發(fā)現(xiàn),傳統(tǒng)三層架構(gòu)在開發(fā)過程中,業(yè)務(wù)邏輯層由于要完成的處理步驟較多,需要耗費較長的時間,而對于使用Visual Studio的前臺開發(fā)人員來說,用戶界面的開發(fā)只需要很短的時間,而對于有熟練數(shù)據(jù)庫經(jīng)
45、驗的人來說,數(shù)據(jù)鏈接層的開發(fā)也十分簡單。只有業(yè)務(wù)邏輯層,由于不同的模塊的邏輯可能不同,需要耗費的時間必然會較其他兩層更長。并且,由于開發(fā)過程中,一般情況下,一個代碼文件不能被兩個人同時讀寫,致使前臺開發(fā)人員和數(shù)據(jù)鏈接層開發(fā)人員等待業(yè)務(wù)邏輯層開發(fā)人員的現(xiàn)象時有發(fā)生。而在我們的單一功能分層架構(gòu)中,沒有Model,不需要封裝,在項目規(guī)模較小的情況下,函數(shù)接口中的變量數(shù)目可以接受,不需要浪費時間在OR-Mapping上。同時,克服了傳統(tǒng)三層架構(gòu)開發(fā)過程中的閑置問題,前臺開發(fā)人員和數(shù)據(jù)鏈接層開發(fā)人員可以在自身工作完成的情況下,幫助完成處理層的各個模塊,團(tuán)隊成員互補,有利于縮短工期。7) 性能優(yōu)化空間大,
46、關(guān)鍵環(huán)節(jié)可根據(jù)對應(yīng)平臺換用動態(tài)鏈接庫。解釋型語言,如Python,程序的執(zhí)行速度相對編譯型語言要慢,那么我們可以把中間的處理層用C或C+編譯成動態(tài)鏈接庫,進(jìn)行性能優(yōu)化。劃分多個處理層,使得動態(tài)鏈接庫的功能和調(diào)用可以更清晰明了。8) Simple is better一個架構(gòu)的簡潔對于這個架構(gòu)的推廣十分重要,如果一個架構(gòu)的使用可以被寫成一本將近百頁的教材,我想這不是一個好的架構(gòu),至少不是一個敏捷開發(fā)的架構(gòu),也不是一個可以迅速被廣泛應(yīng)用的架構(gòu)。不應(yīng)為了面向?qū)ο蠖嫦驅(qū)ο螅粦?yīng)為了設(shè)計模式而設(shè)計模式。開發(fā)的速度可以帶來直接的經(jīng)濟(jì)效益,外加用戶的滿意度。用戶想要的是盡快拿出方案、盡快看到原型、盡快交付使
47、用。一個設(shè)計完善,可以沿用百年的架構(gòu)固然理論上是好,但是過長的設(shè)計時間,較高的學(xué)習(xí)成本,都會阻礙系統(tǒng)開發(fā)的進(jìn)程,降低用戶的滿意度。簡單的是最好的。但我們不得不承認(rèn),在某些時候,單一功能分層架構(gòu)存在一定的缺點:1) 由于沒有使用OR-Mapping,沒有持久化層,所以代碼的可重用性不高。2) 由于沒有封裝Model,函數(shù)接口的參數(shù)個數(shù)在某些情況下會比較多。3) 當(dāng)對數(shù)據(jù)的處理步驟過多時,會帶來過深的層次,對系統(tǒng)性能的影響會較大。4.3 單一功能分層架構(gòu)在本項目中的應(yīng)用通過需求分析,我們可以看到,這個倉庫管理系統(tǒng)的規(guī)模不是很大,要完成的功能的邏輯也較為清晰,而團(tuán)隊開發(fā)人員都相對缺少開發(fā)經(jīng)驗,都是在
48、摸索中開發(fā)。所以,我們設(shè)計了單一功能分層架構(gòu)。整個系統(tǒng)包括:用戶接口層、業(yè)務(wù)邏輯層、錯誤檢驗層和數(shù)據(jù)鏈接層。用戶接口層負(fù)責(zé)和用戶的交互,包括用戶的輸入、控件的觸發(fā)事件和數(shù)據(jù)的顯示;業(yè)務(wù)邏輯層負(fù)責(zé)傳送數(shù)據(jù),并清晰展示所有調(diào)用的函數(shù),方便對功能的控制;錯誤檢驗層負(fù)責(zé)檢查用戶輸入的合法性;數(shù)據(jù)鏈接層負(fù)責(zé)對數(shù)據(jù)庫進(jìn)行增刪改查。在實際開發(fā)過程中,一個人負(fù)責(zé)用戶接口層編碼,一個人負(fù)責(zé)數(shù)據(jù)鏈接層編碼,另一個人負(fù)責(zé)錯誤檢驗層編碼,之后先完成任務(wù)的人連接業(yè)務(wù)邏輯層。開發(fā)中通過局域網(wǎng)即時通信軟件,共享函數(shù)接口。并在一臺電腦上進(jìn)行代碼版本管理,每次開發(fā)均進(jìn)行源代碼備份和測試信息備份。在有序的開發(fā)過程中,充分體現(xiàn)了單
49、一功能分層架構(gòu)在迭代開發(fā)過程中的優(yōu)勢。并且較低的學(xué)習(xí)成本也帶來了較高的工作積極性。每次構(gòu)建均有新的模塊完成,并保證系統(tǒng)可用,不斷添加功能的成就感使得團(tuán)隊開發(fā)的積極性較高。5 數(shù)據(jù)庫設(shè)計信息管理系統(tǒng)實質(zhì)上,就如同是為數(shù)據(jù)庫的增刪改查設(shè)計用戶界面和業(yè)務(wù)邏輯。所以,數(shù)據(jù)庫在信息管理系統(tǒng)中地位的重要性不言而喻。一個好的數(shù)據(jù)庫設(shè)計可以帶來好的系統(tǒng)擴展性,對于系統(tǒng)性能也有很大的影響。缺乏必要的字段、非必要數(shù)據(jù)的冗余、數(shù)據(jù)完整性的喪失等等問題都會對信息管理系統(tǒng)的開發(fā)造成致命的影響。由于數(shù)據(jù)庫設(shè)計不是本文的重點,在這里我們只是列舉一下本項目的實體-聯(lián)系圖和關(guān)系數(shù)據(jù)模型。5.1實體-聯(lián)系圖以下為本項目的實體-聯(lián)
50、系圖:圖5-1 實體-聯(lián)系圖5.2關(guān)系數(shù)據(jù)模型以下為本項目的關(guān)系數(shù)據(jù)模型:材料(編號,類別,名稱,規(guī)格,累計數(shù)量,累計金額)建賬(編號,材料編號,金額,數(shù)量,日期)出庫單(編號,產(chǎn)品名,生產(chǎn)計劃號,經(jīng)領(lǐng)人,批準(zhǔn)人,制單人,領(lǐng)用班組,日期)入庫單(編號,供貨單位,供貨單號,制單人,日期)入庫(編號,入庫單編號,材料編號,數(shù)量,金額)出庫(編號,出庫單編號,材料編號,數(shù)量,金額)6 編碼風(fēng)格為了保證程序的易讀易懂,編碼風(fēng)格十分重要。Programs must be written for people to read, and only incidentally for machines to e
51、xecute.5 通過積累和分析,我們認(rèn)為一個好的編碼風(fēng)格應(yīng)具有以下特點:1. 標(biāo)識符命名應(yīng)有明確的意義標(biāo)識符盡量采用英文命名,有明確的意義,并且定義最好按照字母順序或在業(yè)務(wù)邏輯中出現(xiàn)的順序。圖6-1 標(biāo)識符命名應(yīng)有明確的意義2. 程序中有適當(dāng)?shù)淖⑨岅P(guān)鍵的算法實現(xiàn)部分,應(yīng)有注釋以標(biāo)明該算法實現(xiàn)的功能。但不要每一句都注釋,這樣會占據(jù)太多代碼篇幅,影響代碼的可讀性。圖6-2 程序中有適當(dāng)?shù)淖⑨?.函數(shù)應(yīng)有功能性注釋,用以說明函數(shù)的功能函數(shù)之前,應(yīng)用注釋標(biāo)明該函數(shù)實現(xiàn)的功能、輸入?yún)?shù)的類型和作用與輸出參數(shù)的類型和作用。圖6-3 函數(shù)應(yīng)有功能性注釋4.每行語句不宜過長,更不要把兩行語句寫到一行里每行語句應(yīng)控制在一屏可以放置的范圍內(nèi),不要使用自動折行的功能,某些高級語言可以使用折行符。5.避免大量使用嵌套循環(huán)嵌套循環(huán)不容易讀懂,單步調(diào)試也較為費時,如非極其必要
溫馨提示
- 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. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年龍巖道路貨運從業(yè)資格證模擬考試
- 二零二五年度經(jīng)理合同分享與員工培訓(xùn)與發(fā)展合同
- 二零二五年度物業(yè)管理交接及社區(qū)安全保障合同
- 二零二五年度商業(yè)門面轉(zhuǎn)讓合同書(含品牌管理權(quán))
- 2025年度自愿不上學(xué)協(xié)議書-家庭教育輔導(dǎo)與子女綜合素質(zhì)培養(yǎng)合同
- 二零二五年度教育機構(gòu)職工勞動合同解除及教育資源分配協(xié)議
- 遠(yuǎn)程教育中的學(xué)生動力培養(yǎng)策略
- 科技與藝術(shù)的結(jié)合未來學(xué)校運動館的裝修設(shè)計趨勢
- 2025年度二零二五年度解除勞動合同解除通知及手續(xù)協(xié)議
- 二零二五年度智能電網(wǎng)電力安裝工程合同協(xié)議
- 【人教版化學(xué)】必修1 知識點默寫小紙條(答案背誦版)
- 江蘇省無錫市2023-2024學(xué)年八年級上學(xué)期期末數(shù)學(xué)試題(原卷版)
- 全國第三屆職業(yè)技能大賽(無人機駕駛(植保)項目)選拔賽理論考試題庫(含答案)
- 《奧特萊斯業(yè)態(tài)淺析》課件
- 2022年湖南省公務(wù)員錄用考試《申論》真題(縣鄉(xiāng)卷)及答案解析
- 養(yǎng)殖場獸醫(yī)服務(wù)合同
- HR六大板塊+三支柱體系
- 慢性病患者門診身份管理方案
- 變壓器更換施工方案
- 安徽新宸新材料有限公司年產(chǎn)6000噸鋰離子電池材料雙氟磺酰亞胺鋰項目環(huán)境影響報告書
評論
0/150
提交評論