




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
高级软件工程
SoftwareEngineering软件工程新进展02-群体软件工程01-智能软件工程03-量子软件工程202-群体软件工程01-智能软件工程AIforSESEforAI03-量子软件工程3代码大数据4代码大数据的形成引发了
“利用大模型解决开发问题”的研究海量高质量代码求解问题大模型学习5①程序员智能编程软件开发技术与工具的智能化趋势6AI结对编程机器人代码搜索代码补全代码生成代码翻译代码自动摘要缺陷自动修复代码风格改善……②最终用户编程(End-UserProgramming)What?End-UserProgrammingcanbedefinedasasetofmethods,techniques,andtoolsthatallowusersofsoftwaresystems,whoareactingasnon-professionalsoftwaredevelopers,atsomepointtocreate,modifyorextendasoftwareartifact.Why?ImpactbillionsofpeopleTakeawaymostofthetediousdetailsFuncrossdisciplineresearchHow?ProgramsynthesisDSL(DomainSpecificLanguage),如Scratch、AppInventorNo-codedevelopment7程序合成(ProgramSynthesis)示例编程(programmingbyexample,example2code)基于输入输出样例的程序合成8X&(1+((x-1)|x))01011->0100000000->
0000001111->
0000000110->
0000001100->
0000001010->
01000搜索9演示编程(programmingbydemo,demo2code)代码生成工具通过“观察”最终用户的操作,将这些操作序例作为最终用户编的程序,有点类似一个宏录制器例如回归测试工具的脚本录制、机器人的演示编程等DSLMITScratch()一个适合儿童的可视化编程语言10无代码(no-code)开发一种最终用户编程技术。将“系统研发”封装成业务人员能够理解的自定义配置能力。通过简单配置方式进行个性化应用开发,满足简单场景需求,例如常见的一些用于个人信息收集的轻应用。11/不仅仅是代码大数据......海量的软件开发数据一个大规模的软件系统常常由几十万名开发人员开发,不仅产生几千万行以上的代码、上千的版本版次、几万个构件,而且还有大量需求、设计模型、测试用例、缺陷、变更、计划、任务、以及开发人员间的讨论记录和邮件列表等。13用AI解决软件工程问题代码数据需求与评论数据运维数据机器学习智能编程代码生成与推荐代码缺陷静态检测缺陷自动修复智能需求需求分析自动化软件问题分类排序智能运维故障分析与预测异常检测系统优化NLPIRClassificationClusteringTopicModelingDeepLearningCNNRNNwithAttentionPretrainedLanguageModelTransferLearningReinforcementLearningGAN测试数据智能测试自动测试缺陷排序管理与沟通数据智能管理软件估算程序员画像程序员推荐项目健康度评估14智能管理:程序员画像基本信息IT工作年限信誉历史项目数协同行为能力特征工作类型行业领域技能项目经验兴趣特征关注的工作类型关注的行业领域关注的技能关注的项目关键字可承接状态驻地学历语言年龄性别经验特征通过对开源软件社区和问答社区的数据的分析挖掘,自动对程序员的能力进行评估与建模。在用户同一认定的基础上,从标签中提取编程能力词条,结合用户回答问题的数量和评分,以及开发项目的数量和代码质量,对其各项编程能力进行评价。15三类程序员1602-群体软件工程01-智能软件工程AIforSESEforAI03-量子软件工程17SEforAI:软件2.0/@karpathy/software-2-0-a64152b37c35“Codewrittenbyanoptimization,commonlyintheformofneuralnetworktraining.”18AI软件的Bug是什么?以深度学习系统为例19深度学习系统的测试研究方向对抗样本测试分析和构造特殊(微小改变)样本使得AI系统失效变异测试自动化注入Bug以评估测试集充分性测试样本多样性度量已有测试样本集合的多样性,进一步扩增测试样本蜕变测试采用蜕变关系描述输入/输出关系解决测试预言缺失问题GAN生成式对抗网络生成给定需求的测试20其它软工问题:公平、性能、产权保护等Client1.reverseengineerAttackerCompany(modelowner)PirateModelreleasemodel2.piratestructurepiracyparameterpiracy客户端运行AI是趋势2102-群体软件工程01-智能软件工程03-量子软件工程蜂群筑巢鱼群避敌黏菌聚合蚂蚁寻食22传统软件工程特点精英化计划性封闭化不足面临软件规模庞大,开发内容日趋多样化,技术变更迅速的挑战,表现出:开发人员不足,开发进度慢,成本高,缺乏新思想案例:WindowsVista,功能模块大约6万个,代码6千万行,使用9千名专业人才,历时5年完成23新的开发模式-群体开发模式软件生态:群体化、开放性、生长式的开发模式基于互联网的大规模开发者群体不断创新的软件产品与服务基于个体智慧叠加的社会化生产活动一种基于互联网的社会化软件生产方式在软件的开发效率和开发质量方面展现出显著的优势对传统以公司为主体的软件开发模式带来变革性影响24用群体解决超量TopCoder采用竞争性的群体软件开发模式,把美国在线委托的通讯后端系统分成52个部分,由开发社区招标,共计25万名开发人员加入到开发社区。传统软件工程需要1年完成的事他们5个月就完成了。并且程序中每一千行代码平均只有0.98个漏洞,远低于业内每千行6个的标准。25三种群体开发形态基于互联网群体智能的软件开发目前已经在工业界形成了三种新形态:开源软件开发(OpenSourceSoftware)众包软件开发(CrowdsourcingSoftwareDevelopment)应用程序商店(ApplicationStore)26开源软件生态27开源软件的开发模式迭代开发与持续演化用户创新驱动以代码为中心的开发“众人之眼”的质量保障分布式组织方式松耦合的团队协同无障碍的代码复用28开源贡献贡献源代码撰写或更新文档参与讨论设计和方案测试软件发现和报告问题评审和检查源代码提交新的需求帮助解答用户的问题创建文章和视频等内容来提升项目的知名度帮助创建兴趣社区等2902-群体软件工程01-智能软件工程03-量子软件工程30量子计算机(quantumcomputer)量子计算机是一类遵循量子力学规律进行高速数学和逻辑运算、存储及处理量子信息的物理装置。量子计算机在原理上具有超快的并行计算能力,可望通过特定算法在密码破译、大数据优化、天气预报、材料设计、药物分析等领域,提供比传统计算机更强的算力支持。31量子计算机的原理量子比特(qubit)经典计算机信息的基本单元是比特,用0与1表示。在量子计算机中,基本信息单位是量子比特,它以两个逻辑态的叠加态的形式存在。态叠加原理一个体系中,每一种可能的运动方式就被称作态。在微观体系中,量子的运动状态无法确定,呈现统计性,与宏观体系确定的运动状态相反。量子态就是微观体系的态。量子纠缠当两个粒子互相纠缠时,一个粒子的行为会影响另一个粒子的状态,此现象与距离无关。量子并行原理量子计算机以指数形式储存数字,通过将量子位增至300个量子位就能储存比宇宙中所有原子还多的数字,并能同时进行运算。32研究进程1982年,美国著名物理物学家理查德·费曼在一个公开的演讲中提出利用量子体系实现通用计算的新奇想法。1985年,英国物理学家大卫·杜斯提出了量子图灵机模型。1994年,AT&T公司的PererShor博士发现了因子分解的有效量子算法。2007年,加拿大DWave公司成功研制出一台具有16昆比特的“猎户星座”量子计算机。2009年11月,美国国家标准技术研究院研制出可处理两个昆比特数据的量子计算机。2015年6月,全球第一家量子计算公司D-Wave宣布其突破了1000量子位的障碍、开发出了一种新的处理器。2017年3月6日,IBM推出全球首个商业“通用”量子计算服务。2020年12月4日,中国科学技术大学成功构建76个光子的量子计算原型机“九章”,求解数学算法高斯玻色取样只需200秒,而目前世界最快的超级计算机要用6亿年。这一突破使中国成为全球第二个实现“量子优越性”的国家。33IBMD-Wave九章量子计算机的三个阶段发展第一阶段,研制50个到100个量子比特的专用量子计算机,实现“量子优越性”里程碑式突破。第二阶段,研制可操纵数百个量子比特的量子模拟机,解决一些超级计算机无法胜任、具有重大实用价值的问题,比如量子化学、新材料设计、优化算法等。第三阶段,大幅提高量子比特的操纵精度、集成数量和容错能力,研制可编程的通用量子计算原型机。35量子编程语言36①汇编层级的量子编程QX模拟器:这个模拟器用来模仿通用量子计算机的行为。它可以让程序员设计并模仿量子算法。要利用QX模拟器来执行算法,程序员需要依照量子汇编语言(QASM)描述算法流程。37②附带量子库的经典语言Qiskit:2017年由IBM研究会开发维护的Python量子信息科学工具包。它是最受欢迎、使用最广泛的量子编程库。Qiskit受欢迎的原因之一是其活跃繁忙的社区。你也可以在实际的IBM量子计算机上运行Python代码。Cirq:这是一个由谷歌开发的非官方Python库,测试都在谷歌的量子计算机上进行编写和运行。Cirq可以用来编写和模拟量子算法。然而,谷歌不允许其他人使用他们的设备运行代码。Pyquil:由Rigetti建立的一个Python库,可使用叫作Quil(同样由Rigetti开发)的量子指令语言在Rigetti设备上编写和执行量子算法。Quil在语法上与QASM相似。Scaffold:可用来在经典设备上编写和运行量子算法的C++库。Strange:这是可编写和运行量子算法的Java应用程序接口。Strange通过传统的Java分布频段分布,利用Maven或Gradle简化其使用。3839③量子编程语言Q#:这是由微软开发的量子编程语言,能够编写并执行量子代码。这是
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 整形外科药物管理职责
- 职业发展班主任职业规划培训心得体会
- 电力行业物资管理保障措施
- 部编版一年级语文下册教学计划修订建议
- 2025年国际学校教导处交流计划
- 小学科学与社会结合计划
- 护理十六章药物疗法课件
- 八年级物理复习计划:线上线下结合
- 幼儿园社会公益资助项目计划
- 房屋维修雨期施工技术措施
- 拒绝早恋主题班会 课件(34张)2023-2024学年主题班会
- 美容美体艺术专业人才培养方案(中职)
- 第二单元《认识多位数》(单元测试)-2023-2024学年苏教版数学四年级下册
- 护工生活护理及排泄护理
- 化学纤维行业操作人员安全培训要点
- 2016-2023年山西工程职业学院高职单招(英语/数学/语文)笔试历年参考题库含答案解析
- 离婚协议书完整版Word模板下载
- 产房健康宣教幻灯片
- 中医男科知识讲座
- 消防防排烟系统培训课件
- 中国传统饮食文化-《糯米糍粑》的制作与传统意义
评论
0/150
提交评论