软件工程 案例分析作业


现代软件工程  构建之法 作业https://bbs.csdn.net/forums/SoftwareEngineering?typeId=1723

软件工程作业  案例分析

(建议作为个人或结对作业)

很多同学有疑惑:

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

都不对! 软件工程有理论,有实践,更重要的是分析,思辨,总结。 在课程中,同学们自己组织团队写一个软件发布, 然后分析其中的得失,的确是学习软件工程的一个好方法。 这样能根据切身体会来分析,很有价值,但也有可能 “身在此山中”,未能看清全局。 而且,课程时间有限,我们也不能做很多具体的项目。  另一方面,我们也可以从间接经验中学习, 分析,别的项目的成败同样给我们很多启发。生物专业的学生,要解剖很多动物植物,法律专业的学生,要分析很多案例,建筑专业的学生,要实地分析并参与各种项目。 那么,软件工程的学生,当然也要做很多分析,而且是深入的分析,分析过程中,如果有不懂的,那我们就可以探讨,说不定你懂得的比老师还多,还深刻,那么,老师和学生就可以一起进步了, 正如这个讨论区显示的那样: 构建之法社区-CSDN社区云https://bbs.csdn.net/forums/SoftwareEngineering?typeId=828

我们生活中很多时候要和软件打交道, 大家上课开小差时候玩的手机游戏, 背英语单词的手机App,买火车票的网站,互相联系用的微信微博,等等,都是软件,都很值得分析。  你为何成为它们的用户? 你为何后来有不用它们了? 它们的团队做对了什么,做错了什么? 软件工程质量如何? 如果你来做,会做得更好么?通过各种案例分析, 评测,辩论, 总结,我们就能看到软件工程的原则在实践中的种种体现,学好软件工程,帮助我们在实践中做得更好。

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

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

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

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

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

2022  学年供分析的产品

从 A - G 中选择一个课题来分析。 

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

  1. CSDN开发者互助问答社区_程序员有问必答-CSDN问答
  2. Stack Overflow - Where Developers Learn, Share, & Build Careers
  3. 自己选一个 (例如  SegmentFault 思否 )

建议评测的要点:

  1. 核心需求:我提了问题,多长时间才能得到有价值的回答? 可以提多个问题,取平均值。 
  2. 辅助需求:在提问题的过程中,我能得到什么帮助,让我提问题更快,提供信息更准确,更能找到可能的回答者? 
  3. 便利性需求:我在 PC/App 上都可以提问并跟踪我的问题么? 体验如何?
  4. 其他需求:如果我是一个回答者,这个社区给了我足够的回报么? 这个社区怎么培养友好而高效的技术讨论氛围?
  5. 其他...

B)现在很多课程都部分或者全部在网上进行,在 IT 界,开源的风气也很时兴,一些课程也通过各种手段在不断在网上公开化,透明化。 在网上上课有利有弊,网上的教学社区应该怎么满足用户(老师,学生,学校)的需求? 请看 CSDN 的网上教学社区的例子: https://bbs.csdn.net/topics/608073810 你可以直接分析你所在的网上教学社区,它有什么好的功能,不好的缺点? 

C)说到开源,很多同学都听说过,那么,你亲身参与过一个开源项目么? 开源项目应该怎么管理。 请看这个开源项目: map.csdn.net , 和它的开源社区:Issue · CSDN 技术社区 / csdn-datav · GitCodehttps://gitcode.net/csdn/csdn-datav/-/issues这个开源项目的功能有哪些吸引你的地方,有哪些不足,如果你要参与贡献,你碰到了哪些困难? 可以分析一下。 如果你要更多地了解开源,请看这个开源的作业: https://bbs.csdn.net/topics/607938212 


D)现在学习资料很多,但是很多同学在学习新技术的时候还是很茫然,有没有更好的学习路径?请看这个作业:https://bbs.csdn.net/topics/608354341 

一个具体的案例,请评测 技能树  (例子: Python 技能树, CS入门技能树, C 语言技能树 等)。 请对照 项目成员对自己产品的期待, 你觉得这个目前的产品状态离原来的期望还差哪几个方面? 你作为一个学习这个技术的学习者,发现了技能树的什么亮点,有什么不满?

E) IT 人士都会写文章,写技术文档,实验报告,等等。 写博客谁都会,那么,哪家的博客编辑器最好? 大家都听说了 Markdown 这种高效率的文档风格,CSDN 的 Markdown 编辑器好用么?它对于各种文件格式,插入图像,动画,表格,代码块的支持如何? 你作为一个开始写博客的人, 发现了什么问题?请写一个详细的博客描述你碰到的问题,以及改进的建议。

链接: 写文章-CSDN博客

还可以看看一下优秀的博客: 极客日报社区-CSDN社区云  从这些优秀博客中学习到写博客的各种技巧。 

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

G) 分析IT 人士的社区: http://blink.csdn.net  ,现在网上的社区很多了, 哪个是你非常喜欢的? 很多开发人员和IT专业的学生都在移动设备上学习、提问、社交,在移动设备上的APP 能满足这类目标用户的需求么?它们会被wx公众号取代么? 请分析 CSDN 的移动App, 不要面面俱到,请聚焦一下, 分析它的 “动态” 功能。

1. 看看你的城市有什么IT的网友

2. 看看大家的分享能否引起你的兴趣,找到有共同兴趣爱好的 IT 人? 

 下载链接是:  ​​

CSDN 的APPhttps://www.csdn.net/app/

作业博客具体要求:

第一部分  调研, 评测

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

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

注册并使用  <被评测软件>  的主要功能,按照书中 bug 定义, 找出几个功能性的比较严重的 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周如期发布软件的改进版本,并取得预想中的成绩。

把上面几个部分都写清楚,发一个博客,博客中请加一个链接指向这个作业要求 (本博客)。

 --------

附录

2020 - 2021 学期供分析的产品

  1. 作为一个 IT 行业的学生或从业者,如果你碰到了问题, 你去哪里寻找答案呢? 请比较至少 3个 IT 问答网站:列出它们具体的优缺点,并说明如果你来主持工作,你会怎么改进。
    1. CSDN开发者互助问答社区_程序员有问必答-CSDN问答
    2. Stack Overflow - Where Developers Learn, Share, & Build Careers
    3. 自己选一个 (例如:https://v2ex.com/  SegmentFault 思否 )
  2. 现在很多开发人员和IT专业的学生都在移动设备上学习、工作,在移动设备上的APP 能满足这类目标用户的需求么?它们会被wx公众号取代么? 请分析 csdn 的APP
  3. 代码仓库管理系统有很多,请你分析一下他们对于你熟悉的目标用户 (中国高校大学生)有什么缺陷,如何改进?  (建议分析这个 代码仓库管理系统: https://codechina.csdn.net/dashboard/projects/home) 
  4. 微软公司有两个代码编辑器, Visual Studio, VS Code,它们的目标用户,主要功能有何不同?为何要有两个编辑器和开发环境? 请用这两个编辑器/IDE 分别写出一个简单的 C/C++/Python 程序,描述你的发现。 

2019 - 2020 学期供分析的产品

①  现在人工智能 (AI) 非常火热, 我们能否分析一些AI 相关的开发产品,例如 智能表单信息抽取识别 它有何创新, 有何不足,你从中看到了什么机会? 如何参与这个开源项目?

②  cnblogs.com 的博客功能, 特别是 首页 - 班级博客 - 博客园 中针对学习,教学,班级管理,互相交流的功能。 请用它写一些博客和评论,你觉得你会成为它的用户么?这一方面的参考对象是: www.csdn.net。

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

④  微软公司有两个代码编辑器, Visual Studio, VS Code,它们的目标用户,主要功能有何不同?为何要有两个编辑器和开发环境? 请用这两个编辑器/IDE 写出一个简单的 C/C++/Python 程序,描述你的发现。 

2017 - 2018 学期供分析的产品 (从下面 3 类产品中挑一个你最感兴趣的):

①  现在人工智能 (AI) 非常火热, 我们能否分析一些AI 相关的开发产品,例如 OpenMind Studio,  VS Code Tools for AI。这些新工具有何创新, 有何不足,你从中看到了什么机会?

②  cnblogs.com 的博客功能, 特别是 首页 - 班级博客 - 博客园 中针对学习,教学,班级管理,互相交流的功能,这一方面的参考对象是: www.csdn.net。

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

请向老师咨询评测博客文章的上交期限. 建议的打分标准是:

  1. 按时提交, 文章显示较高的专业水平和认真细致的工作态度,评测比较深入而不流于表面敷衍,详略得当: 满分 (10分)
  2. 按时提交, 有各种不足, 则酌情扣分
  3. 迟交作业, 得  0 分 。
  4. 一周内不交作业, 从学生成绩中倒扣分数。
  5. 抄袭等行为则根据学校有关规定处理

--------------------------------------------------------------------------------

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/500628.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

现代软件工程讲义 目录

软件工程牵涉的范围很广, 同时也是一般院校的同学反映比较乏味的课程。 但是软件工程的技术对于投身IT 产业的学生来说是非常重要的。 经过几年的探索, 我总结了在16周的时间内让同学们通过 “做中学 (Learning By Doing)” 掌握实用的软件工程技术的教学计划。 这套讲义在下面…

php的数据模型包括,数据库中模型的分类有哪些

数据库中模型的分类&#xff1a;1、概念数据模型&#xff0c;面向用户、面向现实世界的数据模型&#xff0c;描述一个单位的概念化结构&#xff1b;2、逻辑数据模型&#xff0c;可以通过实体和关系勾勒出企业的数据蓝图&#xff1b;3、物理数据模型&#xff0c;具有以实物或画图…

现代软件工程 团队作业 - 软件分析和用户需求调查 (2013 - 2014)

【现代软件工程 的讲义】 医学院的学生, 要练习解剖人体; MBA 的学生&#xff0c; 要剖析某公司的成败&#xff1b; 法律系的学生&#xff0c;要阅读和分析大量案例...... 软件行业的从业人员, 不管是项目经理, 开发或测试人员, 都要学会解剖分析软件, 我们就来试试看。 要求:…

php 去年年初和年底时间,PHP 日期与时间

获取时间1.使用 date 函数格式化一个本地时间。//输出当前时间echo date(‘Y-m-d H:i:s‘);2.使用 getdate 函数获取时间戳的日期时间信息。//打印出详细的信息var_dump(getdate(time()));时间戳1.使用 time 函数获取当前时间戳//输出当前的时间戳echo time()2.使用 mktime 函数…

Arrays.sort() and 吾欲仁则斯仁至矣

有不少人在争论 Java 对学生有益还是有害&#xff08;不少网站上的评论有断章取义的嫌疑&#xff0c;不值得多看&#xff0c;建议看这个中文链接&#xff09;&#xff08;英文链接&#xff09;。事实上&#xff0c;这个问题事实上不是最近才提出来&#xff0c;大约6~7 年前&…

一目了然

这是啥&#xff1f; a) 某星系的结构图 b) 博客堂的社会关系网络 c) 某传销网络 d) 某合法视频直播网络&#xff0c;可以看到CCTV-1 全部节目&#xff0c;包括春晚&#xff0c;有时还有体育节目。 最近在帮助一个项目的测试工作&#xff0c;这个项目需要通过一些数据及日志重现…

php 万分之一几率,那万分之一的概率啊……

【今日】不要心存侥幸心理&#xff0c;那万分之一的概率啊……也许就是发生在自己身上。【正文】1老公抱着暖暖&#xff0c;大踏步的向前走去&#xff0c;兴奋的说:“我刚在群里问了一下&#xff0c;还没人回复&#xff0c;你说不会两家店全部装修吧&#xff1f;这万分之一的概…

JS常用事件大全

事件 事件通常与函数配合使用&#xff0c;这样就可以通过发生的事件来驱动函数执行。 注意&#xff1a;事件名称大小写敏感。若是事件监听方式&#xff0c;则在事件名的前面取消on。 1. 鼠标事件 给btn按钮添加点击事件&#xff0c;点击弹出 你好&#xff01; 2. 键盘事件…

重要但不紧急的事

事儿真多。 有重要的事&#xff0c;有紧急的事&#xff0c;有紧急但不重要的事&#xff0c;也有重要但不紧急的事。&#xff08;详细的论述参见 “超级高效人士的超级61个习惯”或者其他时间管理的书籍&#xff09; 对于IT 行业的人来说&#xff0c;读书&#xff0c;是一件重要…

php 动态添加表格行,jQuery给html表格动态添加行方法总结

这次给大家带来jQuery给html表格动态添加行方法总结&#xff0c;jQuery给html表格动态添加行的注意事项有哪些&#xff0c;下面就是实战案例&#xff0c;一起来看一下。本文实例讲述了jQuery实现html表格动态添加新行的方法。分享给大家供大家参考。具体实现方法如下&#xff1…

奖品兑现 – 我家没有好茶饭,只有《编程之美》送亲人

[由于blog.joycode.com 在改版ing, 我的这篇帖子上不了首页。我会在 www.yishan.cc 放同样的文章。] 我在庆祝 中国微软地图 的博客上提出了有奖找bug 的活动。现在《编程之美》 终于出版了&#xff0c;也到了兑现奖品的时候。 几天不来&#xff0c;发现这里的界面变得比较有挑…

php3绕过,PHPB2B注入#3(绕过过滤)

PHPB2B某处注入绕过过滤。官方最新版本. https://github.com/ulinke/phpb2b/archive/master.zip详细说明&#xff1a;1.注册企业会员。2.注册企业会员且通过审核。发布产品。漏洞文件。virtual-office/product.phpContent-Disposition: form-data; name"data[product][sor…

地图点儿莱唔点儿康的新功能 – 路况 和 短信

最近家里的的项目有所变化&#xff0c;首先&#xff0c;吃的 – 据说公司原来是每天下午3点到3点05分供应时鲜水果&#xff0c;现在改为8小时供应。而且时不时还有免费晚餐&#xff0c;听说他们项目组的同事纷纷赞美 – 工作着是美丽的。。。 其次上下班时间不太正常 &#xff…

java五子棋实训训心得,java五子棋实习报告

java五子棋实习报告 Java 程序设计基础 实习报告 课程名称 Java 程序设计基础 实习题目 java 五子棋 专 业 班 级 学 号 学生姓名 指导教师 Java 实习报告 一、一、J JAVAAVA 技术介绍技术介绍 Java 技术是一门编程语言&#xff0c;也是一个平台&#xff0c;它基于 Java 虚拟机…

人山人海人立方 http://renlifang.msra.cn

一位朋友最近跟我说 - 我现在隔一天才能开车经过北四环&#xff0c;一路上看到空空如也的奥运专用道和巍峨的运动场馆&#xff0c;有感而发&#xff0c;想出一个上联要让我们的“对联网站”来对&#xff0c;但是一直没有得到很好的下联&#xff0c;你们的另一个新产品帮我对出…

php变量教学,PHP变量详解

什么是变量变量指的就是在程序执行过程中数值可以变化的量&#xff0c;它与我们所讲的常量是相反的&#xff0c;我们常量是只要被定义了&#xff0c;在程序中就不能被改变。而变量是可以变的。变量作用变量就是用来保存我们值&#xff0c;相当于一个存储数据的容器。x 5;y 6;…

2008 年 十大预测的总结 (只对了一半左右)

2008年头一天&#xff0c;收集了众多专家对2008年的预测&#xff0c;现在该是总结一下的时候了&#xff0c;以下 {} 内的字为总结。 大概算了算, 十大预测只对了一半左右 – 可以称为半仙。 专注于部分软件技术的部分专家对2008 年的部分预测的top 10 上次博客堂年会的时候&…

java如何实现开机启动,怎样实现开机启动holer

Holer客户端软件设置开机启动Holer client 1.2版本支持设置开机自启动。Holer Java语言版本解压软件包&#xff0c;进入目录&#xff1a;cd holer-client/binWindows系统&#xff1a;双击 setup.vbs注意事项&#xff1a;请确保当前用户对如下目录具有读取、写入、执行、修改等权…

同学们对《现代软件工程》课程的意见

在这里&#xff1a; http://greatsoftware.spaces.live.com/blog/cns!42F139862BB64716!332.entry 在考试的时候&#xff0c;我提到 – 如果答题答不出来&#xff0c;提一些意见&#xff0c;也可以加分&#xff0c;所以意见还算挺踊跃。 又到了拉出来遛遛的时候了, 今年的5个…

java new expression,JAVA公式解析示例

// 数值型Expression exp new Expression("(x y)/2");Map variables new HashMap();variables.put("x", new BigDecimal("4.32"));variables.put("y", new BigDecimal("342.1"));BigDecimal result exp.eval(variables)…