软件工程与计算总结(三)示例项目描述

news2024/10/5 19:20:52

本节介绍一个标准的项目描述,大家可以作为蓝本学习~


目录

一.背景

二.目标

三.系统用户

四.用户访谈要点

1.收银员

2.客户经理

3.总经理

4.系统管理员 

五.项目实践过程

一.背景

        A是一家刚刚发展起来的小型连锁商店,其前身是一家独立的小百货门面店。原商店只有收银部分使用软件处理,其他业务都是手工作业,这已经不能适应它的业务发展要求。首先是随着商店规模的扩大,顾客量大幅增长,手工作业销售迟缓,顾客购物排队现象严重,导致流失客源。其次是商店的商品品种增多,无法准确掌握库存,商品积压、缺货和报废的现象明显上升。再次是商店面临的竞争比以前更大,希望在降低成本、吸引顾客、增强竞争力的同时保持盈利水平。
        为了解决连锁商店A所面临的问题,管理层决定向软件公司B定制开发一套连锁商店管理系统

二.目标

在反复讨论之后,A的管理人员和B的开发人员一致同意,连锁商店管理系统MSCS要能够达到下列目标:

  • 在系统使用6个月后,商品积压、缺货和报废的现象要减少50%。
  • 在系统使用3个月后,销售人员工作效率提高 50%。
  • 在系统使用6个月后,店铺需要的员工数量要减少15%,以降低成本。
  • 在系统使用6个月后,平均10000元销售额的库存成本要减少15%,以降低成本。
  • 在系统使用6个月后,销售额度要提高10%~40%,预估计是20%左右。

三.系统用户

MSCS有4类用户,如表3-1所示:

四.用户访谈要点

1.收银员

(1)基本情况
店里现在有4个收银员(通常是4~6人),但是人员更换较快,平均每个月都会有1个人发生变化。收银员每天的工作都很忙,高峰期的时候每位收银员都有顾客排队(4~8人)。

(2)对新系统的态度    

  • 很希望系统能够帮助收银员减轻销售压力,缩短销售时间,减少高峰期的顾客排队。    
  • 普遍不能熟练操作计算机,担心不会用新的系统,或者新的系统总让他们陷人误操作的麻烦。
  • 对财务比较敏感,因为商店规定如果账单计算错误超过规定幅度,会受到处罚。

(3)工作细节
经过细致的沟通,将收银员使用MSCS进行销售的概要过程设计如下:

  • 询问顾客是否是会员,如果是,就输入客户编号。
  • 使用扫描仪逐个扫描商品条形码。如果扫描仪工作不佳,可以临时用手输入。
  • 扫描完成所有商品后,系统自动根据销售情况和特价规则计算总价,告知顾客。
  • 顾客付款。
  • 系统打印收据,顾客拿到收据离开。


在沟通之后,开发人员在观察收银员销售工作的时候发现以下问题:

  • 在销售过程中,顾客突然要求取消交易。
  • 在要求结账之前,顾客都可能会因为某个商品太贵、保质期不符合预期、总价超出预期等原因要求不再购买指定商品。
  • 在会员顾客结账时,会使用积分支付全部或部分款项。

再次经过细致的沟通,将收银员使用MSCS进行退货的概要过程设计如下:

  • 1)将顾客销售收据上的销售记录号输人系统。
  • 2)查看销售情况,选择顾客要求退货的商品,进行退货。
  • 3)系统重新计算账款,并与原来的账款相比对,计算需要退给顾客的款项。
  • 4)打印退货单2联,让顾客签字。
  • 5)将1联退货单收存,退款给顾客。

在沟通之后,开发人员在观察收银员退货工作的时候发现:

  • 1)有些顾客提供的销售单据超过了退货允许的期限,不能退货。
  • 2)会员顾客使用积分支付了账单,这时不允许退货。
  • 3)享受了赠品和特价的顾客在退货后有可能不再享受赠品和特价。

2.客户经理

(1)基本情况
有2~3个客户经理。工作相对比较轻松,只有在商品人库的时候比较忙,因为人库时的检查过程比较烦琐。都有大专以上文凭,计算机操作能力较好。


(2)对新系统的态度

  • 1)认为软件是一种新技术,能够促进商品的发展,持支持态度。
  • 2)希望系统能够每天提醒该给哪些顾客赠送礼品了,这个工作一直比较麻烦,因为有多个规则每天都要仔细检查。

