202207-夏日限定 实验五 团队作业2:软件项目案例分析

项目 内容
课程班级博客链接 2022年春软件工程课程班(2019级计算机科学与技术)
这个作业要求链接 实验五 团队作业2:软件项目案例分析
团队名称 夏日限定
团队的课程学习目标
  • 学习团队软件项目流程(TSP)、软件项目团队的角色分工,软件项目经理的职责;
  • 掌握敏捷流程原则及相关概念;
  • 进行软件案例分析。
团队实现的学习目标
  • 了解了团队软件项目流程(TSP);
  • 学习了软件项目团队的角色分工;
  • 学习了软件项目经理的职责;
  • 掌握了敏捷流程原则及相关概念;
  • 进行了软件案例分析。
团队博客链接地址 Summer-limit

任务1的完成情况如下:

1. 阅读《现代软件工程—构建之法》第5、6章内容:

  • 软件项目团队的特点:

    • 团队有一致的集体目标,团队要一起完成这目标。
    • 团队成员有各自的分工,互相依赖合作,共同完成任务。
  • 软件项目团队的模式:

    • 主治医师模式:这样的软件团队中有首席程序员,他负责处理主要模块的设计和编码,其他成员从各种角度支持他的工作(后备程序员、系统管理员、工具开发、编程语言专家、业务专家)。
    • 明星模式:主治医师模式运用到极点,可以退化为明星模式。
    • 社区模式:社区由很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。
    • 业余剧团模式:在每一个项目中,不同的人会挑选不同的角色,在下一个项目中,这些人也许会换一个完全不同的角色类型。个人在团队中听从一个中央指挥的指导和安排。
    • 秘密团队:一些软件项目在秘密状态下进行,别人不知道他们具体在做什么。这种模式的好处是:团队内部以后极大的自由,较高的热情,没有外界的干扰。
    • 特工模式:软件行业的一些团队由一些有特殊技能的专业人员组成,负责解决一些棘手而有紧迫性的问题。
    • 交响乐团模式:门类齐全、各司其职。当某个软件领域处于稳定成长阶段的时候,众多大型软件公司的开发团队就会采取这种模式。
    • 爵士乐模式:强调个性化的表达,强有力的互动,对变化的内容有创意的回应。
    • 功能团队模式:很多软件公司的团队最后都演变成功能团队,具备不同能力的同事们平等合作,共同完成一个功能。
    • 官僚模式:这种模式在软件开发中会出问题,因为成员之间不光有技术方面的合作和领导,同时还混进了组织上的领导和被领导关系。
  • 瀑布模型的特点:

    • 阶段间具有顺序性和依赖性;
    • 区分软件的逻辑设计和物理设计,尽可能推迟程序的物理实现;
    • 质量保证观点。
  • 瀑布模型的各种变形的特点:
    • 生鱼片模型:解决了各步骤之间分离的缺点。
  • 大瀑布带着小瀑布:为了解决不同子系统之间进度不一,技术要求迥异,需要区别对待的问题,引入了子瀑布模型。
  • 渐进交付流程的特点:
    • 重复这个循环,直到时间用完,钱花光,完成了计划的迭代次数,或者用户满意了为止。
    • 把产品最核心的功能用最小的成本实现出来(或者描绘出来),然后快速征求用户意见。
  • 敏捷流程的特点:
    • 尽早并持续地交付有价值的软件以满足顾客需求;
    • 敏捷流程欢迎需求的变化,并利用这种变化来提高用户的竞争优势;
    • 经常发布可用的软件,发布间隔可以从几周到几个月,能短则短;
    • 业务人员和开发人员在项目开发过程中应该每天共同工作;
    • 以有进取心的人为项目核心,充分支持信任他们;
    • 无论团队内外,面对面的交流始终是最有效的沟通方式;
    • 可用的软件是衡量项目进展的主要指标;
    • 敏捷流程应能保持可持续的发展。领导、团队和用户应该能按照目前的步调持续合作下去;
    • 只有不断关注技术和设计,才能越来越敏捷;
    • 保持简明——尽可能简化工作量的技艺——极为重要;
    • 只有能自我管理的团队才能创造优秀的架构、需求和设计;
    • 时时总结如何提高团队效率,并付诸行动。
  • TSP原则:
    • 使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的。
    • 团队的各个成员对团队的目标、角色、产品都有统一的理解。
    • 尽量使用成熟的技术和做法。
    • 尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
    • 制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来)。
    • 增加团队的自我管理能力。
    • 专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。

2. 阅读《现代软件工程—构建之法》第9章内容:

  • 软件项目团队设置项目经理的缘由:

    • 团队成员之间交流的成本急剧增长;
    • 有很多开发和测试之外的事情,需要专人负责。
  • PM出现让团队内部出现了两个新特性:

    • 负责一个功能的开发/测试人员和相关的PM密切合作,再由PM代表这一小组去和别的小组或客户代表打交道,大大降低了交流的成本;
    • 有专人负责开发/测试之外的许多事务和项目进度的管理,让开发和测试人员专注于技术方面的工作。
  • 项目经理的职责:

    • 和客户交谈,组织用户调查,发现用户需求;
    • 了解和比较竞争对手的产品;
    • 怎么让软件变得可用(Usable)、有用(Useful);
    • 怎么改进团队的流程。
  • 成为一个合格的PM需要具备的能力:

    • 观察、理解和快速学习能力;
    • 分析管理能力;
    • 一定的专业能力;
    • 自省的能力。
  • 在一个项目中,PM的具体任务是:

    • 带领团队形成团队的目标/远景,把抽象的目标转化为可执行的、具体的、优美的设计;
    • 管理软件的具体功能的生命周期(需求/设想/设计/实现/测试/修改/发布/升级/迁移/淘汰);
    • 创建并维护软件的规格说明书,让它成为开发/测试人员及时准确的指导,而不是障碍;
    • 代表客户和用户的利益,主动收集用户反馈,预期用户新的需求.协调并决定各种需求的优先级;
    • 分析并带领其他成员对缺陷/变更需求形成一致意见,并确保实施;
    • 带领其他成员确保项目保持功能/时间/资源的合理平衡,跟踪项目进展,确保团队发布令客户满意的软件;
    • 收集团队项目管理和软件工程的各种数据,客观分析项目实施过程中的优缺点,推动项目成员持续改进,从而提振士气。

