Software

man at work station

Design & Development

Great software starts with a clear understanding of what’s needed today, how those needs may evolve, and an appreciation for how it will be maintained over the life cycle. At Cardinal we consider the entire software life cycle during design because good software design is more than just getting something to work, it’s getting something that can endure the inevitable changes to come. This life cycle approach to design has been instrumental in our ability to consistently meet customer development schedules, performance expectations, and maintainability goals.

On Time, on Budget & Built to Last

Writing software and writing a few lines of code are very different. Cardinal engineers design for change using open systems principles knowing that what is written today needs to work many years from now. We focus on early risk reduction and seek regular end user feedback to ensure that the problem is solved correctly, and users will readily adopt the end result. Our releases provide incremental capabilities which facilitates early integration and testing. The continuous development activities are supported with a mature development and configuration management process that has been refined for more than a decade. We have experience building high-performance libraries that run on multiple platforms and can be incorporated into enterprise or embedded applications. Our design and development capabilities also include web application development for cloud deployment, scientific applications, and tactical systems.

Scientific

The growing computation power in today’s computers has enabled us to study, model, and simulate increasingly complicated problems. These capabilities are beginning to change the way we design products and conduct business. With more than three decades of experience in the design and development of computationally complex analysis, modeling and simulation, and operational processing software, Cardinal engineers provide efficient software that optimizes performance on today’s processors while positioning it for the transition to tomorrow’s technologies.

Science to Solution

Integral to much of today’s research is the development of mathematically complex models and algorithms in software. The development of efficient scientific software is the art of expressing mathematical constructs or algorithms in software optimized for the architecture and topology of the target hardware.

The development of scientific software typically involves recasting an algorithm, optimizing the implementation, and validating the resulting software. As with any well-developed application, good software design and development skills and effective configuration management (CM) processes are essential. Producing efficient, accurate, and maintainable scientific software however requires other unique skills and experience in mathematics and physics, numerical processing and software optimization. Cardinal engineers have been developing and transitioning scientific software into operational use for decades. From signal and image processing to structural modeling and survivability, some of their solutions remain operational today. Over that time, we have continued to refine our approach, development process and tools.

scientific notes on a keyboard

Embedded

Everything we own is getting smarter. Whether it’s your thermostat, doorbell, or safety systems in your car, secure embedded systems at the right cost and performance point are at the heart of accomplishing this. At Cardinal our engineers have developed numerous embedded systems and software for hand help devices, commercial products and defense applications. From processor selection, hardware design and code optimization to device security and qualification, we provide comprehensive capabilities and experience in embedded system design and development.

Performance Without Compromise

From hardware design and embedded software to multi-core systems on a chip (SoCs), we provide the experience and lifecycle view necessary to meet today’s challenging operational environment. We have extensive experience with fully secure hardware encrypted high assurance boot (eHAB) systems. We use several real-time operating systems (RTOS) when practical but have developed bare metal solutions for demanding applications. Need to go from powered off to processing video in less than 400 ms? Our advanced bare metal solutions have done just that. Our team leverages commercial off the shelf (COTS) hardware for a complete solution or to jumpstart software development while developing custom boards. With experience in both DOD and commercial applications and products, Cardinal engineers can work with you to produce the secure embedded system solution you need.

illustration of cloud environment

Enterprise

Access to and the sharing of information has transformed how we do business and how we live. From purchasing and financial management to equipment control and monitoring, enterprise level systems have formed the core of how we conduct business today. At Cardinal, our engineers have applied their expertise in database development, web technologies, open systems, and software design in the development of enterprise systems across a wide range of applications including modeling, identity management, corporate project and risk management, and other digital engineering applications.

Providing What You Need When You Need It

Enterprise software is at the heart of enabling organizational collaboration by providing access to and sharing of a wide array of data and capabilities.  As such, it is expected to be robust, easy to access, and secure. Cardinal combines in-depth experience in system and software design, database development, computer security, and web design to deliver the user experience and operational results customers and users expect.

Benefits and Opportunities

Transitioning enterprise applications to the cloud provides several benefits and opportunities along with some new challenges. Cloud deployed applications are easily accessed from any web browser. A cloud deployment can scale resources as needed, enable regular updates and improvements, and provide access to common data promoting data sharing and reuse. By centralizing data in the cloud, enterprise software enables the sharing of information, a core goal of DOD’s digital engineering initiative.