(3)工作细节
经过细致的沟通,将客户经理使用MSCS进行工作的概要过程设计如下:

1)入库

  • 逐一输入商品的标识、生产日期、报废日期及其数量。
  • 系统自动记住商品的人库日期,如果商品信息有保质期,那么系统应该自动根据生产日期计算报废日期。

2)出库

  • 输入出库商品的标识、数量和下架原因。
  • 系统自动减少相应商品的库存。

3)库存分析

  • 系统自动计算并列表展示每个商品的库存分析情况,包括(对于特定商品):
  • 可存天数-最后一批人库商品的报废日期-当天日期。
  • 流通总量一最后一批人库商品数量+最后一批入库前库存-现在库存。
  • 尺度天数=今天距离最后一批人库商品的人库日期。
  • 每天流通量=流通总量/尺度天数。
  • 预计天数
  • 如果每天流通量>0,预计天数=min(库存数量/每天流通量,可存天数),否则,预计天数无意义。预计报废率如果预计天数有意义并且预计天数<可存天数,预计报废率=0.如果预计天数有意义并且预计天数>可存天数,预计报废率=(预计天数-可存天数)/预计天数,否则,预计报废率无意义。
  • 预计天数和预计报废率的计算规则会经常发生修改。

4)发展会员

  • 产生一个标识
  • 输入新会员顾客的信息

5)礼品赠送。    

  • 每天登录系统时,系统提示需要赠送礼品的会员顾客。
  • 客户经理逐一查看赠送的原因,决定如何处理赠送;记录赠送情况。

开发人员后续又了解到赠送礼品的规则是:

  • 会员生日 
  • 会员积分数额超过了档数要求。触发礼品赠送的积分数额档初始为1000、2000、5000,此后每增加5000为一档。积分数额档可能会发生变化
  • 多个条件可以同时发生,例如,既是生日又超出积分数额档或一次超出多个积分数额档,得到多次赠送

3.总经理

(1)基本情况
有1个正经理、1个副经理。每天忙于管理和对外事务,预计很少有时间会使用系统。计算机操作技能较好。


(2)对新系统的态度
强烈支持新系统,希望通过新系统加强业务管理,使商店的利润提升一个水平。

(3)工作细节
经过细致的沟通,将总经理使用MSCS进行工作的概要过程设计如下。

1)库存分析:与客户经理的客户分析任务相同。
2)调整商品:系统给出现有商品的列表;总经理选中并修改或者移除商品;逐一添加新商品
3)制定特价与赠送策略:系统给出现在的特价与赠送策略;总经理选中并修改或者移除特价与赠送策略;逐一输入新的特价与赠送策略。


特价与赠送策略的规则是:

  • 产品特价为指定的产品设定统一的打折价。
  • 总额特价为购物总额超过指定值的顾客设定统一的打折价。
  • 总额赠送为购物总额超过指定值的顾客赠送特定产品。产品赠送为购买指定产品的顾客赠送特定产品。不同赠送可以重复计算。
  • 特价与赠送之间可以重复计算。.特价商品不计入总额特价。
  • 特价与赠送信息通常有时间期限的限制。特价与赠送策略的触发条件是:
  • 适用(商品标识,参照日期)的商品赠送促销策略。
  • (促销商品标识=商品标识)而且((开始日期早于等于参照日期)并且(结束日期晚于等于参照日期))
  • 适用(额度,参照日期)的总额赠送促销策略。
  • (促销额度≤额度)而且((开始日期早于等于参照日期)并且(结束日期晚于等于参照日期))
  • 适用(商品标识,参照日期)的商品特价促销策略。
  • (促销商品标识=商品标识)而且((开始日期早于晚于参照日期)并且(结束日期晚于等于参照日期))
  • 适用(额度,参照日期)的总额特价促销策略。
  • (促销额度≤额度)而且(不存在:本促销额度<另一个促销额度≤额度)而且((开始日期早于等于参照日期)并且(结束日期晚于等于参照日期))

4.系统管理员 

(1)基本情况
有1个系统管理员,是计算机专业维护人员,计算机技能很好。

(2)对新系统的态度
认为新系统会增加自己的工作负担,不太支持新系统。

