项目 | 内容 |
---|---|
班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE/ |
作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12616341.html |
我的课程学习目标 | 学习团队软件项目流程(TSP)、团队成员协作要求。掌握敏捷流程原则及相关概念。 |
结对方学号-姓名 | 201771010139-张季跃 |
结对方本次博客链接 | / |
任务1:实验三优秀案例推荐:王艳&王玉兰
案例作业博客链接:https://www.cnblogs.com/JAVA-729/p/12554359.html
案例作业项目仓库链接:https://github.com/JAVAWY/MyDemo
在实验三得分100分以上作业中,任选一份作为案例,对案例项目成果进行评价,具体要求如下:
(1)对案例博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系,并将以上评论内容发布到案例作业的博客评论区。
(2)克隆案例项目源码到本地机器,阅读项目代码规范文档并运行代码,总结代码运行中存在的问题,体会案例博文是否有助于项目代码理解。
克隆代码:
运行界面:
填报信息:
信息进入数据库:
数据可视化:
导出数据:
定时提醒:
(3)总结本组实验三博客作业及代码设计存在问题与不足,列举代码中存在的bug,未实现的功能等等。
实验三博客作业:作业内容完善,未发现不足。
代码设计存在问题与不足:GUI界面设计没有特点,使用起来比较乏味。
代码中存在的bug:未发现。
任务2:与实验三结对伙伴协作学习:
阅读《现代软件工程—构建之法》第5-6章内容,理解并掌握软件项目团队的特点、了解软件团队的模式、结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点,理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则。、
软件团队的模式包括以下几种:
(1)主治医师模式:一人为主,其他人为此人服务。
(2)明星模式:主治医师模式到达极致,一人的光芒掩盖所有人。
(3)社区模式:每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。
(4)业余剧团模式:在不同项目中每个人扮演着不同的角色,可能随着项目的改变,自己的角色也会发生变化。
(5)秘密团队模式:一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。
(6)特工团队模式:有一些有特殊技能的专业人士组成的团队。
(7)交响乐团模式:人员工具齐全,准备充足的团队。
(8)爵士乐模式:相对自由,有风险,人少且不靠谱。
(9)功能团队模式:具备不同能力的同事们平等协作,共同完成一个功能。
(10)官僚模式:层层领导的团队模式。
团队的开发模式包括以下几种:
(1)写了再改模式:和一窝蜂团队模式比较像。
(2)瀑布模型及其各种变形。
(3)RUP统一流程。
(4)老板驱动的流程。
(5)渐进交付的流程。
(6)TSP的原则。
TSP原则
(1)使用妥善定义的流程,流程中的每一步都是可以重复的、可以衡量结果的;
(2)团队的各个成员对团队的目标、角色、产品都有统一的理解;
(3)尽量使用成熟的技术和做法;
(4)尽量多的收集数据(包括对团队不利的数据),并用数据来帮助团队做出理性的决定;
(5)制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定(而不是从上级而来);
(6)增加团队的自我管理能力;
(7)专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面细而细致的设计工作(而不是在后期匆忙修复问题)。
敏捷流程
敏捷开发的高适应性,以人为本的特性。更加的灵活并且更加充分的利用了每个开发者的优势,调动了每个人的工作热情。
讨论截图:
任务三:在班级博客园,有很多高校的软件工程课程要求同学们完成团队项目,请与实验三结对伙伴协商,在以下三个班级中选择一个高质量的团队项目案例进行协作学习,要求追踪该团队项目发布所有博客作业,下载项目软件代码。
-
2016级计算机科学与工程学院软件工程 (西北师范大学)
-
2019秋福大软件工程实践Z班 (福州大学)
-
2019春季计算机学院软件工程 (北京航空航天大学)
(1)团队项目作业发布账号链接:https://www.cnblogs.com/PureMan6
(2)团队项目仓库github链接:https://github.com/swearitagain/EduCnblogs2.0
(3)陈述你选择该团队项目进行分析的理由:
这个团队的创意是让用户可以在手机app上直接使用博客园的一些功能,在原有的APP上面进行一部分功能的拓展。这与我们的软件工程学习方式不谋而合,在查询作业等方面很方便,很适合追踪。而且我对Android开发的东西都很感兴趣。
(4)结合项目系列博客文档,总结项目团队成员的分工合作情况:
团队成员贡献分分配规则
人员分工细则:
邵旭哲:PM,主要负责所有博客撰写;
蒋锋,陈治齐,胡俊崧:开发人员;
吴枫:测试人员;
吴昊:开发(任务没有其他开发人员那么多),负责开会。
团队总则
开会时,每位成员需要如实汇报自己的工作进度,虚报会造成团队进度不协调;
每位成员需要将自己每天的工作以及遇到的问题等记录并提交issue,并上传给pm;
出现exception时需要在群内通知所有成员;
贡献分的记录需要公开,所有人有权利提出异议。
开发人员准则
开发人员需要保证将自己实现功能进行覆盖测试,在进行一定量的test之后再交付测试人员;
开发人员需要将自己遇到的开发困难详细描述给PM,方便文档撰写;
开发人员需要保证彼此的沟通,防止其中一人进度滞后。
测试人员准则
测试人员需要保证测试的全面性,产品发布后出现过多错误会有一定的惩罚;
测试人员需要对开发人员实现的功能有一定的了解;
测试人员需要将自己检测到的问题发布issue并上传给pm。
PM准则
1.需要保证文档的即时性,如果一段时间工作量太大,可以找协助人员分担。
所有成员基础分数为50分,根据分配到的工作量进行调整基础分,最终统计分数时以300分为满分进行分数调整。
分工明确合理,自我管理能力强,值得学习。
(5)结合项目系列博客文档,评价项目的软件项目过程特点(TSP)
(1)使用妥善定义的流程,流程中的每一步都是可以重复的、可以衡量结果的;(基本做到)
(2)团队的各个成员对团队的目标、角色、产品都有统一的理解;(做到)
(3)尽量使用成熟的技术和做法;(没做到,还有很多不合理不完善的地方)
(4)尽量多的收集数据(包括对团队不利的数据),并用数据来帮助团队做出理性的决定;(基本做到)
(5)制定切合实际的计划和承诺,团队计划要由负责具体执行的角色来制定(而不是从上级而来);(做到)
(6)增加团队的自我管理能力;(做到)
(7)专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面细而细致的设计工作(而不是在后期匆忙修复问题)。(没有做到,质量不够高,计划后期修复)
(6)观察该团队项目github仓库的源代码文件结构,是否包含代码规范文档?
没有包含代码规范文档
(7)下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图
使用体验:
我认为该团队项目的选题还是比较新颖,并且各个界面和功能都实现的不错,这个软件应有的功能都有,并且最后的意见反馈功能是我认为最好的,整的来说挺不错的。
功能性bug:
(1)投票功能尚不完善:投票功能目前只能获取投票信息和展示投票详情,不能参与投票;
(2)记住密码功能没有实现,每次退出都得重新输入密码。
(8).评价该团队项目是否值得继续开发,并陈述理由:
我认为该团队项目的选题还是可以的,附和一些在博客园学习的同学的需求,如果能够继续完善,是值得继续开发的。
任务四、记录完成《实验四 软件项目案例分析》各项任务实际花费的时间:
任务 | 花费时间(min) |
---|---|
任务一 | 120 |
任务二 | 400 |
任务三 | 420 |
任务四 | 100 |
五、请谈谈完成本次作业的感受和体会。
本次作业的重点在于学习软件项目案例分析,通过对两份实际的案例分析,以客户或者用户的角度去看在软件项目开发中存在的问题。同时我也掌握了软件开发中的不同的开发流程如:瀑布模型,渐进交付和敏捷流程。在今后的学习中我也会将这些知识融入到实际操作中,完善自己的专业知识,提升实战能力。同时通过学习其他团队的程序代码,使我也学习了很多新的知识,通过比较,我认识到了自己的不足,学习到了很多相关的知识和技巧,将来可以吸取经验,对于今后有关的学习任务积累经验。