Project Summary - Computing and Information Sciences

advertisement
PROJECT SUMMARY
AO Number: DARPA Order K203
Contract Number: AFRL Contract F33615-00-C-3044
Organization: Kansas State University, Computing and Information Sciences Department
Subcontractors: none
Principal Investigators:

Dwyer, Matthew,
dwyer@cis.ksu.edu, (785) 532-6350,
234 Nichols Hall, Computing and Information Sciences Department

Hatcliff, John
hatcliff@cis.ksu.edu, (785) 532-6350,
234 Nichols Hall, Computing and Information Sciences Department

Mizuno, Masaaki,
masaaki@cis.ksu.edu, (785) 532-6350,
234 Nichols Hall, Computing and Information Sciences Department

Neilsen, Mitch,
neilsen@cis.ksu.edu, (785) 532-6350,
234 Nichols Hall, Computing and Information Sciences Department

Singh, Gurdip,
singh@cis.ksu.edu, (785) 532-6350,
234 Nichols Hall, Computing and Information Sciences Department
Financial POC:
McBride, Roger
roger57@ksu.edu
(785) 532-1848
Controller's Office - Sponsored Projects Accounting
Anderson Hall, Room 10
Manhattan, KS 66506-0108
Title of Effort:
Automatic Derivation, Integration and Verification of Synchronization Aspects in ObjectOriented Design Methods
Period of performance: 06/27/00 through 06/26/04
533575253
Approach:
Overview
The project emphasizes techniques and tools for developing high-assurance software by
providing formal specification and analysis of concurrent and distributed systems. The
approach taken does not consider complete formal specification of a system as this is
infeasible for realistic systems. Rather, the project focuses on providing developerfriendly specification, analysis, and code synthesis capabilities for crucial system
aspects such as synchronization, distribution, modal behavior, and scheduling that are
often impact overall system design or are difficult to reason about.
Initially, the project focused on developing a framework called SyncGen for high-level
specification of synchronization aspects and automatic synthesis of synchronization
code. Recently, the scope of the project has broadened to include the construction of an
integrated development and analysis environment called Cadena for building highassurance real-time systems using the CORBA Component Model (CCM).
Specification, Verification, and Synthesis of Synchronization Aspects
Object-oriented design, modeling, analysis, and coding techniques have been used
successfully to design and maintain large software systems, but multiple shortcomings in
their treatment of synchronization aspects limit their effectiveness in many applications.
The SyncGen effort seeks to overcome those shortcomings by providing techniques,
tools, and methodologies for (a) high-level, formal, modular specification of global, crosscutting synchronization aspects, (b) automatic derivation and weaving (i.e., integration)
of correct by construction synchronization code into core functional code, and (c)
automated verification of critical safety and liveness properties of woven embedded
code.
The SyncGen effort resulted in a tool that allows developers to avoid coding
synchronization structures and instead focus on development of core functional code.
The approach emphasizes the use of UML's Unified Process to construct core functional
components --- synchronization code is not directly constructed. Instead, as an
enhancement to the Unified Process at the level of requirements and use-cases, the
developer identifies regions in the core functional system behavior that should be
synchronized. The synchronization policy for a cluster of regions is specified by
constraining the relationships between the number of threads that can simultaneous
occupy regions.
Given a collection of policies for a cluster of regions, the
synchronization aspect code that enforces that policy is generated completely
automatically. Once the development of core functional code is complete, it is weaved
with the synchronization aspect code by an automatic process that inserts calls to the
synchronization code at the region boundaries marked in the code. The synchronization
code generated is correct-by-construction, but additional safety and liveness properties
are verified using software model-checking technology.
This approach is innovative because it allows highly complex code that is often
troublesome to develop and debug to be generated completed automatically from a very
high-level formal specification (usually the specification is one or two lines long). The
specification pattern language is very expressive and this has been demonstrated
initially by solving all the exercises
from well-known text-books on concurrency (Andrews, Hartley) using it. The approach is
very general in that it is language independent: synchronization code generation support
has been developed for Java, C, C++ and different synchronization primitives such as
533575253
general monitors for POSIX pthreads, active monitors, and controller-area-network
(CAN)-based message passing.
Development of High-Assurance Distributed Avionics Applications Using CCM
The practical effectiveness of the above work is being demonstrated by applying it to the
Boeing Bold Stroke Open Experimental Platform (OEP). The Bold Stroke architecture
emphasizes the use of distributed components that communicate via ACE/TAO real-time
CORBA middleware. At present, actual Bold Stroke product-line development does not
include high-level modeling or analysis, and as part of the MoBIES/PCES projects, Bold
Stroke OEP team members have proposed a number of challenge problems related to
modeling, static structural and behavioral analysis, and aspect code synthesis. In an
effort to provide a comprehensive framework for formal high-level specification and
analysis, and code synthesis from high-level design artifacts, we are building the
CADENA (Component Architecture Development ENvironment for Avionics applications)
tool suit. Cadena is built as a plug-in to IBM’s Eclipse IDE and leverages the OpenCCM
open-source Java CCM implementation to obtain integrated specification, analysis, and
development environment for high-assurance CORBA Component Model applications.
The CORBA 3.0 Interface Definition Language provides a high-level language for
describing CCM component interfaces (including both functional interfaces, and events
subscriptions and emissions). Thus, it seems like an ideal focal point for addressing the
lack of high-level design and analysis in current Bold Stroke product-line development.
Cadena allows Bold Stroke OEP component interfaces to be expressed using CORBA
3.0 IDL. These component interface definitions can be annotated with various forms of
specifications including state-transition semantics and modal behaviors. Graphical,
form-based, and text-based input mechanisms allow developers to easily assemble
systems from components. Cadena provides a number of dependency analyses to
address challenge problems posed by the Bold Stroke OEP team. Model-checking
technology is used to exhaustively explore possible modal behaviors of constructed
systems. Once systems are configured at the CORBA 3.0 IDL level, Java/CORBA
stub/skeleton code is automatically generated.
The Cadena environment provides a number of capabilities not present in current Bold
Stroke product-line development. At the most basic level, the tool support provided by
Cadena for assembling systems from components is a significant step forward.
Moreover, Cadena’s analysis capabilities can significantly reduce design-time efforts.
Finally, the automatic component and configuration code generation provide by the
CORBA IDL compilation can result in substantial reductions of developer effort, since
current Bold Stroke develop does not leverage component IDL code generation at all (it
only uses the familiar IDL 2 level code generation provided by ACE/TAO). Finally, the
Java code-generation facilities of OpenCCM used in Cadena provide an ideal way to
obtain Java implementations of the Bold Stroke OEP example systems. This is
important because demonstrating the feasibility of (RT) Java for embedded avionics
applications is one of the goals of PCES, and currently there is no other supported effort
to recast the Boeing OEP in Java.
While Cadena is not a production-quality tool, the goal is to use it to demonstrate a
spectrum of capabilities so that Boeing engineers selectively adopt the technologies and
tool components that seem most useful.
533575253
FY 02 Accomplishments:








