饕餮的抉择
——软件工程选题报告(第七小组基因重组)
一、项目目标及意义
1.1背景调查
福州大学有教职工3223人,其中专任教师2212人,在校普通本科学生39725人,各类博、硕士研究生16201人。其中每日在食堂就餐的人数有3.5万左右。因此,学生食堂的存在和发展状况不仅仅是关系到学生的生活问题,而且在更大程度上关系到学生的身体健康和学习状况。然而,据调查得知:学生群体和食堂之间存在着很多的不和谐因素,如果任由这些因素蔓延和发展,势必会影响到学校的正常运行和学生的身体健康。
以旗山校区为例,旗山校区拥有京元餐厅、朝阳餐厅、丁香园、紫荆园、玫瑰园、桃李园六大食堂,学生大多数都只对其中一两个餐厅比较了解,对于剩下的食堂都会比较陌生,在此种场景下,同学们对于提前了解各食堂档口的需求就比较强烈。同时,由于不了解,很多同学都存在“选择困难症”的问题,希望得到良好的帮助。
1.2项目目标
本项目计划开发一个以方便学生日常用餐的小程序,通过本项目对于学生对于食堂饭菜的评价信息的汇集来帮助食堂餐食的改进与完善,且解决福州大学旗山校区的同学们对于三餐如何选择的问题,通过转盘的随机性,让学生不再纠结“等会吃什么?”。该小程序具备以下功能:
1.菜单界面:
本界面可查询每个食堂每个摊位的饭菜信息,包括名称、价格、口感等,用户可以对饭菜进行评价和收藏,方便用户查看自己感兴趣的饭菜
2.转盘决定功能:
小程序提供两种类型转盘:官方转盘和自定义转盘
-官方转盘:
根据餐品评价以及餐品类型分出不同类型转盘,例如:轻食类、重油重盐类。
根据食堂地址分出转盘,例如:紫荆园、玫瑰园……
大杂烩转盘:所有餐品放入一个转盘,用户没有任何纠结,直接选择
根据价格区间分出不同类型转盘,例如:1~10元区间,10~15元区间
-自定义转盘
此转盘初始为空转盘,用户可以根据自身喜好选择餐品放入转盘,更具灵活性
3.新品增加:
用户可申请添加新餐品,通过管理员审核后即可添加
4.线上支付:
用户可以直接通过小程序进行支付。
1.3项目意义
针对商户而言,微信小程序的餐厅点餐系统能够满足简单的基础应用功能。商户可以通过该系统了解消费者对菜品的评价和需求,从而优化菜品的研发和经营策略。这样一来,商户可以降低餐厅的经营成本,减少人工的雇佣费,并吸引更多潜在客户。与采用人工预约就餐的方法相比,小程序点餐系统不仅效率更高,而且不容易出错,手续也更为简洁,同时也减少了大量人力的需求。
对于点餐系统的用户来说,基于微信小程序的餐厅点餐系统实现了"用完即走"的概念。这样一来,用户可以减轻手机内存的负担,并且操作非常方便简洁。该系统将点餐与互联网相结合,避免了店内繁琐的点餐和付款排队环节。用户可以直观方便地进行点餐,并且可以直接使用微信支付进行付款。相比传统的餐厅点餐方式来说,微信小程序点餐系统更加注重用户体验,更加人性化。此外,该系统还可以为消费者提供一个方便、准确、客观的菜品评价平台,帮助他们更好地选择餐厅和菜品。
对于小程序的开发者来说,微信小程序点餐系统的开发门槛相对较低,难度也不及传统 App 开发。该系统的设计不仅提高了开发者的开发效率和能力,而且使用了云开发技术,使得开发程序的审核、分发和开发系统的更新迭代变得更加轻松。开发者的代码几乎可以实现实时云备份,将个人数据资料通过云存储的方式备份在网络上。同时,该系统的设计也为后来者提供了很好的参考意见。
二、可行性分析
2.1技术分析
2.1.1难度/难点
①与其他开发者,产品经理之间的沟通。
②优化小程序结构使其足够轻量级。
③不同移动设备之间的适配。
④开发周期短,需要学习新技术。
⑤提供灵活的交互。
⑥如何协同开发,以及项目文档的规范性。
2.1.2技术需求
1.前端展示:包括用户界面设计和交互设计,需要使用到的技术有HTML,CSS,JavaScript等。
2.后端服务:包括服务器和数据库的建设,需要使用到的技术有Node.js,Express,MongoDB或MySQL等。
3.数据分析:需要对用户行为进行数据收集和分析,以便更好地提供服务,这需要数据分析技术和相应的人才。
2.1.3技术平台和工具
1.前端展示:使用微信小程序开发框架,它提供了丰富的组件和API,可以方便快速地开发出体验良好的小程序。开发工具使用微信开发者工具,它提供了代码编辑、实时预览、真机调试等功能。
2.后端服务:使用Node.js和Express框架搭建服务器,处理前端请求并管理数据库。数据库方面,考虑到数据存储和查询的需要,我们可能使用MongoDB或MySQL。
3.数据分析:使用数据分析工具,例如Google Analytics或类似的产品,来收集和分析用户行为数据,以优化小程序的性能和用户体验。
以上技术平台和工具的选择主要是根据项目的实际需求来确定,同时也考虑了开发效率和成本等因素。在具体实施过程中,我们将严格按照开发流程和标准进行操作,确保技术上的可行性和稳定性。同时,对于可能遇到的技术问题,我们将及时采取有效的解决措施。
2.2开发人员分析
2.2.1 开发人员的必要技能和工具
人员组成 | 能力要求 |
---|---|
前端开发人员 | 具备HTML和CSS、JavaScript、前端框架、前端工具、前端测试、项目管理和团队协作等能力 |
后端开发人员 | 需要掌握数据库、服务器、API等方面的技能,以及至少一种编程语言和框架。后端开发者的主要职责是分析需求、编写代码、测试和调试、部署和维护 |
UI设计人员 | 具备创意思维、用户体验理解、图形设计技能、技术了解、学习和研究的能力、分析和解决问题的能力以及沟通和团队合作能力等多种条件要求 |
PPT制作人员 | 对项目总体有一定认识和想法,具备对各个阶段的分析与总结能力 |
2.2.2 开发人员的经验和能力
本项目的开发团队并不拥有丰富的移动应用开发经验。所以,团队成员之间有密切的配合和沟通能力,是本次开发过程中能否顺利的重要因素,高效沟通能够在开发过程中及时解决问题,确保项目的顺利进行。
我组共拥有9名成员(前端工程师3-4名、后端工程师3-4名、UI设计1名、PPT制作1名,分工较为合理,同时为均衡我组前端工程师过多的问题,我组可能会分配部分前端工程师同时参与项目的测试、UI、运维等方面,以确保开发工作可以顺利进行。
2.3成本预算分析
开发本小程序需要考虑的经费预算包括但不限于以下几个方面:服务器及域名费用、云服务费用、维护和升级费用等。在成本核算时,需要考虑到项目的实际需求以及开发过程中的各种开销。
2.4时间要求分析
根据本小程序的功能需求和复杂程度,预计需要投入的时间约为1-3个月,包括测试和调试时间,人力成本为9人。在开发过程中,需要严格按照开发计划进行,控制好开发进度。本项目的开发可行性在时间要求上并没有太大制约,具体开发时可以根据不同分工组员的进度进行微调,有很大冗余性,项目完成延期风险性较小。
2.5社会因素可行性分析
2.5.1 用户需求和反馈
本小程序解决的是用户日常生活中的“今天吃什么”的问题,具有很高的实用性和使用价值。通过市场调查和分析,我们发现此类小程序的需求较大,用户反馈也较为积极。因此,从用户需求和反馈角度来看,本小程序的可行性较高。
2.5.2 市场前景
由于本小程序能够为用户提供便捷、实用的服务,因此具有较大的市场前景。在推广和应用方面,可以通过社交媒体、线下传播等方式进行宣传和推广,吸引更多的用户使用和分享。
2.6风险分析
用户数据量过大的时候,服务器可能无法承受负荷,即服务器可能存在的风险。系统开发过程中可能会涉及到一些合同、侵权、责任以及各种与法律相抵触的问题,这些都是潜在的风险。开发的小程序可能会被其他人所攻击,即被攻击的风险。由于技术力量不足,开发环境工具不足造成的风险。主要包括技术风险,质量风险。
①技术风险。指潜在的维护、验证、接口、实现以及设计等环节出现的问题,存在技术空白及未知领域,为软件开发工作带来较大的风险。
②质量风险。未经权威部门确认的功能标准、开发规范以及质量技术标准,均可能导致软件无法达到预期标准,从而引起质量风险。
③人员风险。技术人员缺乏专业知识、综合素质较差,并未深刻理解业务的性质,因而并未做好本职工作。
三、项目计划
3.1软件开发模型以及软件
3.1.1开发模型
采用敏捷开发模型,敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。
选择敏捷开发有以下理由:
- 项目规模相对较小,不需要过多的文档和流程控制,敏捷开发模型可以更好地适应项目的需求。
- 敏捷开发模型强调迭代和快速响应变化,可以更好地适应项目需求的变化和调整。
- 项目周期相对较短,采用敏捷开发模型可以更快地交付可用的系统版本。
- 团队规模较小,敏捷开发模型可以更好地促进团队合作和沟通,提高开发效率和质量
总之,采用敏捷开发模型可以更好地适应本项目的需求和特点,提高开发效率和质量,同时也能够更好地满足客需求和期望。
3.2.2开发软件
软件 | 功能 | 用途 |
---|---|---|
微信小程序开发工具 | 是一种不需要下载安装即可使用的应用程序,它依托于微信平台,可以快速实现各种功能 | 创建和调试小程序 |
GIT | 一个开源的分布式版本控制系统,用于跟踪文件更改 | 管理项目的版本控制 |
Markdown编辑器 | 一种轻量级标记语言,允许人们使用纯文本格式编写文档 | 编写项目的文档 |
在线协作工具 | 共享文档提高团队协作的效率,例如Trello、腾讯文档等 | 进行讨论和分配任务 |
代码审查工具 | 自动检查代码中的问题和风险。例如SonarQube等 | 确保代码质量 |
数据库管理系统 | 创建和维护数据库。例如MySQL等 | 为了存储和管理项目数据 |
UI设计工具 | 设计小程序的界面和交互效果。例如Sketch、Figma等 | 提高用户体验 |
DE集成开发环境 | 编写、调试和测试代码。例如Visual Studio Code等 | 方便开发和调试代码 |
测试工具 | 自动化测试和性能测试。例如JMeter、Selenium等 | 确保小程序的功能和质量 |
部署工具 | 自动化部署过程并减少人为错误风险。例如Jenkins等 | 将小程序部署到服务器并进行上线前的最后测试 |
我们也会定期检查这些软件的更新情况并及时更新到最新版本以确保项目的顺利进行。
3.2时间安排
我们将整个项目分为五个阶段,包括需求分析、设计、具体实现开发、测试修缮和准备汇报答辩。以下是每个阶段的时间安排:
3.2.1需求收集与分析(1周)
我们将充分与学校同学沟通,了解他们的需求和期望,并梳理出所有的功能和非功能需求。同时,我们会制定一个详细的项目计划,包括每个阶段的任务、里程碑和交付物。
3.2.2设计(1周)
在这个阶段,我们将根据需求分析的结果进行UI设计和技术选型。同时,我们会编写详细的设计文档,包括界面设计、数据库设计、系统架构设计等。
- 数据库设计:由后端开发工程师负责数据库设计工作
- UI设计:由UI设计师负责系统界面设计工作
- 核心功能模块和框架搭建:由后端开发工程师负责核心功能模块和框架搭建工作
3.2.3具体实现开发(3周)
在这个阶段,我们将根据设计方案进行编码和开发工作。我们会按照任务分解和里程碑计划逐步完成各个功能模块的开发。同时,我们会进行持续的代码审查和单元测试以保证代码质量和稳定性。
由后端开发工程师和前端工程师共同负责具体功能实现工作
3.2.4测试(1周)
- 测试和调试阶段:由测试工程师负责系统的测试和调试工作。我们将对开发好的小程序进行系统测试、集成测试和用户验收测试。我们计划采用自动化测试工具来提高测试效率和准确性。同时,我们会根据测试结果对程序进行优化和完善。
- 性能优化和安全加固阶段:由后端开发工程师负责系统的性能优化和安全加固工作
- 用户反馈的问题修复阶段:由开发团队共同负责根据用户反馈修复系统问题
3.2.5准备汇报答辩(1周)
我们会对整个项目进行总结和回顾,整理相关资料并归档保存制作PPT并且对老师和同学来汇报我们的结果与制作的过程。
以上是我们初步的时间安排计划,可能会根据项目的实际进展情况进行调整。但我们会确保在每个阶段都按照计划完成任务并向老师汇报项目进展情况。
3.3人员分工
任 务 | |
---|---|
UI设计师(1人) | 负责系统界面设计、交互效果优化等工作。包括主题配色、页面布局和图标设计等 |
前端开发人员(3人) | 负责小程序的前端开发,包括页面布局、交互效果和性能优化等。将后端提供的API接口与界面进行整合,实现系统的前端展示和用户交互功能 |
后端开发人员(4人) | 负责系统开发工作,包括务器架构设计、数据库设计和API开发等 |
PPT制作( 1人) | 负责制作汇报以及答辩的ppt及测试程序与用户体验,数据收集的工作 |