• 202201待宰的高羊 实验五 团队作业2:软件项目案例分析


    项目 内容
    课程班级博客链接 2019级卓越工程师班
    这个作业要求链接 实验五 团队作业2:软件项目案例分析
    团队名称 待宰的高羊
    团队成员 何晨泽,高杨,阿丽米拉,谢家俊
    团队的课程学习目标 (1)学习团队软件项目流程(TSP)、软件项目团队的角色分工,软件项目经理的职责
    (2)掌握敏捷流程原则及相关概念
    (3)学习并实践软件案例分析
    这个作业在哪些方面帮助团队实现学习目标 (1)通过团队共同学习,了解并掌握知识点
    (2)进行软件案例分析
    团队博客链接 待宰的高羊

    任务1:以团队协作学习方式,阅读并掌握指定内容

    1. 软件项目团队的特点和模式

      • 软件项目团队的特点:

        • 团队有一致的集体目标,团队成员要一起完成目标。一个团队的成员不一定要一起工作。
        • 团队成员有各自的分工,互相依赖合作,共同完成任务。
      • 软件项目团队的模式:软件团队有各种形式,适用于不同的人员和需求,主要有以下几种。

        模式 特点
        一窝蜂模式(Chaos Team) 基于直觉形成,没有明确分工
        主治医师模式(Chief Programmer Team) 由首席程序员负责处理主要模块的涉及与编码,团队中余下成员从各种角度支持其工作
        明星模式(Super-star Team) 是“主治医师模式”运用至极点的结果,明星(首席程序员)的光芒盖过了团队中其余人的总和
        社区模式(Community Team) 每人参与自己感兴趣的项目,做出贡献,大部分为无偿
        业余剧团模式(Amateur Theater Team) 在不同的项目中,各成员负责内容不固定,均听从一个中央指挥的安排
        秘密团队(Skunk Work Team) 团队内部有极大的自由,较高的热情,没有外界的干扰
        特工团队(SWAT) 成员专精于于某领域且能达到“专家”地位,能够解决棘手、紧迫的问题
        交响乐团模式(Orchestra) 团队成员各司其职,听从指挥,合作稳定成熟
        爵士乐模式(Jazz Band) 与“交响乐团模式”存在较多对立,强调成员个人表达
        功能团队模式(Feature Team) 具备不同能力的团队成员平等协作
        官僚模式(Bureaucratic Model) 在技术方面的合作与领导中参杂组织上的领导与被领导关系,易降低效率
    2. 瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点

      • 瀑布模型(Waterfall Model)及其变形:瀑布模型是唯一被广泛采用的生命周期模型,且目前仍然是应用最广泛的模型。为了解决瀑布模型存在的问题,在实践中也提出了各种变形。

        模型 特点 优缺点
        瀑布模型 (1)阶段间具有循序性和依赖性
        (2)区分软件的逻辑设计与物理设计
        (3)质量保证观点
        优点:
        (1)可强迫开发人员采用规范的方法
        (2)严格规定了每个阶段必须提交文档
        (3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
        缺点:
        (1)软件的实际情况必须等到软件开发后期客户才能看到
        变形:生鱼片模型 各相邻模块像生鱼片那样部分重叠 优点:
        (1)解决了各步骤之间分离的缺点
        缺点:
        (1)无法明确上一阶段何时结束
        变形:子瀑布模型 大瀑布带着小瀑布 优点:
        (1)解决了不同子系统间进度不一,技术要求迥异,需要区别对待的问题
        缺点:
        (1)要将各个子系统统一到最后的系统测试阶段难度较大
        (2)软件的实际情况必须等到最后客户才能看到
      • 渐进交付流程(Evolutionary Delivery):当系统的主要需求和架构明确之后,软件团队进入了一个不断演进的循环之中:开发 \(\rightarrow\) 发布 \(\rightarrow\) 听取反馈 \(\rightarrow\) 根据反馈做改进,直到满足时间到了/钱花完了/用户满意了(很不满意,不再提供资金)条件之一为止,如下图所示。

        为解决渐进交付流程中用户等待时间过长,从而失去兴趣的问题,催生了以下两种方法:MVP(最小可行产品,Minimum Viable Product)以及MBP(最强最美产品,Maximum Beautiful Product)。
        方法 特点
        MVP 把产品最核心的功能用最小的成本实现出来
        MBP 在对用户的需求了然于心/产品团队比用户更了解用户需求的前提下,展现产品最全最美的形态征服用户
      • 敏捷流程:其目标是使软件团队具有高效工作和快速相应变化的能力,由下述四个简单的价值观声明组成。

        • 团队成员胜过过程和工具
        • 可以工作的软件胜过面面俱到的文档
        • 客户合作胜过合同谈判
        • 个体和响应变化胜过遵循计划

        其中,极限编程是敏捷流程中最富盛名的一个,“极限”二字的含义是指把最好的开发实践运用到极致。极限编程广泛应用于需求模糊且经常改变的场景。

    3. 卡内基梅隆大学(CMU)软件工程学院总结的TSP原则
      TSP(Team Software Process)原则是由卡内基梅隆大学软件工程学院(Software Engineering Institute, Carnegie Mellon University)将优秀的团队模式和流程的共同点抽象总结而来。TSP原则概览可访问TSP Overview - SEI Digital Library或如下所示。

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

      • 软件项目团队设置项目经理的缘由:
        书中提到,随着业务的发展和团队的壮大,存在如下的问题。

        • 交流成本问题(团队成员之间交流的成本急剧增长)
        • 开发和测试搞不定的事情(有很多开发和测试之外的事情,需要专人负责)
          • 和客户交谈,组织用户调查,发现用户需求
          • 了解和比较竞争对手的产品
          • 怎么让团队变得可用、有用
          • 怎么改进团队的流程

        为解决上述的问题,出现了PM(项目经理)这一角色。

      • 项目经理的职责:PM(项目经理)做开发和测试之外的所有事情。

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


    任务2:以团队协作学习方式,从B、C、D三个软件案例分析任务中选择一个课题来进行。

    选择软件案例分析任务C

    C)现在学习资料很多,但是很多同学在学习新技术的时候还是很茫然,有没有更好的学习路径? 大家可以体验一下“CSDN技能树”,这个软件包含了很多IT技能的学习资料(文章、课程)和练习题,可以边学边练,解锁全部知识点后,还可以获得一枚勋章,活动链接:https://bbs.csdn.net/topics/605609934。
    作为核心用户,CSDN技能树是否满足你们对类似软件产品的期待? 你们发现这些技能树有什么亮点?这个软件产品状态离预期还差哪些方面?

    姓名 使用次数 使用总时长(h)
    何晨泽 9 1.5
    高杨 6 1
    阿丽米拉 5 1
    谢家俊 6 1
    • 调研、评测

      • 测试环境:Windows 11 Pro (64Bit) + Chrome 100.0.4896.88 (64Bit)
      • 简介:
        CSDN技能树作为一站式学习工具,已历经多个版本的迭代,目前已有包括Python入门技能树C技能树算法技能树在内的共11个技能树。本次软件案例分析将以算法技能树为例。
      • 功能体验:
        1. 首页:如下图所示,我们可以观察到,页面首先可以分为上方的菜单区域和下方的技能树区域。其中,技能树区域又可分为左侧菜单,中部内容区域和右侧展示列。
          image
          • 点击左上角的“算法技能树(内测版)”字样,可唤出选择菜单,用以切换其他技能树。
          • 左侧菜单的功能与当前技能树首页中部内容区域的功能类似,均可让用户选择某一类别中的详细条目进行练习。两者仅有展示方式的不同,左侧菜单为方便用户快速跳转,采用的是下拉菜单的形式,各类别作为一级菜单,类别下的详细题目作为对应的二级菜单;中部内容区域则是将每一类别以卡片面板的形式展现,其中包含类别概述(知识点、参考资料数目等)以及详细题目。
          • 右侧展示列则包含了与技能树相关的其他内容,如学习奖章、相关内容、当前技能树的简介、当前技能树的反馈等。
        2. 详细内容页:如下图所示,页面结构与首页相同,此时右侧展示列变为笔记区域,并可自由调整大小。
          image
          • 中部内容区域分为四个选项卡(参考资料、练习题、交流讨论、笔记),右侧笔记区域可使用Markdown语法,并可预览效果。
        3. 练习提交页:选择“练习题”选项卡,进入所选题目(新页面),可选择答案后点击提交,如下图所示。
          image
          • 点击提交后会以对话框的形式即时反馈信息,如下图所示。
      • 解决的问题:

        • 为想要学习编程语言等计算机技能的0基础“小白”提供了一个一站式平台,解决了以往不同类别学习资源分散割裂的问题
        • CSDN作为中国最大的开发者社区来提供这样的学习平台,能够很好的整合平台现有的教程资源,解决了以往一些平台学习资源深度不足、内容不全的问题
        • CSDN技能树包含“学习奖章”的功能,对用户的学习行为提供正向反馈,解决了以往在其他平台学习时学习动力不强/长时间学习容易倦怠的问题
      • 优缺点:

      数据量 界面 功能 准确度
      优点 (1)对主流计算机技能的覆盖面较广
      (2)对现有技能树内基础知识点罗列基本全面
      (1)与常见技能树平台操作方式类似,用户上手门槛低
      (2)界面较为简洁美观,广告内容较少
      (1)基本覆盖了用户初次学习该类内容时所需功能
      (2)参考资料、交流讨论等模块能够帮助用户及时查漏补缺
      (1)通过较为清晰的菜单使得用户在手动检索时准确度较好
      缺点 (1)对某些常用计算机技能,如C++语言等有一定的缺失
      (2)现有技能树中进阶知识点覆盖不足
      (1)当内容区域内容较多时,界面会显得拥挤,不易阅读 (1)笔记部分拖动效果不佳,且编辑与预览分开的方式略显繁琐
      (2)现有的练习方式仍以选择题为主,对于更依赖于实操的计算机技术来说练习强度不足
      (1)缺少一个仅限于当前技能树的搜索方式,使得检索的准确度大打折扣
      • 用户体验:
        总体上来说,CSDN技能树作为CSDN开发的又一款产品,延续了此前CSDN产品较好的用户体验。用户上手门槛不高,内容详实,同时也考虑得较为细致。虽然技能树仅在面向公众测试的阶段,已经展现出了非常高的完成度和可用性,用户体验上乘。同时,由于内容广但不精等问题,也会给使用中的用户带来困扰。

      • 存在的Bug:

        1. 菜单项超出对话框边框:从下图中我们可以看到,最底部的“Python进阶技能树”选项已经超出了整体“请选择”对话框的底部边框。
          • 原因分析:在编写对话框高度时,没有根据内部选项内容动态调整,而是使用了固定高度。
          • 危害分级:该Bug不影响任何的正常操作,仅为页面的细微问题,故应当定为“比较明显,但不影响正常使用,不危害安全”
        2. 右侧“学习奖章”区域出现的奖章所对应的技能树不严谨:如下图所示,该奖章对应内容已无法在直接技能树的菜单中找到,后发现已被调整至“CS入门技能树”下。
          • 原因分析:在调整技能树内容时,没有相应调整奖章内容。
          • 危害分级:该Bug不影响任何的正常操作,仅为页面的细微问题,故应当定为“界面设计不足,有一定主观性,对少部分用户较小地影响用户体验”
      • 采访:

        • 采访对象背景及需求:
          基本信息:王同学,大连理工大学2019级电子信息专业
          相关背景:此前对编程语言等内容已有接触,但并没有达到非常深入的程度
          痛点需求:详尽而深入的教程来提升自己的能力
        • 采访对象使用技能树截图:
          image
          image
        • 概述用户使用使用过程,评判用户需求是否被解决:
          • 使用过程:
            根据技能树给出的顺序,用户从头开始,首先选择“蓝桥杯-基础”部分,对前三题进行了练习。对于每一道题目,用户先进入“练习题”选项卡,阅读题面并完成题目。随后进入“参考资料”选项卡,对自己解题方式进行查漏补缺,随后查看笔记和讨论等内容。
          • 需求是否被解决:
            仅解决了初步的需求,由于CSDN技能树中的内容现在还不够深入,无法满足用户更进一步提升自己的需求。
          • 采访这位用户对产品有什么改进意见:
            用户建议技能树能够修改答题形式,将其更改为Online Judge形式,提交代码,得出结果。而不是现在的选择题形式,用户认为选择题形式并不够具有挑战性。
          • 部分采访记录截图:

    任务3:完成《实验五 团队作业2:软件项目案例分析》团队博文作业

    1. 记录完成各项任务实际花费的时间
    任务内容 实际花费的时间(min)
    任务1 148
    任务2 330
    评测 243
    采访 87
    任务3 126
    1. 完成本次作业的感受和体会
    姓名 感受和体会
    何晨泽 本次作业以团队的形式学习了各项内容、分析了软件案例,使我对团队这一概念有了更深刻的理解,同时也系统的分析了一个软件案例,对概念进行了掌握并实践。
    高杨 在本次实验中,我们采用小组学习的方法掌握软件项目团队的特点和模式、结合理论课学习内容理解瀑布模型及其变形等知识,充分感受到了小组学习所带来的浓厚的学习氛围,同时为以后的学习奠定坚实的基础。
    阿丽米拉 本次实验是通过团队协作来完成的,我们相互讨论相互学习完成了此次作业,在小组合作的过程中,我们在小组各成员向组内成员阐述自己的看法,这不但可以增加我们学以致用的机会,还可以增强了对学习的爱好,提高了学习能力,为以后的学习打下了基础。
    谢家俊 在本次实验中随时跟团队伙伴分享观点,使得大家对于这次作业得到完善,通过讨论最终达到高效率的学习,我们都更加体会到了团队协作的力量,我们团队同学之间也更加的默契,相信在之后的合作中也会越来越好。
  • 相关阅读:
    Springboot使用外置tomcat的同时使用websocket通信遇到的坑
    SpringBoot 使用 ApplicationContextAware实现类出现NullPointException的问题
    Java搭建微信公众号的服务器配置
    axios异步访问后台 @RequestParam 获取参数 HTTP Status 400
    springboot启动失败的问题('hibernate.dialect' not set)
    Java Optional 类
    ubuntu 18.04 解决无法联网的问题
    ubuntu安装rpm格式文件方法
    简述vue中父子组件是怎样相互传递值的(基础向)
    实现网站中英文切换的三种方法
  • 原文地址:https://www.cnblogs.com/nwnu/p/16141779.html
Copyright © 2020-2023  润新知