The foundations of the SyncGen were described in a number of papers appearing in
venues such as the International Conference on Software Engineering,
The SyncGen tool that automatically generates synchronization implementation from
high-level pattern-based global invariants was publicly released. The released tool
focuses on code-level declaration of regions and generation of Java and C
synchronization implementations. Prototype code generators for C++/POSIX threads
and CAN-message passing systems were also developed.
The Cadena specification and development framework based on OMG’s CCM IDL3 was
developed that allows Boeing Bold Stroke components and system configurations to be
specified at a high-level. The high-level specifications built in these frameworks can be
leveraged in several ways, as described below.
OpenCCM (an open source CCM/Java framework) has been integrated into Cadena.
This enables much of the Java code required for implementing a system to be
automatically generated using the standardized CCM IDL compilation.
As a
consequence, programmer effort is dramatically reduced, and confidence in the code is
enhanced since correct code is automatically generated.
A dependency analysis workbench was developed for Cadena that allows data and
event dependencies between components to be visualized. Moreover, dependency
information is used to automatically generate non-functional real-time aspect information
such as suggestions for component distribution (e.g., highly-coupled components should
appear in the same node in a distribution), execution rates (components that transitively
depend on a particularly time trigger should be run at the same rate), and
communication optimization (components in the same rate group and distribution unit
can communicate directly instead of through a full event-channel). Each of these
analysis functions successfully addresses a particular challenge problem posed by the
Boeing Bold Stroke OEP team.
A prototype model-checking/simulation tool has been developed that can perform
exhaustive simulations on state-based Cadena system specifications. This allows
developers to reason about complex modal behaviors very early in the design process.
Crucial system invariants and event-sequencing properties can be automatically
checked, and when a violation is found, the execution trace leading to the violation can
be visualized. This capability successfully address challenge problems related to
reasoning about modal behaviors posed by the Boeing OEP team.
Using the Cadena development and analysis capabilities above, a small repository of
example system components and scenarios (configurations) written in Java was
developed based on the C++ scenarios provided in the Boeing OEP. This repository is
being used as the basis of interaction with other members of the PCES project as the
above tools are integrated with those of other teams.
A collection of metrics by which the work described above is to be evaluated was
proposed to the Bold Stroke OEP team.
533575253
Specific FY 03 Objectives:










