Software Development for the Common Operating Environment (COE)

advertisement
UniqueSoft LLC
Software Development for COE
1530 E. Dundee Rd., Suite 100
Palatine, Illinois 60074
United States of America
Technical White Paper
Software Development for the
Common Operating Environment (COE)
Version 1 – May 2013
Issue: The objective of the Army Common Operating Environment (COE) is “an approved set of
computing technologies and standards that enable secure and interoperable applications to be rapidly
developed and executed across a variety of Computing Environments.”1 This paper outlines UniqueSoft’s
innovative enabling technology to address this objective.
Background: The Office of CyberInfrastructure of the National Science Foundation2 has stated that
software sustainability “is a matter of having comprehensible, extensible, and reliable software to meet
current needs”. These same goals apply to the initial development of the software. In addition, the drive
toward Systems of Systems has elevated the need for modular, extensible, and intercommunicating
systems. However, traditional software development methods fall short in these areas, producing software
with low sustainability and high technical debt. This paper examines a new approach to software
development that addresses all the issues in a cost-effective manner in the context of the planned COE.
Discussion: Efficient development of sustainable software is difficult for many reasons: software
systems are often large and complex; design and architecture documents must be kept in sync with the
developed code; code must be adapted to the chosen architecture; change orders are common; features
cannot easily be combined into product variants; and programming languages, while powerful, favor
implementation details and optimizations at the expense of abstractions and understandability. In addition,
the largely manual process of software development compounds the issues by introducing human error at
each phase. The resultant code has latent defects, does not match its documentation, and is difficult to
sustain in the COE framework as changes need to be made and systems need to be linked.
Alternatives: Strategies for software development are shown in the table below.
1
UniqueSoft LLC
Issue
Software Development for COE
Model-Driven Engineering
(MDE)
Abstractions should Programming languages have UML and SDL provide
match the domain
a low level of abstraction
abstractions for architecture
and state machines and but
typically require target code
embedded in models
Performance tuning is Performance tuning is
Performance tuning is
required
difficult and harms
difficult and harms
sustainability
sustainability
Middleware,
frameworks, common
environments
Systems are large and
complex
Manual Development
Documentation
should match the
code
Middleware and framework
usage interleaved in the code;
very difficult to change
Large teams lead to
inconsistent development and
feature interactions
Difficult to add new features
or change language or
platform; code becomes
patchy
Frequent changes and
implementation choices lead
to outdated documentation
Application must
meet non-functional
requirements
Quality and security
are difficult to ensure
Architectures and
environments are locked in at
development onset
Large cost-of-quality; many
opportunities for human error
Software must be
sustained
Reusability should be Code is difficult to reuse; only
maximized
good in the same environment
and language; features are
entangled
UniqueSoft Technologies
Enhanced UML profile (ITUT Z.109 standard) plus
protocol abstractions yield
> 90% code generation from
models
Performance is achieved
through a highly customizable
code generator without
impacting the design model
Middleware and framework
Highly customizable code
usage interleaved in model;
generator targets full platform
very difficult to change
with native code
Large teams lead to
Feature-based development
inconsistent development and allows teams to focus on
feature interactions
independent parts of system
Difficult to add new features Support for feature-based
or change language or
development and sustainment
platform; model becomes
at feature level
patchy
Frequent changes lead to
Modularized model can serve
outdated documentation
as documentation; code
generation from model
ensures correspondence
Architectures and
Easily apply alternative
environments are locked in at architectures or alternative
development onset
environment integration
Large cost of quality; fewer
Support for test automation;
opportunities for human error requirement verification; and
rule-based coding standards
Model is difficult to reuse;
Feature-based reuse; new
only good in the same
target environments and
environment and language;
languages are enabled;
features are entangled
common protocol stacks and
software bridges
Manual Development is expensive and rife with problems, as is well known. Model-Driven Engineering
has failed to live up to its promises because it addresses only some of the issues and makes others more
difficult.
UniqueSoft Technologies are based on the lessons learned from more than two decades of deployment in
industrial real-time and safety-critical system. The UniqueSoft technologies fully leverage automation and
cover new development as well as sustainment efforts, including requirements capture and formal V&V,
test case generation, feature-based modeling and development at the appropriate level of abstraction,
separation of architecture from behavior, generation of highly optimized native code in several languages,
test execution at the model and code levels, and documentation that corresponds to the code.
UniqueSoft technologies have been proven in a variety of domains, including embedded and back-office
telecom, datacom, safety critical and embedded engine controllers, and cloud/server/web-based
applications. These technologies are applicable across the COE Mission Environments:
2
UniqueSoft LLC






Software Development for COE
Data Center/Cloud/GF: Development of business and application logic; generation of code for
protocol stacks, applications, data mediation, and interoperability.
Command Post: Development of business and application logic; generation of code for protocol
stacks, applications, data mediation, and interoperability.
Mounted: Development of embedded and real-time application logic; generation of code for
protocol stacks, applications, data mediation, and interoperability.
Mobile/Handheld: Development of application logic; generation of code for protocol stacks,
applications, and interoperability.
Sensor: Development of embedded application logic; generation of code for protocol stacks,
applications, data mediation, and interoperability.
Real-Time/Safety Critical/Embedded: Development of embedded, real-time, safety-critical
application logic; generation of code for protocol stacks, applications, and data mediation; formal
V&V of requirements.
Recommendation: The UniqueSoft technologies for and approach to software development are
economically feasible and produces superior results. The resultant software is sustainable and aligned
with its target environment, such as the COE. It is strongly recommended that UniqueSoft be engaged on
one or more COE-based development pilot projects.
1
Jones, E., et al, ASA(ALT) Common Operating Environment Implementation Plan Core, Nov 2011.
Schopf, J., “Sustainability and the Office of CyberInfrastructure”, 8th IEEE International Symposium on Network
Computing and Applications, Cambridge, MA, Jul 2009.
2
3
Download