我的程序观

原创 2002年12月09日 09:28:00
请先看下面的图示:

机器代码 --〉高级语言实现 --〉结构图 -〉自然语言

我们很早就认识到,高级语言是机器语言的抽象,结构图是对高级语言的抽象,
而自然语言是对结构图的抽象.这是很好理解的,也符合我们的思维习惯.可是
倒过来看,逆向思维一下,会有更惊人的发现.它们不正是我们"做"一个软件标
准的流程吗?

可以说,它们表达的都是同一个东西,只是抽象的层次不同而已.抽象层次越高,
所需要处理的基本抽象思考要素也就越多(它们通常被包含在丰富的语义中).
但是,涉及到的具体实现细节反而越少.一句话,我们的软件活动大都是从高度
抽象到底层抽象,这个演化过程是客观规律,随着软件工程水平的提高,从此岸
到彼岸的直接跨越就变得非常不合理(以前确实存在过,不过想想当时的软工
水平吧).

有了从高到低的抽象层次,就需要逐步地象下楼梯一样一层层往下.然而下的
过程是危险的,也是值得研究的.什么是这个过程中最重要的,我觉得是保持一
致性,起码是概念的一致性.为什么呢?举个简单的例子:

客户说我要一个信息系统,这是一个听起来很简单的自然语言表达,可是因为
过于抽象而让开发者无从下手.于是开发者要和客户进行不断地沟通,是客户
的概念能毫无遗漏地传达给开发者(如果客户很幸运有明确的概念的话).遗
憾的是,这个过程是没有保障的.当客户的概念大部分(或全部)都已传达给开
发者时,他开始设计,目的只有一个,实现那个概念.设计的输出将作为编码的
输入,我们仍然无法保障这个过程的一致性.可以看到,到此为止,系统中没有
保障的因素已经很多,如果中间存在任何稍大的不一致,就必须重复进行大量
的工作,就好像已从20楼走到2楼,突然发现忘了穿鞋,还得回到20楼一样令人
同情.假设我们已经顺利地到了2楼(值得庆祝),剩下的工作将容易许多,高级
语言到机器代码的一致性目前已经得到很好的保障,这个成就让软件业的生产
率提高了很多.可是这对我们现今的软件开发并没有实质性的帮助,因为:

在当前整个软件开发周期中,这个过程只占了少量的精力和时间(我认为接近
于零),没有一个高级语言程序员会关注自己代码的反汇编结果.类似的还有
开发工具等相当次要的因素.所以,问题仍然很严重.

危机不可避免地存在着,关注它们不代表我是悲观主义者.和所有不能由人类
完全控制却可以供人类充分研究并利用的自然科学一样,软件工程学必然有
客观的规律.矛盾总是存在的,因为那些一致性不可能100%的满足(人与人的
交流不可能是无缝的,除非被Clone),但我们可以不断校正,运用合理的方法
学使之接近理想状态,即不断地进步.在这方面,中国人又一次落后了,大学里
教条似的软件工程学,企业界对于新技术的偏执和对设计,管理的忽视,怎么
可能从根本上提高我们极低的软件水平.而从事理论研究,以科学的态度对待
软件业的研究人员,又在哪里呢?

我的学习观

最近看了些关于学习
  • ZHANGBINFLY
  • ZHANGBINFLY
  • 2014年04月20日 21:49
  • 847

看了一篇别人的年终总结,感觉对自己的启发挺大的

2014年又在不知不觉间从指尖匆匆滑过。韶光易逝,岁月催人老,再过个把月就正式迈入而立之年,就要告别任性癫狂的二货时代了, 每年都会看到很多IT同仁们的年终总结,总结过去,展望来年,我都习惯于当一名沉...
  • liutong123987
  • liutong123987
  • 2016年01月02日 18:06
  • 250

我的面向对象程序观

/** * Title:        我的面向对象程序观 * Description:  描述我对面向对象的一些理解,思想上并不成熟,文章随时都在更新,希望大家都来参与讨论 * Copyright:...
  • agentmulder
  • agentmulder
  • 2001年07月08日 02:46
  • 1201

我的面向对象程序观

google_ad_client = "pub-8800625213955058";/* 336x280, 创建于 07-11-21 */google_ad_slot = "0989131976";...
  • java169
  • java169
  • 2008年05月21日 02:49
  • 130

论马克思主义物质观及其现代意义

科    目:马克思主义基本原理概论 论文题目:论马克思主义物质观及其现代意义 指导教师:**** 系别:**** 班级:**** 姓名:**** 学号:**** 联...
  • xuan_xinya
  • xuan_xinya
  • 2013年03月23日 20:08
  • 3168

鸿观之怎么读好书

好书可以分为三类: 1.普通的好书 2.脑洞级别的好书 3.颠覆性的好书 推荐几本脑洞级别的好书: 《全球通史》  《自私的基因》 《枪炮、病菌、钢铁》 《失控》计算机方面的书 至少读...
  • cs408
  • cs408
  • 2015年08月15日 19:24
  • 575

每个人都需要良好的人生观、价值观、职业观

【在电驴的一个评论里:http://www.verycd.com/topics/177421/】 展望未来,总结过去10年的程序员生涯,给程序员小弟弟小妹妹们的一些总结性忠告  走过的路,回忆起来...
  • sysmaid
  • sysmaid
  • 2013年03月26日 10:19
  • 2055

受托责任观和决策有用观

(1)受托责任观受托责任观是在公司制和现代产权理论的基础上发展而形成的.会计发展初期,会计信息的提供主要是基于一种契约约束.由于生产力的发展,所有权和经营权逐渐分离,企业资源的提供方与作为经营方的管理...
  • shupf
  • shupf
  • 2010年02月23日 08:38
  • 1416

[转载]我的面向对象程序观

[转载]我的面向对象程序观         1)面向对象概念的一些误解         “面向对象”是一个如今被人叫烂的词汇,就像去年人们都喜欢把自己的公司打上“.com”的标记一样。其实有多少人能真...
  • pengjj
  • pengjj
  • 2005年07月27日 10:22
  • 905

Android 搜索手机本地的全部视频(通过查询数据库)

开始的时候我是通过根路径去遍历,发现行不通。不知道是手机的问题还是逻辑问题(个人觉得没毛病),最后我就是用了查询手机的数据库来找出所有的本地视频。 话不多少说。 下面的类,是主界面的一个内部类。因...
  • qq_15698053
  • qq_15698053
  • 2017年07月14日 09:54
  • 331
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:我的程序观
举报原因:
原因补充:

(最多只允许输入30个字)