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