实验二 软件工程个人项目
实验时间 2020-3-5
Deadline:2020-3-18 24:00,以博客发表日期为准
评分标准:
- 按时交 ,满分100分,代码和博客各50分。检查项目包括:
- 未提交项目源码到Github上,代码部分不得分;未提交博客到班级博客上,博客部分不得分;
- 根据项目完成质量累计加分,完成基本功能原则上不超过满分100分,完成附加功能,给予加分
- 代码提交(有代码规范说明,否则倒扣分)
- 博文规范(行文清晰流畅,如果行文中涉及代码,请使用博客园代码控件,或使用MarkDown语法块)
- 抄袭 - 倒扣本次作业分数
- 助教评分截止日:2020-3-21 12:00,在此日期前同学们若及时根据博客评论意见完善作业,将按照完善后作业质量进行评分。
1、实验目的与要求
(1)掌握软件项目个人开发流程。
(2)掌握Github发布软件项目的操作方法。
2、实验内容和步骤
项目开发背景简介:
2019年12月末,中国武汉发生新型冠状病毒(2019-nCoV) 感染的肺炎疫情,为遏制疫情蔓延,有效切断病毒传播途径,在中央政府指导下,各级政府部分采取了一系列防控措施: 2020年1 月23 日10时起对武汉“封城”,全国 31个省市也相继实施了严格的防控措施;全国各省市向武汉和湖北派遣医疗队参与救治工作;在全国范围内调配口罩、防护服、药品等急需的医疗资源支援武汉;指导和督促全国范围内拥有医疗物资生产资质的企业尽快恢复生产能力;定向拨付专项财政资金用于疾病防控;从其他省份调集物资保障武汉市民日常生活。
值得一提的是,中国互联网企业在此次疫情防控中发挥了社会治理方面的重要作用。以腾讯为例,围绕应对疫情管控需求开发了十一款产品。其中疫情在线问诊功能,对于减少发热病人之间的相互交叉感染具有重要的作用,患者在家通过互联网向在线医生问诊,减少了病毒传播或感染的风险;谣言粉碎对于公众采取理性态度看待疫情的发展具有重要意义。滴滴出行还在武汉专门组建车队,服务于医护人员的通勤,这在实施交通管制的武汉具有重要作用。此外,还有新型肺炎确诊患者同行程查询工具,用户只需要输入自己所乘坐交通工具的时间和班次,就可以确认是否与被确诊感染者同行,提前做好自我隔离和就诊工作。在疫情防控中,中国互联网企业不仅发展壮大,在承担社会责任方面也越来越成熟。
为有效配合防控机构有关疫情信息的采集、统计与排查,我校开发了教职工/学生疫情上报系统,该系统由教职工疫情每日上报、学生疫情每日上报、二级部门疫情每日汇总表、疫情防控填报统计四个子系统组成。实现对我校各类人员基本情况、所在区域及活动轨迹及健康状况的信息收集。师生通过我校企业微信服务大厅访问该系统进行远程信息填报。
参考文献:
1. 中国抗击新型冠状病毒:进展和影响[EB/OL]. (2020-02-01)/[2020-03-04]. http://cn.chinadaily.com.cn/a/202002/01/WS5e358d1fa3107bb6b579c92b.html
任务1:陈述学生疫情每日上报子系统使用体验;
任务2:总结详细阅读《构建之法》第1-2章、结合第2章2.3节所述PSP流程,开发一款你自己心目中的西北师范大学学生疫情每日填报系统。
你可在以下两类开发要求选择一种完成项目开发任务:
第一类开发要求:
有一个数据文件,保存了100天 2000 个教职工/学生的所有防疫信息,请设计一个命令行程序, 支持查询某人在某一天的疫情情况, 查询某种数据的周/月的疫情统计情况,并用柱状图显示统计结果。
第二类开发要求:
1. 系统可采集学生疫情有效信息;
2. 系统支持用户在线使用;
3. 每日只可填报一次,提交后无法修改,每日十点疫情信息填报截止;
4. 各学院指定负责人登录系统,可查看本学院学生填报的汇总数据,可点击查看学生联系方式、班主任联系方式,学院负责人核实本院所有学生数据后,将数据提交给学校防控办;
5. 学校防控办指定负责人登录《西北师范大学疫情防控信息统计》子系统,可浏览所有学生填报汇总数据清单,通过【导出】可获取疫情数据的EXCEL文件。
任务3:完成任务2项目开发,将项目源码的完整工程文件提交到本人注册Github账号的项目仓库中。(50分)
开发须知:
项目必须包含src文件夹;
为了让同行轻松阅读你的项目代码,请参照《码出高效_阿里巴巴Java开发手册》/《腾讯c++代码规范》,从以下几个方面制定你的编程规范,并在作业中严格执行
- 缩进
- 变量命名
- 每行最多字符数
- 函数最大行数
- 函数、类命名
- 常量
- 空行规则
- 注释规则
- 操作符前后空格
- 其他规则
代码部分评分细则:
项目代码规范说明(10分)
项目代码符合代码规范(10分)
github使用 :commit 多于10次、使用release、issues、pr等操作(10分)
程序功能评测 20分
任务3:完成个人项目报告博文作业(50分,以下给出评分细目)
博文作业格式符合以下要求:
博文名称:学号-姓名 实验二 个人项目—《西北师范大学学生疫情上报系统》项目报告(2分)
博文开头格式:(3分)
项目 |
内容 |
课程班级博客链接 |
<填写课程班级博客链接> |
这个作业要求链接 |
<填写作业要求链接> |
我的课程学习目标 |
<填写目标> |
这个作业在哪些方面帮助我实现学习目标 |
<填写相关内容> |
项目Github的仓库链接地址 |
<填写地址> |
博文正文作为项目实施过程的文字资料,请完整包含下面7个部分:
1. 需求分析,即使老师已经给出了题目,也要对题目的需求做分析。(5分)
2. 功能设计,获得题目需求后,要对项目做功能设计,但题目需求是项目的基本功能要求,自己思考和调研会有超出题目要求的需求,甚至你的奇思妙想会设计出特色的功能。因此,功能会有:
- 基本功能(5分)
- 扩展功能(若代码实现,附加10分)
本次任务中,实现“利用【高级查询】可进行数据组合筛选,以可视化方式展示各学院已填报、未填报统计情况、关键疫情数据统计情况”,可得附加分。
3. 设计实现,设计包括你会有哪些类,这些类分别负责什么功能,他们之间的关系怎样?你会设计哪些重要的函数,关键的函数是否需要画出流程图?函数之间的逻辑关系如何?(10分)
4. 测试运行,你的项目必须是可运行的,请展示项目代码的运行截图,包括题目要求实现功能对应的运行截图。这些截图说明你确实完成了项目需求,如果实现了扩展需求,也请大方秀出来。(5分)
5. 粘贴自己觉得比较独特的或满意的代码片段,用博客园代码控件来显示。(提示:要有必要的注释说明,不要贴所有代码!不符合规定的要倒扣分)(5分)
6. 总结:你设计的程序如何实现软件设计的“模块化”原则。(5分)
7. 展示PSP,这个环节重要的是让自己看到自己的估计和实际消耗时间,哪个环节耗时最多,哪个环节估计和实践相差巨大?为什么?(5分)
PSP参考:http://www.cnblogs.com/xinz/archive/2011/10/22/2220872.html
PSP2.1 |
任务内容 |
计划共完成需要的时间(min) |
实际完成需要的时间(min) |
Planning |
计划 |
8 |
6 |
· Estimate |
· 估计这个任务需要多少时间,并规划大致工作步骤 |
8 |
6 |
Development |
开发 |
82 |
88 |
·· Analysis |
需求分析 (包括学习新技术) |
6 |
10 |
· Design Spec |
· 生成设计文档 |
5 |
6 |
· Design Review |
· 设计复审 (和同事审核设计文档) |
4 |
6 |
· Coding Standard |
代码规范 (为目前的开发制定合适的规范) |
3 |
3 |
· Design |
具体设计 |
10 |
12 |
· Coding |
具体编码 |
36 |
21 |
· Code Review |
· 代码复审 |
7 |
9 |
· Test |
· 测试(自我测试,修改代码,提交修改) |
13 |
21 |
Reporting |
报告 |
9 |
6 |
·· Test Report |
· 测试报告 |
3 |
2 |
· Size Measurement |
计算工作量 |
2 |
1 |
· Postmortem & Process Improvement Plan |
· 事后总结 ,并提出过程改进计划 |
3 |
3 |
如果所有的环节你都认真做了,那么,此处你应该会有很多经验愿意与大家分享。(5分)