High-integrity Java Applications using Circus
High-integrity Java Applications using Circus
批准号:
EP/H017461/1
负责人:
Ana Cavalcanti
金额:
$131.18万
依托单位:
依托单位国家:
英国
项目类别:
Research Grant
财政年份:
2010
资助国家:
英国
项目状态:
已结题
起止时间:
2010 至 --
中文摘要
如今,计算机和计算机程序的使用已经很普遍了,但是每个计算机用户都知道程序会出错。当我们最喜欢的文本编辑器丢失了一点我们的工作时,这只是令人恼火,但当计算机程序(例如控制飞机部件的程序)出错时,后果可能会严重得多。软件确认和验证是开发这类应用程序的核心。事实上,软件行业通常在这些活动中花费了大量的资金。提高程序正确性所采取的措施之一是使用编程语言中可用的一组有限的特性。这通常意味着软件工程中大多数最新的进展都被忽略了。在这个项目中,我们建议提供开发、验证和验证设施,这些设施允许面向对象和现代实时计算模型用于安全关键系统的编程。特别地,我们将使用最流行的编程语言之一:Java,或者更具体地说,是由Open Group提出的用于高完整性工程的概要。作为我们的主要案例研究,我们将验证由Sun开发的第一个Java驱动的工业机器人的控制器部分。我们的一位合作者,Sun公司的一位高级工程师在一次采访中说,分布式实时系统真的很难构建,工程社区也不知道如何以一种连贯的、可重复的方式构建它们。(java.dzone.com/articles)实时Java正在进入工业自动化和汽车市场。律师们不允许Java机器人接近人类,即使是在JavaOne会议演示中。要在这样的市场中继续发展,需要更好的支持。编程只是现代系统开发的一个方面;通常,会产生大量额外的人工制品来指导和证明其设计。就像在砌砖和砂浆之前要制作几个大型建筑物的模型一样,在编写程序之前要开发和使用几个程序的规格和设计模型。这些模型有助于程序的确认和验证。让我们的土木工程比喻更进一步,我们观察到,就像一个建筑可以有不同的模型来反映不同的观点一样,比如电线、管道和平面图,我们也有一个系统的几个模型。不同的建模和设计符号专注于程序的不同方面:数据模型、并发和反应性行为、定时等等。没有任何一种符号或技术能够涵盖问题的所有方面,在开发大型复杂系统时需要使用它们的组合。在这个项目中,我们建议研究一种新的集成方法来验证和验证。我们的目标是提供一种可靠而实用的技术,涵盖数据建模、并发性、分布和定时。为此,我们计划研究已经在工业中成功应用的验证和验证技术的扩展和组合使用。我们不寻求符号和工具的特别组合,而是寻求一种合理的方法,为实际技术的使用提供可靠的基础。如果我们验证了机器人控制器的实质性部分,我们就成功了:使用用我们的符号编写的模型,我们将应用我们的技术来验证现有实现的部分,使用我们验证的安全关键Java实现来执行它。我们的工业合作伙伴将提供成功的衡量标准,以及我们的结果对他们的实践或商业计划的影响。
英文摘要
The use of computers and computer programs is pervasive nowadays, but every computer user knows that programs go wrong. While it is just annoying when our favourite text editor loses a bit of our work, the consequences are potentially much more serious when a computer program that, for instance, controls parts of an airplane goes wrong. Software validation and verification are central to the development of this sort of application. In fact, the software industry in general spends a very large amount of money in these activities. One of the measures taken to promote correctness of programs is the use of a restricted set of features available in programming languages. This usually means that most of the more recent advances in software engineering are left out. In this project, we propose to provide development, validation, and verification facilities that allow object-orientation and a modern real-time computational model to be used for the programming of safety-critical systems. In particular, we will work with one of the most popular programming languages: Java, or more specifically, its profiles for high-integrity engineering proposed by the Open Group. As our main case study, we will verify parts of the controller of the first Java Powered Industrial Robot, developed by Sun. One of our collaborators, a senior engineer in Sun tells in an interview that Distributed Real-Time Systems are really hard to build and the engineering community doesn't really know how to build them in a coherent repeatable way. (java.dzone.com/articles) Real-Time Java is entering the industrial automation and automotive markets. Lawyers did not allow the Java Robot to get anywhere near a human, even in a JavaOne conference demo. To proceed in that kind market, better support is needed.Programming is just one aspect of the development of a modern system; typically, a large number of extra artefacts are produced to guide and justify its design. Just like several models of a large building are produced before bricks and mortar are put together, several specification and design models of a program are developed and used before programs are written. These models assist in the validation and verification of the program. To take our civil engineering metaphor one step further, we observe that, just like there can be various models of a building that reflect several points of view, like electricity cabling, plumbing, and floor plans, for example, we also have several models of a system. Different modelling and design notations concentrate on different aspects of the program: data models, concurrent and reactive behaviour, timing, and so on. No single notation or technique covers all the aspects of the problem, and a combination of them needs to be employed in the development of large complex systems. In this project, we propose to investigate a novel integrated approach to validation and verification. Our aim is to provide a sound and practical technique that covers data modelling, concurrency, distribution, and timing. For that, we plan to investigate the extension and combined use of validation and verification techniques that have been successfully applied in industry. We do not seek an ad hoc combination of notations and tools, but a justified approach that provides a reliable foundation for the use of practical techniques. We will have succeeded if we verify a substantial part of the robot controller: using a model written in our notation, we will apply our techniques to verify parts of the existing implementation, execute it using our verified implementation of Safety-critical Java. Measure of success will be provided by our industrial partners and the influence of our results in their practice or business plans.
期刊论文(10)
专著(0)
科研奖励(0)
会议论文
登录
查看更多内容
Formal Methods: Foundations and Applications
形式化方法:基础和应用
DOI:
10.1007/978-3-642-41071-0_3
发表时间:
2013
期刊:
影响因子:
--
作者:
[Bandur V]
通讯作者:
Bandur V
Unifying Theories of Programming - 5th International Symposium, UTP 2014, Singapore, May 13, 2014, Revised Selected Papers
统一编程理论 - 第五届国际研讨会,UTP 2014,新加坡,2014 年 5 月 13 日,修订后的精选论文
DOI:
10.1007/978-3-319-14806-9_1
发表时间:
2015
期刊:
影响因子:
--
作者:
[Canham S]
通讯作者:
Canham S
DOI:
--
发表时间:
2018-07
期刊:
影响因子:
--
作者:
[James Baxter]
通讯作者:
James Baxter
Modelling timed reactive systems from natural-language requirements
根据自然语言需求对定时反应系统进行建模
DOI:
10.1007/s00165-016-0387-x
发表时间:
2016
期刊:
Formal Aspects of Computing
影响因子:
1
作者:
[Carvalho G]
通讯作者:
Carvalho G
DOI:
10.1145/2822304.2822307
发表时间:
2015-10
期刊:
Proceedings of the 13th International Workshop on Java Technologies for Real-time and Embedded Systems
影响因子:
--
作者:
[James Baxter;Ana Cavalcanti;A. Wellings;Leo Freitas]
通讯作者:
James Baxter;Ana Cavalcanti;A. Wellings;Leo Freitas
共 8 条
RoboTest: : Systematic Model-Based Testing and Simulation of Mobile Autonomous Robots
-
批准号:EP/R025479/1
-
项目类别:Research Grant
-
资助金额:$148.7万
-
财政年份:2018
-
负责人:Ana Cavalcanti
-
依托单位:
A Calculus for Software Engineering of Mobile and Autonomous Robots
-
批准号:EP/M025756/1
-
项目类别:Research Grant
-
资助金额:$225.13万
-
财政年份:2015
-
负责人:Ana Cavalcanti
-
依托单位:
Programming from Control Laws
-
批准号:EP/E025366/1
-
项目类别:Research Grant
-
资助金额:$41.47万
-
财政年份:2007
-
负责人:Ana Cavalcanti
-
依托单位:
国内基金
海外基金
登录
查看更多内容
通用Java程序到实时Java程序的对象自动分类和转化方法研究
-
批准号:61272166
-
项目类别:面上项目
-
资助金额:81.0万元
-
批准年份:2012
-
负责人:史晓华
-
依托单位:
针对Android系统的Java/C++多语言接口建模与分析
-
批准号:61272086
-
项目类别:面上项目
-
资助金额:84.0万元
-
批准年份:2012
-
负责人:董渊
-
依托单位:
Java构件的组合模型检验技术研究
-
批准号:60803042
-
项目类别:青年科学基金项目
-
资助金额:20.0万元
-
批准年份:2008
-
负责人:文艳军
-
依托单位:
基于软件水印的JAVA可信运行环境关键技术研究
-
批准号:90718010
-
项目类别:重大研究计划
-
资助金额:50.0万元
-
批准年份:2007
-
负责人:王建民
-
依托单位:
基于流分析的分布式Java程序模型检查技术研究
-
批准号:60673155
-
项目类别:面上项目
-
资助金额:27.0万元
-
批准年份:2006
-
负责人:张大方
-
依托单位:
基于部分求值的Java构件动态优化技术
-
批准号:60173013
-
项目类别:面上项目
-
资助金额:18.0万元
-
批准年份:2001
-
负责人:廖湖声
-
依托单位:
分划递推法应用于高可靠Java程序开发方法研究
-
批准号:69983003
-
项目类别:专项基金项目
-
资助金额:13.0万元
-
批准年份:1999
-
负责人:薛锦云
-
依托单位:
基于Java/CORBA的可视化对象建模研究
-
批准号:69973020
-
项目类别:面上项目
-
资助金额:13.0万元
-
批准年份:1999
-
负责人:许满武
-
依托单位:
基于Java异构网络并行计算和协同工作的关键技术
-
批准号:69873036
-
项目类别:面上项目
-
资助金额:12.0万元
-
批准年份:1998
-
负责人:彭德纯
-
依托单位:
JAVA芯片体系结构及其关键技术的研究
-
批准号:69803013
-
项目类别:青年科学基金项目
-
资助金额:15.0万元
-
批准年份:1998
-
负责人:戴葵
-
依托单位: