一、代码的coding地址:https://coding.net/u/xuchunxiao119/p/homework_count/git#user-content-homeworkcount
二、《构建之法》读后问题以及感言:
1、 对于7.3MSF团队模型,7.2.6保持敏捷,预期和适应变化,中的“我们是预期变化,不是期望变化”我们如何让自己的软件处于不断的变化之中?换言之,我们如果推出了一款软件之后,如何给软件预留足够的更新空间,这些空间的具体位置我们如何得知呢?
2、9.3PM的作用:经过阅读PM的作用和能力之后,我想问,在我们学校的生活中,制作一款软件也需要PM吗?PM不是所有人都可以胜任的,一个团队中如果没有PM,还能按照正常的顺序运作吗?在学习生活中碰到风险我们应该如何处理呢?
3、我阅读了8.4节的竞争性需求分析的框架之后,我对NABCD模型产生了兴趣,这个模型在分析玩需求之后直接索取做法,我觉得有些突兀,因为这时候我们应该确定的是功能,即“电梯演说”中的办法,而不是软件的做法,我们用考虑好的功能来应对好处与竞争,从而不断的完善功能后,再找到实现这些功能的最简便的做法和工具,待产品出来之后经过现在很火的比如内测之后,再进行发布会不会效果更好?
4、11.4.2开发人员的标准工作流程具体流向是什么,新建缺陷完成后每一步的发现bug是如何发现的?发现以后又是如何处理的?
5、结对编程:根据结对编程的内容,正如79页两人合作的不同阶段和技巧所言,根据所学的人类心理学来说,很多人到了磨合阶段就会土崩瓦解,尤其是两个性格强势的人,那现在所说的结对编程还会变成单人编程。是不是出现第三个人调节会更好呢,三个人的团队复审效益会不会大于两个人的伙伴复审呢?而且对于编程来说,两人同时编程时程序质量会符合能力高的人的能力,那能力低的人对能力高的人的代码进行复审的时候会不会因为自身能力不足而无法判断出程序所存在的漏洞呢?
三、三种软件:
软件:
1、游戏类:《天涯明月刀》
(1)、软件开发者通过唯美的故事以及极佳的视觉效果(全部3D建模),360°无死角查看地图,而且但凡地图上有的建筑均可到达。目标是为了盈利和竞争,依靠自己的出奇的画面在国际电竞界博得一席之地。通过电子货币的形式通过装备等游戏必需品来盈利。
(2)我通过朋友介绍以及游戏官网宣传片的引到在游戏官网上进行下载。
(3)游戏中的人物很容易卡在一个界面不能动,游戏通过让角色传送至一个指定的位置来达到修复BUG的效果。游戏通过设计师预留位置从而通过补丁更新包来更新。
(4)网络游戏之间的竞争通常是通过游戏参与者的体验感受以及参与者愿不愿意进行投资的方面来竞争。
2、社交类:微信
(1)、软件开发者通过多种多样的新颖的社交方式,如摇一摇,漂流瓶等方式吸引我进行下载,微信的目标应该是为大众提供一个便捷的交流平台,毕竟腾讯不需要wechat来为自己谋利了,微信和QQ一起垄断了中国的社交软件行业,
(2)通过各种app商店下载均可下载到手机上(iphone有自己的APP store)。
(3)类似于这种社交软件一般是没有BUG的,即便有重启一下就可以了。聊天软件更新要加入很多功能所以是完整的整个更新,就像QQ每次更新完安装包也要完全更换。
(4)聊天软件是根据聊天的便捷性以及多种多样个性、新颖的功能来进行竞争的,所以腾讯公司几乎垄断了这个行业。
3、视频类:优酷客户端
(1)、软件的开发者通过广告,向我推荐视频清晰度,视频库的存储量来诱导我下载的,这种视频软件主要目的就是盈利,就像电影院一样,很多新上映的电影电视剧都要通过购买,即电子货币的交易来达到盈利的目的。目标:垄断视频行业,赚取金钱。
(2)通过在官网下载PC端下载到电脑上。
(3)视频软件一般很少有能出BUG的地方,最多就是卡顿,播电影像播ppt一样,其实内部处理BUG的话即让视频缓冲即可。视频软件更新一般是更新视频库,如果出现了新的功能则会进行大幅度更新。
(4)视频软件的竞争主要是视频库的存数量,辅助的是视频广告的长短、会员的价格等。
我在使用上述软件时它们是基于硬件使用的,它们赋予了硬件不同枯燥的按键的多姿多彩的功能,如果硬件是基础设施的话,软件就好比上层建筑,他们赋予了硬件多样的功能与特性。本质特性:1,软件工程关注于大型程序的构造;
2,软件工程的中心课题是控制复杂性;
——许多软件的复杂性主要不是由问题的内在复杂性造成的,而是由必须处理的大量细节造成的。
3,软件经常化;
4,开发软件的效率非常重要;
5,和谐地合作是开发软件的关键;
6,软件必须有效地支持它的用户;
7,在软件工程领域中是由一种文化背景的人替具有另一种文化背景的人创造产品。