作业摘要

作业所属课程 所属课程链接
作业要求 团队作业2-《需求规格说明书》
团队Github仓库链接 Github链接
作业目标 明确项目需求分析、制定团队项目计划、总结本周推进结果

团队成员

姓名 学号
韩业浩 3121004860
黄翼山 3119004783
李金强 3121004868
李钰平 3121004870
李奇龙 3121004869
彭学智 3121004878
许铭益 3121004883

1 项目需求分析

本次项目计划将所需实现的功能分为四个模块:商品模块、用户模块、购物车模块和订单模块。上述的四个模块分别通过前台和后台两个管理层面来逐一实现。首先,前台设有用户注册、用户登录、在线购物、在线浏览商城商品等方便用户购买自己喜欢的商品,为用户节省了大量的时间。其次,在后台设有四个数据库表来分别满足四大模块中增删查改等操作。

1.1 需求规格说明书

1.1.1 面向用户分析

我们小组采用了NABCD模型来讨论面向用户的需求分析

  • N(Need,需求)
    本文的写作时间临近双十一,因此在讨论商城购物系统之初,我们即刻向身边有购物的同学进行购物流程感受的采访。
    从而得出以下结论:当前电商商城购物系统存在一些用户需求上的弊端。首先,搜索功能不够精准,用户往往需要花费大量时间浏览和筛选商品,难以快速找到自己需要的商品。其次,商城的页面设计不够友好,用户在浏览和购买商品时容易迷失方向,缺乏清晰的导航和分类。此外,用户在商城中的购物体验也存在问题,如缺乏个性化的推荐、无法保存购物车、无法进行在线支付等。
  • A(Approach,作法)
    针对上述问题,可以采取以下解决方案:
    (1)优化搜索功能:采用先进的搜索引擎技术,对商品信息进行精准的匹配和筛选,提高搜索结果的准确性和相关性。同时,提供多种搜索方式,如关键字搜索、分类搜索、品牌搜索等,以满足不同用户的需求。
    (2)改进页面设计:采用清晰易用的布局和导航,使用户能够快速找到所需商品。同时,提供个性化的页面风格和主题,以满足不同用户的审美需求。
    (3)提供个性化推荐:根据用户的购买历史、浏览记录等数据,采用机器学习算法进行个性化推荐,为用户提供更加精准的购物建议。
    (4)完善购物车功能:提供可保存的购物车功能,用户可以将多个商品添加至购物车中,随时进行查看、编辑和购买。
    (5)支持在线支付:与第三方支付平台合作,提供安全便捷的在线支付方式,保障用户的资金安全。
  • B(Benefit,好处)
    通过以上解决方案的实施,可以带来以下好处:
    (1)提高用户满意度:通过优化搜索、页面设计和购物车功能,提高用户体验和购物效率,使用户更加满意。
    (2)增加用户粘性:通过提供个性化推荐和完善的购物车功能,增加用户在商城中的停留时间和购买频次,提高用户粘性。
    (3)提高销售额:通过改进页面设计和在线支付功能,提高用户的购买意愿和购买量,从而增加销售额。
  • C(Competitions,竞争)
    当前电商市场竞争激烈,商城购物系统需要与其他电商平台进行竞争。因此,在改进现有问题的同时,还需要关注竞争对手的情况。了解竞争对手的优势和劣势,从而制定更加有效的竞争策略。同时,关注行业趋势和技术发展,以便及时调整和优化商城购物系统的功能和性能。
  • D(Delivery,推广)
    为了提高商城购物系统的知名度和用户数量,需要制定有效的推广策略。可以通过以下方式进行推广:
    (1)社交媒体营销:利用社交媒体平台进行广告投放和内容营销,吸引潜在用户的关注和访问。
    (2)搜索引擎优化:通过优化网站结构和内容质量,提高商城购物系统在搜索引擎中的排名,吸引更多的潜在用户。

综上所述,我们对“优化搜索功能”和“改进页面设计”的改进是为了解决购物者的痛苦, 他们需要拥有更加强大搜索能力的平台,在寻找商品时能节约大量的搜索时间,从而获得更良好的用户体验,但是现有的方案并没有很好地解决这些需求,我们通过采用先进的搜索引擎技术,对商品信息进行精准的匹配和筛选,提高搜索结果的准确性和相关性, 它能提高用户体验和购物效率, 远远超过竞争对手。

