内 容 简 介 本书以实际的股票软件为基础,全面介绍了计算机开源技术的理论知识和应用方法,帮助学生全面地掌握这些技术,并培养学生的计算机技术综合应用能力。特别是本书列举的各种软件技术应用案例,能够很好地帮助教师进行案例驱动式的实践教学,使学生能够直接或零距离地接触和学习基于开源的网络通信、数据库管理、图形用户界面设计等资源进行大型软件开发的方法和技术,并能够综合地应用Linux操作系统、高级编程语言GCC、面向对象程序设计方法、编译技术、Gtk+用户界面设计、MySQL数据库、网络通信与Socket编程、软件体系结构、应用软件开发模式、软件国际化与本地化方法,以及平台移植等软件开发方法和技术来进行应用软件的开发,增强他们实际软件项目开发的总体意识和综合实践能力。 本书共分6章,包括Linux基础、GCC下的软件开发基础、网络通信及Socket编程、MySQL数据库应用、Gtk+界面设计、股票软件实现案例分析与实践等内容,并配套提供了包含本教材所用各种资源的DVD光盘。作为开源软件案例驱动的计算机软件技术综合应用实践教材,本书主要面向信息学科的计算机、软件工程及相近专业的本科高年级学生和专业硕士学位研究生,同时本书也可作为已工作的软件开发人员学习和进行有关应用软件开发(如基于C/S应用模式的软件开发)时的学习参考书籍。
前 言 “十年磨一剑”。自1999年初我用GtkAda开发军用软件质量度量系统的图形用户界面以来,到2009年初本教材的学校教材建设立项及现在的完稿,已有10多年了。在这10多年里,本人除了应用GtkAda做界面开发外,还大量地应用Gtk+进行应用软件的界面开发,包括以股票软件为基础的外汇行情分析软件--“汇眼”、软件测试工具--“科锐时”等等。 2005年我被聘为北京工业大学软件学院教授以后,针对教育部对软件学院学生实践能力培养的高要求和软件工程硕士复合型工程人才培养的定位,以及学院学生(特别是脱产的工程硕士研究生)综合性实践能力太弱等实际情况,经充分论证,分别于2006年下半年在学院为本科生开设了“界面设计”、为软件工程硕士开设了“高级软件编程技术”这两门实践类课程,受益学生近800人。课程开设以来,学生普遍反映良好,口碑颇佳,学生的工程实践能力得到了明显的提升。在这期间,课程的教学案例和实践资源也不断得到补充和完善。因此,我萌生了一种想法:将课程资源进行总结和提升,出版与之配套的实践教材,推广相关的实践教学经验,让国内高等学校计算机相关专业的实践教学从中受益。因此,可以说本教材在下决心编写之前,已是呼之欲出或厚积薄发。当然,这里要感谢学校和清华大学出版社对我编写本教材的大力支持。 本书不仅仅是一本实践教材,实际上本书从头到尾始终强调和灌输现代软件开发方法学和现代程序设计思想,并通过股票软件这个实际案例为读者展现了操作系统、网络通信、数据库管理、用户界面设计等技术用于应用软件开发的思路和要认真考虑的诸多因素(如软件的国际化与本地化、软件开发和应用环境的升级、软件跨平台的移植,等等),使读者在进行应用软件开发时既有大局观,又能关注细节,起到抛砖引玉、授人以渔的效果和作用。对于本书所涵盖的大量技术内容、实操案例及问题解决方案,读者如果能够完全掌握并能实际用于软件项目的开发,我想,他至少达到了一个高级蓝领的要求了。 本书的完成得益于许多学生的积极参与,我在这里表示感谢。如:桑振华收集和整理了第6章的资料,刘茜收集和整理了第5章的资料,许文瑛收集和整理了第1章的资料,淮湛欣收集和整理了第2、第4章的资料,赵珊收集了第3、第4章的资料。另外,还有前期为本教材作了部分资料收集工作的单冰同学,以及许多提交了优秀实践报告和课程案例的学生,如褚润民、安文怡等(由于学生太多,我在这里就不一一列举了)。本书很多内容是从互联网进行取材、改编的结果。遗憾的是,很多网上资料由于转载或引用频繁找不到原创处,在参考文献中无法准确标注,我在这里要表示感谢。最后,我要感谢我的家人,本书的撰写全部是利用暑假时间,没有家人的支持和照顾,本书也是难以完成的。 目前国内针对计算机专业或软件工程专业的综合性实践教学课程和教材很少。本书经历了10多年科研及教学的积淀,并充分应用了当前最流行的计算机开源技术,参考和借鉴了这些技术的应用成果。尽管如此,由于自身的能力和水平有限,一定有许多不周到、不准确、遗漏或错误之处,恳请读者提出批评和建议,并争取再版时修正。 北京工业大学软件学院 蔡建平 2010年8月31日 于北京工业大学