当前课程知识点:软件工程与软件自动化 >  第五章 软件自动化技术 >  专家访谈 >  北京理工大学刘辉教授谈软件自动化新进展

返回《软件工程与软件自动化》慕课在线视频课程列表

北京理工大学刘辉教授谈软件自动化新进展在线视频

下一节:各个开发阶段最流行的Java工具汇总

返回《软件工程与软件自动化》慕课在线视频列表

北京理工大学刘辉教授谈软件自动化新进展课程教案、知识点、字幕

各位同学大家好

下面我们谈一下软件工程自动化方法

软件工程自动化方法是说怎么样让我们生成软件

能够自动地生成,而不是靠我们程序员

手工地一个一个字地敲这个代码

最开始的时候我们有非常好的想法,就是说能不能够给一个需求

给一个功能需求,然后就会自动生成代码

这个方法就是形式化软件工程方法

它主要途径就是在需求阶段,不再用文字来描述

而是用一个类似于数学的语言的

形式化规格语言来描述我们的软件需求

比如说object-Z,Z这样的一些语言

但是最后我们发现这个形式化软件工程方法有两个问题

第一个问题是,要从需求到代码转换,它特别的复杂

即使我们已经经过了几十年的发展

目前也只能够生成一些比较简单的、非常小的

demo性质的一些软件。大型复杂软件我们根本生成不了

第二个问题是在你描述形式化规格说明的时候

你会发现这个非常的复杂,需要比较高深的知识

所以最后你会发现,把这个需求描述出来之后

这个成本要超过你自己去手工写代码的这个成本

所以发现这条路不是太好走

既然不能完成从需求到代码生成

那我们总需要找一些别的途径

后来我们想到一个比较好的途径是什么呢?

我们不是从需求开始,而是从一部分设计开始

比如说,从我们的高层模型设计

这就是我们说的MDA模型驱动的软件开发方法

就是给你一个需求,然后你手工地把它设计成一个高层的模型

然后基于这个模型用模型转换的方式让它自动生成一部分代码

这个大概在十年前是非常流行的方式

但目前也碰到一些问题

第一个问题是说,MDA它只能够生成一部分骨架代码

具体算法的细节这一块是无法生成的

实际算法细节是我们在写程序的时候最耗时的部分

它却无法生成

这是它比较大的一个问题

OK,那这两个方法都是从根本上生成整个大的软件来着手

那还可以从一些小的细节着手

比如说测试,你可以自动生成一些测试用例

可以自动去跑这些测试用例,来让你看看测试是好还是不好

我们需要手工地一个一个的敲这个测试代码

去手工的验证软件运行的结果,这是一个局部的

还有一些,比如说软件的自动优化

软件配置的自动优化,还有文档自动生成

甚至包括代码推荐,这部分功能都是说

在某一些环节上,使得我们软件生成过程

能够局部的实现自动化方法

最后一块,我要说的是我们最新的进展

最新的进展主要是利用一些机器学习

特别是DeepLearning的一些方式,还有包括遗传算法

这些比较先进的人工智能方面的技术

来自动生成部分软件

比如说我们现在能做的是什么呢?

就是我给你一个测试用例,给你一堆的测试用例

从这个测试用例来说明我这个软件要做什么

相当于我们的软件需求,然后介于互联网上

大批的、开源的这些源代码

我们能够通过机器学习的方式去组装、去遍历这些代码

然后把它混在一块,生成一个能用的程序

而且这个程序能够通过你给定的所有测试用例

也就是说能自动地从开源项目上生成一个符合你要求的这么一个软件

这是目前国外研究的一个热点,谢谢各位

软件工程与软件自动化课程列表:

第一章 软件工程基础

-1.1 软件工程的前生今世

--开篇阅读

--授课视频

-第一章 软件工程基础--1.1 软件工程的前生今世

-1.2 万变不离其宗

--授课视频1/3

--授课视频2/3

--授课视频3/3

-第一章 软件工程基础--1.2 万变不离其宗

-1.3 唯一不变的是变化

--授课视频1/3

--授课视频2/3

--授课视频3/3

--外部链接

-第一章 软件工程基础--1.3 唯一不变的是变化

-1.4 亡羊补牢为时不晚

--授课视频1/2

--授课视频2/2

-第一章 软件工程基础--1.4 亡羊补牢为时不晚

-扩展阅读与话题讨论

--扩展阅读

--话题讨论

第二章 敏捷开发

-2.1 方法论来源于恐惧

--授课视频

-第二章 敏捷开发--2.1 方法论来源于恐惧

-2.2 敏捷是什么

--授课视频

-第二章 敏捷开发--2.2 敏捷是什么

-2.3 典型敏捷开发方法

--SCRUM敏捷开发方法

--XP敏捷开发方法

-第二章 敏捷开发--2.3 典型敏捷开发方法

-2.4 敏捷不是万能药

--授课视频

