前言
随着信息时代的飞速发展,计算机和软件已成为生产和生活中极为重要的组成部分。因此,培养熟练掌握计算机科学技术与软件工程相关领域知识的专业人才刻不容缓。
作为计算机和软件工程专业本科学生的必修课程,“软件工程”在国内外都是大学计算机科学教育体系中的核心课程之一。它担负着系统、全面地介绍软件工程的基本理论,为其他专业课程的学习奠定坚实基础,培养学生的基本软件工程思维,以及提高学生实践和管理能力的重任。
软件工程是应用计算机科学、数学、逻辑学及管理科学等原理开发软件,将系统化的、严格约束的、可量化的方法应用于软件的开发、运行与维护,以实现提高质量、降低成本等目的的一门新兴的、综合性的应用科学。传统的仅通过理论课程讲授软件工程的授课方式显然无法提高学生的操作和实践能力。因此,我们建议在开设“软件工程”的理论课程的同时,开设与之配套的“软件工程实践”课程。
随着软件工程理论的发展,诸如CASE工具、自动化测试工具、项目管理工具、配置管理工具相关的自动化工具也在不断涌现。这些工具使得软件开发效率大大提高,降低了软件的开发成本。相应地,这些工具也对软件开发领域的从业者、相关专业的学生提出了新的要求。要培养相关专业的人才,除了重视软件工程理论与实践的教学方法外,同样需要有足够优秀的实践辅导材料作为支撑。
市面上现行的软件工程类书籍更注重理论和概念,对实际中用到的工具介绍不甚详细,因此不能满足软件工程专业教师与学生的日常教学要求。大部分现行教材中使用的软件版本过低,内容也较为陈旧,实验设置只是作为理论内容的补充,不足以使学生实践软件工程中的概念,实践和可操作性不强,课时安排不够合理,因此与当今计算机和软件工程相关专业大学生的实践需求严重脱轨。
针对以上诸多问题,本书作者旨在编写一本适用于计算机和软件工程相关专业学生、内容与当前软件工程理论和工具发展实际情况紧密结合的软件工程实践课程参考书籍。本书在以下几个重要方面具有突出特色。
(1) 目标针对性强: 本书针对计算机和软件工程相关专业学生,而不是广泛的高校学生,旨在培养他们的实践能力,加深对软件工程的理解,为今后的课程学习和实践打下基础。
(2) 内容与时俱进: 本书充分考虑到现今软件与技术使用的实际情况,内容既考虑了软件版本的兼容性,又与最新的技术紧密结合,去除了过于陈旧和不实用的内容,符合软件工程工具发展的最新趋势。
(3) 真实实践项目: 本书围绕“小型二手货交易平台”这一现实软件项目的软件生存周期设置实验,从不同角度展现软件生存周期各阶段的工作内容,针对每项工作设置相应CASE工具,使读者能够最大化掌握软件开发中各工具的使用方法。
(4) 配图充实丰富: 讲解和实验都配有丰富的插图,清晰易懂,融入了大量具体的实践过程,而非简单介绍原理。
(5) 视角新颖独到: 每章附有思考题和实验练习题,鼓励学生对实践过程和理论相联系,延伸思考,开拓学生视野。
(6) 教学操作性强: 实验有清晰的步骤提示,易于老师讲授和学生自学,实验难度从浅入深,可按实际需要进行选做和调整,实验课时合理,符合一般教学安排。
本书分为9章,涉及软件工程理论与发展、软件设计与分析、软件开发、软件测试与管理、版本控制等方面的内容。每章分为工具简介、实验操作、案例演示和课后延伸4个部分。工具简介为学生提供所使用的软件的基本介绍、版本信息、功能用途及安装配置等; 实验操作部分介绍了软件的基本使用操作方法; 案例演示部分以贯穿全书的实际案例,用本章介绍的软件工具加以实际操作演示; 课后延伸部分提供了思考题、实验练习题(可参考附录B中的文档做实验)和参考文献,帮助学生消化理解以及发散思维。本书建议的教学课时为: 课内24课时,课外12课时,共36课时。具体教学安排可以根据实际教学情况进行调整。
软件工程实践课程应该建立在理论课程的基础上,本书不是取代软件工程理论课程的教材,因此,在学习本课程时,应同时学习软件工程理论课程,并配合理论课程教材一同使用。
本书总结了作者多年软件工程实践与教学的经验。为了使本书更具有可用性,我们以北京航空航天大学软件学院作为试点,用本书的内容进行了实验性教学。在此,感谢北京航空航天大学软件学院在工作上给与的支持,以及在成书过程中所提供的各种宝贵资源。
由于计算机技术发展迅速,软件工程实践课程本身还在探索之中,市场上针对计算机和软件工程相关专业的软件工程实践课程的教材中,能使人耳目一新的并不多见,我们力求使本教材做到完美; 但由于学习能力和水平有限,书中难免有疏漏之处,恳请各位同仁和广大读者给予批评指正,也希望各位能将实践过程中的经验和心得与我们交流(yunxianglu@hotmail.com)。
作者
2016年4月
于北航软件学院