项目 | 内容 |
---|---|
这个班级博客链接 | https://edu.cnblogs.com/campus/xbsf/nwnu2020SE |
这个作业要求链接 | https://www.cnblogs.com/nwnu-daizh/p/12616341.html |
我的课程学习目标 | (1)学习团队软件项目流程(TSP)(2)掌握敏捷流程原则及相关概念。 |
这个作业在哪些方面帮助我实现目标 | 通过协作的方式可以更加深入的了解团队软件项目流程 |
结对方学号-姓名 | 201771030127-杨雪雪 |
结对方本次作业博客链接 | https://www.cnblogs.com/rmxx/p/12669883.html |
一、实验目的与要求
(1)学习团队软件项目流程(TSP)、团队成员协作要求。
(2)掌握敏捷流程原则及相关概念。
二、实验内容和步骤
任务1:在实验三得分100分以上作业中,任选一份作为案例,对案例项目成果进行评价,具体要求如下:
案例作业博客链接:https://www.cnblogs.com/JZYWS/p/12571927.html
案例作业项目仓库链接:https://github.com/Gu19901212/Partner.git
1.对案例博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系,并将以上评论内容发布到案例作业的博客评论区。
2.克隆案例项目源码到本地机器,阅读项目代码规范文档并运行代码,总结代码运行中存在的问题,体会案例博文是否有助于项目代码理解。
(1).克隆项目源码:
(2).在本地机器检查克隆是否成功:
(3).将项目导入运行
(4).运行SQL文件
(5).登录且上报信息
(6).学校防控办负责人登录查看学生疫情填报信息:
案例项目小结:(1)克隆祁甜,王爽组的代码去运行的过程中我遇到了各种各样的问题,首先在项目导入的时候由于克隆下来的项目缺少.project文件导致在我的电脑中无法识别项目,其次需要连接自己的数据库所以代码中需要更改数据库用户及密码,由于代码非常多找起来有一定的困难,但阅读了代码规范文档及博文之后对整个项目有了一定的了解,很快就找到需要修改的地方并进行改正,保证了项目顺利运行。由此可见代码规范文档及一篇有质量的博文对他人理解你的项目有多么重要。
(2)案例项目软件功能总结:实现了师生上报疫情信息,二级部门可查看师生上报的疫情信息并上报给上级部门,也可以查看本院学生的信息,而学校防控办可查看二级部门提交上来的师生信息,同时实现了填报提醒。
3.总结本组实验三博客作业及代码设计存在问题与不足,列举代码中存在的bug,未实现的功能等等。
本组实验小结:我们组在实验三中存在的问题首先是界面优化问题,登陆,注册以及填报界面都太过于单一,其次是实现的功能方面我们知识实现了最最基础的功能,而高级查询以及附加功能都未能实现这主要在于我们自身能力有限,不过我们在阅读并运行案列项目的过程中重点关注了我们未能实现的部分,其次我们设计的代码健壮性相对而言会弱一点,没有考虑一些特殊情况,缺少相应的提示框。当我们只输入账号而不输入密码的情况下进行登陆时它没有反应,也不会有相应的“请输入密码”的提示框。
任务2:与实验三结对伙伴协作学习:阅读《现代软件工程—构建之法》第5-6章内容,理解并掌握软件项目团队的特点、了解软件团队的模式、结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点,理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则;
软件项目团队的特点:
(1) 团队有明确的集体目标;(2)团队成员有各自的分工,互相依赖合作,共同完成任务;(3)团队有很强的凝聚力;(4)团队有融洽的交流环境。
软件团队的模式:
- (1)一蜂窝模式(chaos team): 是一种欢乐而随意的形式,初期使用比较多;
- (2)主治医师模式 :有首席程序员,其他人各司其职,为主治医师服务;
- (3)明星模式 :主治医师模式的极点;
- (4)社区模式 :每个人参与自己感兴趣的方向;
- (5)业余剧团模式 :每个团队在不同的项目会挑选不同的角色;
- (6)秘密团队 :每个人在秘密条件下进行;
- (7)特工团队 :有特殊技能的专业人士;
- (8)交响乐团模式 :交响乐团的演奏模式;
- (9)爵士乐模式 :与交响乐队模式对立;
- (10)功能团队模式 ;具备不同能力的人平等协作;
- (11)官僚模式 小头目-->中头目-->大头目。
瀑布模型及其变形:
- 瀑布模型它的开发过程是通过设计一系列阶段顺序展开的,从系统需求分析开始直到产品发布和维护,每个阶段都会产生循环反馈,因此,如果有信息未被覆盖或者发现了问题,那么最好 “返回”上一个阶段并进行适当的修改,项目开发进程从一个阶段“流动”到下一个阶段。
- 温斯顿对该模型做了一些改进:
- 瀑布模型的变形:
- 生鱼片模型:解决各个步骤之间分离的缺点。
- 解决不同子系统之间进度不一,技术要求迥异,需要区别对待的问题。
渐进交付流程:
敏捷流程及其特点:
敏捷不是指某一种具体的方法论、过程或框架,而是一组价值观和原则。
特点:(1)迭代式开发;(2)增量交付;(3)开发团队和用户反馈推动产品开发;(4)持续集成;(5)开发团队自我管理。
TSP原则:
(1)使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的。
(2)团队的各个成员对团队的目标、角色、产品都有统一的理解。
(3)尽量使用成熟的技术和做法。
(4)尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
(5)制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来)。
(6)增加团队的自我管理能力。
(7)专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
学习交流截图:
任务3:在班级博客园,有很多高校的软件工程课程要求同学们完成团队项目,请与实验三结对伙伴协商,在以下三个班级中选择一个高质量的团队项目案例进行协作学习,要求追踪该团队项目发布所有博客作业,下载项目软件代码。
1.团队项目作业账号链接:
https://www.cnblogs.com/brokenpumpkin/p/11704724.html
2.团队项目仓库github链接:
https://github.com/ThinMoon/031702541-031702543.git
3.为什么选择该团队?
我和队友比较分析了好多博客作业(也因为这个原因花费了一定的时间)觉得这个作业的博客内容清晰明了,有助于我们更好的理解,其次我们这几次的实验作业都是人机交互的相对比较完整的系统,而这个作业主要是实现算法的,有助于我们学习了解一些新的概念与知识点。
4.结合项目系列博客文档,总结项目团队成员的分工合作情况:(该团队成员分工情况在博文中已经给出)
5.结合项目系列博客文档,评价项目的软件项目过程特点(TSP)
- 从该团队博客文档中可以看出她们分工明确;
- 团队成员之间有较好的自我管理能力;
- 在尝试学习使用新的知识与技术。
6.观察该团队项目github仓库的源代码文件结构,是否包含代码规范文档?
从下图我们可以看出该团队项目文件结构中不包含代码规范文档,一般而言一个优秀的项目代码规范文档是必不可少的。
7.下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图。
(1)将团队项目代码下载到本地
(2)在本地查看
(3)运行测试:
通过Chrome浏览器打开JStext.html,在输入框中输入符合格式的信息,点击按钮便会跳转到家族树界面
BUG展示:该团队未给出正确的输入格式,导致跳转没有成功,显示界面如下
由于存在的问题我们小组学习了相关JSON的知识然后进行再次尝试还是不符合(此处给出JSON基本概念以及再次尝试输入的截图,相关知识请读者自行学习)
8.评价该团队项目是否值得继续开发,并陈述理由?
我觉得值得开发,首先任何吸引你而你又不懂的知识值得我们去探索,而该项目要实现的是输入页面文本框返回一个值,然后将这个值进行处理变成json对象,然后将json对象传入生成树的函数中。在日常的学习生活中我们经常使用的框架图其实与其类似,而该项目只是冰山一角,给我们团队打开了另一扇门,也给我们提供了更多的可能。
任务4:实验总结
1.各项任务实际花费时间:
任务 | 完成任务所需时间(H) |
---|---|
解读题意 | 2 |
任务一 | 4 |
任务二 | 5 |
任务三 | 12 |
任务四 | 2 |
总结:此次实验分为四个部分,相对而言任务2与任务4比较轻松,任务1需要将案列项目克隆到本地进行学习并运行实现其功能,由于我们每个项目组运行环境不一致以及传入github仓库中的项目有时缺少一些文件会带来一定的麻烦,但解决麻烦的过程也是一个学习的过程,在该任务中我们选择了自己同学的项目实在不懂的也可以问她们而任务4我们选择了自己并不太熟练的一个项目,又不能向项目成员进行求助所以整体难度大一点,我们只能通过阅读源代码,上网查找资料的形式进行学习,所以效率相对较低,但我们对一些新的知识有了一定的了解。