Software is the program code or list of instructions which implement a required function. High level languages such as C++ are used to implement complex requirements with few lines of code, while low level languages such as Assembler tend to be used to squeeze maximum performance from simpler processors.
The flexibility of software makes it possible to implement many functions on standard hardware, making development times shorter. As processors become faster and cheaper, more requirements can be achieved by software, moving the trade-off line between Hardware speed and Software flexibility.
Digital Signal Processors (DSP) use hardware architectures which are aimed at increasing the processing performance for handling digital representations of real world signals such as audio and video data.
Here are some examples of the type of software engineering that we can help you with