南大-徐宝文-关于软件工程学科、软件工程专业与 软件学院的一点认识
合集下载
相关主题
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
培养了一批比较优秀的学生 • 全国优秀博士论文 • 省优秀博士硕士论文 • 微软学者奖
2.软件工程专业
软件工程
• Software Engineering 软件工程理论与方法 Software Engineering Method and Theory 软件工程技术 Software Engineering Technology 软件服务工程 Service Oriented Software Engineering 领域软件工程 Domain Specific Software Engineering
3.软件学院
• 通过10年的建设和发展,取得了长足的进 步 • 为国家培养了大量优秀人才,为我国软件 产业的发展做出了非常大的贡献
3.软件学院
问题
• 软件工程升为一级学科以后,软件学院如 何进行学科建设? • 如何进行学术和科学研究? • 如何培养博士生和硕士生?
3.软件学院
问题1:软件工程升为一级学科以后,如何进行学
2.软件工程专业
软件服务工程
• 面向服务的软件体系结构:研究以软件服务作为基本单元 的软件体系结构描述、设计、演化与重构。 • 面向服务的业务过程:研究面向服务的业务创新、业务建 模、业务过程集成、管理与优化、业务性能管理与优化。 • 软件服务工程方法:研究软件服务的建模、发现、通信、 发布,以及高层服务组合和服务协作的理论、方法、技术 与应用。 • 软件服务运行支撑:研究支持软件服务运行的运行支撑技 术与环境,包括企业服务总线、服务虚拟化、支持服务实 现与运行的协议等。
2.软件工程专业
领域软件工程 • 领域分析:研究如何获得领域中系统之间共同的 需求,涉及确定领域边界、识别信息源、分析变 化性等,以建立领域模型。 • 领域设计:研究如何获得领域体系结构,以描述 能够适应领域中多个系统的需求的高层次的设计。 • 领域实现:研究如何将需求翻译到由可复用构件 创建的系统,关键机制在于一组与领域模型和领 域体系结构相联系的可复用构件,或者是应用系 统的生成器。 • 应用工程:研究如何利用领域模型、领域体系结 构和可复用构件或生成器开发具体的应用。
2.软件工程专业
贡献
• 明确了软件工程学科的研究内容 • 提高软件工程学科的地位 • 吸引了更多的人关注软件工程学科
2.软件工Biblioteka Baidu专业
问题
• 专业划分是否科学、可行?是否过细?
我不知道:我自己属于什么专业?
——软件工程理论与方法?软件工程技术?领域软件工程?
三位一体的东西,把它割裂开来了 国际上研究通行方法是:通过对特定领域、特定系统、特定 应用的研究,通过系统的分析、验证、概括、综合得到一般 的方法与技术
关于软件工程学科、软件工程专 业与软件学院的一点认识
徐宝文 南京大学计算机科学与技术系 bwxu@nju.edu.cn
1.软件工程学科
1.软件工程学科
1.软件工程学科
1.软件工程学科
分析
• 国际上(国外)对软件学科、软件工程学科有明确的研究 范围界定,甚至在软件杂志上都很少发数据库方面的论文, 软件工程杂志几乎不发数据库方面的论文 • 国内几乎把只要涉及到软件(代码,甚至微代码)的都看 做软件的范畴,包括人工智能、图形学、自动控制、各类 涉及代码(程序)的应用(如机械控制)……
•
1.软件工程学科
我们的工作与实践:成果
论文被国50多个国家和地区通过各种途径引用采用: • 杂志、会议论文 • 博士论文 • 重要技术报告 • 项目申请 • 专利报告 • 做成PPT(胶片)报告 • 国际上几乎所有软件工程相关方向学术、研究单位都引用、采用过我们的工作
被国外引用超过1000次,国内引用超过2000次
3.软件学院
问题3:如何进行学术和科学研究?
• 如何培养博士生和硕士生? 工程 or 工学? • 如何确定研究方向? 软件工程有特定的研究内容
在现有个别软件学院,在研究生培养中除了没有软件 工程方面的毕业论文,其他什么方面的都有
谢谢!
——敬请指教
• 2002年:北京航空航天大学许可(李未), SAT和CSP的相变现象研究 • 2005年:东南大学陈振强(徐宝文),基于依 赖性分析的程序切片技术研究 • 2006年:北京大学黄罡(杨芙清),反射式软 件中间件原理与技术研究
科建设?
• 国际上软件工程人才普遍奇缺,许多高校缺少软 件工程教师 • 按照国际上通行的领域划分“潜规则”,国内真 正的从事软件工程研究的人员也很缺少 • 与计算机学院(计算机系)的关系 • 要不要进行普通意义上的学科建设?
3.软件学院
问题2:如何进行学术和科学研究?
• 要不要进行学术研究? • 研究什么?
2.软件工程专业
问题
• 专业划分是否科学、可行?是否过细?
例:通过对舰载(或机载)软件的分析研究,总结出大型复杂(或实时) 软件的典型特点,从而研究大型复杂(实时)遗留软件的继承、演化和更 新问题
软件工程理论与方法?软件工程技术?领域软件工程?
——这是软件工程的涉及面很窄的典型课题,不应该是一个跨学科、 跨专业的问题
1.软件工程学科
我们的工作与实践
• • • • • • • • • • • • • • 程序设计语言设计、分析与实现(1982-) 程序依赖性分析(1989-2005) 程序切片分析 (1995-2009) 对象抽取——不同风格程序之间的转换(1996-2000) 并发程序不同泛型关系分析——不同风格程序之间的转换 (1996-2001) 内存泄漏分析(2000-2003) 程序指针与别名分析 (2004-) 类型传播分析 (2006-) 泛型概念抽取 (2006-) 程序 (尤其是基于类的) 各种度量技术(1997-) 各种程序重构技术 (2003-) 程序错误定位技术 (2006-) 基于程序分析的各种测试技术(1998-) ……
•
• •
2.软件工程专业
软件工程理论与方法
• 软件范型:研究从软件工程师或程序员视角看到的软件模 型及其构造原理,常见的有结构化、面向对象、构件化等 软件范型。 • 软件语言:研究用以书写软件的语言,书写内容包括软件 需求定义、软件功能规约、软件设计规约、实现算法和软 件文档等。 • 形式化方法:研究软件开发过程中基于严格数学理论的规 范化的定义、设计、实现和验证的系统化方法。 • 软件自动生成与演化:研究如何由需求规约自动生成代码, 以及已有系统向新系统演化的过程。 • 软件建模与分析:通过对现实世界的分析建立软件系统的 结构和行为模型,如交互模型、过程模型、故障模型等, 从而对系统的预期性质进行自动化的分析与验证。
2.软件工程专业
软件工程技术
• 软件需求工程:研究需求工程过程,以及需求获取、分析、规约、 验证和管理等方法和技术。 • 软件设计方法:研究指导软件设计的原理和原则、方法和模型,以 及适用于不同类型软件的最佳设计方法和技术手段。 • 软件体系结构:研究构成软件系统的基础结构元素及其组合模式和 结构风格。 • 软件分析与测试:研究软件分析、测试与验证方法和技术,来确认 软件产品是否符合预期。 • 软件维护与演化:研究保障软件可靠、稳定运行、以及改造已有软 件系统以适应新需求的方法和技术。 • 软件工程管理:研究管理和控制软件开发活动的通用性指导原则和 最佳实践,涉及软件过程、配置管理、项目管理、软件度量和质量 管理等方面。 • 软件工程支撑工具、平台与环境:研究支持各个软件生命周期阶段 的计算机软件工具、平台和集成化环境。
1.软件工程学科
研究范畴与内容 • 软件方法学 • 程序设计语言 • 软件工具,软件工程环境 • 软件工程管理
1.软件工程学科
研究范畴与内容
• • • • • • • • • • • • • 一般或特殊软件开发方法 程序设计语言的设计、分析与实现技术 各类通用软件工具及相关技术 软件过程的管理 软件计划管理 需求工程 软件设计技术 各类软件分析、度量技术 各类软件测试技术 软件维护技术 软件经济学 软件心理学 ……
1.软件工程学科
我们的工作与实践:成果
• 国际顶级杂志: IEEE Transactions on Software Engineering (TSE) ACM Transactions on Software Engineering and Methodology (TOSEM) Journal of Computer and System Sciences (JCSS) 国际著名杂志: Software: Practice & Experience (SPE) Information and Software Technology (IST) Journal of Systems and Software (JSS) Journal of Software Maintenance and Evolution: Research and Practice (JSM) International Journal of Software Engineering and Knowledge Engineering (SEKE) Informatica
• 国内的软件产业化指标对学科的影响
• 国内一些人混淆了具体软件与软件学科的关系,认为研究 软件工程的就是搞应用软件开发的
• 软件工程研究人员可以研究特定应用软件的特点、方法等, 但不是去搞具体应用软件开发的
1.软件工程学科
软件工程定义
• 软件工程 是一门研究用工程化方法构建和维护有效的、实用的和 高质量的软件的学科。 (百度百科) • 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程 化方法去开发和维护软件,以及如何把经过时间考验而证明正确的 管理技术和当前能够得到的最好的技术方法结合起来的学科。(维 基百科) • 软件工程是应用计算机科学、数学及管理科学等原理,开发软件的 工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成 本。其中,计算机科学、数学用于构建模型与算法,工程科学用于 制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、 资源、质量、成本等管理。(计算机科学技术百科全书) • 运用现代科学技术知识来设计并构造计算机程序及为开发、运行和 维护这些程序所必需的相关文件资料。(Barry Boehm) • 软件工程是将系统化的、严格约束的、可量化的方法应用于软件的 开发、运行和维护,即将工程化应用于软件。(IEEE)
2.软件工程专业
软件工程
• Software Engineering 软件工程理论与方法 Software Engineering Method and Theory 软件工程技术 Software Engineering Technology 软件服务工程 Service Oriented Software Engineering 领域软件工程 Domain Specific Software Engineering
3.软件学院
• 通过10年的建设和发展,取得了长足的进 步 • 为国家培养了大量优秀人才,为我国软件 产业的发展做出了非常大的贡献
3.软件学院
问题
• 软件工程升为一级学科以后,软件学院如 何进行学科建设? • 如何进行学术和科学研究? • 如何培养博士生和硕士生?
3.软件学院
问题1:软件工程升为一级学科以后,如何进行学
2.软件工程专业
软件服务工程
• 面向服务的软件体系结构:研究以软件服务作为基本单元 的软件体系结构描述、设计、演化与重构。 • 面向服务的业务过程:研究面向服务的业务创新、业务建 模、业务过程集成、管理与优化、业务性能管理与优化。 • 软件服务工程方法:研究软件服务的建模、发现、通信、 发布,以及高层服务组合和服务协作的理论、方法、技术 与应用。 • 软件服务运行支撑:研究支持软件服务运行的运行支撑技 术与环境,包括企业服务总线、服务虚拟化、支持服务实 现与运行的协议等。
2.软件工程专业
领域软件工程 • 领域分析:研究如何获得领域中系统之间共同的 需求,涉及确定领域边界、识别信息源、分析变 化性等,以建立领域模型。 • 领域设计:研究如何获得领域体系结构,以描述 能够适应领域中多个系统的需求的高层次的设计。 • 领域实现:研究如何将需求翻译到由可复用构件 创建的系统,关键机制在于一组与领域模型和领 域体系结构相联系的可复用构件,或者是应用系 统的生成器。 • 应用工程:研究如何利用领域模型、领域体系结 构和可复用构件或生成器开发具体的应用。
2.软件工程专业
贡献
• 明确了软件工程学科的研究内容 • 提高软件工程学科的地位 • 吸引了更多的人关注软件工程学科
2.软件工Biblioteka Baidu专业
问题
• 专业划分是否科学、可行?是否过细?
我不知道:我自己属于什么专业?
——软件工程理论与方法?软件工程技术?领域软件工程?
三位一体的东西,把它割裂开来了 国际上研究通行方法是:通过对特定领域、特定系统、特定 应用的研究,通过系统的分析、验证、概括、综合得到一般 的方法与技术
关于软件工程学科、软件工程专 业与软件学院的一点认识
徐宝文 南京大学计算机科学与技术系 bwxu@nju.edu.cn
1.软件工程学科
1.软件工程学科
1.软件工程学科
1.软件工程学科
分析
• 国际上(国外)对软件学科、软件工程学科有明确的研究 范围界定,甚至在软件杂志上都很少发数据库方面的论文, 软件工程杂志几乎不发数据库方面的论文 • 国内几乎把只要涉及到软件(代码,甚至微代码)的都看 做软件的范畴,包括人工智能、图形学、自动控制、各类 涉及代码(程序)的应用(如机械控制)……
•
1.软件工程学科
我们的工作与实践:成果
论文被国50多个国家和地区通过各种途径引用采用: • 杂志、会议论文 • 博士论文 • 重要技术报告 • 项目申请 • 专利报告 • 做成PPT(胶片)报告 • 国际上几乎所有软件工程相关方向学术、研究单位都引用、采用过我们的工作
被国外引用超过1000次,国内引用超过2000次
3.软件学院
问题3:如何进行学术和科学研究?
• 如何培养博士生和硕士生? 工程 or 工学? • 如何确定研究方向? 软件工程有特定的研究内容
在现有个别软件学院,在研究生培养中除了没有软件 工程方面的毕业论文,其他什么方面的都有
谢谢!
——敬请指教
• 2002年:北京航空航天大学许可(李未), SAT和CSP的相变现象研究 • 2005年:东南大学陈振强(徐宝文),基于依 赖性分析的程序切片技术研究 • 2006年:北京大学黄罡(杨芙清),反射式软 件中间件原理与技术研究
科建设?
• 国际上软件工程人才普遍奇缺,许多高校缺少软 件工程教师 • 按照国际上通行的领域划分“潜规则”,国内真 正的从事软件工程研究的人员也很缺少 • 与计算机学院(计算机系)的关系 • 要不要进行普通意义上的学科建设?
3.软件学院
问题2:如何进行学术和科学研究?
• 要不要进行学术研究? • 研究什么?
2.软件工程专业
问题
• 专业划分是否科学、可行?是否过细?
例:通过对舰载(或机载)软件的分析研究,总结出大型复杂(或实时) 软件的典型特点,从而研究大型复杂(实时)遗留软件的继承、演化和更 新问题
软件工程理论与方法?软件工程技术?领域软件工程?
——这是软件工程的涉及面很窄的典型课题,不应该是一个跨学科、 跨专业的问题
1.软件工程学科
我们的工作与实践
• • • • • • • • • • • • • • 程序设计语言设计、分析与实现(1982-) 程序依赖性分析(1989-2005) 程序切片分析 (1995-2009) 对象抽取——不同风格程序之间的转换(1996-2000) 并发程序不同泛型关系分析——不同风格程序之间的转换 (1996-2001) 内存泄漏分析(2000-2003) 程序指针与别名分析 (2004-) 类型传播分析 (2006-) 泛型概念抽取 (2006-) 程序 (尤其是基于类的) 各种度量技术(1997-) 各种程序重构技术 (2003-) 程序错误定位技术 (2006-) 基于程序分析的各种测试技术(1998-) ……
•
• •
2.软件工程专业
软件工程理论与方法
• 软件范型:研究从软件工程师或程序员视角看到的软件模 型及其构造原理,常见的有结构化、面向对象、构件化等 软件范型。 • 软件语言:研究用以书写软件的语言,书写内容包括软件 需求定义、软件功能规约、软件设计规约、实现算法和软 件文档等。 • 形式化方法:研究软件开发过程中基于严格数学理论的规 范化的定义、设计、实现和验证的系统化方法。 • 软件自动生成与演化:研究如何由需求规约自动生成代码, 以及已有系统向新系统演化的过程。 • 软件建模与分析:通过对现实世界的分析建立软件系统的 结构和行为模型,如交互模型、过程模型、故障模型等, 从而对系统的预期性质进行自动化的分析与验证。
2.软件工程专业
软件工程技术
• 软件需求工程:研究需求工程过程,以及需求获取、分析、规约、 验证和管理等方法和技术。 • 软件设计方法:研究指导软件设计的原理和原则、方法和模型,以 及适用于不同类型软件的最佳设计方法和技术手段。 • 软件体系结构:研究构成软件系统的基础结构元素及其组合模式和 结构风格。 • 软件分析与测试:研究软件分析、测试与验证方法和技术,来确认 软件产品是否符合预期。 • 软件维护与演化:研究保障软件可靠、稳定运行、以及改造已有软 件系统以适应新需求的方法和技术。 • 软件工程管理:研究管理和控制软件开发活动的通用性指导原则和 最佳实践,涉及软件过程、配置管理、项目管理、软件度量和质量 管理等方面。 • 软件工程支撑工具、平台与环境:研究支持各个软件生命周期阶段 的计算机软件工具、平台和集成化环境。
1.软件工程学科
研究范畴与内容 • 软件方法学 • 程序设计语言 • 软件工具,软件工程环境 • 软件工程管理
1.软件工程学科
研究范畴与内容
• • • • • • • • • • • • • 一般或特殊软件开发方法 程序设计语言的设计、分析与实现技术 各类通用软件工具及相关技术 软件过程的管理 软件计划管理 需求工程 软件设计技术 各类软件分析、度量技术 各类软件测试技术 软件维护技术 软件经济学 软件心理学 ……
1.软件工程学科
我们的工作与实践:成果
• 国际顶级杂志: IEEE Transactions on Software Engineering (TSE) ACM Transactions on Software Engineering and Methodology (TOSEM) Journal of Computer and System Sciences (JCSS) 国际著名杂志: Software: Practice & Experience (SPE) Information and Software Technology (IST) Journal of Systems and Software (JSS) Journal of Software Maintenance and Evolution: Research and Practice (JSM) International Journal of Software Engineering and Knowledge Engineering (SEKE) Informatica
• 国内的软件产业化指标对学科的影响
• 国内一些人混淆了具体软件与软件学科的关系,认为研究 软件工程的就是搞应用软件开发的
• 软件工程研究人员可以研究特定应用软件的特点、方法等, 但不是去搞具体应用软件开发的
1.软件工程学科
软件工程定义
• 软件工程 是一门研究用工程化方法构建和维护有效的、实用的和 高质量的软件的学科。 (百度百科) • 软件工程是研究和应用如何以系统性的、规范化的、可定量的过程 化方法去开发和维护软件,以及如何把经过时间考验而证明正确的 管理技术和当前能够得到的最好的技术方法结合起来的学科。(维 基百科) • 软件工程是应用计算机科学、数学及管理科学等原理,开发软件的 工程。软件工程借鉴传统工程的原则、方法,以提高质量、降低成 本。其中,计算机科学、数学用于构建模型与算法,工程科学用于 制定规范、设计范型、评估成本及确定权衡,管理科学用于计划、 资源、质量、成本等管理。(计算机科学技术百科全书) • 运用现代科学技术知识来设计并构造计算机程序及为开发、运行和 维护这些程序所必需的相关文件资料。(Barry Boehm) • 软件工程是将系统化的、严格约束的、可量化的方法应用于软件的 开发、运行和维护,即将工程化应用于软件。(IEEE)