我们很早就认识到,高级语言是机器语言的抽象,结构图是对高级语言的抽象,而自然语言是对结构图的抽象。这是很好理解的,也符合我们的思维习惯。可是倒过来看,逆向思维一下,会有更惊人的发现。郑州知网提示您注意,它们不正是我们"做"一个软件标准的流程吗? 机器代码 --〉高级语言实现 --〉结构图 -〉自然语言
可以说,它们表达的都是同一个东西,只是抽象的层次不同而已。抽象层次越高,所需要处理的基本抽象思考要素也就越多。但是,涉及到的具体实现细节反而越少。一句话,我们的软件活动大都是从高度抽象到底层抽象,这个演化过程是客观规律,随着软件工程水平的提高,从此岸到彼岸的直接跨越就变得非常不合理。
有了从高到低的
抽象层次,就需要逐步地象下楼梯一样一层层往下。然而下的过程是危险的,也是值得研究的。什么是这个过程中最重要的,我觉得是保持一致性,起码是概念的一致性。系统中没有保障的因素已经很多,如果中间存在任何稍大的不一致,就必须重复进行大量的工作,就好像已从20楼走到2楼,突然发现忘了穿鞋,还得回到20楼一样令人同情。假设我们已经顺利地到了2楼,剩下的工作将容易许多,高级语言到机器代码的一致性目前已经得到很好的保障,这个成就让软件业的生产率提高了很多。可是这对我们现今的软件开发并没有实质性的帮助,郑州知网认为,这是因为,在当前整个软件开发周期中,这个过程只占了少量的精力和时间,没有一个高级语言程序员会关注自己代码的反汇编结果。类似的还有开发工具等相当次要的因素。所以,问题仍然很严重。
危机不可避免地存在着,关注它们不代表我是悲观主义者和所有不能由人类完全控制却可以供人类充分研究并利用的自然科学一样,软件工程学必然有客观的规律。矛盾总是存在的,因为那些一致性不可能100%的满足,但我们可以不断校正,运用合理的方法学使之接近理想状态,即不断地进步。在这方面,中国人又一次落后了,大学里教条似的软件工程学,企业界对于新技术的偏执和对设计、管理的忽视,怎么可能从根本上提高我们极低的软件水平。