近年来,软件工程学科的发展非常迅速,新的理论、方法和工具层出不穷,很多已经应用到了企业的实际工作中。特别是面向对象技术的成熟及在工业界的普遍应用,使得软件工程课程的教学内容发生了很大的变化,比较突出的特点是加强和充实了面向对象方法。
在以往的教学计划中,开设软件工程课程之前通常开设程序设计语言及其他专业基础课程(如操作系统、数据结构等),在以结构化方法为主的时期,问题不是很大。但是,在以面向对象方法为主流的今天,软件技术及软件结构都呈现复杂的趋势,只学习程序设计语言是远远不够的,还需要学习并实践软件开发的相关技术,近几年出版的较好的软件工程教材都需要学生具有面向对象软件开发的经验。
我早在2005年为软件工程专业的学生开设了“计算机应用系统的设计与实现”(基于Java)选修课程。这门课程的开设在“Java程序设计”之后,“软件工程”课程之前,目的在于增强学生的实际开发能力,并为“软件工程”课程的学习奠定基础。
国内出版的“Java程序设计”教材很多,但应用软件系统开发方面的教材却很少,由此我产生了编写这方面教材的想法。将想法变为现实却是一个漫长曲折的过程。由于教学的需要,我将精力转向了“软件工程”、“软件体系结构”等课程的教学。“计算机应用系统的设计与实现”这门课程也一度由于缺少合适的教材等原因难以坚持。学生没有软件开发经验,软件工程课程的教学很困难,也很辛苦。教授“软件工程”课程的老师普遍会有这样的体会。虽然我们很多时候都在强调要从提高学生的编程能力上升到系统开发能力,但是软件开发类课程在大多数学校的教学计划中是没有的。能够将多年的想法变为现实,首先要感谢本书的责任编辑郑寅堃老师的鼓励和支持。
本书结合实例介绍如何使用Java进行面向对象应用软件开发。使用基于统一建模语言(UML)的面向对象建模技术,以校内书店管理系统为例,建立用例模型、对象模型及动态模型。体系结构设计采用面向对象系统典型的三层结构,即业务逻辑层、界面层及数据层。本书重点介绍了每一层开发使用的技术。
本书适合计算机相关专业的在校学生,通过本书的学习和实践,可以增强面向对象软件开发的实践能力,为软件工程课程的学习打下良好的基础。
本书中的校内书店管理系统案例由方国设计,并且他编写了本书中的大部分程序代码。王春涛帮助开发了附录A中的程序,秦贞远、赵东旭、王琰洁帮助调试和修改了第15章中的部分程序,在此表示感谢。特别要感谢王素琴老师,她花费了很多时间阅读了大部分章节,提出了很多宝贵的修改意见。
尽管我已经尽了最大的努力,但由于水平有限,难免有不足之处。衷心希望读者给予批评指正。
希望通过本书的学习,使读者对面向对象技术具有更深入的理解,并提高面向对象软件系统的开发能力。
马素霞
2012年5月于北京