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