第二次作业(个人作业):软件案例分析

rzqi_water rzqi_water 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区

声明:本作业以邹欣老师博客为基础进行修改。

很多同学有疑惑:

  • 软件工程课是否就是枯燥的理论课? 
  • 或者是几个牛人拼命写代码,其他人抱大腿的课? 
  • 要不然就是学习一个程序语言,练习某个框架, 搞一个职业培训的课?

都不对! 软件工程有理论,有实践,更重要的是分析,思辨,总结。 在课程中,同学们自己组织团队写一个软件发布, 然后分析其中的得失,的确是学习软件工程的一个好方法。 这样能根据切身体会来分析,很有价值,但也有可能 “身在此山中”,未能看清全局。 而且,课程时间有限,我们也不能做很多具体的项目。  另一方面,我们也可以从间接经验中学习、分析,别的项目的成败同样给我们很多启发。软件工程的学生,需要做很多分析,而且是深入的分析,分析过程中,如果有不懂的,那我们就可以探讨,说不定你懂得的比老师还多、还深刻,那么,老师和学生就可以一起进步了。

我们生活中很多时候要和软件打交道, 大家上课开小差时候玩的手机游戏, 背英语单词的手机App,买火车票的网站,互相联系用的微信微博,等等,都是软件,都很值得分析。  

  • 你为何成为它们的用户?
  • 你为何后来有不用它们了?
  • 它们的团队做对了什么,做错了什么?
  • 软件工程质量如何?
  • 如果你来做,会做得更好么?

通过各种案例分析, 评测,辩论, 总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。

分析什么样的软件也有讲究,这就要说到一个故事:

某国空军为了提高飞机在空战中的存活率,决定加固飞机,但是加固什么地方呢?  他们研究空战后飞回基地的飞机,飞机各部分中弹的地方和密度,想以此得出结论。 但是专家们忽略了一点,那些被击中要害的飞机,都没有能飞回基地,也没有能够参加这些调查。

幸存者偏倚 (Survivorship Bias) 是一种常见的逻辑谬误,意思是只能看到经过某种筛选而产生的结果,而没有意识到筛选的过程,因此忽略了被筛选掉的关键信息。这东西的别名有很多,比如“沉默的数据”、“死人不会说话”等等。

我们不光要分析那些经历战场的考验而最后 "活着出来" 而胜利的软件,还要分析那些在战场中被打败,或者伤痕累累,正在挣扎的软件,这样才能全面地了解软件工程的原理在好/坏软件上所起的作用。

有的同学会说, “我只会看看界面,写不出来什么技术分析...",  那么,可以看看只评价界面的分析报告,争取写出类似水平的报告来。

本次课程供分析的产品:

请从下面5个课题中选择一个课题来分析。

1、作为一个 IT 行业的学生或从业者,如果你碰到了问题, 你去哪里寻找答案呢? 请比较至少两个IT问答网站:列出它们具体的优缺点,并说明如果你来主持工作,你会怎么改进。

      1)CSDN开发者互助问答
      2)Stack Overflow
      3)自己选一个 (例如  SegmentFault 思否 )

2、现在学习资料很多,但是很多同学在学习新技术的时候还是很茫然,有没有更好的学习路径? 一个具体的案例,请评测CSDN上技能树功能(python 技能树,CS入门技能树, C技能树 )。请对照项目成员对自己产品的期待, 你作为一个学习这个技术的学习者,发现了技能树的什么亮点,有什么不满?

3、我们有很多 IT 人士要学习,要做笔记,看到一些好的博客、网页、代码想收藏,记下心得, 那么,哪家的笔记最好? 有没有试一下 C笔记?请试用一下,和你自己常用的笔记工具比较一下, 列出它的 3 个优点 和 3 个缺点,以及你想如何改进它?

4、现在很多开发人员和IT专业的学生都在移动设备上学习、工作,在移动设备上的APP 能满足这类目标用户的需求么?它们会被wx公众号取代么? 请分析 csdn 的APP

5、代码仓库管理系统有很多,他们对于你熟悉的目标用户 (中国高校大学生)有什么缺陷?如何改进? 请分析至少两个常见的代码仓库:

作业博客具体要求: 

第一部分  调研、评测

(参考知识点: 软件的bug,功能评测,黑箱测试,第8章 用户调研,12章软件的用户体验)

你在上面选中的要评测的软件或者服务,在这里被称为 <被评测软件/网站>。  