1.1.2 功能性分析

模块 具体功能 期望实现功能
商品模块 浏览界面 用户可以在这个界面浏览各种商品,包括商品的图片、名称、价格等基本信息。同时还运行用户使用搜索栏进行搜索。
商品详情信息 用户可以点击商品图片或名称来查看商品的详细信息,包括商品的详细描述、其他买家对商品的评论和评分等。
用户模块 注册功能 用户可以通过填写个人信息(如姓名、电子邮件等)来注册账号。注册过程中应要求用户遵守一些必要的规定,如服务条款等。
登录功能 用户可以使用注册时提供的个人信息来登录系统。登录过程中需要进行身份验证,确保用户的账户安全。
用户信息 用户可以查看和编辑自己的个人信息,如姓名、电子邮件、地址等。系统应确保用户的个人信息不被泄露。
购物车模块 添加商品 用户可以将喜欢的商品添加到购物车中,以便稍后进行购买。添加商品时,系统需要记录商品的数量和规格等信息。
商品展示 在购物车中,用户可以查看已经添加的商品,包括商品图片、名称、价格等信息。用户还可以更改商品的数量或删除不需要的商品。
购物操作 当用户准备好购买时,可以通过购物车界面进行结算,进入订单提交页面。
订单模块 提交订单 在订单提交页面,用户需要选择支付方式(如支付宝、微信支付等)和配送方式(如快递、自提等),并确认订单信息无误。确认后,系统应生成订单并保存相关信息。
支付功能 根据用户选择的支付方式,系统需要与相应的支付平台进行对接,完成支付过程。支付过程中需要保证交易的安全性。

1.1.3 技术需求

  • 编程语言:组内大多成员都善用Python语言,故我们采用Python语言来完成本次项目的设计,其版本为python3.8版本。
  • 开发环境:Pycharm
  • 数据库:商城系统需要存储海量的数据,因此要选用高性能、高可扩展性的数据库。我们在本地创建database数据库表,再把其连接到MySQL中,其版本为Mysql8.0.21版本。
  • 开发框架:商城系统的开发框架要求高效、易于开发和维护。基于编程语言Python的限制,我们使用一个高级的Python Web框架——Django,其版本为Django3.1.1版本。
  • 服务器:商城系统需要部署在服务器上,因此需要选择高性能、高可用的服务器架构。本次项目我们采用 nginx服务器,来实现反向代理和负载均衡。
  • 前端框架:商城系统的前端界面要求美观、易于使用和交互体验,因为使用 Bootstrap 可以构建出非常优雅的前端界面,而且占用资源非常小,故使用 bootstrap 样式作为前端框架。
  • 安全技术:商城系统需要保障用户信息的安全,因此要采用加密等多种安全技术,如HTTPS协议、防火墙等。

1.2 预期用户数量

在经过小组讨论后,基于当前团队所掌握的技术和团队成员的学习能力,我们预计能实现一个良好的商城购物系统,预计每天的访客量有30个活跃用户,每小时访问次数在100次以内。

1.3 项目价值

  • 真实:
    我们的购物商城将是一个可实际使用的系统,旨在提供一个安全、可靠的在线购物环境,满足用户的购物需求。我们将以实际的购物场景为基础,构建一个具有实际应用价值的系统。
  • 可用:
    我们的系统将具有高度的可用性,能够满足不同用户的需求和习惯。首先,我们需要优化搜索功能,使用户能够快速找到所需商品。其次,我们需要提供个性化的推荐功能,根据用户的购买历史、浏览记录等数据,为其推荐合适的商品。此外,我们还需要完善购物车功能,使用户可以将多个商品添加至购物车中,随时进行查看、编辑和购买。同时,我们还可以提供在线支付功能和物流跟踪服务等,以满足用户的实际需求。通过这些措施,我们可以提高用户的购物体验和使用商城购物系统的积极性。
  • 有价值:
    我们的系统将为商家和消费者带来实际的价值。对于商家来说,我们的系统可以提供一个高效的在线销售平台,扩大销售渠道,提高品牌知名度。对于消费者来说,我们的系统可以提供更加便捷的购物体验,节省购物时间,提高购物满意度。同时我们的购物商城将注重用户的使用体验和情感价值。我们将注重界面设计和交互体验,让用户在使用过程中感受到愉悦和舒适。同时,我们将注重系统的可定制性和个性化设置,让每个用户都可以根据自己的喜好和需求来定制自己的购物体验。

