CAREER: From Incidental Algorithms to Reusable Components: Managing the Emergent Complexity of Large-Scale Software Systems
CAREER: From Incidental Algorithms to Reusable Components: Managing the Emergent Complexity of Large-Scale Software Systems
批准号:
0845861
负责人:
Jaakko Jarvi
金额:
$40.28万
依托单位国家:
美国
项目类别:
Standard Grant
财政年份:
2009
资助国家:
美国
项目状态:
已结题
起止时间:
2009-07-01 至 2014-06-30
中文摘要
该奖项是根据2009年美国复苏和再投资法案(公法111-5)资助的。现实世界的软件系统是大型的、复杂的工件,使用不同的组件集合在多个抽象层上构建而成。虽然单个组件通常是可重用的,但是管理组件之间交互的代码很少是可重用的。这样的代码本身是大规模的,并且编码了大量的应用程序逻辑。组件之间通信的可能性,通常由对象之间的消息传递影响,在程序中形成附带结构。虽然这些结构是真正的数据结构,但它们在程序代码和运行时缺乏显式表示,因此难以重用、以编程方式操作和推理。这个项目的重点是识别在主流编程的重要领域中出现的附带结构——特别是人机界面——并将它们建模为声明式指定的显式软件工件。假设是大量的临时代码可以被淘汰,并被可重用的算法和组件所取代。用户界面中附带数据结构的特定来源是事件处理代码、实现值传播、验证逻辑、接口元素启用逻辑、脚本支持等。该项目试图证明这些功能(通常使用特定于应用程序的非可重用代码实现)并不特定于特定的用户界面;它们可以通过可重用的通用算法来实现,在一个(声明指定的)模型上进行参数化,该模型作为约束系统捕获由用户界面操纵的值之间的关系。建议的工作将影响未来的大规模软件开发,旨在实现大幅提高的生产力和更可靠、高效和可预测的软件。
英文摘要
This award is funded under the American Recovery and Reinvestment Act of 2009(Public Law 111-5).Real-world software systems are large, complex artifacts built up over multiple layers of abstraction using diverse collections of components. Though individual components are often reusable, code that manages interactions between components seldom is. Such code is large-scale itself, and encodes significant amounts of application logic. A potential for communication between components, typically effected by message passing between objects, forms incidental structures in a program. Though such structures are real data structures, they lack an explicit representation in program code and at run time, and are thus difficult to reuse, manipulate programmatically, and reason about. This project focuses on identifying incidental structures that arise in important domains of mainstream programming---human interfaces in particular---and modeling them as declaratively specified explicit software artifacts. The hypothesis is that large amounts of ad-hoc code can be obsoleted, and replaced by reusable algorithms and components.The particular source of incidental data structures in user interfaces is the event handling code, implementing propagation of values, validation logic, interface element enabling logic, scripting support, etc. The project seeks to demonstrate that these functionalities, typically implemented with application-specific non-reusable code, are not specific to a particular user interface; they can be realized with reusable generic algorithms, parameterized over a (declaratively specified) model that captures the relations, as a system of constraints, between values manipulated by the user interface.The proposed work will impact future large-scale software development, aiming to realize substantially increased productivity and software that is more reliable, efficient, and predictable.
期刊论文(0)
专著(0)
科研奖励(0)
会议论文
ST-CRTS: Collaborative Research: Lifting Compiler Optimizations via Generic Programming
-
批准号:0541014
-
项目类别:Standard Grant
-
资助金额:$27.47万
-
财政年份:2006
-
负责人:Jaakko Jarvi
-
依托单位:
海外基金