速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+...

32
王千祥 北京大学 2015-05-28 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具

Upload: others

Post on 04-Sep-2020

17 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

王千祥 北京大学

2015-05-28 于 软博会

速度与品质

—— “互联网+ ”时代的软件工程工具

Page 2: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

2/38

作为一部文艺作品,更多地关注激情!

Page 3: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

软件行业同样需要激情!为社会创造更多的价值!

软件行业的激情有单独话题:软件开发心理学

软件开发关注的核心是 “效率”与“质量”

是激情驱动的“速度”与“品质”!

Page 4: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

靠什么获得速度与品质?光有激情是不够的!

还要有工具:战士的矛与盾

Page 5: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

软件从业人员的“矛”与“盾”在哪里? 各种软件工程工具!

过程无处不在 CMMI 偏重流程、方法 敏捷等更重视工具

过程

方法

工具

成本 目标

手段

方法 与 工具 :互相促进!

效率 质量

Page 6: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

因为创新 开发过程包含了大量的不确定因素 开发过程需要反复迭代(试错) 敏捷、DevOps、……

软件开发是一个典型的创新过程 与传统工程不同,开发出完全相同的制品没有意义 对应于传统工程的设计环节 设计与实施的关系类似于:设计食谱 与 根据食谱做菜

对软件开发的几点新认识

Page 7: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

面向PaaS的在线开发平台

本报告的狭义标题:

经验分享 Vs 观念倡导

Page 8: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

“互联网+”时代软件的角色

互联网

应用领域/行业 商业 社交 搜索 交通 ……

靠什么“加”?各种 云应用软件!

= 嘀嘀快的、车来了、

= 淘宝 = 微信 =百度、搜房

Page 9: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

主流软件形态的变迁 单机应用 Web应用(云应用,SaaS)! 包括手机应用,多数后端在云里 云应用运行平台的变迁 IaaS平台 => PaaS平台

部署在 PaaS平台上的云应用将成为软件的主流形态

主流的软件形态:云应用

Page 10: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

什么是PaaS?

云计算的三种服务模式之一

让资源得到更好的利用? IaaS:Infrastructure

让开发人员专注业务 PaaS:Platform

让用户更方便地使用软件 SaaS:Software

产生背景

BaaS:Backend

Page 11: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

典型代表

国际(公有): Salseforce 的 Force.com(最早) Heroku(最大: 400多万应用) 谷歌的GAE(最有名Google App Engine) 微软的Azure

国内: 公有:SAE(45万)、BAE、JAE 私有:用友、华为、阿里、… 微信公众号 总数超过 800 万(?)

Page 12: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

软件开发相关的云平台 云托管:svn/git (开源推动) 云运行:IaaS(虚拟机),PaaS(BaaS), 云开发:刚刚起步

如何处理剩余资源?

目前的主流PaaS应用开发:本地开发、上传部署

与软件开发有什么关系?

软件开发也要云化! 贴近云化的运行平台!

Page 13: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

For learning language

CodePad

CodeSkulptor

Ideone

LiveWorkSpace

PHP Assist

Python Fiddle

For learning

Web development

Codepen.io

CSSdeck.com

Dabblet.com

Fiddle Salad

JSbin.com

JSFiddle

kodtest.com

Liveweave.com

RunJS

For Web Development

Akshell

CodeAnywhere

Codio

Erbix

ICEcoder

For Mobile

App Development

Icenium.com

CloudPebble

General IDE

Cloud9

Codenvy (ex: Cloud IDE)

Coderun Studio

Codiad

Collide

Compilr

ECCO

Koding (ex: Kodingen)

Neutron Drive

Nitrous

Orion

ShiftEdit

Sourcekit

SourceLair

在线 IDE--wiki

IBM: Eclipse,JazzHub(orion) 微软:Visual 系列 (Azure)

Page 14: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

基础: PaaS的蓬勃发展、在线IDE蓄势待发 开发在往后端延伸:持续集成、上线维护、……

优势: 本地不用再安装 IDE! 积累大量与开发过程的数据 开发环境一致!任何地方都可以编程 协作(social)、记录细粒度的开发活动 方便集成各种服务: 测试、动态定位错误、OpenAPI,…

面向Paas的在线开发平台

Page 15: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

1、本地开发环境的配置

版本管理、依赖的软件库等

频繁的人员流动

