Computing and Software
Computing and Software maintains awareness of developments outside MITRE
related to the technologies of computer architecture and engineering,
computer science, software engineering and the software profession.
High Confidence Software Containers
Washington only
Problem
For the majority of HCS systems, development and validation of software
is more difficult than for "ordinary" systems. In addition,
HCS validation is generally brittle, making it expensive and time consuming
to modify and revalidate a system once it has been deployed. To support
the increasing reliance on software in critical systems, more cost effective
techniques for building HCS need to be developed and HCS must be made
more resilient in the presence of evolving requirements or configurations.
Objectives
Our objective is to investigate the augmentation of currently available
container technologies to make HCS easier, quicker, and more cost effective
to build, maintain, and modify. To that end, we will investigate and incorporate
currently available and effective HCS techniques into an open source software
container.
Activities
We will investigate how to apply HCS techniques to container technology
and we will augment an open source Enterprise Java Bean (EJB) container
to support the development and deployment of HCS. Our augmented container
will be demonstrated at the MTP Symposium. We will document the results
of our investigations in a MITRE report.
Impacts
We will use our results to influence the direction of software container
standards (e.g., J2EE, Openwings) and also influence the way our sponsors
(e.g., Defense Information Infrastructure Common Operating Environment
(DII COE)) utilize software containers.
High Confidence Software Research Initiative
Washington only
Problem
Across MITRE, a key aspect of our sponsors' systems is an increasing reliance
on software. Both the complexity and the consequences of failure of these
software-intensive systems are steadily growing. For critical software,
our reach exceeds our grasp, yet our reach keeps increasing. For many
of the critical systems our nation increasingly depends on, software is
the weakest link.
Objectives
This project aims to improve the ability to build, assess, and sustain
those complex software systems for which compelling evidence is required
that the software delivers a specified set of services in a manner that
satisfies specified critical properties. The organizing framework for
this research is the collection and analysis of technical evidence from
multiple sources to calibrate if the confidence is justified for a given
software system.
Activities
We are developing a set of canonical problems for evaluating the relevance
of various techniques. We have established a Center Liaison Panel with
one or more members from each Operating Center, and we are collaborating
with the NSF, SEI, and others. We are pursuing focused investigations
of aspects of formal methods, testing, model checking, and process guidance,
along with increased rigor for calibrating software and for combining
sources of evidence. We are concentrating on the challenges introduced
by the revalidation or certification of existing systems that are evolving
rapidly.
Impacts
The vision for this initiative is a self-sustaining role for MITRE as
a national resource for HCS. If this is a vision and not a hallucination,
the impacts include reduced risks of unexpected software failures in critical
systems, more effective exploitation of software capabilities in modernization
and transformation, and a significant contribution to the national interest.
Integrated Services Management for C2
Bedford only
Problem
The IC2S must be capable of adapting to a dynamically changing environment
and dynamically changing mission needs. We have identified critical distributed
computing technologies that facilitate constructing such systems. The
ISM project will accelerate the commercial availability of these technologies
through leadership in Java standardization activities.
Objectives
The objective of this project will be an approved extension to the Java
platform enabling real-time distributed applications to be developed using
Java. This will extend the scope of real-time Java from single node to
distributed applications. The immediate form of this extension (and the
desired outcome of this project) will be a complete, approved specification-including
a reference implementation and test suite. It is anticipated that commercial
vendors will implement products based on the specification and reference
implementation, which can then be used for building adaptable, scalable
C2 systems.
Activities
As part of this project, we will organize and lead an industry-wide Expert
Group under the auspices of the Sun Community Process for Java. This Expert
Group will be responsible for reaching consensus on the specification
for Distributed Real-time Java. In addition to leading the Expert Group,
the project team will participate in the specification process itself,
initiate and lead technical investigations, and develop the reference
implementation and test suite. During the course of this activity, we
anticipate publication of several technical papers and the preparation
of several technology demonstrations.
Impacts
This task is unique in that immediate technology transition to industry
is an integral and automatic part of the work. MITRE is leading the Expert
Group that is creating the Distributed Real-Time Specification for Java
(DRTSJ), as part of Sun's Java Community Process. The DRTSJ includes a
specification document, a reference implementation, and a conformance
test suite. When completed, these all will be freely available on Sun's
website, to facilitate the development of COTS distributed real-time Java
products.
Polymorphous Computing Architectures (PCA)
Alan Piszcz, Principal
Investigator
Washington only
Problem
Current computational architectures in high performance applications require
unique digital signal processing and stream processing hardware designs.
Development costs, maintenance and system production are driven by the
uniqueness of the components and the programming effort to create the
system application.
Objectives
PCA developments will enable payload adaptation, optimization, and verification
to be reduced from years to days to minutes. The PCA program will replace
the current "hardware first and software last" development cycle
by moving beyond conventional fixed silicon processing architectures to
flexible polymorphous computing systems. Polymorphic is defined as having,
taking, or passing through many different forms or stages (i.e., many
+ form).
Activities
The project will provide identification of opportunities to exploit PCA
capabilities in the C4ISR domain, expose PCA system requirements to the
research community, explore hardware and software resource management
issues using Quality of Service (QoS) metrics, develop a SAR application
description and software demonstration, and collaborate with the Morphware
forum to facilitate future software libraries in support of PCA.
Impacts
The project will lead to improved understanding of PCA systems architecture
as it relates to defense applications, and will obtain PCA community feedback
of prototype applications lessons learned to evolve the requirements in
software and hardware architecture. It will also identify opportunities
for future research through improvement in system performance, software
development, and architecture issues as they relate to C4ISR target applications.
Understanding Object-Oriented Software
Bedford and Washington
Problem
While object-oriented approaches to software development promise to provide
solutions that are faster, cheaper, and reusable, the software delivered
contains enough indirection (via inheritance and polymorphism) to make
it more difficult for analysts to understand object-oriented versions
compared to strict procedural versions. Through understanding object-oriented
code, we can assess qualities such as performance and security, support
iterative development, and support reuse.
Objectives
The work of the design pattern software-engineering community provides
us with descriptions of best practices, applicability conditions, and
consequences of use for specific designs. Hence, we will develop the capability
to automatically recognize use of design patterns through static reverse
engineering techniques. Moreover, we will develop capabilities to reason
about concomitant design rationale and software qualities.
Activities
We are using commercial integrated development environments to extract
data on class interactions. First, we will concentrate on structural patterns
and validating recognition results by examining software that contains
intentional, documented use of patterns. Second, we will broaden this
to cover architectural patterns and reasoning about pattern applicability
conditions. Third, we will tackle the interplay among multiple pattern
types within a single program.
Impacts
Our results will have direct impact on supporting software acquisition.
We will be able to document legacy and newly developed software and be
able to perform architectural compliance tasks. This work is also a prerequisite
for static software vulnerability and malicious code analysis. We will
connect with projects where there is an anticipated need for this within
the next fiscal year.
|