(3)工作细节
经过细致的沟通,将系统管理员使用MSCS调整用户的概要过程设计如下:

  • 1)系统给出现有用户的列表
  • 2)系统管理员选中并修改或者删除用户
  • 3)添加新用户

五.项目实践过程

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1060481.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

lv7 嵌入式开发-网络编程开发 07 TCP服务器实现

目录 1 函数介绍 1.1 socket函数 与 通信域 1.2 bind函数 与 通信结构体 1.3 listen函数 与 accept函数 2 TCP服务端代码实现 3 TCP客户端代码实现 4 代码优化 5 练习 1 函数介绍 其中read、write、close在IO中已经介绍过&#xff0c;只需了解socket、bind、listen、acc…

Web版Photoshop来了,用到了哪些前端技术?

经过 Adobe 工程师多年来的努力&#xff0c;并与 Chrome 等浏览器供应商密切合作&#xff0c;通过 WebAssembly Emscripten、Web Components Lit、Service Workers Workbox 和新的 Web API 的支持&#xff0c;终于在近期推出了 Web 版 Photoshop&#xff08;photoshop.adobe…

JUC第十四讲:JUC锁: ReentrantReadWriteLock详解

JUC第十四讲&#xff1a;JUC锁: ReentrantReadWriteLock详解 本文是JUC第十四讲&#xff1a;JUC锁 - ReentrantReadWriteLock详解。ReentrantReadWriteLock表示可重入读写锁&#xff0c;ReentrantReadWriteLock中包含了两种锁&#xff0c;读锁ReadLock和写锁WriteLock&#xff…

动态规划-状态机(188. 买卖股票的最佳时机 IV)

状态分类&#xff1a; f[i,j,0]考虑前i只股票&#xff0c;进行了j笔交易&#xff0c;目前未持有股票 所能获得最大利润 f[i,j,1]考虑前i只股票&#xff0c;进行了j笔交易&#xff0c;目前持有股票 所能获得最大利润 状态转移&#xff1a; f[i][j][0] Math.max(f[i-1][j][0],f[…

注册阿里云账号,免费领取云服务器!

注册阿里云账号&#xff0c;免费领云服务器&#xff0c;最高领取4台云服务器&#xff0c;每月750小时&#xff0c;3个月免费试用时长&#xff0c;可快速搭建网站/小程序&#xff0c;部署开发环境&#xff0c;开发多种企业应用。阿里云服务器网分享阿里云服务器免费领取入口、免…

6 个最佳免费 Android 数据恢复软件

如果您是 Android 用户&#xff0c;您可能会发现没有回收站。然而&#xff0c;聪明的开发人员已经创建了各种 Android 数据恢复软件程序&#xff0c;可以解决各种与数据丢失相关的问题。 Android 数据恢复软件如何工作&#xff1f; 问题是当你删除一个文件时&#xff0c;它的数…

如何利用mp进行条件查询

在mp中进行条件查询发函数是selectList(); 使用上面的方式参数容易传错&#xff0c;所以可以使用下面的方式进行条件查询&#xff1a; 但是使用这种方式可能传的值为空 使用下面的方式可以避免这种情况发生 总结

ReactNative学习笔记

文章目录 基础环境搭建创建项目安装vscode插件调试工具基础语法掌握ReactStyleSheetRN中的样式和CSS的不同通过style属性直接声明在style属性中调用StyleSheet声明的样式 Flexbox术语属性响应式布局 组件和API简介核心组件**最常用的一些核心组件**各核心组件的演示代码Alert和…

【QT】Qt Application Manager启动应用源码分析

Qt Application Manager启动应用源码分析 Qt Application Manager&#xff08;以下简称QTAM&#xff09;是QT推出的一款应用管理程序&#xff0c;可以把它简单理解成Android的LauncherSystemUI。但是&#xff0c;QTAM又集成了Wayland功能&#xff0c;并且自身实现了一套Compos…

MyBatis-plus快速代码生成,使用MybatisX插件

概述 MyBatis提供逆向工程&#xff0c;可以快速生成代码。 而MyBatis-plus也提供了一个代码生成器&#xff0c;它需要执行一些代码来实现。 而MybatisX 是一款基于 IDEA 的快速开发插件&#xff0c;为效率而生&#xff0c;你不需要写代码&#xff0c;直接界面化操作&#xf…

