我国正在建设创新型国家,软件创新创业的“互联网+”模式已成为新兴战略产业的重要形态。互联网软件开发呈现边界开放、群体分散、交付频繁、知识复杂等特征,同时具有全生命周期数据,形成了规模巨大、碎片分散、快速膨胀的软件数据。如何建立多源异质、广泛关联、语义丰富、覆盖全面的软件大数据环境,分析提炼软件知识,以提升软件开发智能化程度已成为重要科学问题。
本项目重点研究软件大数据汇聚组织、知识表示提炼、软件工具智能化和智能开发服务环境等关键技术,目标在于建立基于大数据的软件智能化开发技术体系,研发关键性的软件智能化开发工具,形成“人-工具-数据”融合的软件智能化开发环境,构建软件智能化开发云平台,面向万众创新的社会需求,运行服务大众的公共服务平台,面向企业创新能力提升,提供智能化的企业软件开发环境。

项目的研究内容归结为2 项共性基础技术、4 项关键技术和1 项总体技术:(1)共性基础技术包括软件大数据汇聚方法与技术和软件知识提炼方法与技术;(2)围绕软件开发的主要活动,从软件构造、测试验证、智能协作和运维演化4 个方面分别研究软件智能化开发技术,研发相应的软件工具;(3)总体技术方面,以云服务集成和软件大数据融合为目标,研究集成框架和机制,形成软件智能化开发云平台,面向大众服务和大型企业需求,分别构建公共服务平台和企业开发环境。
项目研究方案为“问题导向、数据汇聚、知识提炼、智能释放”,综合运用大数据和智能化技术实现软件开发方法和工具的智能化变革;融合国际主流工具和技术框架,关注于研究和实现“智能化机制”:
(1)以“主动感知、定向采集、多源关联、增量检测”机制构建自生长的软件大数据环境,拟采用基于云架构的混合型软件大数据存储与管理框架,通过数据分布式存储和并发查询提高访问效率;
(2)为实现领域分析、模型分析、程序理解、编码、测试、部署等不同软件开发任务中的智能化支持,拟采用知识图谱、经验案例、分类器、规则、模板与模式等多种知识表示方式,综合应用程序分析、自然语言处理、数据挖掘、信息检索等技术实现知识抽取;
(3)选择4 类开发活动中重要的关键支撑点,有针对性地确定数据、知识抽取、智能推荐和问答所需的技术、方法,研发相应的智能化工具;
(4)采取轻量级虚拟容器技术构建可扩展的工具运行支撑框架,并利用容器编排技术构建工具池运行管理机制;
(5)基于以分布式软件仓库为核心的工具集成框架构建智能开发工具环境,并采取多承租架构实现软件智能化开发工具的个性化数据管理。
项目研究团队由国内主要的软件工程学术研究单位和大型软件企业组成,形成“产学研”合作联合体,团队各成员单位持续在软件开发技术和支撑环境方面开展深入的技术研究和密切的产业实践合作,形成了良好的社会和经济效益。前期合作的成果获得了1 项国家技术发明二等奖和2项省部级一等奖,研发并运行提供服务的互联网软件开发服务平台(www.trustie.net)积累了大量的数据。
邮件相关代码已经提交到测试版
目前有三种策略,是通过users表中的mail_notification控制,值none(表示不发送邮件),day(按天发送),all(实时发送),测试版可以更新相应的值来进行测试
邮件rake任务,主要来控制“按天发送功能”
rake redmine:email:day执行,也写入到了定时任务
如果不需要按天发送功能,可以去掉改定时任务
例如“待完成的作业”一个作业所属的班级实际上已经结束了,但它始终显示在待办任务中
这些数据在现有的基础上如何做到不显示,需要整体考虑
1.准备开始学习pyspider,收集了部分相关资料。
2.复查了关于code_repository字段的问题反馈。根据雅蓉的反馈,着手改code_location 字段的抽取规则,然而最后发现“有问题”的code_repository字段所存储的值并不对应code_location,而是对应project_links。(所以说怎么改code_location的抽取规则都是木有用的,因为数据库中code_repository都不是存的这列),见下图:
这里可以看出,抽取程序一开始的设计,就并没有存储code_location 字段。至于究竟是之前这个存库逻辑设计错了,还是其他的什么,我需要进一步了解才能做决定。