孟岩ID:myan
1629378次访问,排名8好友1人,关注者64
总是在思考存在的问题
myan的文章
原创 147 篇
翻译 0 篇
转载 3 篇
评论 5244 篇
最近评论
chengen81284493:很专业的一篇文章 非常的好 受益匪浅
jksharp:看的迷糊,我才做了一年的程序员,啥都学,我也很专业做的一门,难啊,老板啥都要我做,想写点程序都难,唉,今天要你配下服务器,明天叫你修改下数据库的数据,难
rawa459:补充几句,lua使用一个c语言的子集实现,没有发现枚举(较新版本的C才支持)、动态数组(C99才支持)等,就是这样一个c语言实现了足够强大的功能,我觉得比不上作者,作者是大学教授,并且有一个工作小组。什么时候国人学会平静对待C语言,不要那么浮躁不要那么张扬我们的教授级别的人物也能写出这样的东西,个人不喜欢C++,C和C++从最新的标准看已经决裂。C能够直接实现面向对象编程了,加上一些辅助库可……
rawa459:http://www.codingnow.com/2000/download/The%20Implementation%20of%20Lua5.0.pdf
看看此书,就知道lua的过人之处,本人也在写编译器,始终不敢碰基于寄存器的虚拟机,还是传统的基于堆栈的虚拟机。一个新语言,一个解释器不是很难,关键你要有过人之处,lua的函数闭包、协程、基于寄存器的虚拟机、关系表都是它的过人之处……
rawa459:http://www.codingnow.com/2000/download/The%20Implementation%20of%20Lua5.0.pdf
看看此书,就知道lua的过人之处,本人也在写编译器,始终不敢碰基于寄存器的虚拟机,还是传统的基于堆栈的虚拟机。一个新语言,一个解释器不是很难,关键你要有过人之处,lua的函数闭包、协程、基于堆栈的虚拟机、关系表都是它的过人之处,……
文章分类
收藏
    相册
    测试
    友情链接
    老赵的博客
    存档
    软件项目交易
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 麦中凡教授的精彩观点收藏

    新一篇: 请列提纲 | 旧一篇: 粗说RSS

    昨天(6月29日)下午,我应中关村创新研修学院院长袁传宽教授的邀请,去现场聆听了北航麦中凡教授的一场讲座。麦中凡教 授是我国我国软件工程领域的著名学者,上世纪90年代中期,我开始学习C++和面向对象编程的时候,拜读过他编著的两卷本教程,受益匪浅。这次讲座的主题 是国际软件工程的标准,以及CSDP认证考试的有关情况介绍,也正好是我关注的话题,所以尽管当时有另外一个活动安排,我还是临时决定要来听麦教授的讲 座。

    尽管由于消息渠道的原因,到场的听众人数不多,但是麦教授的讲座却十分精彩,内容涉及面广泛,观点非常深刻,确实不愧是在软件以及软 件工程领域耕耘了一辈子的大家。其中有一些观点,我认为很有必要让更多的人知道,所以根据自己的记忆将讲座中的一些精彩观点记录下来。由于没有经过麦教授 的审订,可能有不准确的地方,待将来向麦教授请教以后再修正。

    1. 谈到软件工程作为一个独立的专业和职业的时候,麦教授说:
          “软件工程作为一门独立的专业,软件工程师作为一个被认可的职业,是以2004年SWEBOK的发布作为标志的,这时候距离1968年软件工程这个概念被提出来已经过了36年。在此之前,人们实际上是把计算机科学混同与软件工程了,
    殊不知科学与工程是有本质差别的,科学是要追求完美的,而工程的原则是,有多少资源就干多少事。我们整个教育体系都按照培养计算机科学家的方式来培养软件工程师,结果培养出来的学生对技术很崇拜,但是脑子里时间的观念很少,钱的概念更几乎没有。”

    2. 谈到中国的软件创新环境:
        “关键问题是政府和有关的行业协会缺位。他们的主要工作应该是踏踏实实把软件产业的环境建设好,尤其是把市场环境建设好。而做这个工作是慢活,一届人砌一 块砖,等他离任的时候,可能看上去没什么成绩,然后下一届人再砌一块砖,这么好几届干下来,才能把这个环境建设好。但是现在大家都追求短期成绩,既然追求 短期效果,那就把精力集中到搞项目去了,那个来的快嘛。”

    3. 谈中国软件市场:
        “我不知道在座的同志是不是知道,我们中国的软件市场情况很糟糕,根本不是什么自由竞争的市场,很多情况下,就是靠关系,靠拍肩膀。在这种情况下,你跟老 板去谈软件工程,他当然不认同。因为既然可以靠关系解决问题,那当然这就是最经济的做法,反倒是最符合软件工程的原则——花少钱办大事。”

    4. 谈目前中国软件开发文档工程的现状:
        “按软件工程的国际标准,一个大型项目应有125个文档,国内一般不超过25个,甚至有的项目只有7、8个。”

    5. 但是麦教授又说:
        “这就是中国的现实情况,在实践中可以妥协也必须妥协,但是我们心理要知道,这是不对的,需要改进。将来条件具备了,还是要回到正确的方法上来。”

    6. 谈瀑布模型为什么无效:
        “
    瀑布模型是一个阶段一个阶段做,每一个阶段都做对做完,下一个阶段在上一个阶段的基础上进行。这就要求我们从一开始就把系统认识清楚。可是软件本身就是一个思想产品,开发的过程就是不断加深认识的过程,生产过程结束了,对系统也才真正认识。所以一开始就认识系统是根本不可能的事情。瀑布模型不行,根本原因在这里。”

    7. 谈软件开发的本质:
        “软件开发的本质是在概念空间中构造(construction)。难就难在是在概念空间中,有些概念是存在现实对应物的,有些只是概念,有些甚至是为了 做软件系统才被发现或者发明出来的概念。搞软件的人如果不善于发现概念、创造概念和术语,技术再好也算不上高明。也正是因为这个道理,文档是软件工程中绝 对不可以缺少的。”

        “软件开发就是模型转化的过程,从现实事物转化为概念模型,转化为解体模型,也就是逻辑模型,再转化为平台无关模型,平台有关模型,最好编译成为实现模型。这一系列转化过程都必须遵守等价的原则。”

    8. 谈Web Services:
        “Web Services将会给现在的软件工程概念带来有一次变革。重要的已经不是‘数据结构+算法’,或者至少对于绝大多数人来说,不需要掌握那么深入的算法技 术,因为少量专业公司已经通过Web Services在网络上提供了最好的专业计算功能,你只需要会整合就可以。”

    9. Web Services时代的产业链:
        “现在的软件通常是由专业的软件公司开发的,因为现在开发软件的核心是 ‘写’ 软件。但是在Web Services时代,‘写’ 软件变得不那么困难,难点向两端转移,一端是建模,一端是测试集成,于是软件的开发会越来越多地由专业咨询公司完成,他们要了解业务,了解现有那些专业 Web服务可供选择,并且指导怎样把合适的Web服务整合起来。”







     

    发表于 @ 2007年06月30日 23:37:00|评论(loading...)|编辑

    新一篇: 请列提纲 | 旧一篇: 粗说RSS

    评论

    #庄表伟 发表于2007-07-01 00:58:21  IP: 72.52.66.*
    按软件工程的国际标准,一个大型项目应有125个文档,国内一般不超过25个,甚至有的项目只有7、8个。

    我想,要超英赶美是很容易的,只要下定决心写他1250个文档,那帮国际专家,就是撒丫子,也赶不上咱们了。

    哈哈!

    什么,你问代码?我的文档从地面一直堆到天上,哪里有空写代码?
    #EricLee00 发表于2007-07-01 10:04:12  IP: 220.181.47.*
    我也做回标题党,抢个板凳啥的...
    发生在7月1日前夕的一件事,目前知道的人不多.
    http://soft.zdnet.com.cn/software_zone/2007/0629/414842.shtml
    #dreamhead 发表于2007-07-01 10:26:51  IP: 222.91.125.*
    关于文档的说法,我也不赞成,文档数量不应该成为衡量软件质量的标准。在敏捷软件开发中,尤其不赞成把大量时间浪费在不必要的文档上。

    按照这位老先生的说法,开发一个软件在开始写代码之前就能把人累死,而且,会让越来越多的程序员成为真正蓝领。

    软件工程强调的很多东西只是对超大型项目非常有意义,对一般的小型项目,则显得过于沉重了。不要把所有的软件开发项目都等同起来,要根据项目特点进行选择。事实上,中国的很多软件开发项目并没有那么大,盲目追随软件工程里的一切,会把人拉到了误区里面。
    #krr 发表于2007-07-02 09:01:59  IP: 219.234.145.*
    闲来谈谈,按孟老大编号一一叙述:
    1.一定要按科学家的方式培养几年,使学生有扎实的理念和基础,才能有更多的创新,产生更多的杰出代码。只是需要增加实践环节。个人认为在本科生毕业前,进行一年的工程应用锻炼,应该可以弥补工程理念的缺失。
    2.来的快,这就是很多公司重视即时项目的原因。其实这是一个长期与短期的权衡。公司没有钱的时候,就得从短期考虑,等公司发展了,有钱了,就会踏实地做一些长期意义的事情。中国百度,汉王等公司就属此例。
    3.pass
    4.得看项目实际情况。写文档是需要花很多时间的,并不是所有的项目都需要在这方面大量投入。有些文档,即使写了也没人会看,所以就不需要写,这时,只要写些方便软件维护的材料即可,以防构思的忘却:-)
    5.pass
    6.good
    7.good
    8~9.web service 不是万能的,很多软件完全本地化后运行起来才舒服。另外,软件创新只会越来越多,能迅速集成不同类型的模块,才是最实在的。
    #roc_won 发表于2007-07-02 13:48:36  IP: 221.223.23.*
    我觉得没在开发一线拥有6年到10年经验的人, 大谈软件工程, 大多是务虚.
    #ha 发表于2007-07-02 14:51:45  IP: 218.247.0.*
    说的很对,人人都明白,跟没说一样
    #T.N 发表于2007-07-02 15:53:27  IP: 202.104.107.*
    以孟岩专业性,相信记录已经非常接近麦教授的原意.
    我也想就这些摘要以开发人员的角度谈一下观点

    >>9. Web Services时代的产业链
    >>软件的开发会越来越多地由专业咨询公司完成
    找咨询公司做事是很容易的,让们们做整个企业二十年的战略规划,他们都会爽快答应,只有遇到问题他们也不会退钱

    >>8. 谈Web Services
    >>重要的已经不是‘数据结构', 你只需要会整合就可以
    如果A公司的Web Services返回二维数据信息,B公司返回三维数据信息, 如果不考虑好的数据结构,很难整合,脚本语言在这方面有天生的优势

    >>7. 谈软件开发的本质
    >> 软件开发就是模型转化的过程
    不了此处模型的含意, 似乎是讲到本质, 但转化不代表成功,很多软件工程都关注整个过程,指导开发,而忽略了软件工程的目的是开发出成功项目.

    >>6. 谈瀑布模型为什么无效
    2007年谈这个题目,没实用价值, 应该改为当前的A B C...模型为什么有效

    >>4. 谈目前中国软件开发文档工程的现状
    其实老开发人员更喜欢写文档,又不用调试,又不用头痛,轻轻松松

    >>3. 谈中国软件市场:
    中国软件市场很大,很复杂,什么看法都正确,但都不全面

    >>2. 谈到中国的软件创新环境
    与短期成绩,一届人再砌一块砖无关.只要能保证技术创新人员参与到利益分配中,就会出现一个好的创新环境
    #zhang1976 发表于2007-07-02 16:36:35  IP: 123.114.76.*
    文档的存在是为了记录和传播使用,丫们杯弓蛇影的做法要不得。敏捷只是种开发方式,软件工程的范畴也比这个大的多,除过丫几个鼠目寸光的开发人员外、老板、高管、客户、门房大爷都与之休戚相关。丫们学习不求甚解,实在是资质欠佳,让我悲愤不已阿。
    #T.N 发表于2007-07-02 16:52:20  IP: 202.104.107.*
    >>除过丫几个鼠目寸光的开发人员外
    想法不要跟开发人员对立起来, 新开发人员的薪金是与代码挂勾的,所以新开发人员不喜欢写文档,老开发人员因为能叫新手写代码,并且新手的成绩会计入自己哪里,所以更喜欢写文档, 如果老板的薪金是按文档描述的功能发放的,而不是代码实现的功能,全体人员都会选择写文档而不是写代码.这与鼠目寸光无关,是利益关系.
    #maninred 发表于2007-07-02 20:36:49  IP: 59.33.247.*
    其实第七点谈到的就是为什么现在DDD领域驱动设计这么流行的原因了。
    #turingbook 发表于2007-07-02 22:36:26  IP: 221.223.25.*
    麦老师好像对最近已经渐成主流的敏捷方法(IEEE都在指定敏捷方法的标准了)关注不够啊。

    国内院校搞软件工程研究,很多都缺乏与国内企业实践的结合,这是一个大问题。
    #seo321 发表于2007-07-02 23:37:51  IP: 58.49.77.*
    谢谢!学习了。
    #mjohnhai 发表于2007-07-03 08:44:33  IP: 218.249.75.*
    这位老先生恐怕没编过windows下的程序吧, 现在不是过去Dos下1~2万行代码就可以的年代了。
    #qinhl99 发表于2007-07-03 09:02:23  IP: 10.1.149.*
    对于大师级的人物,你们那来说话的份,好好学习就是了
    #rice4king 发表于2007-07-03 10:10:26  IP: 61.138.202.*
    我们整个教育体系都按照培养计算机科学家的方式来培养软件工程师,结果培养出来的学生对技术很崇拜,但是脑子里时间的观念很少,钱的概念更几乎没有。

    这句话好!
    #jackfun 发表于2007-07-03 14:29:16  IP: 218.19.88.*
    又一个老夫子,废话一大篇,参加这样的会议就是一个受罪的假期。这种人常常能说出这不对,哪需要改进,很了不起。不过,请你埋怨别人做的饭不好吃后,能否做出一顿饭来让大家尝尝,不要老拿上次和领导一起下馆子的事来炫耀,我们也很饿了。
    #indexchen 发表于2007-07-03 15:31:14  IP: 222.66.147.*
    谈软件工程怎么说着说着变成webservice了
    #maninred  发表于2007-07-04 08:48:03  IP: 219.79.180.*
    最近国外开始讨论软件开发节奏 (Software Development Rhythms) 参考:
    (1) http://en.wikipedia.org/wiki/Software_Development_Rhythms

    (2) http://as.wiley.com/WileyCDA/WileyTitle/productCd-0470073861.html
    #hsutter 发表于2007-07-06 11:15:41  IP: 192.168.0.*
    除了有关Web Service的两个看法(并非我有不同看法,而是到目前为止,我对Web Service的认识还不足),麦教授其他观点我都是很认同的。
    就孟老大列的几点来看,我觉得麦老师很强调“本质”、“规范”,但同时又不拘泥于制度与规范,也赞同在实践中结合具体情况展开软件工程活动,这是非常好的观点啊。
    上面那几个讨论文档数量的,如果不是故意,那就是会错了麦老师的意思。
    还有那几个过于强调一线经验,以至于什么“Windows开发”的同志,看法太幼稚了。其实以在下看来,各行各业(包括做人),根本的道理就那么几条,掌握本质后,剩下的就是在实践中理论结合实际,懂得权衡和包容。
    我们可以把麦老看作是搞理论(就是上面说的根本道理)的,他不是project manager、developer、boss;他向我们传授事物本质、做事做人的道理,我们在实践中学习、运用。各位盯好自己的角色。
    当然,麦老等人的说法不一定全是对的,但是我们首先得把自己的位置找准,学到有用的,丢弃错误的、不符合自己实际情况的。有些人上来就逆反心理,逐条翻白眼,实在是不成器。
    #bishangjuelu 发表于2007-07-06 20:40:22  IP: 202.108.208.*
    麦老师真的是大家.厉害.
    现在搞软件谁写代码啊?那是没水准的表现.一般都写文档,然后找几个没毕业的大学生填代码就行了(可能这样工资比较低).再高级的就是做PPT了.
    麦教授对未来的展望很好,抓住了软件工程和技术发展的本质.
    对于一些现状,因为没经验不评论了,呵呵.不过感觉很过瘾.
    以上纯属一家之言.欢迎大家批判.
    #编过程序吗? 发表于2007-07-07 20:53:05  IP: 123.112.24.*
    >>以上纯属一家之言.欢迎大家批判.

    看你的评论,都懒得理你!
    只想问一句--- 编过程序吗?
    #若智 发表于2007-07-08 09:50:18  IP: 218.202.107.*
    谁来做专业公司?
    都想做简单的,有趣的,而那些复杂的、枯燥的、让人尊重的、踏踏实实的工作谁来做?
    #T.N 发表于2007-07-09 13:30:07  IP: 202.104.107.*
    >>有些人上来就逆反心理,逐条翻白眼,实在是不成器。
    这里好像只有我一个是一条条写的,我是按整理的要点,一点点发表自己的观点.
    里面的内容第9点是不完全同意原观点,强调咨询公司是不会负责后果的
    第8点是提醒不能忽视数据结构
    第7点也没有反对转化的过程,只是提及不要只专注于转化,而忘记了目的
    第6点是说这个内容当前没有价值
    第4点提及开发人员对文档的心理,文档工程的现状并不是因为开发人员不喜欢写文档,暗指是其它原因引起的,在后面的回复中补充了原因
    第3点指原观点不全面,也没有否定原观点
    第2点的确不赞同原观点,如果指我翻白眼,我只承认这条与9点,但其根本的要创新环境观念是一致的,只是方法的不不赞同.

    P.S
    我的文档一条条写,是因为这种方式具有针对性,开发人员易于理解与执行, 可能容易被误解为翻白眼.
    #T.N 发表于2007-07-09 13:35:37  IP: 202.104.107.*
    一条条写还代表我很认真地读过原内容,并不是冲上来就叫的,呵呵
    #buaaieg 发表于2007-07-11 22:14:17  IP: 219.239.227.*
    麦老已经80高龄了,依然对软件工程和软件理论有如此清晰的看法和认识,照实让人佩服。
    #yimianshisan 发表于2007-07-24 23:45:44  IP: 210.25.133.*
    麦老师可不是你们说的那样,我是北航的学生,有幸听过老先生的课,很有意思,麦老师人也很朴素,一看就让人十分敬佩。麦老师是在软件领域兢兢业业干过几十年的大家,并且对技术的发展掌握的很正确,我们作为学生都受益菲浅。
    #lbrealm 发表于2007-08-17 19:35:23  IP: 202.108.130.*
    我也是北航的学生,听过麦老师的一次课,讲程序设计的发展史,很精彩,也是认真的记了笔记,呵呵
    发表评论  


    当前用户设置只有注册用户才能发表评论。如果你没有登录,请点击登录
    Csdn Blog version 3.1a
    Copyright © 孟岩