项目 | 内容 |
---|---|
课程:北航-2020-春-软件工程 | 博客园班级博客 |
要求 | 强制转会与项目展现 |
咱们在这个课程的目标是 | 提高团队管理及合做能力,开发一项满意的工程项目 |
这个做业在哪一个具体方面帮助咱们实现目标 | 展现项目并总结 |
VisualPytorch发布域名+双服务器以下:
http://nag.visualpytorch.top/static/ (对应114.115.148.27)
http://visualpytorch.top/static/ (对应39.97.209.22)html
我的介绍详见:团队介绍和采访前端
“假”相 | 姓名(博客园) | 成员简介 | 角色定位 |
---|---|---|---|
![]() |
孙Y | 管控项目进度、成员任务分配、贡献分计算、项目部署、会议组织、项目分享、博客撰写等多种任务。 | PM/后端开发者/项目部署者/博客撰写者 |
![]() |
钟RH | 提出许多新颖的idea,推进前端部分进度。进行项目的部署并修复了不少bug。 | 前端负责人/项目部署者 |
![]() |
吴F | 查找了前端模板,实现了模型搭建模块的主要逻辑。 | 前端开发者 |
![]() |
苏HX | 实现了模型保存及帮助文档的前端逻辑。 | 前端开发者 |
![]() |
陈CW | 撰写了详细的帮助文档,设计了先后端对接的json接口,推进后端部分进度。 | 后端负责人/文档撰写者 |
![]() |
许TL | 4月中旬加入团队,在后端进行部分辅助工做。 | 后端开发者 |
看到目标用户使用产品的过程和评价,见用户反馈&bug
vue
事先定义的目标达到了么:模型生成数(332)达到了,但注册人数(64)还差一点,可能有如下缘由:git
团队的成员如何分工协做的?有什么经验教训?github
分为前端和后端两部分,由PM进行协调工做。互相之间可能存在误解,由于需求不是很是明确。django
团队是如何进行项目管理的?编程
经过github平台每人一个功能分支。json
团队如何平衡 时间/质量/资源 争取如期完成任务的?后端
实际上并无彻底按照需求完成任务。因为时间不足,开发仅有两个星期,同时免费版Jsplumb不支持,网络层封装
这一功能仍是没有实现,所以在此基础上的经典模型
也不能实现。转而实现了扩展更多的静态参数(如损失函数、优化器等)
及模型保存
。api
测试用例数目,代码覆盖率数目
先后端结合:4个数据集对应的经典模型,从搭建到代码跑通获得正确率结果
后端:使用Anaconda的coverage库进行后端覆盖率测试,19个样例(9个测试网络层,9个测试静态参数),整体覆盖率达到88%
运行测试用例获得代码覆盖率的视频录像
代码规范在哪里?NAG小组代码规范
齐全的文档在哪里?
有些项目是在原来的基础上改进的,那么咱们团队的软件工程项目质量有什么样的提升?
在前端设计与后端编译上有明显的提升。
原来的项目有些代码混乱,没有注释,没有详细的文档,大家的项目是如何更好解决这个问题的?明年的同窗继续开发这个项目,会不会出现相似的抱怨?若是一个新学生在一台新机器上想编译并运行你的项目, 请问能顺利完成么?有什么样的文档能指导新学生?
对于项目的目标用户是通常学生的项目, 大家如何找到学生作需求分析?他们给你什么样的反馈?
在需求分析中,咱们以组内分析为主,不过也经过询问、调查等方式作了一些需求分析,好比将项目推广给同窗时,会收集他们对项目的反馈信息。例如,有同窗在使用后反映在项目生成的代码loss有点高,以及网站反应速度不够快的问题,咱们将在之后的版本中进行相应调整。
除此以外,咱们的项目还提供了问题反馈界面,用户能够直接在项目中反馈相关问题,包括有关用户需求方面的问题。不过,目前还未收到有效的反馈信息。
在接下来的版本中,咱们会结合现有项目,作更为深刻的需求分析。
全部的项目都会收集到用户的数据,请问大家对这类数据作了什么样的分析,这些分析如何验证或推翻了原来的假设?这些数据如何帮助项目改进软件工程的质量?
咱们的项目中,共搜集了历史访问量、注册用户数和生成模型数三个数据。
咱们分析了访问量的状况,感受访问量并不如咱们的预期,多是因为咱们的宣传力度不够大,也多是因为对可视化神经网络模型的兴趣没那么高,也多是生成的代码性能不理想等其余缘由。注册用户数和生成模型数也是相似的结论。
使用了工做记录代替燃尽图,由于其信息含量更大,更能反映小组成员的工做。
详见发布声明α
菜市场、同窗群、博客
0:孙烨;1:钟瑞豪;2:吴凡;3:许天立;4:康洪基;5:陈从文;6:苏海翔
评分规则详见:团队贡献分分配规则
按照团队贡献分=300*(0.7*softmax(工做记录分+50)+0.3*互评分)
获得如下结果:
名字 | 角色 | 工做记录分 | 互评分 | 团队贡献分 |
---|---|---|---|---|
孙烨 | PM | 178 | 0.15976067589741974 | 67 |
钟瑞豪 | 前端Dev | 130 | 0.15553176387411125 | 57 |
吴凡 | 前端Dev | 69 | 0.15702927958866533 | 43 |
苏海翔 | 前端Test | 101 | 0.1547674682579001 | 50 |
陈从文 | 后端Dev | 98 | 0.15643689451435042 | 50 |
许天立 | 后端Test | 0 | 0.12225508130759383 | 23 |
所作软件最有特点的功能是什么,请着重介绍一下。活的用户如何从你的软件中获益的,请现场展现。见 VisualPytorch
页面 | 功能描述 | 页面展现 |
---|---|---|
登陆界面 | 一、用户的注册功能 二、用户的登陆功能 |
![]() |
框架构建 | 一、个性化构建本身的框架 二、可以保存为本身的个性化构建 三、可以实现参数调整 |
![]() |
模型管理 | 一、模型的删除功能 二、模型的查看 三、导出代码 |
![]() |
代码生成 | 一、根据所选框架生成特定代码 | ![]() |
问题反馈 | 一、能够向后台反馈存在的bug 二、能够看到以前反馈问题的应答 |
![]() |
用户统计 | 一、统计网站ip的访问次数,记录用户使用人数 | ![]() |
关于咱们 | 一、罗列有制做团队的具体信息,能够发邮件进行询问 | ![]() |
帮助文档 | 一、动图展现操做方式 二、对模型参数的文档 | ![]() |
咱们测试获得的bug详见:测试报告α
如下4个评价,在用户体验上反映出了不一样的bug:
用户注册的时候是否会考虑到强校验呢?
试了一下,用户名长度、符号,密码长度、符号没有校验,没有邮箱验证。
安全性这方面,若是想攻击服务器的话,脚本批量发送POST请求会产生垃圾用户数据,量大可能会拖垮服务器。
这确实是咱们没有考虑到的bug。
前端JS中对长度是有限制的,比较宽松。后端对应部分直接继承本来项目的代码,未作修改。邮箱验证后续版本会经过django相关插件实现,提高安全性。
建议把静态资源整合整合,如今资源请求太多了加载贼慢
还有有条件的话建议挂上cdn
以及感受还算来得及的话,js部分能够整合整合逻辑,更来得及一点的话,能够干脆换上vue
在1核1G的服务器上挂载的静态资源太多,现已将gif及图片改为外连接的形式,缓解资源请求压力。后续考虑其余缓解方式。
不支持经典模型的导出,搭建一个模型对于一个新手来讲仍是太麻烦
建议设置一些典型的样例,否则根本不知道该怎样操做
原本在\(\alpha\) 阶段应该实现经典模型功能的。实际上后端json已经基本实现了。但无奈卡在了前端工具上,\(\beta\)阶段会实现这一功能。
大家的项目对于我来讲没有什么吸引力,感受拖来拖去尚未手写来得方便
建议添加一些新功能,好比reference,实时查看大家代码的效果
这位同窗说的的确很正确,咱们的项目对于多数人来讲没有什么吸引力,不多会有人直接用咱们的网站去写代码。后续添加reference功能,上传训练好的模型在线推理。
总结 | 在Alpha阶段学到了什么 | 对软件工程的教育、课程的批评建议 |
---|---|---|
孙烨 | 对于这一庞大的工程进行分解,合理分工,协做完成。在讨论和会议中锻炼本身组织和管理能力。 了解了如何作一个PM协调小组成员,清晰了项目从设计到发布维护的全过程。 |
老实说,课程设计的不是很人性化,让我想起上学期的无线网络系统:老师觉得咱们会了一切,却根本不能理解做为刚入门学生进行工程化项目的曲折之路,可是又一边Push进度,提出不少强制要求。 实际上痛苦事后才会有收获,被软工折磨的日日夜夜,成长和收获也是成正比的。 |
钟瑞豪 | 系统了解了先后端的各类框架/服务器部署相关知识,加强了与同组同窗的合做。 系统了解了软件工程的相关知识并进行了实践 |
与其余老师的平行班级相比,分数基本一致,任务量感受不在一个数量级。 |
吴凡 | 沟通的重要性 | 但愿博客少一点 |
苏海翔 | 学到了django等模型框架(本身还稍微看了一点其余的框架,好比vue什么的),还有jsplumb这样的插件,掌握了如何快速套用前端模板的方法,同时对前端debug的方法更加熟悉。对于不一样功能,不一样样式的前端代码,都能快速读懂并进行须要的操做。 | 关于软件工程的教育,我以为单靠项目+博客的形式,不足以使学生充分学习和体验工程化方法的每一个步骤。 我的项目和结对项目的难度有点大,时间也比较紧,自由度也比较低,感受不像是软件工程课的做业,而是编程课的做业。虽然在代码质量与代码测试方面学习到不少东西,但感受仍是应该选择一些需求比较模糊,而开发难度不是特别大的项目做为软工项目的题目。 另外,虽然课程上并无明确的限制,但不管是从给定的题目来看,仍是从各组最终选定的项目来看,项目的主题大多偏向于学习性质(特别是计算机学习),不少项目均把学生做为典型用户,有些项目的应用场景被限制在校园范围内。虽然这样的选择也有本身的道理,但考虑软件应用的普遍性,适当打开思惟,拓宽选题思路也何尝不可。 |
陈从文 | pytorch神经网络概念知识,django的使用以及先后端交互和DEBUG的基本流程 了解了团队分工和软件开发的大体流程。 |
能够更多点实践知识少点理论知识,同时让助教参与到项目开发中。 |
许天立 | 软件开发的技能不少是我以前从没接触过的。好比说咱们此次用的django这个框架,我在这以前就历来没用过,也没接触过任何一种框架。而现有的框架那么多,更新换代那么快,也不能说精通全部的框架,这个时候,学习能力很重要,alpha阶段,我最大的收获可能就是自学的能力 | 无 |
在接下来的版本中,咱们会更多地花时间去支持更多模型的搭建、丰富产品内容、提高用户体验。
包括\(\alpha\)阶段但愿实现而还没有实现的:
已经实现还能够进一步改进的:
以及须要在将来实现的:
在\(\beta\)阶段,咱们会继续努力,争取完成以上预约的目标,提供一个尽量实现的最好的产品