软件闲谈
软件和计算机软件是现在社会上经常混淆的一个概念。从这两个名词上我们可以看出一个关系:
即计算机软件只是软件的一个分支、一个特例,正如语言和汉语的关系一样。
计算机软件具有软件的共性,也有其特性。
软件是什么,似乎所有的教科书没有一个统一的答案。
software 这一单词的确定并不能将概念彻彻底底的区分开来。因为除了计算机软件,我们接触的其它软件很少。
不过,从计算机软件这一缩影来看。我们可以总结出软件的几条共性:
1、软件是由人创造的
2、软件一定对于一某一物理实体的操作
3、软件是一套方法的集合
那么,我们可以总结为:软件是由人创造出来用来操作物理实体的方法的集合。
结合集合论,我们可以知道,软件可以是一个全集,但由于人们表达方式的局限性,我们所遇到的软件只是一个子集。
例如,
人体就是一个物理实体,而它有很多的操作方法,而我们不可能对每一种操作都进行。我们只是在自己熟知的范围内进行有限的操作。
计算机也是以一样,计算机的功能很多,而我们只是使用了其中的一小部分功能。把这一小部分功能组合起来,就是计算机的软件。
法律也是一种软件,它是人所有行为的一个很小的部分。同样指导和操作着人们的行为。
因此,在这个基础上,我们可以发现一些软件的要点:
1、软件规范了其目的下所有的已知操作,是有目的性作为指导的。
2、软件的构造要对应物理实体的特性。
3、软件的集合关系决定了软件所包含的操作是有限的。
4、由于软件的目的性描述手段有限,因此软件不可能完备构造。
5、软件是人和物理实体间建立的一种操作关系。
由于人对自身的意志的描述性有限,而计算机实体的操作更有限。所以,所有的软件都会有缺陷是肯定的。
就像需求分析一样——计划不如变化,因此我们就要拥抱变化——极限编程。而极限编程的理论的发展还不是很完善,因此我们还需要更多的研究和总结。
由于第3条和第4条的关系,我们知道软件工程领域的有些核心问题是根本无法解决的。因此,就如计算机科学中很多措施一样。
我们往往采取变通和妥协的办法去用次等的方法去解决问题。毕竟,对问题的研究的目的是用来解决问题的。
欢迎网友和业内的专家共同探讨。
版权所有 北京金瓯鼎建筑装饰工程有限公司,京ICP备11008770号 【MANAGE】