软件工程(QLGY2015) 第三次作业点评(含成绩)

相关博文目录:

团队信息

本页点评团队1-22,其他组见:http://www.cnblogs.com/xiaozhi_5638/p/4490764.html

团队编号 博客园团队博客
1 FOR THE DREAM
2 思甜雅
3 平常心
4 沉睡魔咒
5 蓝色梦想
6 进击的代码
7 追梦人
8 One Piece
9 四傻大闹齐工大
10 粉末
11 Dream high
12 软件工程学习小组
13 蹿吧 妮儿
14 代码海洋
15 KING
16 奔跑的蜗牛
17 狩猎的时间到了
18 非常4+1
19 19
20 天天向上
21 翱翔的飞鹰
22 团队博客206

NABCD点评

团队项目里一下子要做的几个都是比较抽象的东西:

  • 协作与分工
  • 立项(NABCD大法。。)
  • 功能设计
  • 用例图、类图、时序图等
  • 测试计划

前两次作业分别是PSP和结对编程,上述几个内容都没有得到充分的有效训练,导致同学们做这几个环节整体流于形式。不能抓住重点。

简单确定团队成员之后,不应该直接就分工了。一般来说立项是第一位的,如果不能确定软件要不要做,要做什么,分工有个屁用。而立项,根据《构建之法》,我们知道NABCD是一种有效的模型,大家称为NABCD大法。不过我的角度看来,大家还只是在字面意义上去使用NABCD了,有NABCD和没NABCD区别在哪?我认为以上的其他部分都可以围绕NABCD的去做。

那好,我们就说用NABCD了:

N,我认为N一定要分析目标用户群,搞清楚:谁是用户,他们的需求是什么,现有的软件解决了他们的什么问题,没解决的问题是什么,然后,我们的Team才决定去做一个软件解决这些用户的需求。用户可以是自己,也可以是班上的同学,也可以是网络上的其他人,但一定要有用户。没人用,你做的都是无用功。一般来说,能搞明白面向的用户是谁、能解决的核心问题,就是最基本的。需求也不是自己拍脑袋想出来的,多半你还是需要去和你的用户沟通,做用户需求分析,否则你想象出来的需求根本不存在,在整个项目周期内,需要反复从用户哪里得到反馈。

A,这个地方你大可以针对N里的需求做分析、设计。分析的话可以做个基本需求分析、高级需求分析、扩展需求分析等。设计,才是你们需要用上用功能设计、用例图、类图、时序图的地方。

B,好不容易做了分析、做了设计。总得说下如果要去实现的话,做好了这个软件。用户会不会被吸引去使用,怎样才能被吸引?B要思考的就是我们的软件经过A之后,会不会根本不够吸引用户去使用,如果是的话,那就要返回去思考N和A是否有问题。如果有问题,就一定要回归分析、设计了。如果连自己都说服不了,不值得写代码。

C、如今早就是满世界都是软件了,你做一个一模一样,完全功能都一样,甚至更全的软件估计都没什么竞争价值了。那么问题来了,怎样才有竞争力,竞争力意味着别人死活都比不过你。这个就要绞尽脑汁的。

D、请返回看你的N,如何让他们用上软件,解决他们的问题,并让它们得到B,你的软件他们会用多久呢?

以上几个点,并非一次了事的事情,会贯穿整个软件生命周期,需要随时更新和调整。然后,就开始开工了,无论是瀑布模型还是敏捷开发,尽早往github上提交代码啊。写了一堆东西,一行代码都没看到呢?第一天就可以初始化项目目录,工程文件,赶紧往github上提交呗。一个月时间不抓紧怎么能做出高质量的软件。在经验不够的多的情况下,能一个team在一起协作多写代码才更真实吧,那些抽象的名词也没办法不写代码只写博客就能理解。尽早做出有人用的软件才是真正的目标。

评分

7月8日更新,重要:

  1. 程序部分里的代码提交部分单独拆出评分,请还没提交或者提交不完整的团队,补交完整项目代码,截止日期2015年7月15号。Fixed!
  2. 博客作业逾期(超过一周)未提及的,会直接倒扣分数。
