注:本材料为二期课题申请书的撰写提供初步参考。其中,一期课题研发的软件工具和生产线的详细介绍将于 4 月底在 Trustie 网站发布。
“ 高可信软件生产工具及集成环境
” 一期课题介绍及进展
课题一:可信的国家软件资源共享与协同生产环境
课题目标: 研究和突破高可信软件生产的关键性技术、可信软件资源共享支撑技术、软件开发协同技术以及软件可信度量与分级机制;研制一组具有自主知识产权的覆盖软件开发主要活动和任务的软件工具、软件资源管理系统、软件生产线集成框架以及软件开发协同平台;建立国家级软件资源库和面向不同技术特征的若干软件生产线,形成可信的国家软件资源共享与协同生产环境,以及配套的、可持续发展的运行机制;与国产运行平台结合,服务于软件的大规模工业化生产以及基于网络的社会化生产,提高我国软件产业的核心竞争力,为我国经济、社会、文化和国防等重要领域信息化提供技术支撑。
课题主要研究内容
- 软件工具: 包括三大类工具的研发,软件生产类涵盖软件的需求获取、建模、开发、组装/集成和部署等活动;软件可信保障类涵盖可信度量、分析及软件运行监控/管理等方面;软件过程协同类涵盖过程管理、项目管理、通信管理和知识管理等行为。
- 软件资源库: 以软件资源共享为目标,研究在Internet 环境中获取、组织和管理多种软件资源的技术;研究软件资源可信评估技术,提供软件资源可信度分级管理机制;研究高可信的软件资源库开放式体系结构,以分布式的集成体系实现资源库的互联。
- 软件生产线: 本课题将研究软件生产线集成框架以及面向技术特征的若干软件生产线。在软件生产线集成框架方面,研究数据集成方法和规范,支持工具间数据互操作;建立灵活可扩展的软件工具集成框架;研究生产线间、生产线与软件资源库间、生产线与开发协同平台间的集成方法和交互机制。
- 软件开发协同平台: 研究Internet 和企业网络环境下的软件开发人员、组织间的协同技术,包括生产过程和协同过程各类工具的集成技术,各类在线协同技术,多种服务的统一交互展现技术,协同任务与活动的发布、跟踪、管理与分析技术等,并研制软件开发协同平台。
- 软件生产环境可信保障机制: 研究软件资源可信度的分级机制和软件生产环境对不同级别可信度要求的保障方法和机制,包括统一的软件、工具和生产线的可信性分析、保障技术,以及软件生产环境中工具、生产线的应用效能分析技术等,为各种特定领域的软件生产线提供可信保障。
- 软件生产环境整体集成机制: 研究工具集成框架,设计基于XMI 的生产线数据集成方法和机制,形成生产线集成框架,为本项目中各类软件生产线的组装提供支持;研究软件资源库应用访问接口标准与资源描述信息规范;研究建立开发协同平台、资源库、各类工具的整体集成机制,形成规范,为本项目中各课题成果提供集成机制和框架,确保整体项目形成完整一致的高可信软件生产环境。
- 项目总体集成技术与机制: 针对项目总体集成的要求,本课题将主持开展如下工作,并与项目中其它课题保持协作攻关:资源库开发、部署与发布;协同平台开发、部署与发布;生产线集成框架研究与规范发布;可信分级规范的研究与发布。
课题主要进展及成果
本课题按照计划进行了相关的研发工作,目前已完成年度研发计划,实现了计划书中所确定的年度考核指标,工作进展概述如下:
- 协同平台和资源库: Trustie协同开发平台已发布并对外提供服务,并在课题组内部进行了培训和试用,Trustie协同开发平台上已建立33个协同开发项目,包括2个国际合作项目;Trustie软件资源库系统的核心功能已发布并对外提供服务,并在课题组内部进行了培训试用。其中资源库已收集整理软件资源超过7000个,并为软件可信分级要求确定了相应的支撑机制;基本完成了协同平台和资源库规范文本的撰写。
- 可信保障机制: 在软件资源可信分级评估机制方面,已确定了可信分级模型,完成可信分级规范初稿,并深入研究了在资源库系统中的实施机制和相关软件工具的支持机制。
- 软件工具: 软件工具的研发工作已完成了总体工作量(共40项工具)的70%,其中24项工具已完成原型系统开发,其他工具也已完成开发工作量的60%以上,部分工具针对可信评估等要求进行了扩展。
- 软件生产线: 4条软件生产线系统已完成概念集成和原型系统,其中面向服务的软件生产线、支持运行监控的软件生产线和支持异构集成生产线已实现了生产线工具间的集成;生产线集成技术框架规范已形成初稿。
- 知识产权与人才培养: 本课题出版专著 3部,在国内外一级刊物、核心刊物、国内外重要学术会议上发表论文共计41篇,本课题共吸收博士后科研人员7名,共培养博士43名(其中,毕业12名),培养硕士生145名(其中毕业60名)。在国际会议、建立国际开源软件组织合作项目,以及人才培养等方面均完成了年度考核指标。
- 技术交流与展示: 以上成果在08年举办的中国科学院第34次技术科学论坛,以及5项重要国际会议和2项国内学术会议上进行了报告,获得学术界和产业界的积极反响,若干软件企业和行业决定采用Trustie开展软件开发;08年12月1日在巴黎举行的国际Open World Forum上所做的报告,获得了国际开源软件界的积极反响;OW2已经决定与本项目合作,应用和推广Trustie的协同开发平台和软件资源库等技术。
课题二:支持软件可信性分析和评估的生产线
课题目标: 本课题针对可信软件的关键技术需求,面向软件生命周期各个阶段的制品,基于软件分析、测试和验证途径研究软件可信性分析和评估的基础支撑技术,重点解决软件系统认识与理解过程中的相关复杂性控制问题,为软件系统的分析、测试和验证能在自动化程度和系统规模上适应实际应用需要提供支持,开发兼容现代主流软件工程标准和支撑环境的、实用的支撑工具,形成相应的软件生产线;在此基础上建立基于软件分析、测试和验证途径的软件可信性评估参考模型,并建立相关软件可信性评估咨询服务体系。
课题主要研究内容
- 软件可信性分析和评估技术及工具: 研究软件可信性建模与评估技术、软件分析技术与工具、软件验证技术与工具、软件测试技术与工具。
- 软件可信性分析和评估生产线构建与集成: 研究各类工具集成技术,用于集成本课题各类软件可信性分析和评估工具、各类相关第三方工具,构建兼容现代主流软件工程标准和支撑环境的、开放的软件可信性分析和评估生产线。
- 软件可信性评估咨询体系及示范应用: 基于本课题各方面的研究结果,建立软件可信性分析和评估咨询体系;针对航空航天、通信、软件出口行业等重要应用领域以及863 计划“高可信软件生产工具及集成环境”重点项目其他课题的若干典型案例,进行软件可信性分析和评估的示范应用。
课题主要进展及成果
该课题实施以来,目标定位明确、合理,各项研究工作进展顺利,已按计划完成阶段性目标任务,工作进展概述如下:
- 软件分析技术: 课题组在软件分析技术研究方面主要的研究成果是:针对Java和C/C++提出了缺陷分类、缺陷模式描述和漏洞建模方法,并研究了缺陷检测方法和工具;通过代码分析,实现了软件逆向分析和模型提取的功能,实现了一个Java程序覆盖率统计度量方法,并在此基础上实现了一个剽窃检测工具CPDetector;从对含分支的线性循环程序的终止性、基于量词消去对仅含赋值语句的P-solvable循环程序的终止性等两个方面研究了基于实代数符号计算的程序终止性问题。
- 测试技术研究: 在测试技术方面课题组主要研究了软件测试生成、测试执行和测试管理的相关技术与工具,主要包括:提出了一种基于扩展的UML活动图的工作流综合建模方法,支持采用状态机模型验证方法对其进行结构和数据的合法性验证;面向知识的测评信息及资源的获取、表示、积累和重用技术,提出改进的层次分析法和模糊积分法;提出了支持软件全生命周期的、符合可信软件测试要求的软件测试过程管理模型,对其中的各子工具进行了需求分析,完成了相应的软件测试管理平台工具的总体设计;在模型驱动测试方法框架下,研究了可视化测试建模技术、测试脚本自动生成技术;提出了基于故障建模与注入的测试技术,实现了模型驱动鲁棒性测试的初步原型,包括模型编辑器、故障注入器和报告查看器;基于UML活动图模型提出了并发程序数据竞争的动态检测技术,以及面向Java程序模型反馈制导的测试用例生成方法。
- 验证技术研究: 在软件验证技术方面本课题以各类UML模型、自动机、嵌入式、实时、混成系统为研究对象,研究了UML动态模型驱动的Java程序的运行时验证技术、面向单路径、全路径和组合路径的线性混成系统模型可达性验证技术、基于场景规约的时间性质验证技术、基于多核平台的软件监控和容错技术。
- 可信建模与评估: 本课题基于认识与理解途径研究软件可信性度量与评估技术,以模型、代码和缺陷作为研究对象,以软件分析、测试与验证技术作为基本手段,从满足需求的程度和摆脱缺陷的程度度量和评估软件系统的可信性,从而建立人与软件之间的信任关系。主要的工作进展是针对典型软件缺陷(内存泄露、数据竞争、死锁)初步建立了若干局部可信性度量与评估体系。
- 生产线构建: 课题组按照总体组提出的生产线构建技术方案,设计了支持软件可信性分析和评估生产线的建设方案,本年度课题组各项研究技术相应的支撑工具已按照统一的风格、基于Eclipse开放平台,支持插件模式和应用软件模式,数据和文档交换遵循XML规范,工具集成和生产线的架构正在进行中;
- 示范应用和咨询体系: 课题组在研发过程中与多家应用单位进行了合作,并在部分单位进行了初步示范应用,具体情况如下:(1)课题组部分工具已经在实际的软件测试中使用,2008年对08奥运会部分系统的测试、4个国防软件系统的测试、1个政府办公系统的测试,发现了较为关键的缺陷,得到了项目实施单位的好评;对神舟7号部分软件实施故障类测试,4个小时发现了13个故障;对总参二部软件评测中心7个软件进行故障类和漏洞类测试,3个小时共发现13个故障和漏洞。 (2)课题组还与总装备部软件评测中心、总参51所软件评测中心、海军软件评测中心、空军软件评测中心、二炮软件评测中心、总装电子信息部、上海市软件评测中心、清华大学、全军软件评测中心、总装情报所、珠海软件评测中心和深圳万卡基科技有限公司等单位签订了合作意向。对潜在的示范应用领域进行了调研,包括山东省软件评测中心、华为公司软件测试部、上海普元公司、中国电子集团。
- 知识产权与人才培养: 在国际期刊、国际学术会议和国内一级学报发表论文29篇,获技术专利授权1项,申请技术专利6项、软件著作权3项,撰写专著3部、译著3部;所研制的部分工具原型已分别不同程度地应用于“神州-7”系统、奥运会系统、国防软件系统、政府办公系统的测试,并与相关单位签订了进一步合作协议。
课题三:支持可信软件过程管理的生产线
课题目标: 研究面向支持可信软件过程管理的软件生产线方法、技术和支撑工具,提供可信生产线架构和可信过程管理核心资产,可以支持软件组织扩展其开发测试过程,建立符合其产品领域的、贯穿软件生命周期、统一的可信软件开发过程模型—可信过程管理生产线。基于该生产线,软件组织可以通过可信的过程管理生产可信的产品核心资产、集成装配可信的软件产品,并可建立覆盖软件生命周期的过程数据模型,采集可信评估数据,度量、分析、对比可信属性,对过程和产品可信性、效能等进行分析和评估。
课题主要研究内容
- 软件过程产品的可信性属性及度量模型: 研究可信软件产品的质量特征,并将可信性属性分解到软件生命周期的各个过程产品,建立全生命周期可信性质量度量模型。
- 软件过程的可信性属性及度量模型: 研究软件过程可信性以及可信软件过程度量模型,包括软件过程的可信性属性、影响过程可信性的因素、过程可信性度量模型。
- 支持可信软件过程管理的生产线核心资产: 研究可信过程管理核心资产的定义方法、可信过程管理核心资产的组织和管理方法、可信过程管理核心资产的优化与改进、过程组件的可信风险评估模型。
- 支持可信过程管理的生产线架构: 研究支持可信过程管理的生产线的架构设计、过程定义和模拟机制、可信过程管理核心资产的集成接口标准、可信过程核心资源的可信性集成策略、可信过程管理生产线配置管理方法。
- 支持可信过程管理的生产线的评估、评价和度量机制: 研究可信软件产品的综合质量量化评估方法,生产线的全生命周期的数据样本构造模型、量化控制模型、量化控制模型、关键过程的量化控制方法、典型数据度量方法、经济模型。
课题主要进展及成果
课题本年度目标已按计划实现,为下一年度进一步工作打下了基础,课题总体目标可以按计划实现。本课题总体进展如下:
- 软件过程产品及软件过程的可信性属性及度量模型: 研究软件过程产品和软件过程的可信性属性及度量模型研究。给出软件过程产品及软件过程的可信性属性定义方法、软件过程产品和软件过程的可信性度量建模方法。
- 支持可信过程管理的生产线评估、评价和度量机制: 给出一种迭代量化过程管理方法、量化缺陷管理和决策支持方法、以及集成成本估算方法,提前开展了部分关键技术的研究工作。
- 可信过程管理生产线框架: 研究了可信过程管理的生产线架构关键技术,给出基于工作流的生产线动态组合和演化机制、原子过程活动序列的动态组合机制。
- 可信过程管理核心资产的构件化关键技术: 突破了可信过程管理核心资产的组件化关键技术,给出可信过程建模方法以及过程组件的可信风险评估模型/过程模拟机制。
- 可信过程管理生产线核心资产: 本课题已经研究并设计开发了10多项可信过程管理领域的核心资产及工具(支持流程自定义的任务报告管理工具;软件成本建模与估算支撑工具;需求管理工具;需求变更风险仿真模拟工具;针对三类质量属性的20多种度量程序包;QA、评审、测试管理、风险管理、配置管理等),这些成果整体以及部分核心资产可以形成工具,并在10余家企业得到应用,具有良好的推广应用前景。
课题四:面向嵌入式软件的生产线
课题目标: 课题以具体应用领域为背景,以现有嵌入式系统基础软件平台的成熟产品为基础,研究嵌入式软件系统开发的共性基础技术,设计、实现可信的嵌入式软件生产线,支持建模、仿真、验证、代码生成、调试、测试等嵌入式软件开发的全过程,并实现在2个具体、典型嵌入式领域的成功应用,在嵌入式软件领域提供20个以上具有自主知识产权的可信软件资源。
课题主要研究内容
- 可信嵌入式软件生产线总体结构: 根据嵌入式软件开发的发展趋势,课题研究开发的可信嵌入式软件生产线的可信方法、工具集和可复用构件,在保证嵌入式软件可信性的基础上,降低开发成本,缩短开发周期,满足具体应用领域嵌入式软件开发的需要。
- 建模与分析: 课题在面向嵌入式软件的生产线中,采用模型驱动的开发方法,对系统的功能和非功能属性,以及设备驱动采用模型的方法进行建模、分析。
- 模型驱动的仿真、快速原型与验证: 基于模型的功能属性仿真与验证已经比较成熟,课题主要围绕模型驱动的快速原型,以及非功能属性和设备驱动的验证技术进行研究。
- 代码生成、调试与测试: 课题主要研究设备驱动、系统框架、操作系统和系统算法等代码的自动生成技术,以及代码的调试和测试技术,以全面提高代码质量。
- 面向特定领域的嵌入式软件生产线的集成: 课题需要研究飞行控制和汽车电子对嵌入式软件生产线的特殊需求,以形成符合领域需要的嵌入式软件生产线;研究工具的集成与协同工作技术,实现集成的工具环境,提高工具的易用性和开发效率。
课题主要进展及成果
课题本年度目标已按计划实现,目标定位明确、合理,各项研究工作进展顺利,已按计划完成阶段性目标任务,工作进展如下:
- 功能模型设计环境: 主要研究了建模环境与交叉开发工具的结合,以及基于模型的测试环境,分别形成了模型开发平台和模型自动测试平台。
- 非功能模型: 以SAE的体系结构分析和设计语言AADL为描述语言,并结合具体应用领域的非功能属性需求,研究对系统非功能性属性分析和验证的方法,并在对OSATE、TOPCASED等嵌入式系统建模与分析工具的接口特性、工作机制进行深入分析的基础上,对该类工具进行优化和扩展,使其实现对特定领域嵌入式软件模型可信性分析的能力。目前重点针对AADL模型的可调度分析和代码自动生成进行研究,形成对应的工具。另外,还结合无人机飞控应用,开展了飞控硬件、进程间通信等方面内容的模型建立工作。
- 驱动模型设计环境: 设计了设备驱动程序开发专用语言DDL(Driver Development Language),DDL可对I/O设备的接口进行描述,是一种面向I/O设备的接口描述语言,可以定义和描述两个方面的内容:(1)硬件抽象:I/O设备寄存器组的结构,即数据结构部分;(2)软件抽象:I/O设备寄存器组的功能,包括:语义动作描述、时序定义、异常处理、内存映射、中断处理等部分。
- 交叉开发环境: 主要以科银京成的LambdaPRO为基础,重点对多余度同步调试环境进行研究。同步调试环境包括主机端和目标机端软件,以及同步控制器等三部分构成。主机端软件包括以下内容:同步集成开发环境(IDE)、实现对多个目标机的调试器及联接管理的同步调试封装层(SAL)、为封装层与多个目标机之间的通信提供服务的目标机服务器(TS)、实现对目标机通用调试命令进行处理的通用调试器(GDB)。同步控制器软件用来实现对多个目标机的调试命令发送和接收目标机的返回信息,并负责产生各种同步控制硬件信号。
- 模型驱动的快速原型环境: 仿真测试平台由系统模拟运行单元、仿真测试单元、信号处理单元三部分组成。系统模拟运行单元提供嵌入式软件模型仿真运行所需的环境支撑;仿真测试单元提供软件仿真测试功能;信号处理单元提供仿真过程所需要的外部输出信号生成、调理和接收信号处理。
- 代码测试与运行诊断环境: 基本完成以下内容的技术研究与工具原型开发:嵌入式系统模型静态检测工具、基于AOP 的Linux 内核运行时状态监测工具、Linux 健康诊断工具。
- 综合信息管理环境: 形成了环境原型,主要具备以下功能:项目计划管理功能;各种设计文档管理功能;数学建模/源代码数据的版本管理功能;需求分析管理功能;邮件服务功能;实时通信功能;文件服务器功能;项目开发中需要的各工具软件的管理功能;验证过程中发现的Bug的管理功能;数据库中数据的安全保护功能。
- 面向飞行控制方面: 结合某军口863项目,结合课题在基于Matlab方面的模型驱动的开发环境、余度计算机同步调试环境、自动测试环境、综合信息管理环境等方面的成果,在某飞行器上基本建立了能够适应飞控应用软件开发需要的一体化平台。目前已配合合作伙伴完成了控制率方面模型驱动的应用开发工作。
- 面向汽车电子方面: 完成了符合MISRA C标准的自动代码生成工具;完成了符合word格式的自动文档生成工具;开展了汽车自动变速箱控制系统示范应用,包括硬件控制盒的设计与调试、操作系统移植以及驱动开发等方面的内容,正在寻求生产线在舰船、数字化工业设备等方面的进一步应用。
- 知识产权与人才培养: 申请专利以及软件著作版权两项,撰写了相关技术文档,发表相关论文10余篇。
课题五:面向流程管理的软件生产线
课题目标: 创建流程管理的软件生产线,支持流程管理领域特征的应用软件系统开发;针对流程管理软件生产线的构件库、构架库、组装及应用的软件产品,建立软件生产线的可信性分析评估方法和体系;制定出流程管理领域的生产线规范;在电信、能源、交通领域成功应用高可信的流程管理软件生产线开发出应用系统,取得良好的经济效益和社会效益。
课题主要研究内容
- 流程管理领域需求工程和领域工程技术: 领域需求工程包括应用场景分析、流程模式、流程管理领域知识库;领域工程包括领域知识库建立、流程管理领域体系结构设计、领域核心构件表示、流程管理领域工程方法研究、流程管理领域工程工具集开发。
- 生产线集成运行环境: 包括消息总线、流程引擎、规则引擎、报表引擎、表单引擎、服务构件库。
- 流程管理生产线工具集: 包括流程建模工具、组织机构建模工具、表单设计工具、报表设计工具、规则设计工具、数据映射工具、度量建模工具、组装工具、部署工具。
- 流程管理生产线可信性分析与评估: 结合流程管理领域的特点,提出软件生产线及其产品可信性分析模型,包括两个工具集:资源可信评估工具集、生产线可信评估工具集。
- 流程管理生产线应用示范: 本生产线将选择电信企业的服务开通系统、铁道部电务系统、石化行业的计划报批系统三个行业应用系统开发、运行作为应用示范,进行生产线的验证。
课题主要进展及成果
课题本年度目标已按计划实现,目标定位明确、合理,各项研究工作进展顺利,已按计划完成阶段性目标任务,工作进展如下:
- 流程管理领域技术: 完成了流程管理领域的共性基础技术的研究,提交流程管理领域技术分析报告,完成了国内外相关技术及产品现状的调研,提交国内外相关技术及产品现状分析报告。
- 流程管理服务构件与工具开发技术: 完成了流程管理服务构件与工具开发技术的研究,提交流程管理服务构件设计方案,提交流程管理生产线工具集设计方案,完成了流程管理生产线构件与集成技术的研究,提交流程管理生产线设计方案。
- 流程管理生产线可信性分析与评估: 完成了流程管理领域软件可信性分析、验证技术的研究,提交流程管理生产线可信性分析与评估体系架构。
- 知识产权与人才培养: 共发表论文16篇,学习使用了Trustie协同开发平台。
课题六:面向数据处理的软件生产线
课题目标: 在高可信软件生产的关键技术方面取得突破,研制具有自主知识产权的软件生产工具,积累一批可信的软件资源,建立国家软件资源共享与协同开发环境,为企业提供一条面向数据处理的软件生产线,提升我国数据处理软件企业技术水平,促进数据处理软件的大规模工业化生产,提高我国数据处理软件产业的核心竞争力,从而为国家经济、社会和国防信息化等重要领域提供技术支撑。
课题主要研究内容
- 领域分析与设计方法研究: 包括对未来可能出现的应用需求进行研究测,在此基础上得出涵盖主要数据处理应用的需求集合,并研究出针对数据处理领域的、可操作性较强的软件体系结构分析方法和软件体系结构设计方法。
- 研究数据处理服务构件与工具开发技术: 包括数据采集工具、数据抽取工具、数据转换构件、数据分析检索及展示模块、用户界面编辑生成和数据处理构件的服务化工具。
- 数据处理软件生产线: 包括数据处理软件生产线的领域工程、可变性管理、体系结构与模式设计、交互式构件组装方法。
- 数据处理软件的可信性研究: 从软件过程管理和可信性分析、验证两个方面来保障软件的可信性。依据国际标准ISO9000-4/IEC300-1,研究高可信构件库和软件生产线的开发过程,并结合数据处理领域的特点,研究形成本领域软件可信性的评估与验证方法和指标。
课题主要进展及成果
本课题目前完全按照课题合同所规定的进度,实现了计划书中所确定的年度考核指标,关键任务的进展概述如下:
- 数据处理软件分析: 分析了十余种数据处理软件,覆盖了教学、行政、平面媒体数据处理、统计、数据库、气象、医药、金融、游戏、科学计算等领域,从这些软件中提取的共性特征形成了数据处理构件库所必须包含的基础功能构件设计;分析了两类典型的企业级应用,包括面向学校的电子政务系统、平面媒体数据处理系统。
- 数据处理领域模型: 完成了数据处理领域模型的设计,确定了领域软件体系结构。
- 数据处理构件: 完成了构件接口规范设计,完成了构件详细设计,目前构件开发已经完成了50%,设计了遗留软件构件化及构件组装方案。
- 数据处理生产线: 对软件生产线技术进行了初步研究,基于对通用数据处理软件的广泛调研以及对企业级应用系统的分析,形成了数据处理软件的一般需求模型以及“面向学校的电子政务系统”和“平面媒体数据处理系统”的典型需求模型;确定了软件生产线应该支持的两种不同的组装方案,即针对遗留软件的桌面应用构件组装方案和面向网络应用的构件组装方案。