注册并使用  <被评测软件>  的主要功能,按照书中 bug 定义, 找出至少2个功能性 bug。用专业的语言描述 (每个bug 不少于 40字), 如有必要, 可以配图。

另外,请你自己花几天时间时不时用一下 <被评测软件>,  看看你有没有成为一个持续使用者。

<被评测软件> 解决了你的什么问题? 

相信每个同学的朋友中一定有人需要用这样的软件 (例如你上课的同学),  记载你对这位用户的采访。 

提示:  采访提要

1)    介绍采访对象的背景和需求 (他们为何要用这个软件/网站, 有什么痛点,还有别的需求么)

2)    让采访对象使用10 – 30 分钟 <被评测软件> 的基本功能  (请上传照片证明用户的确正在使用,  远程采访的同学请让别人帮忙照相)

3)    描述用户使用这个产品的过程,  用户的问题解决了么?  软件在数据量/界面/功能/准确度上各有什么优缺点?  用户体验方面有问题么?

4)    用户对产品有什么改进意见?

结论:经过这么多工作,你一定有充分的理由给这个软件下一个评价:

    a)   非常不推荐

    b)   不推荐

    c)   一般

    d)   推荐

    e)   非常推荐

请选择一个结论。 除了定性的结论,是否能有定量的结论 (就像最近比较时髦的手机评测那样, 跑个分?), 如何定量地评价一个软件?

第二部分 分析  

 (参考8.6 节 对工作的估计, 和14.1节 软件工程的质量)

根据你对 <被评测软件> 的了解, 现在请估计这个软件/网站/服务 做到这个程度大约需要多少时间 (团队人数6 人左右, 计算机大学毕业生,  并有专业UI 支持)。  分析这个软件目前的优劣 (和类似软件相比),    这个产品的质量在同类产品中估计名列第几? 它的市场份额估计第几? 两者匹配么? 不匹配的原因是什么?

在书上我们看到:

    程序 = 算法 + 数据结构;  

      软件 = 程序 + 软件工程   (软件服务还有数据,内容的因素)

      软件企业 = 软件 + 商业模式

你在第一部分发现的bug, 为何软件团队不能在发布前修复?他们是不知道,还是有意不修复?  你觉得是什么原因?从下面的可能性中选取几个:

对用户需求掌握不好
具体的设计质量不高
开发人员粗心大意
测试把关不严,敷衍了事,没有注意在特殊的配置或环境下测试
其他

团队在哪一个层次还有问题? 为何职业的软件团队还有这些问题?可以把自己想问软件团队的问题都列出来, 也许就能得到团队的亲自解答!

从各方面的问题,推理出这个软件团队在软件工程方面可以提高的一个重要方面, 期望你提出具体建议。

第三部分  建议和规划 

(参考《构建之法》第8章 功能的定位和优先级;第9章 项目经理)

这个软件/网站/服务有很多可以提高的部分, 如果你是新上任的项目经理, 如何提高从而在竞争中胜出?  

首先,市场有多大? 全中国IT 专业的学生和职业人士都可以是用户, 总共有多少人? 目前市场上有什么样的产品了,它们的优势劣势在哪里? 和它直接竞争的产品在那里? 这个领域是出于 (萌芽 / 成长 / 风口 / 平台 / 下降)阶段? 

作为新的项目经理,这个产品的核心用户群是什么样的人, 典型用户长什么样?学历,年龄,专业,爱好,收入,表面需求,潜在需求都是什么?

功能:你要设计什么样的功能? 为何要做这个功能,而不是其他功能? 为什么用户会用你的产品/功能?  你的创新在哪里? 可以用 NABCD 分析。

如果你有钱可以招聘6个人, 有4个月的时间, 你作为项目经理, 应该如何配置角色  (前端开发人员, 后端开发人员,测试人员,交互设计师,等等)?

描述你的团队在16周期间每周都要做什么, 才能在第16周如期发布软件的改进版本,并取得预想中的成绩。

 

评分标准:
 

  1. 按时提交, 文章显示较高的专业水平和认真细致的工作态度,评测比较深入而不流于表面敷衍,详略得当: 满分 (10分)
  2. 按时提交, 有各种不足, 则酌情扣分
  3. 抄袭、迟交作业, 得0分 

 本次作业提交截止日期:2022.10.28  24点

...全文
0人已提交
完成率0%
暂无数据

相关推荐

电信运营基于分类模型的客户流失预警系统:数据挖掘驱动的精准挽留策略设计

