201771010108-韩腊梅 实验四 软件项目案例分析

项目 内容
课程班级博客链接 https://edu.cnblogs.com/campus/xbsf/nwnu2020SE
这个作业要求链接 https://www.cnblogs.com/nwnu-daizh/p/12616341.html
我的课程学习目标 (1)学习团队软件项目流程(TSP)、团队成员协作要求。
(2)掌握敏捷流程原则及相关概念。
这个作业在哪些方面帮助我实现课程目标 (1)合作交流学习让我对知识点有了更深的认识;
(2)对优秀团队的项目学习过程中会对自己和别人产生一个比较,观察他们遇到问题如何解决,从而提高自己的能力。
结对方学号-姓名 王之泰-201771010131
结对方本次博客作业链接 https://www.cnblogs.com/hackerZT-7/p/12669245.html

任务1:实验三优秀案例分析:李婷华&王颖奇组

李婷华实验三博文作业

王颖奇实验三博文作业

案例作业项目仓库

案例项目成果进行评价,具体如下:

(1)对案例博文作业进行阅读并进行评论,评论要点包括:博文结构、博文内容、博文结构与PSP中“任务内容”列的关系,并将以上评论内容发布到案例作业的博客评论区。
  (注释:后面发排版因为浏览器原因没有更新,更新完之后排版很棒!对博主深感抱歉~)

(2)克隆案例项目源码到本地机器,阅读项目代码规范文档并运行代码,体会案例博文是否有助于项目代码理解。




  案例博文中不仅有对核心代码和闹钟提示代码的详细注释,而且代码结构以及项目的逻辑结构都有所描述,这些都在一定程度上方便了对项目代码的理解。
(3)总结本组实验三博客作业及代码设计存在问题与不足,列举代码中存在的bug,未实现的功能等等。
  根据案例博文建立数据库,可以发现设置均为“允许空值”,这就会出现如下情况:


  对于功能实现,案例小组做的很好,就连附加功能都实现了,但是我有一个小建议,在收集数据时关于疫情情况的只收集了是否感染,我觉得应该再收集一些其他相关数据。

任务2:与实验三结对伙伴协作学习

  阅读《现代软件工程—构建之法》第5-6章内容,理解并掌握软件项目团队的特点、了解软件团队的模式、结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点,理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则。

软件项目的特点

  • 团队有一致的集体目标,团队要一起完成这个目标。一个团队的成员不一定要同时工作。

  • 团队成员有各自的分工,互相依赖合作,共同完成任务。

软件团队的模式

  • 软件团队有各种形式,适用于不同的人员和需求。

    • 蜂窝模式(Chaos Team)
    • 主治医师模式(Chief Programmer Team,Sugical Team)
    • 明星模式(Super-star Model)
    • 社区模式(Community Model)
    • 业余剧团模式(Amateur Theater Team)
    • 秘密团队(Skunk Work Team)
    • 特工团队(SWAT)
    • 交响乐模式(Orchestra)
    • 爵士乐模式(Jazz Band)
    • 功能团队模式(Feature Team)
    • 官僚模式(Bureaucratic Model)

瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点

  • 瀑布模型

    • 优点:
      • 1)为项目提供了按阶段划分的检查点。
      • 2)当前一阶段完成后,您只需要去关注后续阶段。
      • 3)可在迭代模型中应用瀑布模型。(增量迭代应用于瀑布模型。迭代1解决最大的问题。每次迭代产生一个可运行的版本,同时增加更多的功能。每次迭代必须经过质量和集成测试。)
      • 4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导。
    • 缺点:
      • 1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量。
      • 2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险。
      • 3)通过过多的强制完成日期和里程碑来跟踪各个项目阶段。
      • 4)瀑布模型的突出缺点是不适应用户需求的变化。
  • 瀑布模型的各种变形

    • 生鱼片模型
      • 阶段之间可以重叠
    • 大瀑布带着小瀑布
      • 难度大
      • 用户只有到最后才能看到结果
  • 渐进交付流程

    • 当系统的主要需求和架构明确之后,软件团队进入了一个不断演进的循环中:
  • 敏捷流程

    • 敏捷开发以用户的需求进化为核心,采用迭代、循序渐进的方法进行软件开发。在敏捷开发中,软件项目在构建初期被切分成多个子项目,各个子项目的成果都经过测试,具备可视、可集成和可运行使用的特征。换言之,就是把一个大项目分为多个相互联系,但也可独立运行的小项目,并分别完成,在此过程中软件一直处于可使用状态。

TSP原则

  • 1.使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的。
  • 2.团队的各个成员对团队的目标、角色、产品都有统一的理解。
  • 3.尽量使用使用成熟的技术和做法。
  • 4.尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
  • 5.制定切合实际的计划和承诺,团队计划要由具体负责执行的角色来制定(而不是从上级而来)。
  • 6.增加团队的自我管理能力。
  • 7.专注于提高质量,争取在软件生命周期的早期发现问题最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。

讨论学习

  • 讨论一
  • 讨论二
  • 讨论三

任务3:在班级博客园,有很多高校的软件工程课程要求同学们完成团队项目,请与实验三结对伙伴协商,在以下三个班级中选择一个高质量的团队项目案例进行协作学习,要求追踪该团队项目发布所有博客作业,下载项目软件代码。

  1. 2016级计算机科学与工程学院软件工程 (西北师范大学)

  2. 2019秋福大软件工程实践Z班 (福州大学)

  3. 2019春季计算机学院软件工程 (北京航空航天大学)

