软件工程第一次作业

第一题 四则运算

我使用的是vs2012编译器来编写代码,使用了srand(unsigned(time(NULL)))来随机产生数,进而随机产生各个计算,可控制算式的个数,可显示得分情况,包括整数和真分数的加减乘除。通过本次实验,学到的函数有:srand(unsigned(time(NULL))) 和 fflush(stdin);

代码链接: xinz

第二题 看完《构建之法》,存在的问题:

1, 在1.2工软件程是什么作者提出:软件工程是把系统的,有序的,可量化的方法应用到软件的开发,运营和维护上的过程。我觉得作者对软件工程的定义还可以更加完善。

我觉得既然作者已经提到软件=程序+软件工程,那么软件工程就必须负责生成正确性,可用性的软件产品。所以我觉得软件工程应该是具有目标性的一个过程。

2, 在4.4代码复审中,作者提出有自我复审,同伴复审,团队复审。我觉得应该还可以添加一天开发者复审,形式是开发者vs开发者,因为,既然开发者不同,思想自然会产生不同,不同也就会有效率高低之分,相互了解之后,选择最适合的,这样才会一直有进步。

3, 在8.5功能的定位和优先级中,作者提出杀手功能,外围功能,必要需求,辅助需求考虑之后,就可以决定如何处理不同类型的功能,但是并没有说出在实际制作软件中,需求,性能,效率该如何取舍,我查了资料,有些提到主要根据客户需求,但是我觉得如果效率性能不足的话,即使满足了需求,也无法达到理想的效果,所以我还是不知道应该偏向何方。

4, 在16.1.5中迷失之五:要成为领悟的专家,才能创新。作者提出创新大部分都是在自己拿手领域之外发现的,并且列举出了统计的数据。我的观点是创新都是建立在对相关领域非常了解甚至熟练之上的,因为如果没有一定的基础,根本不知道自己所了解的内容到底处于业界大佬们的哪一个阶段,又何谈超越他们而创新呢?

5,在16.1.6中,作者提出技术是创新的关键,并举出手机发展的例子,所有的进步都是技术的进步带来的。对于此观点,我的想法是,人的思想的创新才能引发技术的创新,所以根本的关键还是人思想的创新,否则一切都不会有。创新在西方之所以盛行,就是因为他们从不放过任何一个奇怪的想法,从不扼杀孩子们那些不符合道理的念头,以至于他们习惯了各种假设,也就有了创新。

第三题 我选取的三个软件分别是:游戏,手机应用和工具软件

1)这些软件开发者是怎么说服你(陌生人)成为他们的用户的?他们的目标都是盈利么?他们的目标都是赚取用户现金么么?还是别的?
游戏:通过广告宣传,勾起用户的好奇心,目标是盈利,主要是通过网上支付,很少使用现金。
手机应用:通过满足用户需求,目标不一定是盈利,有点应用只为给提供方便,或者和某牌手机合作,来提高手机销量。
工具软件:和手机应用相似,来满足用户需求,使陌生人成为用户,目标不都是盈利,提供用户方便。
2)这些软件是如何到你手里的(邮购,下载,互相拷贝)
游戏:下载
手机应用:下载
工具软件:互相拷贝
3)这些软件是如何处理Bug的?又是如何更新新的版本的?
几乎都是下载补丁,时常更新版本,通过更新来处理问题与不足,使用户有更好的体验。
4) 同一类型的软件之间是如何竞争的?
游戏:通过用户者的喜好,游戏画面,画质以及游戏体验。
手机应用:通过提供便利,越是简单方便,越有优势。
工具软件:通过提供更多的功能,功能越多,用户越青睐。
列举你在使用上述软件时观察到的“特殊”现象,它们和硬件有什么不同?这些能说明软件的某些本质特性么?
和硬件最大的不同是 软件是虚的,硬件是实体的,并且软件满足的用户的需求,硬件可能满足不了,例如线上支付。说明了软件是不可见的,并且存在就有原因,原因就是为了满足用户需求,所以软件也具有服从性,除此之外,还有复杂性,易变性和非连续性。

第四题 小组成员 :

1600802022 皮炜

1600802020 孟凡锚

1600802027 魏任杰

1600802025 王银龙

posted @ 2018-03-23 15:54  王银龙~  阅读(160)  评论(0编辑  收藏  举报