202209-花开富贵! 实验五 团队作业2:软件项目案例分析
| 项目 | 内容 |
| 课程班级博客链接 | 详细内容请点击查看 |
| 作业要求链接 | 详细内容请点击查看 |
| 团队名称 | 花开富贵! |
| 团队的课程学习目标 | (1)学习团队软件项目流程(TSP)、软件项目团队的角色分工,软件项目经理的职责 (2)掌握敏捷流程原则及相关概念 (3)软件案例分析 |
| 这个作业在哪些方面帮助团队实现学习目标 | (1)理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点 (2)解软件项目团队设置项目经理的缘由、项目经理的职责 (3)分工合作完成软件案例分析 (4)体验CSDN App的功能 |
| 团队博客链接 | 详细内容请点击查看 |
一、任务1:以团队协作学习方式,阅读《现代软件工程—构建之法》
阅读《现代软件工程—构建之法》第5、6章内容,理解并掌握软件项目团队的特点和模式、结合理论课学习内容理解瀑布模型及其变形、渐进交付流程、敏捷流程等典型软件过程模型特点,理解并体会卡内基梅隆大学(CMU)软件工程学院总结的TSP原则;阅读《现代软件工程—构建之法》第9章内容,了解软件项目团
1.团队的特点

2.软件团队的模式
| 模式 | 特点 |
|---|---|
| 主治医师模式 | 首席程序员“主刀”(负责处理主要模块的设计和编码),其他成员“为主刀医师服务”(从各种角度支持他的工作)。 |
| 明星模式 | 主治医生模式运用到极致,可以蜕化为明星模式 |
| 社区模式 | 社区很多志愿者参与,每个人参与自己感兴趣的项目,贡献力量,大部分人不拿报酬。 |
| 业余剧团模式 | 个人在团队中听从一个中央指挥的指导和安排。 |
| 秘密团队 | 软件团队进行一些秘密的软件项目。 |
| 特工团队 | 软件行业的一些团队由一些有特殊技能的专业人士组成,负责解决一些棘手而紧迫性的问题。 |
| 交响乐团模式 | 家伙多,门类齐全;各司其职,各自有专门场地,演奏期间没有聊天、走动等现象;演奏都靠谱,同时看指挥的;演奏的都是练习过多次的曲目,重在执行。 |
| 爵士乐模式 | 不靠谱;没有现场指挥;人数较少。 |
| 功能团队模式 | 具备不同能力的同事们平等协作,共同完成一个功能。 |
| 官僚模式 | 几个人报告给一个小头目,几个小头目报告给中头目,依次而上。 |
3.瀑布模型:
- 概述: 瀑布模型:将软件生存周期的各项活动规定为按固定顺序而连接的若干阶段工作,形如瀑布流水,最终得到软件产品。其过程是将上一项活动的输出作为该项活动的输入,利用这一输入实施该项活动应完成的内容,然后对当前活动的工作结果进行验证,如果验证通过,则该结果作为下一项活动的输入,继续进行下一项活动,否则返回修改。
传统的瀑布模型:
- 优缺点对比:
| 瀑布模型的优点 | (1)为项目提供了按阶段划分的检查瀑布模型查点 (2)当前一阶段完成后,只需要去关注后续阶段 (3)可在迭代模型中应用瀑布模型 (4)它提供了一个模板,这个模板使得分析、设计、编码、测试和支持的方法可以在该模板下有一个共同的指导 |
| 瀑布模型的缺点 | (1)各个阶段的划分完全固定,阶段之间产生大量的文档,极大地增加了工作量 (2)由于开发模型是线性的,用户只有等到整个过程的末期才能见到开发成果,从而增加了开发风险 (3) 通过过多的强制完成日期和里程碑来跟踪各个项目阶段 (4)瀑布模型的突出缺点是不适应用户需求的变化 (5)早期的错误可能要等到开发后期的测试阶段才能发现,进而带来严重的后果 |
- 传统的瀑布模型过于理想化,早期的错误只有等到开发后期才能发现,进而带来严重的后果。温斯顿先后三次改进了模型:
在设计大型系统时,要做相邻步骤的回溯,解决上一阶段未能解决的问题。
要让产品成功,最好把这个模型走两遍,在此基础上收集反馈,改进各个步骤,并交付一个最终的版本。
用户的及早介入、讨论、复审是重要的。要让顾客正式地、深入地、持续地参与到项目中来。最终版本为:
-
瀑布模型的变形
生鱼片模型:解决了各个步骤之间分离的缺点。
![]()
大瀑布带着小瀑布:解决不同子系统之间进度不一,技术要求迥异,需要区别对待的问题。
渐进交付流程:
- 概述:接近近迭代式开发流程,当系统的主要需求和架构明确之后,软件团队进入一个不断演进的循环中。
![]()
敏捷流程:
-
概述:敏捷流程是一系列价值观和方法论的集合,相较于传统的软件模型来说,更加注重个人和交流,软件的可用性,与客户的合作和响应变化。敏捷对团队有三个要求:自主管理、自我组织、多功能型。
-
经验教训:
1.敏捷宣言表明的是一些优先级,不必当作圣旨或者教条来争论。
2.Scrum Master不是一个官,而是一个没有行政权力的沟通者,就像微软的PM那样。他/她同时还要在团队中做具体的工作。直接把原来的“经理”变成Scrum Master,大多行不通。
3.一些项目需要很多暗箱操作和政治角力才能搞定,Scrum会把这些矛盾都摆到明处。这有好处,也有风险。
4.在复杂的项目里,让一线团队成员做决定。
5.创业公司的团队其实经常是运行在Scrum的模式中(只不过大家太忙,没工夫论证自己到底有多么Scrum)
6.在Scrum计划阶段的估计不是一个“合同”,领导们不要把它当成一个合同。估计总是不准的。坚持短期的Sprint,这样即使不准的估计也不会有大的损害。
7.不要和管理层谈“流程”,他们只关心“结果”。
8.在大型团队、跨地区的团队,或者复杂项目中,Scrum并没有非常完美的答案,Scrum的创始人也承认这一点。 -
方法论 :
(1)找出完成产品需要做的事情——Product Backlog;
(2)决定当前的冲刺(Sprint)需要解决的事情——Sprint Backlog;
(4)冲刺。期间团队通过每日例会(Scrum Meeting)进行面对面交流,所有人向同伴报告进度。Scrum Master根据项目情况,用简明的图表展现整个项目的进度(燃尽图Burn Down Chart、看板图Kanban);
(5)得到软件的一个增量版本,发布给用户。然后在此基础上又进一步计划增量的新功能和改进;
![]()
4.卡内基梅隆大学(CMU)软件工程学院总结的TSP原则