1.选取北京航空航天大学2019春季计算机学院软件工程的PureMan团队项目

       1.1 团队项目作业发布账号链接

       1.2 团队项目github仓库链接

       1.3 选择该团队项目分析的理由

  因为本课程的所有作业发布等都在博客园,我们不可能时时刻刻带着电脑在身边,所以移动端的博客园就显得尤为重要,而博客园手机版总是存在一些问题,该团队项目很好的解决了这一问题,而且项目质量也很高,并且已经上线使用。源代码仓库等也很齐全,方便我们下载测试。更重要的是本组成员未有过app开发的经历,所以选择该项目能促使我们惊进行一些相关知识的学习和理解。为以后的学习等打下一些基础。所以我们选择了这个团队的项目进行深入测试探究。

2.总结该团队成员分工合作情况

  首先从这篇阶段项目展示可以得知该团队名称为PureMan6的团队总共有7个人,并且七个人分工各不相同,有两个PM和PM测试人员,四个开发员,有一个软件测试人员。四个开发人员在项目不同阶段分工也大不相同,大致如下图所示。在不同的阶段每个人都有不同的任务,并不是一个任务从头到尾进行下去,这样对团队成员的任务分配合理又高效,是一种非常不错的的团队开发模式。

3.评价项目的软件项目过程特点(TSP)

观察该团队的项目系列博客后,发现该项目的TSP主要包含以下几点:

  • 并不是所有的团队成员都掌握了全部的开发知识和技术,都是在开发中学习,在学习中开发;

  • 项目团队中的每个成员都非常明确本团队的开发目标,对自己的所扮演的角色都了然于心,而且对自己开发的产品都有哦这一致统一的理解。

  • 项目团队前、中、后期都在不断地收集数据和用户反馈。

  • 项目团队的每个成员都制定了较为细致的计划,然后按计划进行项目研发;

  • 团队成员的自我管理能力很强,基本每个阶段都有例会;

  • 项目的流程在博客中体现比较明确,而且在早期发现了很多问题,设计工作非常全面且细致。

4.该团队项目github仓库的源代码文件结构,是否包含代码规范文档?

团队项目github仓库的源代码文件结构如下图。

  该团队GitHub上的源代码结构较差未有一些必要的开发说明和README文件,且没有项目的编码规范等文档。对于他人的二次开发有些不友好。可能是因为时间的问题,纵观所有的团队项目,都很少又包含文档较为全面的项目,我自始至终都认为,文档的撰写要比开发的质量更加重要。

5.下载团队项目代码,尝试部署项目运行环境并使用软件,描述最简单直观的使用体验,找出至少两个比较严重的功能性bug,在博客中展示截图;

  在安智市场app里面,搜索软件名称“CnblogAndroid”下载即可,测试机为安卓系统。下载完之后打开的登录界面优美,和网页端登录样式一致,如下图所示:

  并且登录之后会有一个验证环节,验证界面也很美观,如下图所示:

  此外软件功能齐全,看到自己发布的博客,还可以看到自己所在班级的其他同学的博客,如下图所示:

  并且还有很多附加功能,比如:日程提醒、收藏列表、浏览记录、设置以及对app的一个简单介绍,如下图所示:

  值得一提的是其可以设置黑暗模式,并且效果很棒,晚上使用黑暗模式,极大程度上减少了对眼睛的伤害。如下图:
(虽然提示部分页面暂不支持黑暗模式,但能想到这个创意还是很棒的!)

在测试的过程中我们也发现了软件存在的一些bug,如下所示:

  1.每隔较短时间就会提示“身份信息过期,请重新登录”,但是目前的身份信息并没有过期,我依然可以进行所有的操作

  2.博文作业中的表格线未显示,多次尝试亦如此。

  3.部分博文页面布局不合适。

  4.在“我的班级”页面点击“博文”,会出现一个筛选功能,选择“老师/助教”,但出现的依旧是班级同学的博客。

6.评价该团队项目是否值得继续开发,并陈述理由。

  经过讨论商议之后,我们一致认为该团队项目值得继续开发。因为目前我们提交博文作业,查看博文作业要求都使用博客园的网页版,大多同学没有在手机浏览器中登录博客园的习惯,从而导致每次登录博客园都需要打开电脑,如果遇到刚好没有在家又需要查看博客园的情况,大多同学会选择等回家之后再查看,而这款app它可以满足我们在手机端查看博客以及评论等功能,并且界面也好很看。既然有用户需求,并且开发费用较小,所以该团队项目还是非常值得继续开发的。

任务4:记录完成《实验四 软件项目案例分析》各项任务实际花费的时间

任务 实际花费时间(h)
任务1 3
任务2 5
任务3 10
任务4 1

任务5:请谈谈完成本次作业的感受和体会

  通过这次实验,我不仅测试了其他高校的软件工程团队项目,而且通过对团队博客的阅读学习对项目开发了流程有了更深的认识。同时在选择团队项目的时候,我通过对他们项目的比较,不仅看出他们之间的差距,更是也在和自己作比较,感觉自己比他们还要差很多,不管是他们的编程能力还是协作能力,都值得我们去学习。当然他们也有很多开发经验和技术值得我们去学习和借鉴。这次实验对我以后实际的团队项目会有很大帮助。

猜你喜欢

转载自www.cnblogs.com/hanlamei/p/12641088.html