现代软件开发方法课程是针对软件开发领域中的新理论、新技术和新方法进行深入探讨的2学分/40学时专业课程。由Prof. ZongPing主讲,其邮箱为zong@njupt.edu.cn。课程内容涵盖了广泛的软件开发实践和理论。
首先,课程从传统软件工程的角度出发,回顾了软件发展的历史背景。在20世纪60年代末,由于硬件成本显著下降,但软件在成本控制、进度管理等方面的问题日益突出,导致了软件危机的出现。为了应对这一挑战,软件工程的概念在1968年的Garmish会议中被正式提出,旨在通过系统的、有纪律的方法来开发、运行和维护软件,使其成为计算机和信息产业的重要组成部分。
在软件工程的早期阶段,软件开发主要局限于编写程序,特点包括:规模相对较小、编程被视为技艺而非工程、缺乏有效的开发方法和工具支持,以及对软件开发管理的忽视,导致维护困难。随着软件工程的发展,其定义被广泛接受,如IEEE 1993年提出的软件工程定义强调了系统性、有序性和量化的方法应用,以及软件生命周期各阶段的操作。同时,Computing Curricula 2001年定义则将其视为一门研究方法的学科。
课程的具体内容包括国际和国内的软件开发标准,如软件体系结构的设计原则,面向对象的方法论,以及形式化方法的应用,如模型驱动开发和验证技术。此外,统一建模语言(UML)在这个过程中扮演了关键角色,它提供了一种标准化的方式来表达软件系统的设计和实现。软件过程改进关注如何优化开发流程以提升效率和质量,如采用敏捷开发方法来适应快速变化的需求。
软件复用与构件技术是现代软件开发的重要环节,通过复用现有的软件组件可以减少开发时间和成本。特征驱动开发(FDD)方法强调需求驱动的开发过程,而敏捷软件开发则提倡迭代和增量式的开发模式,以更快地交付可用的产品。软件开发工具与环境的发展也同步跟进,提供了强大的支持,如集成开发环境(IDE)和持续集成/持续部署(CI/CD)工具。
最后,课程还会涵盖产品化技术,即如何将软件产品化并确保其在实际环境中的稳定运行和维护。现代软件开发方法课程旨在让学生掌握一套全面的工具和技术,以解决当今软件开发中的复杂问题,提高软件质量和工程效率。