1.4 团队码云链接

团队码云链接

2 制定团队计划

2.1 团队项目时间安排表

周次 原有安排 校正后安排
第 9 周 1.团队组队、团队博客 无变化
2.团队介绍、成员展示、角色分配、选题确定
3.制定团队计划安排,团队贡献分的规定
第 10 周 1.需求规格说明书 无变化
2.原型设计,队员估计任务难度并学习必要的技术 2.项目分工,队员自行选择要实现的部分,并估计任务难度并学习必要的技术
3.编码规范完成、平台环境搭建完成、初步架构搭建 3.编码规范完成、平台环境搭建完成、初步架构搭建、**完成接口创建**
第 11 周 1.原型改进(给目标用户展现原型,并进一步理解需求) 1.原型改进,画出该项目的功能流程图
2.架构设计,WBS, 团队成员估计各自任务所需时间 无变化
3.测试计划
4.PM核实队员计划,为接下来冲刺周做准备
第 12、13 周 1. 团队项目Alpha任务分配计划 1. 团队项目按第 11 周给PM的计划正常实施
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 无变化
2. 连续7天的Alpha敏捷冲刺,7 篇 每日Scrum Meeting博客+代码提交 无变化
3.完成敏捷冲刺后,开展团队例会,汇报完成情况和进行团队总结
第 14 周 1.用户反馈+测试计划改进 无变化
2. 团队Alpha阶段个人总结
3. 团队项目Alpha博客:发布说明、测试报告、展示博客、项目管理
第 15 周 1. 团队项目Alpha博客:事后分析 1. 团队项目Alpha博客:项目完结后分析
2. 根据团队贡献分的规定,计算每人得分
3.团队项目队员总结

如上的矫正方法依据从两个方面考虑:
第一方面,根据一套经验公式:实际时间花费主要取决于两个因素—对某件事的估计时间X,以及他做过类似开发工作的次数N。
Y = X ± X ÷ N //注:Y是实际时间花费。中间的±表明或者加上,或者减去。
我们7人团队中,有两个人拥有过做项目的经历,但是实现商城购物系统这个项目对于大家都是一次全新的挑战。故在上述表达式中 X ÷ N 其结果是一个无穷大的数,因此对这个项目的判断则十分不准确,在项目时间内也许根本完成不了这个项目。因此我们考虑了下面的方法。
第二方面,则是我们在项目分工的时候,对于整个项目有了比较深入了了解,因此我们同样也采用了先是“自底向上”。团队成员各自估计底层模块和单个功能(及单元测试)所需的时间,再加上集成及基本测试的时间,就是大概的开发时间。这还没有考虑各个模块之间的相互依赖性。为了考虑各项目的依赖性和不同功能整合的时间,我们加入了“修正”的方式,即每周结束时,对当前的项目完成度与任务时间表进行对比,如果匹配度高,则说明预估比较准,若匹配度不高,则召开小组会议,对有疑问的地方进行讨论,并及时修改任务时间表。

2.2 上传计划至码云

团队项目:

任务计划表:

3 本周总结

3.1 团队分工

本次项目分为了前台,后台和项目部署三个部分。针对这三个部分,我们将团队划分成了三个部分,前端队员、后端队员和运维队员。
前端队员对应用户体验和产品管理的小组角色,主要负责用户交互界面和体验的设计和开发。前端部分包括对整个购物系统合理的布局、舒适的颜色、能充分展示商品的图片和一系列访问后响应式设计。通过采用合理的前端技术,创建用户友好的界面,并与后端进行通信以获取数据并处理用户的请求。

前端队员姓名
韩业浩
许铭益

后端队员扮演着开发和测试的小组角色,主要商城购物系统功能的开发。它包括对数据库的操作、上述功能性分析中提到“四大模块”的实现,保证整个应用程序可以正常运转。

模块 具体功能 负责队员
商品模块 浏览界面 彭学智
商品详情信息 黄翼山
用户模块 注册功能 李奇龙
登录功能
用户信息
购物车模块 添加商品 李钰平
商品展示 许铭益
购物操作
订单模块 提交订单 李金强
支付功能

