项目 | 内容 |
---|---|
课程班级博客链接 | 2019级卓越工程师班 |
这个作业要求链接 | 实验五 团队作业2:软件项目案例分析 |
团队名称 | 待宰的高羊 |
团队成员 | 何晨泽,高杨,阿丽米拉,谢家俊 |
团队的课程学习目标 | (1)学习团队软件项目流程(TSP)、软件项目团队的角色分工,软件项目经理的职责 (2)掌握敏捷流程原则及相关概念 (3)学习并实践软件案例分析 |
这个作业在哪些方面帮助团队实现学习目标 | (1)通过团队共同学习,了解并掌握知识点 (2)进行软件案例分析 |
团队博客链接 | 待宰的高羊 |
任务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) 在技术方面的合作与领导中参杂组织上的领导与被领导关系,易降低效率
-
-
瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点
-
瀑布模型(Waterfall Model)及其变形:瀑布模型是唯一被广泛采用的生命周期模型,且目前仍然是应用最广泛的模型。为了解决瀑布模型存在的问题,在实践中也提出了各种变形。
模型 特点 优缺点 瀑布模型 (1)阶段间具有循序性和依赖性
(2)区分软件的逻辑设计与物理设计
(3)质量保证观点优点:
(1)可强迫开发人员采用规范的方法
(2)严格规定了每个阶段必须提交文档
(3)要求每个阶段交出的所有产品都必须经过质量保证小组的仔细验证
缺点:
(1)软件的实际情况必须等到软件开发后期客户才能看到变形:生鱼片模型 各相邻模块像生鱼片那样部分重叠 优点:
(1)解决了各步骤之间分离的缺点
缺点:
(1)无法明确上一阶段何时结束变形:子瀑布模型 大瀑布带着小瀑布 优点:
(1)解决了不同子系统间进度不一,技术要求迥异,需要区别对待的问题
缺点:
(1)要将各个子系统统一到最后的系统测试阶段难度较大
(2)软件的实际情况必须等到最后客户才能看到 -
渐进交付流程(Evolutionary Delivery):当系统的主要需求和架构明确之后,软件团队进入了一个不断演进的循环之中:开发 \(\rightarrow\) 发布 \(\rightarrow\) 听取反馈 \(\rightarrow\) 根据反馈做改进,直到满足时间到了/钱花完了/用户满意了(很不满意,不再提供资金)条件之一为止,如下图所示。
方法 特点 MVP 把产品最核心的功能用最小的成本实现出来 MBP 在对用户的需求了然于心/产品团队比用户更了解用户需求的前提下,展现产品最全最美的形态征服用户 -
敏捷流程:其目标是使软件团队具有高效工作和快速相应变化的能力,由下述四个简单的价值观声明组成。
- 团队成员胜过过程和工具
- 可以工作的软件胜过面面俱到的文档
- 客户合作胜过合同谈判
- 个体和响应变化胜过遵循计划
其中,极限编程是敏捷流程中最富盛名的一个,“极限”二字的含义是指把最好的开发实践运用到极致。极限编程广泛应用于需求模糊且经常改变的场景。
-
-
卡内基梅隆大学(CMU)软件工程学院总结的TSP原则
TSP(Team Software Process)原则是由卡内基梅隆大学软件工程学院(Software Engineering Institute, Carnegie Mellon University)将优秀的团队模式和流程的共同点抽象总结而来。TSP原则概览可访问TSP Overview - SEI Digital Library或如下所示。- 使用妥善定义的流程,流程中的每一步都是可以重复、可以衡量结果的。
- 团队的各个成员对团队的目标、角色、产品都有统一的理解。
- 尽量使用成熟的技术和做法。
- 尽量多地收集数据(也包括对团队不利的数据),并用数据来帮助团队做出理性的决定。
- 制定切合实际的计划和承诺,团队计划要由负责具体执行的的角色来制定(而不是从上级而来)。
- 增加团队的自我管理能力。
- 专注于提高质量,争取在软件生命周期的早期发现问题。最有效提高质量的办法是做全面而细致的设计工作(而不是在后期匆忙修复问题)。
-
软件项目团队设置项目经理的缘由、项目经理的职责
-
软件项目团队设置项目经理的缘由:
书中提到,随着业务的发展和团队的壮大,存在如下的问题。- 交流成本问题(团队成员之间交流的成本急剧增长)
- 开发和测试搞不定的事情(有很多开发和测试之外的事情,需要专人负责)
- 和客户交谈,组织用户调查,发现用户需求
- 了解和比较竞争对手的产品
- 怎么让团队变得可用、有用
- 怎么改进团队的流程
为解决上述的问题,出现了PM(项目经理)这一角色。
-
项目经理的职责:PM(项目经理)做开发和测试之外的所有事情。
- 带领团队形成团队的目标/远景,把抽象的目标转化为可执行的、具体的、优美的设计;
- 管理软件的具体功能的生命周期;
- 创建并维护软件的规格说明书,让它称为开发/测试人员及时准确的指导,而不是障碍;
- 代表客户和用户的利益,主动收集用户反馈,预期用户新的需求。协调并决定各种需求的优先级;
- 分析并带领其他成员对缺陷/变更需求形成一致意见,并确保实施;
- 带领其他成员确保项目保持功能/时间/资源的合理平衡,跟踪项目进展,确保团队发布令客户满意的软件;
- 收集团队项目管理和软件工程的各种数据,客观分析项目实施过程中的优缺点,推动项目成员持续改进,从而提振士气。
-
-
团队讨论协作学习截图
任务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个技能树。本次软件案例分析将以算法技能树为例。 - 功能体验:
- 首页:如下图所示,我们可以观察到,页面首先可以分为上方的菜单区域和下方的技能树区域。其中,技能树区域又可分为左侧菜单,中部内容区域和右侧展示列。
- 点击左上角的“算法技能树(内测版)”字样,可唤出选择菜单,用以切换其他技能树。
- 左侧菜单的功能与当前技能树首页中部内容区域的功能类似,均可让用户选择某一类别中的详细条目进行练习。两者仅有展示方式的不同,左侧菜单为方便用户快速跳转,采用的是下拉菜单的形式,各类别作为一级菜单,类别下的详细题目作为对应的二级菜单;中部内容区域则是将每一类别以卡片面板的形式展现,其中包含类别概述(知识点、参考资料数目等)以及详细题目。
- 右侧展示列则包含了与技能树相关的其他内容,如学习奖章、相关内容、当前技能树的简介、当前技能树的反馈等。
- 详细内容页:如下图所示,页面结构与首页相同,此时右侧展示列变为笔记区域,并可自由调整大小。
- 中部内容区域分为四个选项卡(参考资料、练习题、交流讨论、笔记),右侧笔记区域可使用Markdown语法,并可预览效果。
- 练习提交页:选择“练习题”选项卡,进入所选题目(新页面),可选择答案后点击提交,如下图所示。
- 点击提交后会以对话框的形式即时反馈信息,如下图所示。
- 首页:如下图所示,我们可以观察到,页面首先可以分为上方的菜单区域和下方的技能树区域。其中,技能树区域又可分为左侧菜单,中部内容区域和右侧展示列。
-
解决的问题:
- 为想要学习编程语言等计算机技能的0基础“小白”提供了一个一站式平台,解决了以往不同类别学习资源分散割裂的问题;
- CSDN作为中国最大的开发者社区来提供这样的学习平台,能够很好的整合平台现有的教程资源,解决了以往一些平台学习资源深度不足、内容不全的问题;
- CSDN技能树包含“学习奖章”的功能,对用户的学习行为提供正向反馈,解决了以往在其他平台学习时学习动力不强/长时间学习容易倦怠的问题。
-
优缺点:
数据量 界面 功能 准确度 优点 (1)对主流计算机技能的覆盖面较广
(2)对现有技能树内基础知识点罗列基本全面(1)与常见技能树平台操作方式类似,用户上手门槛低
(2)界面较为简洁美观,广告内容较少(1)基本覆盖了用户初次学习该类内容时所需功能
(2)参考资料、交流讨论等模块能够帮助用户及时查漏补缺(1)通过较为清晰的菜单使得用户在手动检索时准确度较好 缺点 (1)对某些常用计算机技能,如 C++
语言等有一定的缺失
(2)现有技能树中进阶知识点覆盖不足(1)当内容区域内容较多时,界面会显得拥挤,不易阅读 (1)笔记部分拖动效果不佳,且编辑与预览分开的方式略显繁琐
(2)现有的练习方式仍以选择题为主,对于更依赖于实操的计算机技术来说练习强度不足(1)缺少一个仅限于当前技能树的搜索方式,使得检索的准确度大打折扣 -
用户体验:
总体上来说,CSDN技能树作为CSDN开发的又一款产品,延续了此前CSDN产品较好的用户体验。用户上手门槛不高,内容详实,同时也考虑得较为细致。虽然技能树仅在面向公众测试的阶段,已经展现出了非常高的完成度和可用性,用户体验上乘。同时,由于内容广但不精等问题,也会给使用中的用户带来困扰。 -
存在的Bug:
- 菜单项超出对话框边框:从下图中我们可以看到,最底部的“Python进阶技能树”选项已经超出了整体“请选择”对话框的底部边框。
- 原因分析:在编写对话框高度时,没有根据内部选项内容动态调整,而是使用了固定高度。
- 危害分级:该Bug不影响任何的正常操作,仅为页面的细微问题,故应当定为“比较明显,但不影响正常使用,不危害安全”
- 右侧“学习奖章”区域出现的奖章所对应的技能树不严谨:如下图所示,该奖章对应内容已无法在直接技能树的菜单中找到,后发现已被调整至“CS入门技能树”下。
- 原因分析:在调整技能树内容时,没有相应调整奖章内容。
- 危害分级:该Bug不影响任何的正常操作,仅为页面的细微问题,故应当定为“界面设计不足,有一定主观性,对少部分用户较小地影响用户体验”
- 菜单项超出对话框边框:从下图中我们可以看到,最底部的“Python进阶技能树”选项已经超出了整体“请选择”对话框的底部边框。
-
采访:
- 采访对象背景及需求:
基本信息:王同学,大连理工大学2019级电子信息专业
相关背景:此前对编程语言等内容已有接触,但并没有达到非常深入的程度
痛点需求:详尽而深入的教程来提升自己的能力 - 采访对象使用技能树截图:
- 概述用户使用使用过程,评判用户需求是否被解决:
- 使用过程:
根据技能树给出的顺序,用户从头开始,首先选择“蓝桥杯-基础”部分,对前三题进行了练习。对于每一道题目,用户先进入“练习题”选项卡,阅读题面并完成题目。随后进入“参考资料”选项卡,对自己解题方式进行查漏补缺,随后查看笔记和讨论等内容。 - 需求是否被解决:
仅解决了初步的需求,由于CSDN技能树中的内容现在还不够深入,无法满足用户更进一步提升自己的需求。 - 采访这位用户对产品有什么改进意见:
用户建议技能树能够修改答题形式,将其更改为Online Judge形式,提交代码,得出结果。而不是现在的选择题形式,用户认为选择题形式并不够具有挑战性。 - 部分采访记录截图:
- 使用过程:
- 采访对象背景及需求:
- 测试环境:
任务3:完成《实验五 团队作业2:软件项目案例分析》团队博文作业
- 记录完成各项任务实际花费的时间
任务内容 | 实际花费的时间(min) |
---|---|
任务1 | 148 |
任务2 | 330 |
评测 | 243 |
采访 | 87 |
任务3 | 126 |
- 完成本次作业的感受和体会
姓名 | 感受和体会 |
---|---|
何晨泽 | 本次作业以团队的形式学习了各项内容、分析了软件案例,使我对团队这一概念有了更深刻的理解,同时也系统的分析了一个软件案例,对概念进行了掌握并实践。 |
高杨 | 在本次实验中,我们采用小组学习的方法掌握软件项目团队的特点和模式、结合理论课学习内容理解瀑布模型及其变形等知识,充分感受到了小组学习所带来的浓厚的学习氛围,同时为以后的学习奠定坚实的基础。 |
阿丽米拉 | 本次实验是通过团队协作来完成的,我们相互讨论相互学习完成了此次作业,在小组合作的过程中,我们在小组各成员向组内成员阐述自己的看法,这不但可以增加我们学以致用的机会,还可以增强了对学习的爱好,提高了学习能力,为以后的学习打下了基础。 |
谢家俊 | 在本次实验中随时跟团队伙伴分享观点,使得大家对于这次作业得到完善,通过讨论最终达到高效率的学习,我们都更加体会到了团队协作的力量,我们团队同学之间也更加的默契,相信在之后的合作中也会越来越好。 |