2、本地运行环境的配置

数据库、通信机制、使用的各种服务等

是否与 实际运行环境一致?

3、开发与运行的隔阂

频繁的应用迭代

“一键部署”

为软件开发组织解决的痛点

Page 16: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

代表性的在线开发平台

• Cloud9 • Codenvy • POP

Page 17: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

典型平台介绍: Cloud9

特点: 先锋 编辑功能强大

Page 18: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

典型平台介绍: Codenvy

特点: 后起之秀 支持DevOps

Page 19: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

典型平台介绍: POP

特点: 国内先锋 从教学到实战

Page 20: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

平台对比:编程语言

Cloud9 Codenvy POP

PHP √ √ √

Node √ √ √

Python √ √ √

C/C++ √ √ √

Java × √ √

Android × √ ×

Ruby √ √ ×

Go √ √ ×

Page 21: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

平台对比:部署方式

Cloud9

• 命令行

• Heroku

• Windows Azure Web Sites

• GAE

• Openshift

• CloudFoundry

• NodeJitsu

• Modulus

• Divshot

Codenvy

• 图形界面

• GAE

• Appfog

• Openshift

• CloudFoundry

• Heroku

POP

• 图形界面

• BAE

Page 22: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

平台对比:版本控制

Cloud9

• 命令行

• Git/SVN

Codenvy

• 图形界面

• Git/SVN

POP

• 图形界面

• Git/SVN

Page 23: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

POP: PKU(Public) Online Programming)

起步于2009年

Online IDE-> Online Programming

Java, C/C++, HTML/JS/PHP,Python, Node.JS

服务化的插件、编程行为录制与回放

在线的调试技术(3项专利)

安全机制:敏感方法禁用 => Docker

Page 24: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

VMware中国大学生云计算创意大赛 第二名 ( 2010 )

国际服务大赛 ServiceCUP 第三名 ( 2011 )

首届 中国云•移动互联网创新大奖赛 二等奖 ( 2012 )

首届 中国计算机学会 软件研究原型比赛 一等奖 (2013)

POP获奖情况

Page 25: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

在教学领域的应用已经比较成熟

应用于(部分与计蒜客合作):

超过10多所学校 (北大, 南大, 南开, 北京科技大学,

清华大学,…)

30 多门次课程(编译实习, Java语言, 计算概论, …)

MOOC课程: Coursera 课程《计算概论》,《数

据结构与算法》、TopU课程 《C语言》

Page 26: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

面向真实的软件项目

运行平台

BAE、用友

开发平台

在线编程

代码池

code.csdn

部署 开发/维护

首先应用于:2015全国计算机设计大赛

Page 27: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

POP特色:集成“在线缺陷检测”与“自动测试”

• 从动态测试到静态检测

– 服务化软件:运行时间长

– 内存泄露、安全漏洞等等

• 缺陷分析工具 – Coverity, Findbugs, Fortify, SonarQube, PCLint

– CODAS

– PSBD

Page 28: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

CODAS: Code Defect Analyzing Service

可以方便地集成到不同的开发平台中

Page 29: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

针对软件服务需要长期运行的特点,研究了资源释放等软件缺陷,并提出了一种特

定于项目的缺陷查找方法

发表于国际软件工程顶级会议FSE, 典型用户: **公司、中国软件评测中心

PSBD:特定于项目的缺陷查找工具

使用场景 如何用 优势: 与其它互补

Page 30: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

测试自动化

测试用例自动执行

传统的测试自动化

手工或半自动化生成测试用例

测试用例自动化生成 + 测试用例自动执行 + 测试结果报告及分析

测试自动化

Page 31: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

自动程序测试工具

• 基于基本路径测试方法,自动生成基本路径集,保证程序的语句覆盖

• 使用遗传算法生成测试数据,并自动生成JUnit测试用例

• 自动执行测试用例,包括测试覆盖,以及不可达语句比率

• Parasoft公司的Jtest工具只支持JUnit

代码框架,并不是测试用例本身,更没有任何测试覆盖保证

2011年全国软件与应用会议

Page 32: 速度与品质王千祥 北京大学 2015-05-28 于 软博会 速度与品质 —— “互联网+ ”时代的软件工程工具 软件行业同样需要激情!为社会创造更多的价值!

谢谢!

王千祥:[email protected] 微信:pkuwqx