收藏 分销(赏)

超市销售管理系统分析与设计UML可以通过课程实践或者.docx

上传人:xrp****65 文档编号:8931815 上传时间:2025-03-08 格式:DOCX 页数:35 大小:293.37KB 下载积分:10 金币
下载 相关 举报
超市销售管理系统分析与设计UML可以通过课程实践或者.docx_第1页
第1页 / 共35页
超市销售管理系统分析与设计UML可以通过课程实践或者.docx_第2页
第2页 / 共35页


点击查看更多>>
资源描述
XXXX大学 综合实践报告书 课 程 名: 系统分析与设计 实践项目: 超市销售管理系统 学 院: 专业班级: 学生学号: 学生姓名:   指导教师:   年 月 日 目 录 第一章 引言 1 1.1 目的及范围 1 1.2 术语 1 1.3 文档结构 1 第二章 需求说明 2 2.1 系统参与者 2 2.2 系统用例 2 2.3 补充规格说明 7 2.4 业务规则 8 2.5 领域对象分析 9 2.5.1领域类图 9 2.5.2领域类说明 10 第三章 架构设计说明 11 3.1 逻辑视图 11 3.2 进程视图 12 3.3 开发视图 12 3.4 物理视图 13 3.5 用例视图 14 第四章 用例实现 15 4.1 处理销售 15 4.2 管理员工 16 4.3 管理销售 18 4.4办理会员卡 19 4.5 兑换礼品 20 4.6上架商品 21 4.7下架商品 22 第五章 设计类说明 23 5.1 设计类字典 23 5.2 物理包设计 30 参考文献 31 心得体会 32 第一章 引言 1.1 目的及范围 为了提高超市运作效率,方便进行超市管理,辅助提高超市的决策水平,降低经营成本,提高效益,增强超市扩展力,提供有效的技术保证。本系统适用范围中小型超市 1.2 术语 参与者:系统的参与者 UI:界面 POS: 销售终端 1.3 文档结构 根据UML设计方法,该文档有引言,系统需求设计,系统视图,用例实现,设计类说明 第二章 需求说明 2.1 系统参与者 总经理:超市负责人,负责管理员工,和管理销售 销售经理:负责管理部分商品类型,上下架商品 收银员:只负责处理销售 前台服务员:负责办理会员卡与兑换礼品 2.2 系统用例 用例名:处理销售 参与者:收银员 前置条件:收银员必须经过确认和认证。 后置条件:存储销售信息。准确计算税金。更新账务和库存信息。生成票据。记录支付授权的批准。 主成功场景: 1.顾客携带所购的商品到收银台通过POS机存款。 2.收银员开始一次新的销售交易。 3.收银员输入商品条码。 4.系统逐条记录出售的商品,并显示该商品的描述、价格和总额。价格通过一组价格规则来计算。 收银员重复3~4步,直到输入结束 5.系统显示总额和所计算的税金,并显示总额给顾客核对。 6.收银员告知顾客总额,并请顾客付款。 7.顾客付款,系统处理支付。 8.系统记录完整的销售信息,并将销售和支付信息发送到外部的账务系统和库存系统。 9.系统打印票据。 替代流程: 3a.无效商品ID: 1.系统提示错误并拒绝输入该ID。 2.收银员相应该错误。 2a.商品ID可读 1.收银员手工输入商品ID。 2.系统显示商品项目的描述和价格。 3b.当有多个商品项目属于同一类别的时候,不必记录每个商品项目的唯一标识: 1.收银员可以输入类别的标识和商品的数量。 3c.需要手工输入类别和价格: 1.收银员收输入特定的类别代码及其价格。 3-6a.顾客要求收银员从所购商品中去掉一项: 1.收银员选择商品并将其删除。 2.系统删除该项目并显示更新后的总额。 3-6b.顾客要求收银员取消销售交易: 1.收银员在系统中取消销售交易。 5a.系统检测到与外部税务计算系统服务的通信故障: 1.系统在POS机节点上重启此服务,并继续操作。 5b.顾客符合打折条件: 1.收银员提出打折请求。 2.收银员输入顾客ID。 3.系统按照打折规则显示折扣总计额。 5c.顾客要求兑现账户积分,用于此次销售交易; 1. 收银员提交积分请求。 2. 收银员输入顾客ID。 3. 系统应用积分直到价格为0,同时扣除结余积分。 6a.收银员询问顾客是否要塑料袋: 1. 收银员收输入塑料袋特定的代码。 2. 系统显示总额。 6b.顾客要求现金付款,但所携现金不足: 1.顾客要求使用其他支付方式。 1a.顾客要求取消此次交易,收银员在系统上取消该销售交易。 7a.现金支付: 1.收银员输入收取的现金额。 2.系统显示找零金额,并弹出现金抽屉。 3.收银员放入收取的现金,并找零。 4.系统记录该现金支付。 7b.信用卡支付: 1.顾客拿出信用卡 2.收银员确认。 2a.收银员取消付款步骤。 1.系统回复到“商品输入”模式。 3.系统向外部支付授权服务系统发送支付授权请求,并请求批准该支付。 3a.系统检测到与外部系统写作时的故障: 1.系统向收银员提示错误。 2.收银员请求顾客更换支付方式。 4.系统受到批准支付的应答并提示收银员,同时弹出现金抽屉。 4a.系统受到拒绝支付的应答: 1.系统向收银员提示支付被拒绝。 2.收银员请求顾客更换支付方式。 5.系统记录信用卡支付信息,期中包括支付批准。 6.系统显示信用卡支付的签名输入机制。 7.收银员请求顾客签署信用卡支付。 8.如果在纸质票据上签名,则收银员将该票据放入现金抽屉并关闭抽屉。 用例名:管理员工 参与者:总经理 前置条件:总经理必须经过确认和认证。 后置条件:系统保存已修改的员工信息,能安排上班时间。 主成功场景: 1.总经理管理(添加,删除,修改,查询)员工信息、权限。 2.系统保存员工信息。 返回主菜单,总经理继续操作。 3.总经理修改用户权限 4.系统保存用户权限。 返回主菜单,总经理继续操作。 5.总经理找到班次,选择员工ID。 6.系统保存班次信息。 重复以上操作,直到安排完成。 替代场景: 2a.系统无响应: 1.总经理重新进入系统。 2.总经理继续进行操作。 2b.系统已有该员工: 1.系统返回主菜单。 2.总经理继续操作。 2c.系统响应信息填写不正确: 1.系统提示不正确内容。 2.总经理继续操作。 4a.系统无响应: 1.总经理重新进入系统。 2.总经理继续进行操作。 6a.系统无响应: 1.总经理重新进入系统。 2.总经理继续操作。 6b.系统响应该班次已安排员工: 1. 总经理重新安排员工。 用例名:管理销售 参与者:销售经理 前置条件:总经理或销售经理必须经过确认和认证。根据登陆信息,已经知道是总经理或是销售经理登录,销售经理只能负责其负责的商品 后置条件:系统显示销售信息,系统修改销售信息,返回主菜单。 主成功场景: 1.总经理或销售经理选择查询某商品销售信息。 2.系统显示出该商品详细的销售信息。 3.总经理或销售经理对该商品信息进行修改。 4.系统保存销售信息。 5.返回菜单页面继续其他操作。 替代场景: 2a.系统提示无权限: 1.销售经理寻找总经理获得权限。 2.总经理或销售经理重新操作。 2b.系统无响应: 1.总经理重新进入系统。 2.总经理或销售经理重新操作。 4a.系统提示错误: 1.总经理重新进入系统。 2.总经理或销售经理重新操作。 4b.系统无响应: 1.总经理重新进入系统。 2.总经理或销售经理重新操作。 5a.系统无法返回主菜单。 1a.总经理重新进入系统。 2. 总经理或销售经理重新进行操作。 用例名:上架商品 主要参与者:销售经理 前置条件:销售经理必须到达活动地点或超市。 后置条件:所销售的商品上架、下架,系统登记商品。 主要场景: 1.销售经理到达活动地点或超市。 2.销售经理从仓库提取所销售的商品,将商品上架。 3.销售经理进入管理系统,登记商品上架信息。 4.系统保存上架信息。 替代场景: 4a.系统无响应: 1.总经理重新进入系统。 2.总经理继续进行操作。 4b.系统提示没有该类商品。 1. 销售经理输入该类商品信息。 2. 系统保存上架信息。 用例名:下架商品 主要参与者:销售经理 前置条件:销售经理必须到达活动地点或超市。 后置条件:所销售的商品下架。 主要场景: 1.销售经理到达活动地点或超市。 2.销售经理将所销售的商品下架。 3. 销售经理进入管理系统,删除商品信息。 4.系统保存信息。 替代场景: 4a.系统无响应: 1.总经理重新进入系统。 2.总经理继续进行操作。 用例名:办理会员卡 参与者:前台服务员 前置条件:前台服务员必须经过确认和认证。 后置条件:完成会员卡办理 主成功场景: 1.顾客把会员信息填好,申请会员卡。 2.前台服务员把信息输入,保存信息。 3.系统保存信息,记录会员卡编号 4.服务员把会员卡给顾客。 替代场景: 3a.系统无响应: 1.系统返回上一层,重新保存。 3b.系统无法记录信息: 1a.服务员重新记录。 1b.服务员用纸记录。 用例名:兑换礼品 参与者:前台服务员 前置条件:前台服务员必须经过确认和认证,顾客是会员 后置条件:根据积分兑换礼品 主成功场景: 1.顾客拿出会员卡兑换礼品。 2.前台服务员在系统中查找该会员的消费积分 3.顾客根据系统所显示的消费积分,提出想兑换的礼品 4.顾客获得礼品,系统在会员积分减掉本次用于兑换礼品所花费的积分 5.更新系统的会员信息记录 替代场景: 3a.消费积分不足以兑换礼品: 1a.该会员的消费积分小于最少的礼品所需要的积分。 1. 前台服务员告知顾客,当前您的消费积分不足以兑换礼品。 2.顾客离开。 1b.该会员的消费积分小于想要兑换的礼品所需要的积分。 1.前台服务员告知顾客,当前您的消费积分不足以兑换礼品。 2.顾客重新选择礼品。 2.3 补充规格说明 功能性: 1.日志和错误处理 在持久性存储中记录所有错误 2.安全性 任何使用都需要经过用户认证 可用性: 人性因素 顾客将能够看到POS屏幕显示器的显示。因此: 应该在一米外轻松看到文本。 避免使用一般色盲人群难以辨认的颜色。 快捷、无错的销售交易处理极为重要,因为购买者希望快速离开,否则会给他们的购买体验(和对销售员的评价)带来负面影响。 收银员的视线通常停留在顾客或商品,而不是计算机显示器上。因此,提示和警告应该通过声音传递而不仅仅是通过图像传递。 可靠性: 1.可恢复性 如果在使用外部服务(支付授权、账务系统、……)时出现错误,为了完成销售交易,需要尝试采用本地方案加以解决。 2.性能 需要快速完成销售处理过程。 实现约束: 采用Java技术的解决方案,采用Java技术除了易于开发外,还能够提高远期的移植和可支持性能力。 购买构件: 税金计算器。必须支持用于不同国家的可插拔计算器。 免费开源构件: 尽可能地使用免费的Java技术开源构件 接口: 1. 重要硬件和接口 计算机 条形码扫描仪 票据打印机 信用卡/借记卡读卡器 2.4 业务规则 ID 规则 可变性 来源 规则1 购买者折扣规则。示例: 员工:20%折扣额 会员:10%折扣额 高 每个零售商有不同规则 零售商政策 规则2 生鲜食品每日5点促销 20%折扣额 高 每个零售商有不同规则 零售商政策 规则3 节假日促销 高 每个零售商有不同规则 零售商政策 2.5 领域对象分析 2.5.1领域类图 图2.5.1 图2.5.2 2.5.2领域类说明 顾客:在超市消费的主体,可以申请会员卡。 收银员:负责使用收银机的员工。 收银员=员工ID+员工密码+职位+性别+年龄+电话+地址+ 付款方式:有现金付款和信用卡付款 超市:具有名称和地址,用于打印票据。 购买的商品描述:商品ID,价格,销售总额,用于打印票据。 商品:顾客购买的商品,具有商品ID,商品数量属性,用于打印票据。 总额:顾客需要支付商品总额, 销售业务:有销售时间,用于打印票据。 总经理:管理员工以及超市销售。 销售经理:管理某商品销售 员工权限:登录系统的权限。 员工描述=员工ID+员工名+职位+性别+身份证+权限 前台服务员:负责办理会员卡,兑换礼品。 会员:能够享受折扣或积分优惠。 会员描述=会员ID+姓名+积分+电话 上班时间:安排员工班次。 第三章 架构设计说明 3.1 逻辑视图 图3.1.1 GUILayer层:用户界面。每个用例的界面类处于该层中。在一些实现中,一个界面类通常带有一个控制类,也处于该层。界面类负责与用户交互,控制类负责与业务逻辑层通信 BizLogicLayer层:对从UI层输入的数据进行操作。 DomainLayer层:实体类。 DataBase:数据库类 3.2 进程视图 图3.2.1 图3.2.1为进程视图,其中公用客户端以及收银机进程作为外部数据录入的进程,必须依赖应用服务器数据库客户端进行操作,最后保存在数据库里。而人员管理和销售信息进程必须依赖内部电脑数据库服务端进行操作,调用数据库里的数据。 3.3 开发视图 图 3.3.1 图3.3.2 图3.3.3 图3.3.4 图3.3.1表示处理销售开发,图3.3.2表示管理销售开发,图3.3.3表示管理员工开发,图3.3.4表示会员类开发。 3.4 物理视图 图3.4.1 3.5 用例视图 图3.5.1 第四章 用例实现 4.1 处理销售 参与用例实现的对象 界面类:GUISale 控制类:Register 实体类:Sale, SalesLineItem, Payment, ProductCatalog, ProductDescription, SalesLedger 参与对象动态关联 图4.1.1 顺序图 图4.1.2 4.2 管理员工 参与用例实现的对象 界面类:GUIManage 控制类:Manage 实体类:Employee Employeedesc TimeTable 参与对象动态关联 图4.2.1 顺序图 图4.2.2 4.3 管理销售 参与用例实现的对象 界面类:GUIItem 控制类:CtrlItem 实体类:ProductType ProductCatalog ProductDescription 参与对象动态关联 图4.3.1 顺序图 图4.3.2 4.4办理会员卡 参与用例实现的对象 界面类:GUICard 控制类:transactCard 实体类:member menberDesc 参与对象动态关联 图4.4.1 顺序图 图4.4.2 4.5 兑换礼品 参与用例实现的对象 界面类:GUICard 控制类:transactCard 实体类:member menberDesc 参与对象动态关联 图4.5.1 顺序图 图4.5.2 4.6上架商品 参与用例实现的对象 界面类:GUIItem 控制类:CtrlItem 实体类:Shelves 参与对象动态关联 图4.6.1 顺序图 图4.6.2 4.7下架商品 参与用例实现的对象 界面类:GUIItem 控制类:CtrlItem 实体类:Shelves 参与对象动态关联 图4.7.1 顺序图 图4.7.2 第五章 设计类说明 5.1 设计类字典 1 Sale 说明: 此类实现销售业务有关职责,对应于领域对象的销售业务。 属性: 序号 属性名 类型 初始值 1 isComplete bool 0 2 time DateTime 3 操作: int getTotal();//获取本销售总金额; int makePayment(Money amount); //完成付款。amount为付款金额。返回值为1表示成功,0表示失败; 2 ProductCatalog 说明: 此类实现得到商品目录,对应领域对象的产品目录。 属性: 序号 属性名 类型 初始值 1 itemID long 2 itemName String 3 ProductDescription 说明: 此类实现销售业务有关职责,对应于领域对象的产品描述。 属性: 序号 属性名 类型 初始值 1 itemID String 2 itemName String 3 itemPrice double 4 itemNum int 5 SalesProPrice double 6 SalesProDateS String 7 SalesProDateE String 4 GUISale 说明: 此类实现界面显示 操作: void MakeNewSales() //新建一个销售业务 void makePayment(amt) //付款 5 CtrlSale 说明: 此类是控制器,对实体类进行操作,对应领域对象的收银机。 操作: void resetSale()//重置销售业务 desc getProductDesc(id) // 得到产品目录 desc getId(id) //得到产品描述 double makeLineItem(desc) //得到货物总价 diplay(desc,total) //显示商品描述和总价 diplay(change) //显示找零 6 EmployeeDesc 说明: 此类实现EmployeeDesc信息,对应于领域对象的员工描述。 属性: 序号 属性名 类型 初始值 1 EmpID String 2 Empwd String 3 Authority boolean 3 EmpName String 4 EmpSex String 5 Identity String 6 EmpPhone String 7 7 Casher 说明: 此类Casher信息,继承EmployeeDesc类,对应于领域对象的收银员。 属性: 序号 属性名 类型 初始值 1 EmpID String 2 EmpName String 3 position String 收银员 操作: void MakeNewSales() //新建销售 void EnterItem(id,qty ) //商品id 数量,开始销售处理 void MakePayment(amt) //收款 8 SalesManager 说明: 此类实现SalesManager操作,继承EmployeeDesc类,对应于领域对象的销售经理。 属性: 序号 属性名 类型 初始值 1 EmpID String 2 EmpName String 3 position String 销售经理 操作: void EnterItem( ) //进入销售管理界面 9 GUIItem 说明: 此类实现管理销售界面。 操作: void EnterItem() //进入管理销售操作 desc getType(id) //得到产品类型 desc getProductDesc(id) //得到产品目录 desc get(id)//得到产品描述 10 CtrlItem 说明: 此类实现销售业务有关职责,对应于领域对象的销售业务。 操作: int updateSales(desc) //更新销售信息 int querySales(id) //查询销售信息 void showSales(desc ) //显示销售信息 int recordItem(id,qty) //记录上架信息 int deleteItem(id) //商品下架 11 Shelves 说明: 此类记录上架信息,对应于领域对象的架 属性: 序号 属性名 类型 初始值 1 ItemID String 2 ItemName String 3 quantity String 总经理 12 Manager 说明: 此类实现Manager操作,对应于领域对象的总经理。 属性: 序号 属性名 类型 初始值 1 EmpID String 2 EmpName String 3 position String 总经理 操作: void EnterManage( ) //进入员工管理界面 13 GUIManage 说明: 此类显示管理员工界面。 操作: void EnterManage( ) // 14 Manage 说明: 此类管理员工。 操作: desc getEmployee(id) //显示员工列表 desc get(id) void showEmpDesc(desc ) //显示员工信息 int updateEmp(desc) //更新员工信息 int queryEmp(id) //查询员工信息 int deleteEmp(id) //删除员工信息 add(id) //修改员工工作时间表 void showTable() //显示上班员工安排 15 TimeTable 说明 此类上班时间表,继承EmployeeDesc类对应于领域对象的上班时间。 属性: 序号 属性名 类型 初始值 1 EmpID String 0 2 EmpName String 3 timeS String 4 timeE String 16 Server 说明: 此类为前台服务员,办理会员卡与兑换礼品有关职责,继承EmployeeDesc 类对应于领域对象的前台服务员。 属性: 序号 属性名 类型 初始值 1 EmpID String 2 EmpName String 3 position String 前台服务员 操作: void EnterCard() //进入界面 17 GUICard 说明: 此类为办理会员卡界面。 操作: void EnterCard() //进入界面 18 transactCard 说明: 此类办理会员卡与兑换礼品有关职责。 操作: desc getMember(Cid) //显示会员列表 desc get(Cid) //显示会员名单 int updateCustomer(desc)// 修改会员信息 int deleteCustomer(id) //删除会员 int queryCustomer(id) //查询会员 showCusDesc() //显示会员资料 int decrease(id ) .//减少会员积分 19 Member 说明: 此类为会员,对应于领域对象的会员。 属性: 序号 属性名 类型 初始值 1 CID String 20 MemberDesc 说明: 此类为会员描述,对应于领域对象的会员描述。 属性: 序号 属性名 类型 初始值 1 CID String 2 CName String 3 Cphone String 4 points String 5.2 物理包设计 图 3.3.1 图3.3.2 图3.3.3 图3.3.4 图3.3.1为Sales包表示处理销售开发,图3.3.2为ItemManage包表示管理销售开发,图3.3.3为Manage包表示管理员工开发,图3.3.4为Member包表示会员类开发。 参考文献 [1]Craig Larman:《UML和模式应用》[M],机械工业出版社 心得体会 平时上课不觉得UML有什么特别,毕竟没有动手做过,那时还真不了解统一建模语言到底用来做什么,它的表示方法有什么。 不过经过数个星期的实践课,我清楚地了解它的作用。它的作用只有一个,就是为了更好的完成一个项目设计。通过大量的图表分析,用它作业项目小组讨论的依据,然后根据讨论的结果来完成项目。在项目的详细设计中,必定要涉及方方面面的东西,而UML就包括了需求设计,架构设计,设计类等等。直接明了的给出了目标。项目小组按照目标去完成项目,可以提高工作效率,减低出错几率,降低成本。 我在这次课程实践做了超市销售管理系统的设计。虽然离完成一个完整的项目还有一段很长的过程,不过起码有了一个好的开始。我相信以后会逐渐接触类似的任务,也会逐渐熟悉掌握它。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服