软件工程思想

(98页)

'软件工程思想'
软件工程思想软件工程思想 林锐 序序 《软件工程思想》讲述“软件开发”和“做程序员”的道理,视野独特, 构思新颖,内容风趣,不落窠臼,令人耳目一新。堪称难得,以至回味无穷。 作者从事了八年的软件开发工作, 在他的博士学位论文完成之际写下了这 本“心之所感” 。虽然它探讨的是软件工程最常见的内容,但他将亲身所历的 感悟写成活 泼 生 动的 文 字 ,将 软 件 工程 的 很 多原 则 和 方法 融 于 笑谈 之 中 , 让 人看得轻松,时有共鸣。尽管很薄,然其内涵不逊于厚近千页的有关教科书。 每次回浙大我都要和林锐相聚,谈学术、论社会,直面人生, “位卑未敢 忘忧国” ,每每至凌晨。前不久我在某大学计算机系作讲座,最后冒昧谈了几 句题外话,其中之一是“学问与明理” 。古人云: “读书明理” ,意即读书要明 白做人的道 理 。 我以 为 其 中的 重 要 内涵 , 是 要有 积 极 的人 生 观 ,以 贡 献 社 会 为己任。这 也 是 我们 的 共 识。 林 锐 曾立 誓 做 一名 “ 真 实、 正 直 、优 秀 的 科 技 人员” 。他在自己困难的时候依然资助数名贫困中学生和大学生;常常躬身拾 捡被乱扔于地的废纸、塑料袋,以示后生。这都会使很多的学人汗颜有加。 简言之,林锐对软件工程实践的积极思考、轻快而不失深邃的文笔及其言 行,都是出色之处。 正由于此,而不仅因为是同行,我才不惭浅陋,接受他的要求,荣幸地成 为本书的第一位读者,并在本来应是名人大家留文的地方谈林说森。 董军,2000 年 2 月于 朝夕室 前前 言言 在 60 年代计算机发展初期,程序设计是少数聪明人干的事。他们的智力与技能超群, 编写的程序既能控制弱智的计算机,又能让别人看不懂、不会用。那个时期编程就跟捏泥巴 一样随心所欲, 于是他们很过分地把程序的集合称为软件, 以便自己开心或伤心时再把程序 捏个面目全非。人们就在这种美滋滋的感觉下热情地编程,结果产生了一堆问题:程序质量 低下,错误频出,进度延误,费用剧增……。这些问题导致了“软件危机” 。 在 1968 年,一群程序员、计算机科学家与工业界人士聚集一起共商对策。通过借鉴传 统工业的成功做法,他们主张通过工程化的方法开发软件来解决软件危机,并冠以“软件工 程”这一术语。三十年余年来,尽管软件的一些毛病如人类的感冒一样无法根治,但软件的 发展速度超过了任何传统工业,期间并未出现真真的软件危机。这的确是前人的先见之明。 如今软件工程成了一门学科。 软件工程主要讲述软件开发的道理,基本上是软件实践者的成功经验和失败教训的总 结。软件工程的观念、方法、策略和规范都是朴实无华的,平凡之人皆可领会,关键在于运 用。 我们不可以把软件工程方法看成是诸葛亮的锦囊妙计─—在出了问题后才打开看看, 而 应该事先掌握,预料将要出现的问题,控制每个实践环节,并防患于未然。研究软件工程永 远做不到理论家那么潇洒:定理证明了,就完事。 我在读大学的十年里有八年从事软件开发,尽管编写了几十万行 C++/C 程序,也经历 了若干次小不点儿大的成功和失败,可老感觉只学了些皮毛,心里慌兮兮的。在博士研究生 毕业前的半年里, 我告戒自己不应该再稀里糊涂地在程序堆里滚爬下去了, 于是就面壁反省, 做了一阵子木讷的和尚。在“打坐”时,每有心得体会便记录下来,不知不觉凑成了八章经, 我就给此经书起名为《软件工程思想》 。 经典的软件工程书籍厚得象砖头,或让人望而却步,或让人看了心事重重。请宽恕我的 幼稚,我试图用三个问题:是什么、为什么、怎么办,来解释软件工程的道理。所以本书薄 得象饺子皮─—用来包“思想”这种有味道的“馅” 。本书的八章经分别为: 第一章“软件工程基本观念” ; 第二章“程序员与程序经理” ; 第三章“项目计划与质量管理” ; 第四章“可行性分析与需求分析” ; 第五章“系统设计” ; 第六章“C++ 面向对象程序设计” ; 第七章“测试与改错” ; 第八章“维护与再生工程” 。 附录“大学十年”可以充当饭后的水果。 我偶尔也担心此书写得太肤浅,内容少得可怜。就象一只鸡在水里扑腾了几下,并不能 产生美味的鸡汤。 但是如果您化了几分钟时间翻阅本书的任意章节, 您马上就愿意再化几个 小时一口气读完全书,并且乐得直拍桌子: “好!很好!非常好! ” 您可以把这本科技书当小说看, 但在看书时请不要吃东西, 免得喷了别人或者呛着自己。 如果您买了本书后觉得不值得,我一定赔偿您的损失。 致致 谢谢 本书并不属于我博士学位论文的研究范畴, 但却是我读博士学位三年来写的最有意思的 作品。 首先要感谢我的导师,浙江大学计算机辅助设计与图形学(CAD // 连接服务器 BOOL Disconnect(); // 与服务器断开连接 BOOL PublishData(…); // 向服务器发布数据 BOOL QueryData(…); // 向服务器查询数据 BOOL SubscribeData(…); // 向服务器订阅数据 GROUPIP QueryGroupIP(…); // 向服务器查询组播地址 DWORD MulticastMessage(…); // 发送组播消息 virtual void MessageResponse(…);// 响应组播消息 … }; 一、客户程序的“发布”协议 客户机向服务器发布的每个数据报均含有数据类型、工作组名称、数据名称、生命期和 数据长度的信息。报文格式如图 5.16 所示,数据结构见 DataPublish : struct DataPublish { BYTE iDataType; // 2 个字节数据类型,宏定义为 DATA_PUBLISH char strGroupName[16]; // 16 个字节的工作组名字 char strDataName[16]; // 16 个字节的数据名字 DWORD dwLifeTime; // 4 个字节的数据生命期,以秒为单位 DWORD dwLength; // 4 个字节的数据内容的长度 char *pchContent; // 数据内容 }; 2 字节 16 字节 16 字节 4 字节 4 字节 data type group name data name life time length content 图 5.16 用于发布的报文格式 二、客户程序的“订阅”协议 客户机向服务器订阅数据分两步实现: (1)先调用函数 QueryData 向服务器发送一个 DataQuery 格式的报文,用于查询要订阅的 数据是否存在。 struct DataQuery { BYTE iDataType; // 2 个字节数据类型,宏定义为 DATA_QUERY char strGroupName[16]; // 16 个字节的工作组名字 char strDataName[16]; // 16 个字节的数据名字 }; (2)服务器接收到查询时,按照 DataQuery 结构中的 strGroupName 和 strDataName 进行 搜索。如果该数据不存在,Ser
关 键 词:
软件工程 思想
 天天文库所有资源均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
关于本文
本文标题:软件工程思想
链接地址: https://www.wenku365.com/p-42268774.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服点击这里,给天天文库发消息,QQ:1290478887 - 联系我们

本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】。本站是网络服务平台方,若您的权利被侵害,侵权客服QQ:1290478887 欢迎举报。

1290478887@qq.com 2017-2027 https://www.wenku365.com 网站版权所有

粤ICP备19057495号 

收起
展开