3. 团队讨论协作学习任务1学习内容的照片:

任务2的完成情况如下:

1. 选择的课题为 C:“CSDN技能树”。

2. 每位团队成员使用记录:

姓名 使用次数 使用时长(h)
阮凯 12 5
潘晴 7 3.5
孟姣姣 6 4
杨凯 5 3
  • 如下图,团队成员分别在技能树上体验了订制学习计划的功能:

3. 技能树首页面

  • 可以看到,CSDN技能树将与语言有关的领域分了个大体的知识类,每个知识类下有各个小知识点用以用户学习。

4. 选择一个知识,进入学习

  • 可以看到,CSDN将对知识的学习分为了四个学习模块,分别是参考资料、练习题、交流讨论和笔记。

5. 参考资料

  • CSDN技能树参考资料是各种博主自己编写的博客页面,用户可以点击进去学习,对于知识点的总结是比较完善和准确精简的,对于新手学习是十分友好有帮助的。

6. 练习题

  • CSDN技能树练习题主要是选择题的形式,可以看到对于知识点的总结掌握,用选择题的形式更能帮助用户学习,对于编程练习依旧是选择题的形式具有一定的局限性。

7. 交流讨论

  • 交流讨论板块内,有网站开发者自动为每个练习题创建的帖子,用户也可以自己在这一模块下创建帖子讨论呢。

8. 解决的问题:

  • 对于某一个语言或技能有比较详细的教学博客,认真看完的确能够学习到该技能。
  • 像一本语言词典,对知识的罗列概括基本全面,适合新手学习。

9. 优缺点以及用户体验:

  • 数据量

    • 优点:知识覆盖率较为全面,技能树节点的内容基本丰满,参考文章有一定质量保证。
    • 缺点:掌握某一知识技能的前置要求不清晰,对于知识的进阶扩展不足。
  • 界面

    • 优点:分类清晰,易操作,简洁大方。
    • 缺点:不适宜小窗口浏览,会有功能丢失的情况。浏览器设计有细节上的欠缺,影响美观。如下图所示:
  • 功能

    • 优点:满足新手学习的知识需求,练习题有难度标志,可以帮助用户对知识的查缺补漏。
      功能实现基本完整。
    • 缺点:练习题只有选择题形式,对于用户的编程学习具有一定的局限性。存在过时的知识内容,低质量的练习题。
  • 准确度

    • 优点:知识内容准确度有保证,菜单检索清晰准确。
    • 缺点:返回全部技能树页面的选项缺失,不易返回。

10. 用户体验:

  • CSDN技能树能够帮助用户系统地浏览关于一个技术领域的各个知识点,做动手练习,并跟踪自己的成长,上手简单易操作。
  • 内容与练习题之间的连贯性较差,习题形式过于单一,讨论区活跃度较低,用户遇到问题想要答疑也不能得到很好的解决。

11. 推荐给同学使用:

  • 背景和需求:
采访对象 路同学
个人背景 电子科技大学20级计算机网络专业
学习背景 对于编程语言有一定的学习基础,属于专精一种语言技能,正在学习算法知识。
痛点需求 有对其他编程语言学习的需求,但学校目前没有安排系统的课程教学
  • 用户使用照片:
  • 用户反馈:
    • 路同学在我们团队的推荐下使用链接进入了技能树,在一起浏览了技能树大体的功能页面后,路同学觉得可以在CSDN技能树上学习JAVA语言。
    • 向我们团队反馈的内容是体验感不错,对于零基础学习十分友好,但是对于实际运用的编程练习还是达不到学习需求,他觉得他还需要在其他学习平台上进行编程练习。
  • 用户对产品的改进意见:

12. 各项任务实际花费的时间:

任务 实际花费时间(min)
任务1
100
阅读《现代软件工程—构建之法》第5、6章内容
60
阅读《现代软件工程—构建之法》第9章内容
40
任务2
260
选题以及使用
120
优缺点以及用户体验
60
推荐给同学使用
80

13. 感受与体会:

  • 通过团队学习体验以及讨论,我们完成了这次实验。掌握了软件团队的项目团队的特点和模式,理解了一窝蜂模式、主治医师模式等,还深切体会了卡内基梅隆大学软件工程学院总结的TSP原则。此外也了解了软件团队设置项目经理的缘由、项目经理的职责等,并且团队内部也深刻贯彻这些职责,对团队的认识又进一步加深。

  • 对于任务二,我们团队选择的是C课题,通过团队内部对CSDN技能树进行了深入使用及评测,并且记录了其优缺点,还对我们团队内部通过评测得到的不足提出了相应的对策,希望能够对CSDN技能树的缺点能够进行改进。

posted @ 2022-04-16 21:16  夏日限定  阅读(247)  评论(0编辑  收藏  举报