内容概要:本文围绕电信客户流失预警与挽留策略,构建了一套从数据探索、预处理、特征工程、分类建模、模型评估与解释到业务落地的端到端数据挖掘实战方案。基于公开的 Telco Customer Churn 数据集,项目聚焦于识别高流失风险客户,并通过逻辑回归、随机森林和XGBoost等模型进行对比分析,结合ROC-AUC、精确率、召回率、F1等指标评估性能,利用SHAP等方法实现模型可解释性,最终将预测结果转化为可操作的客户分层与差异化挽留策略。文中强调了数据泄漏防范、类别不平衡处理、模型可复现性及A/B测试验证增量收益的重要性,并明确指出当前图表为示意性质,需通过附录代码运行真实数据生成结果。; 适合人群:具备一定数据分析与机器学习基础,从事数据科学、用户运营或客户留存相关工作的从业者,尤其是工作1-3年希望提升实战能力的研发与分析人员。; 使用场景及目标:①掌握客户流失预测的全流程方法论,包括数据清洗、特征工程、建模调参与模型解释;②学习如何将机器学习模型输出转化为可运营的客户触达策略;③理解模型评估与业务目标之间的衔接,如预算约束下的优先级排序与A/B测试设计; 阅读建议:此资源以实际业务场景驱动,不仅关注算法实现,更重视从业务定义到策略落地的闭环逻辑。建议结合附录提供的完整Python代码,在本地环境中下载数据集并复现分析流程,重点关注数据预处理防泄漏机制、模型管道构建、超参数调优策略及SHAP解释应用,避免将文中的示意图表误认为实测结果。

云博士的AI课堂

旋转高频信号注入法在PMSM零低速无位置控制中的仿真研究(Matlab代码实现)

内容概要:本文系统研究了旋转高频信号注入法在永磁同步电机(PMSM)零低速无位置传感器控制中的应用,并提供了基于Matlab/Simulink的完整仿真代码实现。针对PMSM在启动及低速运行时反电动势微弱导致传统观测器失效的问题,该方法通过在定子绕组中注入高频旋转电压信号,利用电机自身凸极效应产生的响应电流特征,实现对转子位置的高精度在线估计。文中详细阐述了该技术的理论基础、数学建模过程、仿真系统架构设计以及关键参数整定方法,全面验证了其在零速和低速工况下对转子初始位置辨识与动态跟踪的准确性、有效性及强鲁棒性。; 适合人群:具备电机控制理论基础知识和Matlab/Simulink仿真能力的电气工程、自动化、电力电子等相关专业的硕士研究生、博士研究生、科研人员以及从事高性能电机驱动系统研发的工程师。; 使用场景及目标:① 深入理解高频信号注入类无位置传感器控制技术的工作原理、信号处理机制与工程实现细节;② 掌握利用Matlab/Simulink搭建PMSM高性能矢量控制系统及高级观测器的仿真方法;③ 为开发高精度、低成本、全速度范围适用的PMSM无位置传感器驱动器提供坚实的理论依据和技术验证平台。; 阅读建议:建议读者结合文中详尽的理论推导与所提供的仿真代码进行对照学习,亲自动手运行、调试仿真模型,通过改变负载、转速、注入信号参数等工况,观察系统响应与控制效果的变化,从而深刻掌握旋转高频注入法的内在工作机制与设计要点。

威武编程狮

Python小Demo实例源码爬取网易云音乐评论

Python小Demo实例源码爬取网易云音乐评论

zz_ll9023one

Python3 finally执行铁律

finally代码块无论try内部是否报错、是否执行return,都会强制执行。唯一例外:调用os._exit()直接终止解释器,跳过finally。业务场景:数据库连接、网络套接字、文件句柄回收,放入finally保证资源释放。特殊细节:try内部return不会立刻返回,会先执行finally内部代码,再返回结果。新手易错:在finally内部写入return,会覆盖try原有返回值,导致业务数据异常,严禁在finally使用return语句。 tiyu.xastone.com www.yingjie168.com 17kuaibu.com www.0760yx.net 1900kk.com

2601_97221235

基于线性时变MPC的无人驾驶车辆双移线轨迹跟踪仿真研究(Matlab代码、Simulink仿真实现)

基于线性时变MPC的无人驾驶车辆双移线轨迹跟踪仿真研究(Matlab代码、Simulink仿真实现)

稷下科研社
评论 1
收藏 已收藏
分享
返回顶部