L-第六章 软件工程课件编 码
时间:2025-05-03
时间:2025-05-03
The Development PhaseSoftware Design Code Generation本部分不是介绍如何编写程序, 而是从如何提高软件的质量和 可维护性的角度,讨论在编码 阶段所要解决的主要问题。
编程才是硬道理
Software Testing
2003.01.10
SOFTWARE ENGINEERING
编程(编码、实现) 编码是软件工程学的核心,不过由于在编程 前已经进行了一些关键性的重要步骤,从而 把编码降到某种机械地翻译详细设计规格说 明书的地位,按40-20-40规则只占总开发工 作量的20%左右(不含模块测试)。过程描述(详细设计) 程序 目标代码
引入各种错误(对详细设计说明书的“误 解”)2003.01.10 SOFTWARE ENGINEERING
编程语言 有最好的编程语言吗? 回答是:在软件领域永远没有最好的,只有更好的。 能解决问题的都是好方法或是好语言。 程序员在最初学习Basic、Fortran、 Pascal、C、 C++等语言时会感觉一个比一个好,不免有喜新厌 旧之举。而如今的Visual Basic、Delphi、Visual C++、Java等语言各有所长,真的难分优劣。 开发人员应该根据客观条件,选择自己熟悉的方法 和语言,才能保证合格的质量与生产率。2003.01.10 SOFTWARE ENGINEERING
编程语言的分类 低级语言(机器语言、汇编语言) 高级语言/过程性语言(FORTRAN、 Basic、 ALGOL、COBOL、C、Pascal、Ada等) 非过程性语言/面向对象编程语言等(LISP、 PROLOG、VB、PB、DELPHI、xBase系列、 C++、Smalltalk、 Java语言等)
2003.01.10
SOFTWARE ENGINEERING
编程语言的选择 应用领域 算法和运算的复杂性 支撑环境(排斥新语言) 性能考虑(选择汇编语言的唯一理由) 数据结构复杂性 软件开发人员的知识和心理因素(排斥新语 言)
一般在项目计划阶段就必须选定编程语言2003.01.10 SOFTWARE ENGINEERING
编程语言的讨论 来自网站:http://www.77cn.com.cn/,“冒号 和他的学生们—程序员提高班纪事” 冒号启开话题:“如果说编程范式是一种文 化,那么编程语言更像是一种宗教——尽管 它本不该是。每种语言都有大批忠实的信徒, 随时可能与其他的信徒发生宗教战争。” 逗号深有同感:“周围和网上关于语言的争 论从来不绝于耳,志不同道不合者动辄恶语 相向。”2003.01.10 SOFTWARE ENGINEERING
编程语言的讨论 冒号有些忿忿然:“这些信徒或准信徒们认 为他们所崇拜的语言鹤立鸡群,远比其他语 言高明得多,恨不得成为全天下程序员的通 用语言。对其他语言的使用者,或居高临下 地同情,或不屑一顾地讥讽。无知与偏见总 是相辅相成的,他们中的绝大多数顶多熟悉 一两种语言,其他的或浅尝辄止、或道听途 说,却敢妄评优劣,岂不
可笑之极?”2003.01.10 SOFTWARE ENGINEERING
编程语言的讨论 引号点头称是:“是啊,没有深入的了解, 怎会有深入的比较。只是真正掌握好一门语 言已殊为不易,同时掌握几种就更难。学完 一种语言再看另一种,总觉得别扭。” “这就是第一堂课所说的‘学会’与‘会学’ 的差距。”冒号挑明,“每种语言都有天然 设计上的不同,当你用得很别扭时,恰恰说 明没有真懂。……”2003.01.10 SOFTWARE ENGINEERING
编程语言的讨论 问号注意到:“似乎不只是初学者,大师们 也会对一些语言提出过尖锐的批评。” 冒号引用道:“C++的发明者Bjarne Stroustrup说过这样一句话,语言只有两种: 一种怨声载道,一种无人问津。” 众笑。 句号有所体会:“一种语言如果用者甚众, 自有其可取之处。没有一种语言是完美的, 爱之深者尚苛之切,何况其余者乎?” 冒号忽然问:“你们知道对一种语言最大的 批判是什么吗?” 众人纷纷摇2003.01.10 SOFTWARE ENGINEERING
编程语言的讨论 “那就是发明一种与此语言有类似功用的新语 言。”冒号语速放缓,“Stroustrup认为 Simula太慢、BCPL又太底层,于是发明了 C++;Gosling觉得C++用得不爽,于是发明 了Java;微软恼恨Java,于是请Hejlsberg发 明了C#;Matsumoto用了两年多的C++仍不 顺手,于是发明了Ruby。如此这般,不一而 足。”2003.01.10 SOFTWARE ENGINEERING
编程语言的讨论 叹号无奈地说:“那是牛人的批评方法, 常人怎能办到?” “没有能力发明语言,就老老实实地用 别人的吧。”冒号酷酷地说,“对待一 门语言的态度应该是:与其抱怨争执, 不如扬长避短。” 引号顺势道:“按这种说法,编程语言 的发展史就是一种批判史咯?”2003.01.10 SOFTWARE ENGINEERING
编程语言的讨论 冒号祭起辩证法:“从另一个角度看,发明 一种语言也是对先前语言的一种最高的赞美。 C++之于C,Java之于C++,C#之于Java, 都是后者对前者的一种承认,哪怕是不情愿 的承认。批判与赞美,继承与发展,谓之扬 弃。” 众人心想,语言课又改哲学课了。 冒号续道:“对于编程语言还有一种论调: 语言只是一种工具,哪种都差不多。” 逗号接茬:“是啊,经常在论坛上看到一些 高手这么说。”2003.01.10 SOFTWARE ENGINEERING
编程语言的讨论 “一群伪高手,是工具就差不多?能拿锤子 当刀使吗?”冒号嗤之以鼻,“过分拔高一 种语言与抹煞语言之间的差别是两种极端, 皆为秕言谬说。图灵奖获得者Alan Perlis曾 说:如果一种语言不能影响你对编程的看法, 那么就不值得去了解。试想,一种没有独特 魅力的语言如何
吸引程序员趋之若骛?了解 …… 此处隐藏:1315字,全部文档内容请下载后查看。喜欢就下载吧 ……
上一篇:公务用车及节油管理制度