运维队员与PM(程序管理)和测试角色有着相似的功能,主要负责确定项目的完成时间,让前后端实现的相应功能可以更平滑地整合到一起,在保证团队能正常推进项目的同时,也可以给用户呈现一个比较良好的体验。

后端队员姓名
韩业浩
许铭益

3.2 完成情况

团队队员已经把Pycharm组装好,并配置了Django框架和Mysql数据库。

3.3 团队感想

  • 韩业浩
    个人感想:通过本次团队项目规划,我认识到了团队中各个队员的不可或缺性,以及项目部署可以让自己擅长的领域充分发挥
  • 黄翼山
    由团队完成的项目首先要选定技术方向。比如在安排开发语言上,除了要考虑这个项目的实际需求,还要考虑不同成员对各种程序设计语言和相关工具的熟悉程度。其次要给各个成员安排分工。整个程序分成多个模块,设计不同模块的工作量是不相同的而且是难以量化的。如果以模块为单位把工作派发到各人手上,很可能会使有的人时间相对紧凑,有的人时间相对宽松。再考虑到成员间技术水平的差异,两个人实现同样的功能的耗时也会不同,这就给计算成员贡献带来很大麻烦。
  • 李金强
    本周对该项目所需的技术和框架的进行了学习,这也是第一次团队合作开发项目,希望能通过该项目有所收获。
  • 李钰平
    在这次的团队项目合作中,我认识到了团队成员之间的交流、分工是最重要的,也是一个项目开启的必要条件。在决定做一个项目时,团队必须确定一个主体的目标和实施路线。成员要明确自己的任务,成员之间也要积极的汇报自己的进度、提出面临的问题、提出积极的建议交于团队。这样,团队就能迅速的做出调整。还有就是要不断的对代码进行检查并测试,这有助于及时发现问题并解决。最后,希望一切都顺利。
  • 李奇龙
    在这次的团队协作当中,我深刻地认识到沟通是最关键的一部分。在项目中,清晰、及时的沟通是成功的关键。团队成员之间应该积极分享信息,讨论问题,提出建议,确保每个人都了解项目的进展和目标。其次,我也发现在项目开动之前,我们应该明确好角色,团队成员需要了解自己的角色和责任,并与其他成员协调合作。同时,在项目开发过程中,可能会出现变化和新的需求。团队成员应该灵活适应这些变化,并迅速调整计划和策略。最后,团队之间的开发人员也应该确保代码审查,以提高代码质量和减少错误,这也有助于发现潜在的问题,并确保整个团队都遵循最佳实践。
  • 彭学智
    在这次软件工程小组作业中,我们进行了几次简短的会议,主要目的是讨论项目的整体规划、任务分配和进度安排。以下是我在这几次短会中的感想:
    目标明确:在会议中,我们明确了项目的目标和预期效果,这让我们对项目的整体方向有了清晰的认识。同时,我们也制定了一些具体的目标,以便我们在后续的工作中可以更好地衡量我们的进展。
    分工合理:在会议中,我们根据每个成员的技能和经验为他们分配了相应的任务。这样既可以保证每个人都有机会发挥自己的长处,又可以避免重复劳动,提高整体的工作效率。
    进度规划:为了确保项目能够按时完成,我们制定了一个详细的进度计划。我们会在每个阶段设定一个明确的截止日期,并定期检查每个人的工作进度。这样可以帮助我们及时发现问题和调整计划。
    积极讨论:在短会中,我们都积极参与了讨论,提出了自己的想法和建议。这让我们能够更好地了解彼此的观点,并在此基础上达成共识。这种积极的氛围有助于提高团队的凝聚力和工作效率。
    总的来说,这几次短会让我对项目有了更深入的了解,也更加有信心完成这个项目。我相信在我们的共同努力下,我们一定能够取得满意的成果。
  • 许铭益
    经过了这种的小组讨论和项目分工,我对于整个项目的流程有了一定了了解,同时对项目各个部分的人员部署也产生了一定的思考。在接下来的合作中,我会做好自己的部分,并深入项目中,努力提升自己的项目经历。
posted on 2023-11-02 22:12  llalala123  阅读(74)  评论(0编辑  收藏  举报