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