http://blog.csdn.net/u012437355/article/details/51394067
软件的构成
软件 = 程序 + 数据 + 文档。
程序:计算机可以接受的一系列指令,运行时可以提供所需求的功能和性能。
数据:使得程序能够适当的操作的数据结构。
文档:描述程序的研制过程、方法和使用时的图文资料。
**软件只有运行起来,我们才能看到它的效果,评估它的性能和特性。
软件的特性
- 复杂性
人们的复杂需求导致了软件的复杂性。当然导致软件的复杂性因素还有很多。 - 一致性
1.软件不能独立存在,要依附于一定的环境(如硬件、网络、以及其他软件)
2.软件必须遵循从人为的惯例并适应已有的技术和系统。
3.软件需要随从接口不同而变化,随着时间推移而变化,而这些变化是不同人设计的结果
**一致性大概可以理解为功能和其所依赖的环境、接口的一致。 - 可变性
软件的变化(随时间推移)对其失效率的影响图
**软件的可变性体现在软件本身的升级,功能的变化等。
**微信的普及(使用量大幅度增加)是从摇一摇开始的。 - 不可见性
1.软件是一种“看不见、摸不着”的逻辑实体、不具有空间的形体特征
2.开发人员可以直接看到程序源代码,但是源代码本身并不是软件本身
3.软件是以机器代码的形式运行,但是开发人员无法看到源代码是如何运行的
**软件的这些特性,使得软件的开发难度增加,我们需要有科学的方法去完成开发过程。