Perform a second release of the SyncGen tool set that incorporates additional back-end
code generators based on existing prototypes and a larger examples repository.
Carry out experiments with Rockwell-Collins Advanced Technology Center where
SyncGen is applied to generate synchronization aspect code in avionics systems
intended for FAA-certification. This will allow the effectiveness of SyncGen to be
evaluated in an industrial setting.
Integrate FACET (a Java implementation of an aspect-structured real-time eventchannel from Ron Cytron’s PCES project at Washington University) in Cadena. Use this
is the primary experimental platform for the Java version of Bold Stroke scenarios.
Integrate a CORBA Avionics Data Service implementation by engineers at RockwellCollins (ATC) into Cadena to allow experimentation with other forms of component
communication beyond Bold Stroke’s “control-push data-pull” model.
Refine Cadena’s model-checking infrastructure so that medium-size systems of
hundreds of components can be analyzed for defects in modal-behavior specifications.
Develop a technical approach for high-level specification of mode-behavior constraints
that allows automatic generation of component code to implement correct mode
transitions. Bold Stroke engineers have identified analysis and correct implementation
of modal behaviors as one of the most challenging aspects of system development.
Adapt SyncGen’s high-level synchronization specifications capture synchronization
patterns that appear in Bold Stroke systems. This will allow intricate component
communication code that is used currently to achieve various forms of synchronization to
be replaced by code automatically generated from SyncGen’s specifications.
OMG specifications of CCM describe a robust deployment framework for assembling
and deploying CCM-based systems. Since this specification was only very recently
finalized, no tool currently implements it.
Work with OpenCCM developers to
incorporate a full deployment framework in Cadena, and enhance this framework to
support deployment of Bold Stroke OEP systems that conform to the OMG CCM
deployment format.
Perform a public release of the Cadena tool set with a large example repository based
on the examples provided in the Bold Stroke OEP.
Work with Bold Stroke engineers in multiple evaluations of Cadena in an effort to obtain
a system that can impact actual development process.
Technology Transition:
Besides working with Boeing OEP team members, we are actively working with
engineers from Rockwell-Collins Advanced Technology Center on a number of fronts.
The primary goal of interaction with Rockwell-Collins is to use SyncGen and Cadena to
develop systems that are representative of the types avionics systems that are part of
the Rockwell-Collins product-line. An interesting aspect of working with Rockwell-Collins
is that they working primarily in the civilian avionics sector, therefore there are a number
of interesting issues related to FAA certification that do not appear in the Bold Stroke
system. Practically speaking, Rockwell-Collins ATC is interested in using a framework
like Cadena enhanced with facilities to support issues related to certification such as
automatic test-generation and coverage metrics, object code to source code to
requirements traceability, greater support for requirements and specifications
management.
533575253
Funding Received to Date: $635000
Unexpended Funds: $132512 (as of June 17, 2002)
This is 44% of the FY02 budgeted total. The reason that this is high is that the summer
months billed to faculty were not charged against the project until July/August 2002. In
fact, due to a slight budget cut received in FY02 (with respect to our request) we will not
be able to fund all 4 of our research assistants through the end of September 2002 (only
3 can be funded throughout the remainder of this increment).
Date Unexpended Funds Will Be Depleted: September 30, 2002
Required Funding:
$299670 will fund the project through September 30, 2003
$374587 will fund the project through December 31, 2003
Latest Invoice: (attached – see following pages)
Date Prepared: August 16, 2002
533575253
533575253
533575253
533575253
Download