创新工程实践营项目汇报内容 - bettermorn/ACMWDevHubPPT GitHub Wiki
时间:15分钟
学习目标
-
- 掌握产品设计和开发的知识和方法;
-
- 熟悉项目管理知识体系以及项目管理的基本方法;
-
- 掌握项目管理中沟通管理和风险管理的主要内容、分析工具;
-
- 熟悉敏捷开发的职能分配、具体活动和产出成果;
-
- 应用敏捷开发方法完成一次软件开发迭代活动;
-
- 掌握软件开发的设计、编码和测试流程,利用软件开发工具如IDE(包括质量检查相关插件工具)、团队协作工具(git/github)和知识技能完成软件作品;
-
- 掌握软件开发中获取工具和知识、建立自己知识库的基本方法;
参考以下内容
https://github.com/bettermorn/ACMWDevHubPPT/raw/master/UploadImg/%E8%A1%A84.1%E8%AE%A1%E7%AE%97%E7%9F%A5%E8%AF%86%E8%A6%81%E7%B4%A0.png
- 掌握软件开发中获取工具和知识、建立自己知识库的基本方法;
参考以下内容
考核内容
第一部分:用幻灯片展示产品介绍 8分钟
1.产品设计
1.1 产品使命、口号和策略
1.1.1 使命
1.1.2 使命口号
1.1.3 目标用户
1.1.4 如何获得用户
1.1.5 团队优势
1.1.6 如何做到差异化
1.2 产品定义
产品描述的最简单模板
对于 (目标用户)
他们 (诉求和机会)
产品/项目 是一个(产品/项目)类别
它能够 (关键特性,优势和客户为什么选择的理由)
不同于 (竞争对手的产品)
我们的产品/项目 (关键的差异化特性)
1.2.1 解决的问题
1.2.2 对客户的价值(采用用户故事描述,包含用户、活动和价值三个要素)
作为(用户),完成了(活动),带来什么(价值) 举例:作为一个“网站管理员”,我想要“统计每天有多少人访问了我的网站”,以便于“我的赞助商了解我的网站会给他们带来什么收益。”需要注意的是用户故事不能够使用技术语言来描述,要使用用户可以理解的业务语言来描述。参考链接 http://www.scrumcn.com/agile/scrum/4823.html
1.2.3 解决方案:网站、微信小程序或者Android应用
2.产品设计应用的原则
参考【实战技能】产品设计小文集锦 写出团队应用的产品设计原则
3.产品实现
3.1 用户体验设计考虑的因素
3.2 产品所用编程语言及IDE、平台、框架等,写明版本号,可用表格表示,并写在项目的readme.md中
注意:技术选型很重要,选择适合应用的框架,不要太重,也不要太轻。 解释技术选型的原因。可参考 视频 【架构师】软件系统技术选型标准
条目名称 | 条目内容 | 版本号 | 备注 |
---|---|---|---|
程序设计语言 | Java | JDK 17.0.10 | |
IDE | IntelliJ IDEA | 2023.2.4 (Community Edition) | |
Web应用框架 | Spring Boot | 3.3.0 | |
平台 | Mendix低代码平台 |
3.3 代码仓库链接及代码提交历史截图
包括每个人提交的次数截图,参考链接 https://github.com/[accountname]/[reponame]/pulse
注意:理解git和github代码仓库原理
3.4 安装、设计、开发中遇到的主要问题及解决方法汇总,可用表格表示,并用md或者wiki存储在项目仓库中
问题类别 | 问题名称 | 发生原因 | 解决办法 |
---|---|---|---|
3.5 软件概要设计
3.5.0 使用工具
画图工具 https://github.com/bettermorn/ACMWDevHubPPT/wiki/%E7%94%BB%E5%9B%BE%E5%B7%A5%E5%85%B7
3.5.1 系统架构图,如Web应用的三层架构
注意:通常架构图从底向上绘制较普遍,从左到右较少,可根据实际情况选择 可参考 Django系统架构图1 Django系统架构图2
3.5.2 基础设施图,如只有一台服务器,可不画。
3.5.3 如果使用数据分析或者大数据/人工智能算法模型设计方法/区块链技术/数字孪生(虚拟现实XR)应用,请说明。
- 算法模型的名称,选择算法模型的原因
- 比较多种算法模型的实际效果,包括理论和指标
- 列出参考文献和开源代码仓库链接
3.5.4 数据库设计
关系型数据库包括E-R图即可,可使用数据库工具基于已有的数据库表逆向生成。如有图数据库,MongDB等NoSQL数据库,也需要说明。
3.5.5 接口设计:重要的业务功能(可与用户故事对应)和工具类设计
接口名称 | 接口功能 | 输入变量或对象 | 输出对象 | 备注 |
---|---|---|---|---|
payAli | 调用Alipay接口 | inputObj1,inputObj2,。。。 | outputobj1,outputobj2,。。。 | 需向支付宝申请付款账号 |
列出方法描述,包括方法名,输入变量(如果有),返回值(如果有),可参考 微信支付API统一下单 https://pay.weixin.qq.com/wiki/doc/api/app/app.php?chapter=9_1
- 工具 Swagger https://swagger.io/
- Java服务器端设计,例如Spring MVC,可使用JavaDoc自动生成,也可使用APIFox自动生成
jQuery、BootStrap或者React、Vue.js框架等
3.5.6 前端设计,例如 使用3.6 软件质量
截图展示相应内容
3.6.1 质量控制和保证方法
- 代码需要增加必要的日志
- 代码需要增加异常和错误处理
3.6.2 质量工具使用
- 展示遵循Java代码规范的p3c扫描记录。 https://github.com/alibaba/p3c 在IDE中可安装插件Alibaba Java Coding Guidelines,扫描记录中不能有blocker。
- 展示遵循Python 代码规范PEP8的结果。 对代码 Pycharm IDE,参考https://www.jetbrains.com/help/pycharm/tutorial-code-quality-assistance-tips-and-tricks.html 。对VSCode IDE,使用autopep8 automatically formats Python code to conform to the PEP8 style guide. autopep8插件可自动格式化 Python 代码,使其符合 PEP8 风格. 参考
- How To Encourage Best Practices in Python Programming By Complying With PEP8 Style Guide https://henryeleonu.com/how-to-encourage-best-practices-in-python-programming-by-complying-with-pep8-style-guide
- Python Code Quality: Tools & Best Practices https://realpython.com/python-code-quality/
- 展示Pylint的Python代码语义分析结果。 参考https://code.visualstudio.com/docs/python/linting, Pylint For VS Code, Pylint Plugin for IntelliJ IDEA & PyCharm, 注意:语义分析能突出显示Python 源代码中的语义和风格问题,通常能帮助识别并纠正可能导致错误的细微编程错误或编码实践。例如,语义检查可以检测到未定义变量的使用、未定义函数的调用、缺失的括号,甚至更细微的问题,如试图重新定义内置类型或函数。语法检查有别于格式化,因为语法检查分析的是代码的运行方式并检测错误,而格式化只是重构代码的外观。
- Python代码复杂度:
- Java代码复杂度,展示插件metricsreloaded的运行结果,也可安装插件CodeMetrics查看复杂度
3.7 代码统计
截图展示相应内容
- Jetbrain系列IDE可以使用Statistic插件
- VS Code可用VS Code Counter插件
模块数
例如代码的文件目录、包等。
行数
可以分不同程序语言说明。通常插件会完成此功能。
第二部分:展示作品功能 2分钟
在本机运行作品即可,展示主要功能,逻辑清晰,功能完整。