-第二章 敏捷开发--2.4 敏捷不是万能药

-专家谈敏捷

--专家谈敏捷开发方法

-扩展阅读与话题讨论

--外部链接

--话题讨论

第三章 OO与UML

-3.1 面向对象核心概念和基本特性

--核心概念与基本特性

-第三章 OO与UML--3.1 面向对象核心概念和基本特性

-3.2 面向对象设计基本原则

--面向对象设计基本原则

-第三章 OO与UML--3.2 面向对象设计基本原则

-3.3 通用职责分配模式(GRASP)

--通用职责分配模式

-3.3 通用职责分配模式(GRASP)--作业

-3.4 从重构到模式

--模式和设计模式

-第三章 OO与UML--3.4 从重构到模式

-3.5 使用UML设计面向对象系统

--UML综述

-第三章 OO与UML--3.5 使用UML设计面向对象系统

-3.6 主要UML模型图绘制技巧

--UML用例图

--UML类图

--UML序列图绘制技巧

-第三章 OO与UML--3.6 主要UML模型图绘制技巧

-扩展阅读与话题讨论

--设计模式有毒么?

--话题讨论

第四章 对象模型分析

-4.1 案例简介

--书籍参考

--案例说明

-4.2 对象模型之一

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.2 对象模型之一

-4.3 对象模型之二

--授课视频1/2

--授课视频2/2

-第四章 对象模型分析--4.3 对象模型之二

-4.4 对象模型之交互

--授课视频

-第四章 对象模型分析--4.4 对象模型之交互

-扩展阅读与话题讨论

--图书推荐

--话题讨论

第五章 软件自动化技术

-5.1 软件自动化概述

--软件自动化概述

-第五章 软件自动化技术--5.1 软件自动化概述

-5.2 典型自动化方法和工具

--典型自动化工具视频

-第五章 软件自动化技术--5.2 典型自动化方法和工具

-5.3 文档自动化

--文档自动化视频

-第五章 软件自动化技术--5.3 文档自动化

-5.4 测试自动化

--测试自动化视频

--白盒测试工具VU的示例演示片段(版权属原作者)

--功能和性能自动化测试工具及简单应用演示

-第五章 软件自动化技术--5.4 测试自动化

-专家访谈

--北京理工大学刘辉教授谈软件自动化新进展

-扩展阅读与话题讨论

--各个开发阶段最流行的Java工具汇总

--话题讨论

第六章 CI/CD与DevOps

-6.1 持续集成

--持续集成视频1/2

--持续集成视频2/2

-第六章 CI/CD与DevOps--6.1 持续集成

-6.2 持续交付和部署

--持续交付和持续部署

-第六章 CI/CD与DevOps--6.2 持续交付和部署

-6.3 DevOps

--DevOps授课视频

-第六章 CI/CD与DevOps--6.3 DevOps

-专家访谈

--卓睿科技总架构师带来的精彩访谈

-扩展阅读与话题讨论

--DevOps专题

--话题讨论

第七章 软件质量保证

-7.1 质量和质量保证

--授课视频

-第七章 软件质量保证--7.1 质量和质量保证

-7.2 软件质量模型

--授课视频

-第七章 软件质量保证--7.2 软件质量模型

-7.3 SQA组织与职责

--授课视频

-第七章 软件质量保证--7.3 SQA组织与职责

-7.4 全面软件质量管理

--授课视频

-第七章 软件质量保证--7.4 全面软件质量管理

-专家访谈

--专家访谈

-扩展阅读与话题讨论

--外部链接

--话题讨论

第八章 软件过程改进

-8.1 软件过程综述

--授课视频

-第八章 软件过程改进--8.1 软件过程综述

-8.2 软件过程改进

--授课视频

-第八章 软件过程改进--8.2 软件过程改进

-8.3 能力成熟度模型

--授课视频

-第八章 软件过程改进--8.3 能力成熟度模型

-8.4 过程改进标准框架

--授课视频

-第八章 软件过程改进--8.4 过程改进标准框架

-扩展阅读与话题讨论

--敏捷和CMM矛盾么?

--话题讨论

第九章 软件复用

-9.1软件复用综述

--授课视频

-第九章 软件复用--9.1软件复用综述

-9.2 软件构件技术

--授课视频

-第九章 软件复用--9.2 软件构件技术

-9.3 软件复用实施

--授课视频

-第九章 软件复用--9.3 软件复用实施

-9.4 微服务架构

--授课视频

-第九章 软件复用--9.4 微服务架构

-扩展阅读与话题讨论

--微服务扩展

--话题讨论

文档提交处

-文档提交处--文档提交

北京理工大学刘辉教授谈软件自动化新进展笔记与讨论

也许你还感兴趣的课程:

© 柠檬大学-慕课导航 课程版权归原始院校所有,
本网站仅通过互联网进行慕课课程索引,不提供在线课程学习和视频,请同学们点击报名到课程提供网站进行学习。