5.软件项目团队设置项目经理的缘由、项目经理的职责:
- 软件项目团队设置项目经理的缘由
在软件项目的设计与实现之中,有一些问题是程序员不愿意花时间去做,例如:和客户交谈,组织用户调查,发现用户需求;了解和比较竞争对手的产品;怎么让软件变得可用、有用;如何改进团队流程。 - 软件项目团队项目经理的职责:
1.带领团队形成团队的目标/远景,把抽象的目标转化为可执行的、具体的、优美的设计;
2.管理软件的具体功能的生命周期。
3.创建并维护软件的规格说明书,让它成为开发/测试人员及时准确的指导,而不是障碍;
4.代表客户和用户的利益,主动收集用户反馈,预期用户新的需求。协调并决定各种需求的优先级;
5.分析并带领其他成员对缺陷/变更需求形成一致意见,并确保实施;
6.带领其他成员确保项目保持功能/时间/资源的合理平衡,跟踪项目进展,确保团队发布令客户满意的软件。
7.收集团队项目管理和软件工程的各种数据,客观分析项目实施过程中的优缺点,推动项目成员持续改进,从而提振士气。
![]()
二、任务2:以团队协作学习方式,从B、C、D三个软件案例分析任务中选择一个课题来进行。
案例分析任务来源参考链接:https://blog.csdn.net/SoftwareTeacher/article/details/119166747
我们组选择的是软件案例分析任务B
B)很多开发人员和IT专业的学生都在移动设备上学习、工作、社交,在移动设备上的APP 能满足这类目标用户的需求么?这类APP会被微信公众号取代吗? 请试用并分析 CSDN App功能(下载链接是:https://www.csdn.net/app/), 例如:点击 App 的首页下方正中间的那个 “动态” 按钮,打开后的微社区,就是大家要分析的动态功能, 可以在 “动态” 中发布几个动态,看看你的城市有哪些IT行业的网友。
1、团队各位成员花几天时间至少使用 <被评测软件>5次, 成为<被评测软件>的持续使用者,记录每位成员使用的时间和时长.
| 成员 | 使用时长(h) |
|---|---|
| 王凯英 | 1 |
| 张萌 | 1.5 |
| 谢宇涵 | 1 |
| 王亚亚 | 1.5 |
2、汇总<被评测软件> 解决了你们什么问题? <被评测软件>在数据量/界面/功能/准确度上各有什么优缺点? 用户体验方面有问题么?
- CSDN这款软件主要解决了以下问题:(1)有不懂或者不会的代码知识可以在上面直接查询,会有详细的解答。(2)老师布置的任务有不会的可以在上面找找灵感。(3)可以方便学生乃至各界人士在上面讨论各种疑难问题。
- 数据量:本款软件在数据量上有明显的优点,它不但搜索范围广而且搜索精度高。
- 界面:本款软件的界面排版清晰,字体大小也适中,颜色分布均匀和谐,适合男女老少老学习使用,缺点暂无。
- 功能:功能相对来说单一,有“动态”、“商场”、“消息”和“我的”这三大方面的功能,如果可以添加代码编写与测试运行这一功能这款软件会更受欢迎。
- 准确度:在准确度方面,本款软件的准确度相对来说是较高的。
- 在用户体验方面目前没有较大的问题。
3、将CSDN推荐给你们周围需要这样的软件朋友或同学, 记录你对这位用户使用体验的采访,记录采访提要如下:
1) 介绍这位用户的背景和需求 (他们为何要用这个软件/网站, 有什么痛点,还有别的需求吗?)
测试用户为西北某高校本科生,由于如何开发微信小程序遇到了诸多问题,可以利用此软件得到启发,并解决了问题。
2) 请这位用户使用10 分钟 <被评测软件> 的基本功能 ,上传用户使用<被评测软件>的照片。
- 上传用户使用该测评软件的照片:
![]()
3) 概述用户使用<被评测软件>的过程, 评判这位用户的问题解决了么? - 用户根据我们的帮助首先下载安装了CSDN APP,然后注册并登录软件。
- 熟练掌握了APP的使用方法以及各功能的用途。
- 在搜索框上输入了“微信小程序”等关键词,依据自身需要参考并改进。
- 此用户最终根据文章的帮助对自身作业进行了改正,最终完成了此次作业,并成功解决了问题。
4) 采访这位用户对产品有什么改进意见? - 部分资源的下载和使用需要用户支付一定的金额,可以适当放宽条件;
- 对文章正确性的检查应该严格,以免误导使用者。
- 对文章关键词搜索可以给关键词加上链接,加上说明。
- 让优秀文章脱颖而出,让糟粕答案沉下去。
本次作业的感受与体会
| 姓名 | 感受与体会 |
|---|---|
| 王亚亚 | 在本次作业是我们团队第二次合作,经过上次的合作有了一定的基础,在这次作业中分工更加明确,经过相互交流,讨论,相互配合完成了此次作业。 |
| 谢宇涵 | 通过本次作业,我学习了卡内基梅隆大学(CMU)软件工程学院总结的TSP原则、软件项目团队的特点和模式,也掌握了软件开发中的不同的开发流程如:瀑布模型,渐进交付和敏捷流程。在今后的学习中我也会将这些知识融入到实际操作中,加深对其的理解。 |
| 张萌 | 在本次作业中,我们组成员之间相互配合,和谐分工,共同完成本次实验。期间遇到问题也主动沟通,共同解决;当然我也学到了很多东西,尤其是对于瀑布模型的理解以及对CSDN的了解和熟悉,希望下次实验我能学到更多新知识。 |
| 王凯英 | 在本次作业中,我对CSDN这款软件有了更深的理解与认识。 |





浙公网安备 33010602011771号