软件工程课程设计仓库管理系统.docx
- 文档编号:8035009
- 上传时间:2023-01-28
- 格式:DOCX
- 页数:26
- 大小:88.79KB
软件工程课程设计仓库管理系统.docx
《软件工程课程设计仓库管理系统.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计仓库管理系统.docx(26页珍藏版)》请在冰豆网上搜索。
软件工程课程设计仓库管理系统
一、需求分析
1、问题背景及描述
随着科学技术的发展,社会进步,计算机迅速的发展,仓库管理的方法也日新月异,以前全是由人管理的方法现存在很多的缺点:
管理效率低,劳动强度大,信息处理速度低而且准确率也不够令人满意。
为了提高仓库管理效率,减轻劳动强度提高,信息处理速度和准确性;为仓库管理员提供更方便、科学的服务项目.为仓库管理员提供的一种更先进、科学的服务系统。
于是我们便选择了由计算机来设计一个仓库管理系统的方案.让计算机对仓库进行自动管理,仓库管理员可以直接在计算机上实现仓库的信息管理,并能在一定程度上实现自动化。
我们在现行系统初步调查的基础上提出了新系统目标,即新系统建立后所要求达到的运行指标,这是系统开发和评价的依据。
2、功能分析
通过初步分析,“仓库管理系统”应该具备以下主要功能:
⒈仓库各种信息的输入,包括入库,出库,还原,需求信息的输入等
⒉仓库管理的各种信息查询,修改和维护
鉴于课程设计的缘故,本系统仅仅实现部分简单功能.
3、建立系统流程图
为了便于问题的论述与展开,在此加入了系统流程图的内容。
通过对仓库管理过程的了解,可以知道仓库管理系统管理仓库信息的大致过程。
首先,用户登陆仓库管理系统,通过一系列对系统的操作后,由系统返回给用户相应的结果。
图1描绘了这个大致的流程。
图1仓库管理系统大致处理过程
接下来对图1的黑匣子(仓库管理系统)的内容进行分解.通过仔细分析与了解,确定用户对系统的整个操作过程:
用户登陆仓库管理系统,验证用户身份与权限,审核后操作仓库管理系统,用户可以查询仓库里的产品信息,管理员权限可修改和删除相关仓库的信息,用户还可以打印相关报表,还可以查看帮助文档。
系统会根据用户的操作,给予相应的显示与处理结果。
图2图3图4是分析后得出的系统流程图。
图2仓库管理系统流程图1
图3仓库管理系统流程图2
图4仓库管理系统流程图3
4、建立数据流图
系统流程图虽然很好地描绘了具体的系统,但是在系统流程图中把“做什么"和“怎样做”这两类不同范畴的知识混合在一起。
我们的目标不是一成不变地复制现有的人工系统,而是开发一个既能够完成现有的所有功能,又能使操作更加规范或者功能更加完备的新系统,因此,应该着重描绘系统的逻辑功能。
数据流图描述数据在软件系统内从输入流动到输出的过程中所经受的变换,通常用数据流图建立软件的功能模型。
数据流图是系统逻辑功能的图形表示,图中没有任何的具体物理部件,仅仅描绘数据在软件中流动和被处理的逻辑过程,不懂计算机技术的人也容易理解它,因此是分析员与用户之间极好的通信工具。
根据前面划分的系统模块可以得到如下数据流图:
1仓库管理系统整体数据流图
图5仓库管理系统数据流图
5、建立数据字典
数据字典是关于数据的信息的集合,也就是对数据流图中包含的元素的定义的集合。
它的作用是在软件分析和设计过程中提供关于数据的描述信息。
数据字典和数据流图共同构成系统的逻辑模型。
数据字典定义数据的方法就是对数据自顶向下地分解,当分解到不需要进一步定义,每个和工程有关的人员都清楚其含义的元素时,这种分解过程就结束了。
本仓库管理系统根据划分的模块定义了如下数据字典:
①用户信息表
表名:
user
内容:
记载用户登陆的基本信息
组成:
列名
数据类型
长度
精度
小数
备注
userid
int
4
10
0
主键
username
varchar
50
0
0
不为空
userpwd
varchar
50
0
0
不为空
purview
varchar
50
0
0
不为空
组织:
按录入顺序.
②客户信息表
表名:
customerinfo
内容:
记载客户相关的基本信息
组成:
列名
数据类型
长度
精度
小数
备注
Cid
int
4
10
0
主键
Cname
varchar
50
0
0
不为空
Addr
varchar
50
0
0
不为空
PostCode
int
4
10
0
不为空
Phone
varchar
50
0
0
不为空
组织:
按录入顺序。
③产品类型表
表名:
producttype
内容:
记载产品类型的基本信息
组成:
列名
数据类型
长度
精度
小数
备注
Typeid
int
4
10
0
主键
Typename
varchar
50
0
0
不为空
组织:
按录入顺序。
④库存信息表
表名:
store
内容:
记载产品库存的基本信息
组成:
列名
数据类型
长度
精度
小数
备注
Pid
int
4
10
0
主键
Pname
varchar
50
0
0
不为空
Ptype
varchar
50
0
0
不为空
Pprice
float
8
53
0
不为空
Pnum
int
4
10
0
不为空
MakeDate
datetime
8
0
0
不为空
组织:
按录入顺序.
6、算法描述
分析员以黑匣子的方式记录算法,所谓黑匣子就是不考虑一个功能的具体实现方法,只把它看作给予输入之后就能够产生一定输出的匣子。
这正是在早期开发阶段分析员对算法应该持有的正确观点,目的是用原理性算法准确地定义功能,算法的细节可以等到以后的详细设计阶段再确定。
仓库管理系统中主要涉及算法方面的主要是产品的库存数量,随着仓库的使用,入库数量和出库数量随时发生变化,整个仓库中的库存量也就随之变化。
这里采用IPO表记录该算法的初步描述.
图6描绘产品库存量初步算法的IPO表
7、建立E-R图
为了把用户的数据要求清楚、准确地描述出来,系统分析员通常建立一个概念性的数据模型,概念性数据模型是一种面向问题的数据模型,它描述从用户角度看到的数据.
通常使用实体-联系图来建立数据模型,可以把实体-联系图简称为E—R图,相应地可以把E—R图描绘的数据模型称为E-R模型。
E-R图中包含了实体(即数据对象)、关系和属性等三种基本成分。
通常,用矩形框代表实体,用连接相关实体的菱形框表示关系,用椭圆或圆角矩形表示实体或关系的属性,并用直线把实体(或关系)与其属性连接起来。
图7用户E—R图
图8客户E-R图
图9产品E-R图
图10仓库管理系统联系图
8、建立状态图
状态图(也叫状态转换图)通过描绘系统状态及引起系统转换的事件来表示系统的行为。
此外,状态图还指明了作为特定事件的结果系统将做哪些动作。
因此,可以用状态图建立软件系统的行为模型。
状态是可以被观察到的系统行为模式,一个状态代表系统的一种行为模式,状态规定了系统对事件的响应方式。
在状态图中第一的状态主要有:
初态、终态和中间状态,在一张状态图中只能有一个初态,而终态则可以有0个至多个。
在状态图中,初态用实心圆表示,终态用一对同心圆(内圆为实心圆)表示.中间状态用圆角矩形表示,可以使用两条水平横线把它分成上、中、下3个部分,分别防止状态名、状态变量和活动表。
事件是在某个特定时刻发生的事情,它是对引起系统动作或(或)从一个状态转换到另一个状态的外界事件的抽象。
状态图中两个状态之间带箭头的连线表示状态转换,箭头指明了转换的方向.状态转换通常是由事件触发的,在这种情况下应该在表示状态转换的箭头上标出触发事件表达式。
以下是仓库管理系统的状态图:
登陆界面
验证帐户
输入密码
不合法帐户
验证权限
合法帐户
查询、修改自身信息;修改其他用户权限;添加新用户;查询、修改、注销、添加客户信息;查询、修改、添加、删除产品信息和入库信息等
查询、修改自身信息;查客户信息、出、入库信息和产品信息等
管理权限
普通权限
图11仓库管理系统状态图
二、概要设计
1、软件体系结构模型
大型软件系统总是被分解成一系列子系统,由子系统提供一些相关的服务。
软件体系结构设计过程就是识别出这些子系统,并建立子系统控制和通信的框架,最后给出软件体系结构的一个描述。
1.1系统构成模型
系统构成模型有容器模型、客户-服务器模型和抽象机模型三种。
⑴容器模型
构成一个系统的子系统一定要浇灌换信息,以便能有效地在一起工作。
子系统交换信息、协调工作有两种基本方法:
全部共享书防在一个中央数据库中,所有子系统都能从中存取数据;
每个子系统用各自的数据库与其他子系统进行数据交互,通过消息传递来实现.
一般情况下,大多数使用大量数据的系统都是围绕共享数据库(或称为容器)组织的,所以,基于一个共享数据库的系统的系统模型称为容器模型。
这个模型适合于数据由一个子系统产生,而其他子系统共享使用的系统结构。
这种类型的系统有命令控制系统、管理信息系统、CAD系统和CASE工具集成系统等。
共享容器模型的优点是能够高效地共享大量的数据,生产数据的子系统不需要关心数据如何被其他子系统使用,可以集中进行备份、保密、访问控制和错误恢复等活动.其缺点是子系统一定要与容器数据一致,系统变更或进化比较困难,难以集成,以及很难将容器分布到多台机器上。
⑵客户-服务器模型
客户—服务器模型的主要组成部分是:
一组给其他子系统提供服务的单机服务器;
一组向服务器请求服务的客户机;
一个连接客户和服务器的网络(可选)。
客户机必须知道可用的服务器的名字和它们所提供的服务,并通过远程调用获取服务器提供的服务.反之,服务器没有必要知道客户机的身份,以及到底有多少客户机在运行。
客户—服务器模型能够实现基于容器模型的系统,容器就充当了系统的服务器。
子系统需要访问容器,因而扮演了客户机的角色。
当然,当运行大量数据交换时,这种系统就会产生性能问题。
客户-服务器模型的最大优点是:
这是一个分布式结构,通过网络可以很容易地添加新的客户机和服务器,而不会影响系统的其他部分。
⑶抽象机模型
抽象机模型也称为分层模型,是建立子系统的接口模型,它把子系统组织成一系列的层次,每一层提供一组服务,每一层定义为一个抽象机。
每个抽象机都是由其下层的抽象机的代码构成的.每一层提供给上一层服务,同时调用下一层的服务。
每一层的实现只影响相邻层,不会影响到系统的其他各层.分层的方法支持系统的增量式开发,若一层开发完成,该层提供的服务就可以被用户使用了。
分层的缺点是:
用这种方法构建系统比较困难。
几乎所有抽象机都需要的基本服务(如文件管理)需要由内层提供,因此,用户的服务可能需要访问较深层的抽象机。
这一点有悖于一个外层只需要访问临近下层抽象机的分层原则。
性能也可能是一个问题,因为需要多层的指令解释过程。
如果层次太多,层次管理就将成为系统的一个重要负担。
根据三种系统构成模型的介绍,很明显地可以知道本仓库管理系统是基于容器模型设计的。
仓库管理系统只使用到一个总数据库,而其中提供的所有服务都直接访问该数据库,因此本仓库管理系统具备容器模型的各种特性。
1.2系统控制模式
软件体系结构除了要明确系统构成模型之外,还要给出子系统的控制模式,使子系统能够根据控制模式工作。
在体系结构层次上的控制模式主要反映子系统之间的控制流.
系统控制模式有两种一般性的建模方法,即集中式控制和事件驱动控制。
⑴集中式控制
在集中式控制模型中,一个子系统被定义为系统控制器来负责管理其他系统的执行.集中式控制模型又可分为调用-返回模型和管理者模型两类。
①调用—返回模型。
这是一个自上而下的子过程模型。
控制始于系统(程序)的顶层,在子系统(程序)调用过程中,控制逐步传递到更低的层次中.该模型适用于顺序执行的系统.
②管理者模型。
这是一种适用于并发系统的模型.一个系统组件被指定为系统管理者,控制其他系统过程的启动、终止和协调。
一个过程就是一个能和其他过程并发执行的子系统或模块。
⑵事件驱动控制
在集中式控制模型中,控制决断通常决定于一些系统状态变量值。
相反,事件驱动的控制模型是通过外部产生的事件驱动系统的。
有多种不同的基于事件驱动的系统,如电子表格、基于规则的产生式系统等。
下面是两种事件驱动的控制模型。
①广播模型。
发生的事件广播到所有子系统,任何能处理该事件的子系统都会响应.该模型适用于基于网络的分布式系统.
②中断驱动模型。
由中断处理器对来自外部的中断进行检测,然后在其他组件中处理这些中断。
该模型适用于对定时有严格要求的实时系统。
广播模型中的子系统注册其感兴趣的特别事件,当这些事件发生的时候,控制被转换到处理这些事件的子系统。
所有的事件都可以被发送到所有的子系统,但这样做增加了子系统的开销.一般地,事件和消息处理器要维护子系统的注册和这些子系统所感兴趣的事件。
广播模型的优点是进化比较简单,处理特别类型事件的新的子系统可以通过在事件处理器中注册这些事件来达到集成;其缺点是子系统相互竞争地处理事件,这可能会引起冲突。
中断驱动模型只用在硬件实时系统中,要求对一些事件能作出及时响应,这可以与集中式控制模型结合起来使用。
中央管理者处理系统的一般性运转,而中断控制用于对紧急事件作出反应。
而本仓库管理系统显然属于前者,所有的子系统都是由一个总的系统控制的,触发子系统的调用主要取决于系统状态量的改变。
并且可以看出,仓库管理系统是属于管理者模型的.
2、用面向数据流的方法设计系统软件结构
2.1仓库管理软件结构
在需求分析中,已经使用结构化方法分析了“仓库管理系统”。
因此,可以从图16所示的仓库管理系统流图出发来设计仓库管理系统的结构。
用户数据
D1
仓库数据
2.1
产品入库
3.1
维护模块
D1
仓库数据
用户
1.1
客户管理
1.2
用户管理
1.3
退出系统
D2
客户资料
D3
用户资料
2.2
产品出库
2.3
产品查询
用户数据
3.2
帮助模块
图12仓库管理系统数据流图
下一个设计步骤是完成“第一级分解".所谓“第一级分解”就是确定系统的总体控制结构。
通常,变换分析得出的系统高层结构是一个“三叉”控制结构。
针对“仓库管理"得出的高层控制结构如图16所示。
仓库管理
接收数据
处理数据
输出数据
图13仓库管理的“第一级分解”
再下一个设计步骤是完成“第二级分解”。
所谓“第二级分解”,就是把数据流图中的每个处理映射成软件结构中的一个适当的模块。
变换分析的映射规则是从变换中心的边界开始沿着输入通路向外移动,把输入通路中每个处理映射成软件结构中“输入信息处理控制模块”控制下的一个低层模块;然后沿着输出通路向外移动,把输出通路中每个处理映射成直接或间接接受“输出信息处理控制模块”控制的一个低层模块;最后把变换中心内的每个处理映射成接受“变换中心控制模块"控制的一个低层模块.
对于“仓库管理”来说,“第二级分解”的结果如图17所示。
仓库管理
接收数据
处理数据
输出数据
帮助信息
验证用户权限
收集数据
审核数据
修改更新
统计数据
汇总数据
分析数据
图14仓库管理的“第二级分解”
最后洋设计步骤是对仓库管理的初步结果优化。
结合仓库管理的“第二级分解"图可以将其优化成如下的软件结构图。
仓库管理
接收数据
处理数据
打印报表
验证用户权限
收集数据
审核数据
修改更新
统计数据
汇总数据
分析数据
图15优化后的仓库管理软件结构
⒉系统帐户管理软件结构
根据数据流图,能够得到系统帐户管理软件结构如下图所示。
系统帐户管理
修改更新授权
验证用户
查询用户
图16系统帐户管理软件结构
综合上面的分析,可进一步得到包含系统帐户管理、仓库管理和系统数据管理三大子功能的软件结构如图20所示.
仓库管理
接收数据
处理数据
帮助信息
验证用户权限
收集数据
审核数据
修改更新
统计数据
汇总数据
分析数据
系统帐户管理
修改更新授权
查询用户
图17仓库管理系统细化的软件结构
结合上述的分析描述,得到仓库管理系统的完整软件结构图,如图21所示。
验证用户权限
系统帐户管理
修改更新授权
仓库管理系统
查询用户
帮助模块
帮助信息
收集数据
审核数据
修改更新
汇总数据
统计数据
分析数据
接收数据
处理数据
维护模块
仓库管理
图18仓库管理系统的完整软件结构
3、数据库逻辑结构设计
数据库逻辑结构设计的任务是根据E-R模型和需求分析所产生的文档,并综合考虑所选择的具体DBMS的特点,设计出整个数据库的逻辑结构。
一般来说,选择哪一种DBMS存放数据,是由系统分析员和用户(一般是企业的高级管理人员)决定的。
需要考虑的因素包括DBMS产品的性能和价格,以及所设计的应用系统的功能复杂程度。
如果选择的是关系型DBMS产品,那么逻辑结构的设计就是指设计数据库中所包含的各个关系模式的结构,包括关系模式的名称、每一关系模式中各属性的名称、数据类型和取值范围等内容.
逻辑结构的设计过程是:
首先,根据需求阶段的设计结果和具体的DBMS产品的特点,将全局E—R模型转换成一个初始的关系模型。
然后,对其中的每个关系模式进行分析,判断是否存在不合理的关系模式,如有则利用关系模式的规范化方法消除之。
三、详细设计
1、数据库物理结构设计
数据库的物理结构设计是指为给顶的一个逻辑数据模型选择最适合应用环境的物理结构。
关系数据库的物理结构主要是指数据的存取方法和存储结构。
数据库的物理结构设计分为两个部分,首先是确定数据库的物理结构,其次是对所设计的物理结构进行评估.
1.1确定数据库的物理结构
为确定数据库的物理结构,设计人员必须了解下面的几个问题。
①详细了解给定的DBMS的功能和特点,特别是该DBMS所提供的物理环境和功能;
②熟悉应用环境,了解所设计的应用系统中各部分的重要程度、处理频率、对响应时间的要求,并把它们作为物理结构设计过程中平衡时间和空间效率时的依据;
③了解外存设备的特性,如分块原则、块因子大小的规定、设备的I/O特性等.
在对上述问题进行了全面的了解之后,就可以进行物理结构的设计了。
一般地,物理结构设计的内容包括如下几个方面。
①确定数据的存储结构。
在此过程中需考虑存取时间、空间效率和维护代价间的平衡,如在引入冗余数据以加快存取速度时应兼顾系统的空间效率.
②选择合适的存取路径,例如确定应该为哪些关系模式建立索引,索引关键字是什么等。
③确定数据的存放位置,例如确定数据存放在一个磁盘上还是多个磁盘上,什么数据该存放在高速存储器上,什么应该存放在低速存储器上等。
④确定存取分布,许多DBMS都提供了一些存储分配参数供设计者使用,例如缓冲区的大小和个数、块的长度、块因子的大小等,设计者必须规定其中的一些参数的位置。
1。
2评估物理结构
由于在物理设计过程中需要考虑的因素很多,包括时间和空间效率、维护代价和用户的要求等,对这些因素进行权衡后,可能会产生多种物理设计方案。
这一阶段需对各种可能的设计方案进行评价,评价的重点是系统的时间和空间效率,并从多个方案中选出较优的物理结构。
2、模块过程设计与界面设计
2。
1验证用户身份功能模块
⑴功能描述
验证用户身份功能模块用于对登陆系统的用户进行身份验证,确定用户是否拥有使用该系统的资格以及该用户的权限。
因此,任何用户登陆系统都调用此模块。
⑵主要算法
if用户名and口令正确
以该用户身份进入系统总控制界面并获得响应系统权限
else
提示“用户名或口令错误”
累计错误三次,自动关闭本系统
endif
2.2系统总控制模块
⑴功能描述
系统总控制模块是系统运行时的主控制程序,通过系统的主菜单集中各子功能模块,用户在该模块中通过选择菜单进入到相应的子模块。
⑵菜单设计
系统菜单设计如下表所示。
表1系统菜单
一级菜单
系统
输入
维护
帮助
二、三
级菜单
客户管理
产品查询
修改产
品信息
系统信息
用户管理
产品入库
退出系统
产品出库
⑶主要算法
每个菜单项调用相应模块,实现各自的功能.
以退出系统为例:
if退出系统
提示“确认退出系统?
”
if确认退出
退出仓库管理系统
else
返回到仓库管理系统
endif
endif
其他功能菜单类似.
2.3用户信息管理模块
⑴功能描述
用户信息管理模块是对整个系统的用户进行权限分配的模块,通过调用该模块,具有查询用户基本信息和修改密码及权限的功能.系统第一次运行时只有超级用户具有用户权限分配的权限.
⑵调用方式
用户在主控制界面中选择调用该模块.
⑶主要算法
①添加按钮触发的处理:
用于添加新的用户,产生添加用户的界面。
(仅限管理员权限)
②删除按钮触发的处理:
用于删除选中的系统用户.(仅限管理员权限)
③修改密码按钮触发的处理:
用于修改当前用户的密码,产生新的密码修改界面。
修改密码处理流程:
输入原始密码
重复输入原始密码
if两次密码相同
匹配数据库用户密码
if与数据库密码相同
继续输入新密码,修改成功
else
显示“您的密码不正确!
”
else
显示“两次输入不相同!
”
④上一页按钮触发的处理:
显示上一页的记录.
⑤下一页按钮触发的处理:
显示下一页的记录。
⑥首页按钮触发的处理:
显示第一页的记录.
⑦末页按钮触发的处理:
显示最后一页的记录。
⑧退出按钮触发的处理:
关闭用户信息管理窗口并返回主控制界面.
2.4客户信息管理模块
⑴功能描述
客户信息功能模块是供系统使用人员对客户信息进行检索与查询并且进行修改的模块。
通过调用该模块,能够按照不同的条件组合进行客户信息的查询,并可以对查询到的客户信息进行修改。
⑵调用方式
用户在主控制界面中选择相应选项打开客户信息界面,在界面中选择相应功能。
⑶主要算法
①查询条件下拉列表:
选择查询的方式,然后于查询框中填写关键字进行搜索。
②添加按钮触发的处理:
用于添加新的客户,产生添加客户的界面。
(仅限管理员权限)
③删除按钮触发的处理:
用于删除选中的客户的信息.(仅限管理员权限)
④修改按钮触发的处理:
用于修改选中的客户的信息,产生客户信息修改界面。
(仅限管理员权限)
⑤上一页按钮触发的处理:
显示上一页的记录.
⑥下一页按钮触发的处理:
显示下一页的记录。
⑦首页按钮触发的处理:
显示第一页的记录.
⑧末页按钮触发的处理:
显示最后一页的记录。
⑨退出按钮触发的处理:
关闭客户信息管理窗口并返回主控制界面。
2。
5产品入库功能模块
⑴功能描述
产品入库功能模块是用于新的产品添加到仓库的处理模块。
通过调用该模块,用户将产品的入库信息添加到仓库信息中。
⑵调用方式
用户在主控制界面中选择相应选项打开产品入库界面,在界面中填写相应入库信息。
⑶主要算法
①产品类型下拉列表:
选择入库产品的类型.
②产品名输入框:
用于输入添加的产品的名称。
③产品价格输入框:
用于输入添加的产品的价格。
④入库量输入框:
用于输入添加的产品的数量.(按产品类型确定单位)
⑤生产日期输入框:
用于填写入库产品的生产日期.
⑥入库按钮触发的处理:
将用户填写的入库产品的信息添加到库存的产品信息中。
⑦重置按钮触发的处理:
将用户填写的产品入库信息清空重新填写。
⑧退出按钮触发的处理:
关闭产品入库窗口并返回主控制界面。
2。
6产品出库功能模块
⑴功能描述
产品出库功能模块是用于产品从仓库售出的处理模块。
通过调用该模块,用户
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程设计 仓库 管理 系统