经济与管理学院软件设计报告
鞋店进销存管理系统
一.项目背景
随着计算机技术的不断发展, 它已经成为人们工作和生活中不可缺少的工具。早在1954年,银行、大公司和大企业纷纷采用计算机进行账户和账目管理、生产管理、库存管理、销售管理、统计报表等。从数据的收集、存储、整理到检索统计,应用的范围日益扩大,使计算机的应用很快超过科学计算,成为最大的计算机应用领域。
鞋店管理的特点是信息处理量比较大,所存的鞋种类多,而且由于进货单、销售单、需求单等单据发行量特别大,关联信息多,查询和统计的方式各不相同等原因,因此在管理上实现起来有一定困难。在管理的过程中经常会出现信息的重复传递,单据报表种类繁多,各个部门管理规格不统一等问题。
在本系统的设计过程中,为了克服这些困难,满足计算机管理的需要,我们采取了下面的一些原则:
1、 统一各种原始单据的格式,统一账目和报表的格式。 2、 删除不必要的管理冗余,实现管理规范化、科学化。
3、 程序代码标准化,软件统一化,确保软件的可维护性和实用性。 4、 界面尽量简单化,做到实用,方便, 尽量满足书店中不同层次员工的需要。
二.定义
“鞋店进销存管理系统”为用户提供添加、修改、查询、退货操作等服务。 用户在登陆界面输入用户名,密码后系统核对正确进入系统内部。系统就要求用户选择事务类型(添加、修改、查询、退货等),直至用户选择退出应用服务,询问用户是否退出应用服务,如果用户选择结束,系统重回登陆界面。用户进入添加界面后,首先可以输入的数字必须大于等于100),否则系统显示输入有误。用户点击确认后,由系统查询,判断该取值是否超出库存量,如果没有,则系统会显示确认界面,用户单点击“确认”后,系统自动生成账单,并在后台进行工作,系统进行清点并发出命令给仓库管理人员,并将数据更新到数据库中;否则提示用户库存量不足,请重新输入,重复上述过程。
三.参考资料
《系统分析与设计》
经济与管理学院软件设计报告
四.系统分析与设计 4.1需求分析    4.1.1识别参与者
用户(下订单者),系统维护人员,仓库管理人员
4.1.2 对需求进行捕获与描述
用例名称:添加   执行者:用户  目的:向仓库中发出下订单命令。 用例名称:退货   执行者:用户  目的:将未售出的货物退还到仓库 用例名称:修改   执行者:用户  目的:修改用户登录密码。 用例名称:查询   执行者:用户  目的:查询可下订单剩余量。 用例名称:验证身份 执行者:用户 目的:验证操作系统的用户身份。 用例名称:信息管理 执行者:仓库管理人员 目的:对用户信息进行管理。 用例名称:系统维护  执行者:系统维护人员 目的:对系统进行维护。 用例名称:验证身份 执行者:系统维护人员 目的:对用户信息进行验证。  100.1 用例ID号及用例名 UC_001  添加 100.2 用例概述 当用户在登陆界面输入正确的账号和密码进入系统选择添加功能时,用例开始。用户利用它实现账户添加功能。 100.3 参与者 用户 100.4 前置条件用户在登陆界面输入正确的账号和密码,成(Pre-Conditions) 功登陆系统。 100.5 后置条件用户下订单成功。 (Post-Conditions) 100.6 事件流  100.6.1 基本事件流 1.用户在登陆界面输入正确的账号和密码,(Basic Flow) 成功登陆系统。 2.用户选择添加功能。 3.系统提示输入下订单量。 4.用户输完后点击确认。  5.系统发出命令后并修改账户信息。 6.系统提示下单操作成功。  7.系统返回主界面。 余额不足时: 8.库存量余额不足,下单失败。   9.系统显示当前库存量。  返回主界面,并执行结束。 100.6.2 扩展事件流 系统检查到用户没有输入正确金额 (Alternative  1.提示用户输入正确金额  Flows) 2.用户重新输入金额 经济与管理学院软件设计报告
4.1.3 用例图
通过已掌握的需求,初步了解系统所要完成的功能。下面给出用例图。
4.1.4 分析与讨论
1) 建模用例图的步骤、方法?
1. 确定系统的边界和范围;(方法:分析系统内部元素,把系统内部元素和外
部事物划分开)
2. 识别系统的参与者;  3. 发现用例;
4. 描述用例及确定用例关系;(方法:对用例概要描述;对用例详细描述。 根据用例事件流,将公共行为抽取出来,已包含关系构建用例关系;变化部分,抽取出来,放到扩展用例中)
5. 建立用例图;
6. 定义用例图的层次结构;
2) 如何识别系统的参与者?应该如何划分用例,应注意哪些问题?
通过回答以下问题来识别系统的参与者:  1. 谁使用系统的主要功能?  2. 谁改变系统的数据?  3. 谁从系统中获取数据?  4. 谁支持、维护系统?
5. 谁需要借助系统的支持来完成工作?  6. 系统需要操纵哪些硬件?
7. 系统需要和哪些外部系统交互?  8. 谁对系统运行结果感兴趣?  划分用例:
1. 每个参与者打算在这个系统里做些什么事情?  2. 参与者使用本系统要实现的目标是什么?
经济与管理学院软件设计报告
3. 参与者是否会在系统中创建、修改、删除、访问、存储数据?如果是,如何来完成这些操作?
4. 参与者是否会将外部的某些事件通知给该系统?   3) 心得
用例图主要用来描述 用户、需求、系统功能单元 之间的关系。它展示了一个外部用户能够观察到的系统功能模型图。
用途:帮助开发团队以一种可视化的方式理解系统的功能需求。 用例图所包含的元素如下:
1. 参与者 表示与您的应用程序或系统进行交互的用户、组织或外部系统。用一个小人表示。
2. 用例 用例就是外部可见的系统功能,对系统提供的服务进行描述。 用椭圆表示
3. 子系统 用来展示系统的一部分功能,这部分功能联系紧密。  4. 关系 用例图中涉及的关系有:关联、泛化、包含、扩展;
a. 关联 表示参与者与用例之间的通信,任何一方都可发送或接受消息。  b. 泛化 就是继承关系,子用例和父用例相似,但表现出更特别的行为;子用例将继承父用例的所有结构、行为和关系。子用例可以使用父用例的一段行为,也可以重载它。父用例通常是抽象的。
c. 包含 包含关系用来把一个较复杂用例所表示的功能分解成较小的步骤;  d. 扩展 扩展关系是指 用例功能的延伸,相当于为基础用例提供一个附加功能。
e. 依赖 表示源用例依赖于目标用例;
4.2  建立对象模型   4.2.1 候选类的数据字典
类   名 User 中   文 用户 定   义   使用鞋店进销存管理系统进行添加、修改、查询、退货业务。该类有选择业务等操作。 Bill BankAccount 账单 下单账目   由系统自动生成账单,在后台依此工作。   用户下单信息,包括用户的信息,添加数目等属性,并拥有更改用户自己数据的操作。 DrawAccount 修改账目    用户改单信息,包括用户的信息,退单数目等属性,并拥有更改用户自己数据的操作。 Screen 系统屏幕 员 显示系统要向用户展示的界面。 MaintenanceStaff 系统维护人  维护鞋店进销存管理系统的正常运行 经济与管理学院软件设计报告
ManageStaff   仓库管理人向用户发货,整理统计货物数量。  员  DatabaseConnector 数据连接  与仓库数据库进行连接,更新用户信息。 4.2.2定义类
“用户”类  •属性
姓名(name):文本(char)  账号(userID):文本(char)  联系电话(TelNum):整形(int) 住址(Address):文本(char)  •操作
输入Input()  修改密码changePWD()  查询inquiry()
“账单”类  •属性
账单号(AccountNumber):整形(int)  余额(balance):字符串(string)  •操作
打开open()
扣除存款deductFunds ()  存入存款withdrawFunds()
“下单账目”类  •属性
姓名(name):文本(char)  账号(userID):文本(char)  联系电话(TelNum):整形(int)  库存量(Amount):字符串(string)
下单数量(DepositAmount): 字符串(string)  •操作
添加add ()  取消Cancel ()
“修改账目”类  •属性
姓名(name):文本(char)  账号(userID):文本(char)
经济与管理学院软件设计报告
联系电话(TelNum):整形(int)  库存量(Amount):字符串(string)
退单数量(DepositAmount): 字符串(string)  •操作
修改deposit ()  取消Cancel ()
“屏幕”类  •属性   •操作
初始化initialize ()  提示prompt ()  输入input()
“系统维护人员”类  •属性
姓名(name):文本(char)  员工号(ID):整形(int)  联系电话(TelNum):整形(int)  •操作
维护Maintain()
“仓库管理人员”类  •属性
姓名(name):文本(char)  员工号(ID):整形(int)  联系电话(TelNum):整形(int)  •操作
配款DepositCash()  管理manage()
“数据连接”类  •属性   •操作
连接Connect()  取消Cancel ()
4.2.3绘制类图
( 在类图中标示出类的属性、操作、类之间的关系及多重性的类图解释说明 。  )
,并对所给出经济与管理学院软件设计报告
4.2.4包图
对于大型复杂系统,常需要把大量的模型元素用包组织起来,以方便处理。对所选系统的类进行分组,以便更清晰地了解系统的结构。 (画出包图 并说相应解释说明)
经济与管理学院软件设计报告
4.2.5分析与讨论
构建类图的步骤:
1. 确定类;(方法:行为分析、名词识别法、CRC分析法、根据边界类、
1)建模类图的步骤、方法?
控制类、实体类的划分、参考设计模式确定、通过领域进行分析等)
2. 识别类的属性和操作;(方法:结合需求陈述、领域知识和常识以及
经验等)
3. 识别类之间的关联;(方法:使用普通关联列表的方法) 4. 定义类的结构和层次。
2)识别类有哪些方法,你是如何识别类的?
行为分析、名词识别法、CRC分析法、根据边界类、控制类、实体类的划分、参考设计模式确定、通过领域进行分析等。
我通过名名词识别法确定类。
3)解释关联的多重性?如何确定类的属性、操作、类之间的关联关系、组织类之间的继承?
关联的多重性:关联表示了对象间的结构关系,在建模过程中,通常需要说明一个关联实例中有多少个相互连接的对象。
确定类的属性:从常识性、专业性、功能性、存储性、操作性、标志性、关联性发现和确定类的属性,进而筛选类的属性;
确定类的操作:综合对象模型、动态模型和功能模型,确定类的操作;    确定类之间的关联关系:使用普通关联列表的方法帮助发现关联。并分析关联的多重性。
组织类之间的继承:自顶向下和自底向上的方法。
4.3 建立动态模型
系统的动态行为模型由交互图(顺序图和协同图)、状态机图和活动图表达。
在系统的分析和设计中应当对主要的Use Case和对象类绘制这些图形,以便分析系统的行为,印证和修改系统的静态结构,满足用户的需求,达到系统的目标。
4.3.1顺序图
下单的用例图
经济与管理学院软件设计报告
4.3.2 通信图
(将以上顺序图转换为通信图)
4.3.3
活动图
活动图的主要作用是表示系统的业务工作流和并发处理过程。针对自选系统主要的业务工作流绘制活动图。
经济与管理学院软件设计报告
绘制活动图需要确定参与活动的对象、动作状态、动作流,以及对象流。  4.3.4
状态图
状态机图表现一个对象(类)的生命史。对于一些实现重要行为动作的对象应当绘制状态机图。绘制状态机图需要确定一个对象的生命期可能出现的全部状态,哪些事件将引起状态的转移,将会发生哪些动作。
(绘制所选系统的一个对象的状态图并解释说明)
经济与管理学院软件设计报告
4.3.5  分析与讨论
比较顺序图与通信图、 活动图与状态图的应用。
顺序图:描述的是参与交互的对象及对象之间消息交换的顺序,用来表示用例中的行为顺序。
通信图:强调发送和接收消息的信息的对象及其组织结构的交互图,用以描述对象以及对象之间的交互关系。
活动图:用来描述达到一个目标所实施一系列活动的过程,描述了系统的动态特征。  状态图:描述系统中类和对象随时间变化的动态行为。
4.4物理模型 4.4.1  建立构件图
系统实现的源代码、二进制码、执行码可以按照模块化的思想,用构件分别组织起来,明确系统各部分的功能职责和软件结构。
(学生补充自选系统的运行软件织成的构件图并解释说明,如果需要,可以绘制系统的源代码、二进制码和执行码的构件的跟踪关系图。)
4.4.2  建立部署图
(学生补充自选系统的部署图并解释说明)