Ultralytics(YoloV8)开发环境配置,训练,模型转换,部署全流程测试记录

关键词&#xff1a;windows docker tensorRT Ultralytics YoloV8 配置开发环境的方法&#xff1a; 1.Windows的虚拟机上配置&#xff1a; Python3.10 使用Ultralytics 可以得到pt onnx&#xff0c;但无法转为engine&#xff0c;找不到GPU&#xff0c;手动转也不行&#xff0…

【Java 进阶篇】JDBC 登录案例详解

在本文中&#xff0c;我们将通过一个简单的 JDBC 登录案例来详细介绍如何使用 Java 数据库连接&#xff08;JDBC&#xff09;来连接数据库、进行用户身份验证等操作。这个案例将适用于数据库初学者&#xff0c;我们将从头开始构建一个简单的登录系统。 什么是 JDBC&#xff1f…

剑指offer——JZ18 删除链表的节点 解题思路与具体代码【C++】

一、题目描述与要求 删除链表的节点_牛客题霸_牛客网 (nowcoder.com) 题目描述 给定单向链表的头指针和一个要删除的节点的值&#xff0c;定义一个函数删除该节点。返回删除后的链表的头节点。 1.此题对比原题有改动 2.题目保证链表中节点的值互不相同 3.该题只会输出返回…

视频讲解|基于DistFlow潮流的配电网故障重构代码

目录 1 主要内容 2 视频链接 1 主要内容 该视频为基于DistFlow潮流的配电网故障重构代码讲解内容&#xff0c;对应的资源下载链接为基于DistFlow潮流的配电网故障重构(输入任意线路)&#xff0c;对该程序进行了详尽的讲解&#xff0c;基本做到句句分析和讲解&#xff08;讲解…

反序列化漏洞

原理 反序列化是对象变成可以传输的字符串。 PHP反序列化的时候&#xff0c;基本都是围绕着serialize()&#xff0c;unserialize()这两个函数 serialize() 和 unserialize() 在 PHP内部没有漏洞的&#xff0c;产生反序列化漏洞是因为应用程序在处理对象、魔术函数以及序列化…

《C和指针》笔记33:指针数组

除了创建整型数组一样&#xff0c;也可以声明指针数组。 int *api[10];为了弄清这个复杂的声明&#xff0c;我们假定它是一个表达式&#xff0c;并对它进行求值。下标引用的优先级高于间接访问&#xff0c;所以在这个表达式中&#xff0c;首先执行下标引用。因此&#xff0c;a…

[软件工具]opencv-svm快速训练助手教程解决opencv C++ SVM模型训练与分类实现任务支持C# python调用

opencv中已经提供了svm算法可以对图像实现多分类&#xff0c;使用svm算法对图像分类的任务多用于场景简单且对时间有要求的场景&#xff0c;因为opencv的svm训练一般只需要很短时间就可以完成训练任务。但是目前网上没有一个工具很好解决训练问题&#xff0c;大部分需要自己编程…

分布式锁:四种方案解决商品超卖的方案

一 分布式锁 1.1 分布式锁的作用 在多线程高并发场景下&#xff0c;为了保证资源的线程安全问题&#xff0c;jdk为我们提供了synchronized关键字和ReentrantLock可重入锁&#xff0c;但是它们只能保证一个工程内的线程安全。在分布式集群、微服务、云原生横行的当下&#xff…

仿牛客论坛项目 笔记

文章目录 环境配置bean是什么最终成品功能数据库与缓存一致性整个web系统后端的结构spring mvc相关controller常见的代码写法mybatis相关常识测试、调试相关计网相关component相关注解spring全家桶族谱spring衍生框架 run之后发生了什么什么是spring&#xff0c;spring和bean的…

剑指offer——JZ22 链表中倒数最后k个结点 解题思路与具体代码【C++】

一、题目描述与要求 链表中倒数最后k个结点_牛客题霸_牛客网 (nowcoder.com) 题目描述 输入一个长度为 n 的链表&#xff0c;设链表中的元素的值为 ai &#xff0c;返回该链表中倒数第k个节点。 如果该链表长度小于k&#xff0c;请返回一个长度为 0 的链表。 数据范围&…