Part 1
在这个part中,我主要实现的是调查梳理中山大学为学生提供的软件产品:中山大学APP的生活攻略部分内容。我用到了系统化的手段来收集和整理中大APP的相关信息,具体如下:
一、用户初始界面
1.1 功能分析
如上图,打开中大APP,初始的用户交互界面如上。
首先,在界面的最顶端有搜索窗口。用户可以通过键入关键字来进行功能搜索,从而进入相应的功能界面,如下:
点击右上方的“取消”按钮,就可以返回首页。
在搜索窗口的右端,还有两个功能图标,分别是“校园通知”图标和“二维码扫描”图标。点击“校园通知”图标,则可以进入“校园”通知功能页面,查看相应的校园通知,如下:
如上图,用户可以在校园通知页面查看已订阅的通知,如校车通知,个人通知等。用户可通过上方的搜索窗口进行相应的通知搜索。最后,用户可以点击右上角的“订阅设置”功能图标进入订阅设置页面,来进行通知的订阅或取消订阅操作,如下:
点击返回,即可返回“校园通知”页面。再次点击返回,即可返回首页。
接下来,在滚动图片下方就是功能选择窗口。用户可以在首页通过点击相应的功能按钮进入相应的功能界面。
为了在首页点击某一功能按钮,用户需要点击“...”按钮进入“应用市场界面”并选择需要点击的功能,点击“加到首页”按钮将该功能加入首页,如下:
点击返回,即可返回首页。
在首页下方还有“新闻公告”区域,用户可点击上方“更多”查看更多相关新闻公告;“消息”区域,用户可点击上方“更多”查看更多相关消息;“校园卡”区域,用户可在该区域查看校园卡余额;“课程”区域,用户可在该区域查看正在进行中的课程以及下堂课的信息,如下:
最后,在首页最下方有界面选择区域。用户选择“应用”按钮可直接进入全部功能选择页面,选择“发现”按钮可以发现相关校园动态,选择“个人”按钮可以查看个人信息:
Part 2
在这个part中,我负责从产品特色,业务支持,应用场景实例和子产品与工具等方面对云项目管理服务软件腾讯CODING DevOps进行了调查,从而完成了类似竞争产品的对比分析报告。调查的具体结果如下:
产品特色
CODING DevOps 包括代码托管、项目管理、测试管理、持续集成、制品库等多款产品和服务,涵盖软件开发从构想到交付的一切所需,使研发团队在云端高效协同,实践敏捷开发与 DevOps,提升软件交付质量与速度。
完整的自研开发工具
覆盖开发管理全过程工具服务,具备完整的自研工具能力,无需对接第三方。
开发过程自动化
从代码在线管理到持续集成、自动化测试、自动部署过程,为项目的持续性交付提供高度自动化的能力。
快速发布应用的能力
依托腾讯云强大的 CDN 能力,通过全球连通极速网络进行上传下载,快速完成应用分发
多角色岗位高效协作
适合团队内产品、设计、研发、测试、运营等不同的角色岗位同平台无缝协作,提高各部门间的信息流通透明化,快速接收业务部门的反馈,帮助产品迭代优化。
支持敏捷或瀑布工作流
完整的研发协作工具链深度结合敏捷研发理念,帮助您对产品进行迭代规划, 让 Scrum 过程风险可控,同时可支持企业进行瀑布式开发模式,有效控制项目风险。
多维度数据报告
支持对代码、项目进度、人员工作量等不同维度输出详尽的数据报告,为团队管理者提供决策依据,调整项目计划和合理安排研发人力。
业务支持
1.手机/移动app开发
2.大学/教学机构管理系统开发
3.数据库应用与管理
4.网上银行系统开发
5.云上服务开发
.......
应用场景实例
1.敏捷开发实践
从用户故事开始,到需求池管理以及任务拆解、缺陷管理、测试管理,敏捷开发过程都有序建立。帮助企业以最低的预算、最快速的迭代方式验证产品版本投入市场的效果。
2.瀑布流开发实践
CODING DevOps 涵盖了从需求规划、开发计划、需求评审、开发测试、持续部署整个研发生命周期的管理,满足不同规模团队的瀑布式研发模式,让项目严格按计划流程推进,有效控制项目风险。
子产品和工具
1.代码托管
为开发者打造的云端便捷代码管理工具,旨在为更多的开发者带去便捷、高效的开发体验,全面支持 Git/SVN 代码托管,包括代码评审、分支管理、超大仓库等功能
2.项目管理
包含迭代管理、需求管理、任务管理、缺陷管理、文件/wiki 等功能,适用于研发团队进行项目管理或敏捷开发实践,让项目开发过程风险可控,达到可持续性快速迭代。
3.测试管理
为测试团队提供敏捷测试工作方式,提高测试与研发团队的协同效率。提供可视化的工作视图以及数据报告,随时把控测试进度和规划。
4.持续集成
全面兼容 Jenkins 的持续集成服务,支持 Java、Python、NodeJS 等所有主流语言,并且支持 Docker 镜像的构建。支持主流的 Git 代码仓库,包括 CODING 代码托管、GitHub、GitLab 等。
5.制品库
为研发团队提供优质高效的构建物管理服务,把控构建物质量,用以管理源代码编译后的构建产物,支持 Docker、Maven、Helm、Npm 包等常见制品库类型。
6. 持续部署
用以管理软件在经过构建之后的发布和部署交付过程,可以无缝对接上游 Git 仓库、制品仓库实现全自动化部署,同时支持 Webhook 等外部对接能力,方便集成各种开发、运维工具
Part 3
在这个part中,我主要完成了组织项目启动会议中项目章程的编写。项目章程是证明项目存在的正式书面说明和证明文件。由高级管理层签署,规定项目范围,如质量、时间、成本和可交付成果的约束条件,授权项目经理分派组织资源用于项目工作。通常是项目开始后第一份正式文件。主要包括两方面内容:一是项目满足的商业需求,二是产品描述。通常也会包括对项目经理,项目工作人员,项目发起人和高层管理人员在项目中承担主要责任和任务的描述。我编写的项目章程部分大致如下:
中山大学学习资源共享平台开发项目章程
项目名称:中山大学学习资源共享平台
项目开始日期:2020年4月23日
项目结束日期:2020年7月25日
项目目的:为中大师生提供一个统一、便利的学习资源共享平台,建设中大全体师生的共享网盘,为教学、学习提供便利
成功标准:
- 在规定时间内交付完整产品
- 平台能够实现基本功能:师生可以将作业、试卷、复习题等学习资料上传至平台,审核通过后能够被所有用户看到
- 平台在中大能够有一定知名度,有稳定的用户上传和浏览学习资料
高层级需求:
- 授课老师与选课学生可在平台中创建课程并进行评价,评价内容对所有人可见,作为学生选课参考的依据
- 为每学期在授课程建立交流渠道,师生可在平台中讨论、发布作业或资源、提交作业等,甚至可能成为中大的网课教学平台
整体项目风险:
- 需求风险:因为很多教材、学习资料(比如考研资料)的需求会随着时间发生变化,如果不能及时更新的话就会导致师生获得的资料信息不准确,即存在需求风险。
- 计划风险:因为项目的完成时间可能会随着老师的安排发生改变,这样就会导致制定的计划改变,形成计划风险。
- 组织和管理风险:一方面,项目的审查和决策的周期可能会比预期时间长;另一方面,项目的管理可能会随着项目人员的更替(开发人员毕业等原因)出现风险。
总体里程碑进度计划:
- 2020年4月23日——2020年5月1日:进行相关调研分析工作,收集客户需求。
- 2020年5月1日——2020年6月15日:完成公众号服务器的基本搭建工作,并完成基本内容编写。
- 2020年6月15日——2020年6月25日:进行内测,发现可能存在的问题并加以解决。
- 2020年6月25日——2020年7月15日:进行公测,收集用户满意度评价,对可能存在的一些小的不足进一步进行改进。
- 2020年7月15日——2020年7月25日:正式上线,并进行宣传推广工作。
预先批准的财务资源:
- 基本预算30000元
- 基本开发设备:PC、服务器等
关键相关方名单:
- 中山大学教务部
- 中山大学全体师生
Part 5
在这一部分中,我主要负责设计测试指标的度量,主要就是代码覆盖率。
代码覆盖(英语:Code coverage)是软件测试中的一种度量,描述程序中源代码被测试的比例和程度,所得比例称为代码覆盖率。以下是代码覆盖率的一些基本准则:
-
函式覆盖率(Function coverage):有呼叫到程式中的每一个函式(或副程式)吗?
-
指令覆盖率(Statement coverage):若用控制流图表示程式,有执行到控制流图中的每一个节点吗?
-
判断覆盖率(Decision coverage):(和分支覆盖率不同)若用控制流图表示程式,有执行到控制流图中的每一个边吗?例如控制结构中所有IF指令都有执行到逻辑运算式成立及不成立的情形吗?
-
条件覆盖率(Condition coverage):也称为谓词覆盖(predicate coverage),每一个逻辑运算式中的每一个条件(无法再分解的逻辑运算式)是否都有执行到成立及不成立的情形吗?条件覆盖率成立不表示判断覆盖率一定成立。
-
条件/判断覆盖率(Condition/decision coverage):需同时满足判断覆盖率和条件覆盖率。
在实际操作中,我用到的质量分析工具是visual studio enterprise 2019。visual studio enterprise版本中会自带测试代码覆盖率的功能。
在点击分析所有测试的代码覆盖率后,我们就可以选择“代码覆盖率结果” 窗口中的按钮“显示代码覆盖率着色” 。 默认情况下,测试覆盖的代码以浅蓝色突出显示。
接下来我们就来看代码覆盖率的测试结果,首先是前端主要代码:
代码文件 | statement | branches | functions | lines |
index.js | 100% | 100%(0/0) | 100%(0/0) | 100% |
resource,js | 100% | 82% | 100%(0/0) | 100% |
user.js | 100% | 87% | 100%(0/0) | 100% |
signin.spec.js | 100% | 100%(0/0) | 100%(0/0) | 100% |
signup.spec.js | 84% | 100%(0/0) | 100%(0/0) | 92% |
然后是后端主要代码:
代码文件 | statement | branches | functions | lines |
asgi.py | 100% | 100%(0/0) | 100%(0/0) | 100% |
settings.py | 100% | 100%(0/0) | 90% | 79% |
urls.py | 100% | 100%(0/0) | 100% | 100% |
clear.py | 100% | 100%(0/0) | 100% | 100% |
manage.py | 62% | 100%(0/0) | 100% | 82% |