团队编号 NABCD(10) 程序(10) 运行与总结(10) 代码提交(10) github 备注 总分(3:2:3:2)
截止时间 5月24 6月14 6月21 6月21
19 8 8 8 8 完整 80
4 6 8 7 8 完整 71
2 6 8 7 8 完整 71
3 7 6 7 7 完整 68
7 7 7.5 7 5 完整(7月10号更新提交) 67
13 7 7.5 7 4 提交了单个文件,无后缀名 请提交完整项目工程 65
14 6 7.5 7 4 提交了一个txt文件 请提交完整项目工程 62
20 5 7.5 7 4 提交了一个Md文件 请提交完整项目工程 59
12 7 7.5 7 0 无,博客有代码 请提交完整项目工程 57
18 5 7.5 6 4 项目不完整 请提交完整项目工程 56
22 4 5 6 7 完整 54
6 6 7.5 6 0 无,博客有代码 请提交完整项目工程 51
10 6 7.5 6 0 无,博客有代码 请提交完整项目工程 51
11 6 5 4 4 提交了单个文件,无后缀名 请提交完整项目工程 48
15 3 3 7 5 有未实现代码 请提交完整项目工程 46
16 5 7.5 4 2 提交了单个文件,无后缀名(7月15号更新提交) 命令行版变成GUI版?请提交完整项目工程;7月15更新:重写了命令行版的总结。 46
9 6 7.5 4 0 无,博客有代码 请提交完整项目工程 45
17 4 2 5 5 完整(7月10号更新提交) 41
21 6 2 6 0 无,博客有代码 请提交完整项目工程 40
1 5 3 5 0 无,博客有代码 请提交完整项目工程 36
5 5 4 2 3 提交了单个文件,无后缀名 命令行版变成GUI版?,请提交完整项目工程 35
8 7 -5 2 2 提交了单个文件,无后缀名(7月10号更新提交) 命令行版变成GUI版?,请提交完整项目工程,面向对象程序设计超过一周未提交 21

优:

  • 总体上每个团队还是坚持到了最后,完成了大部分必要的环节
  • 一部分同学至少学会了完整提交github,如果能整个开发周期都在github上协作就更好了
  • 项目的立项和分析,NABCD环节,总体上有了个初步的接触,想必以后做其他项目的时候大家会想到这个大法
  • 无论自己写的还是基于已有代码做的,都至少做了一些

劣:

  • 老师布置的环节有的团队没做完整,比如面向对象程序设计,运行和总结
  • 只要少数几个团队认真提交了github,一部分提交了单文件,另一部分没提交,还有的没看到代码,也说明了团队的程序开发并没有全程使用github的版本化功能
  • 有很多博客内容摘抄的痕迹明显,其实如果是引用别人的文章,至少要加引用说明,可以引用,但是一定要有结合自己项目理解并认真写的部分,列个参考资料也比直接抄强
  • 整个团队项目过程中,可能是由于期末同学们忙于各种考试的原因,体现出工程方法的比较少
  • 团队的博客里应该说明团队里每个成员的实际做的事情,以及协作解决问题的过程中如何使用工程方法解决的,但很多团队博客只写了博主自己干了什么
  • 团队项目代码做的质量并不如结对编程的代码质量,可能是由于期末的原因吧,多人协作的项目至少要有足够的代码数量吧,很多太简单了,还不如结对项目
  • 如果是基于已有项目的代码,至少应该说明下,本项目基于之前谁谁谁的哪个版本的代码上开始做,自己做的部分主要添加了哪些东西,最重要的是,自己做的部分是什么

未来改进点

  1. 第一周个人项目的时候,一定要严格考核每个同学的Git使用能力。比如可以设置只有通过Git考核的才能进入下一个环节(结对编程)项目,而不进入下一个环节就不能得下一个环节的分数,这样宁缺毋滥的要求下,必然不会出现到了团队项目还不会正确使用Git以及在Github上协同开发。单元测试也要严格通过。
  2. 结对编程的时候,一定要严格考核每个小组的编码规范能力,以及两人协同开发的能力。如果一个班级都采用一种语言开发,比如Java,那么此时可以要求在教师指定的编码规范里挑选一种并且严格执行。协同开发,在Github上必须有两人协作开发的fork-pull-request记录。
  3. 团队项目的时候,必须一开始就说明团队博客地址+团队项目的Github仓库地址。必须为团队项目在第一天就建立团队项目的Github仓库,并且每个阶段都必须有所有团队成员的fork-pull-request提交记录。
  4. 选题要说明是重新开发的项目还是在已有项目上开发,如果是在已有项目上开发,应该在NABCD里重点说明已有项目的背景,及其需要改进的点,或者哪些新需求,这样才能有的放矢,在后续的环节里明确说明团队改进和新增部分的内容,而不能用已有项目本身的代码充数。
  5. 对于学生来说,还是应该围绕可运行的项目代码为核心,任何一个环节都应该保证Github上提交的代码是当前可执行的。
  6. 可以的情况下,应该要求必须反馈助教或者老师的建议,不反馈者直接扣分,否则给出的建议都没有跟进。
posted @ 2015-06-10 23:32  ffl  阅读(987)  评论(48编辑  收藏  举报