今天读了一些根本困难的问题,确实在开发过程中有的时候遇见一个自己从来没有接触过的知识面,我会有点蒙,没有头绪,认为它有一定的难度。正好看到了书中提到了这个问题,书中说:我认为软件开发中困难的部分是规格说明、设计和测试这些概念上的结构,而不是对概念进行表达和对实现逼真程度进行验证。当然,我们还是会犯一些语法错误,但是与绝大多数系统中的概念错误相比,它们是微不足道的。
如果这是事实,软件开发总是非常困难的,天生就没有银弹。而且现代软件系统中这些无法规避的内在特性:复杂度、一致性、可变性和不可见性。
软件的客观存在不具有空间的形体特征。因此,没有已有的几何表达方式,就像陆地海洋有地图,硅片有膜片图,计算机有电路图一样。当我们试图用图形来描述软件结构时,发现它不仅仅包含一个,而是很多相互关联、重叠在一起的图形。这些图形可能代表控制流程、数据流、依赖关系、时间序列和名字空间的相互关系等等。它们通常不是有较少层次的扁平结构。实际上,在上述结构上建立概念控制的一种方法是强制将关联分割,直到可以层次化一个或多个图形。
个人感受:
读了这些之后,我才明白,自己觉得困难只是自己接触的很少,没有形成相应的逻辑思路,真正困难的是软件开发中的规格说明,设计和测试这些概念性的结构。这些都是概念性的结构不易于表达,也有一些抽象所以在思考或者表达中有些困难。我觉得那些困难只是逻辑算法的苦难,这些是可以自己慢慢熟练形成自己的思考风格来解决的,真正困难的是如何对这款软件进行架构。在今后的学习中,努力要注重自己架构方面的培养,争取在以后的开发工作中能做到得心应手。