With the improvement of wireless technologies such as WiFi, GPRS, Bluetooth, EDGE, and GSM, it has become necessary to develop software to support such technologies. Development of embedded software for wireless devices is a decisive activity. In order to be able to compete effectively in the wireless devices’ market, it is necessary for programmers to develop software applications with more improved features.
One of the reasons why the development of software for wireless devices is challenging is because there is no internationally accepted standard for wireless devices applications. Unlike the wired applications which use the OSI model (Open Systems Interconnections), wireless applications have to use individual platform and ensure that these platforms are interoperable. To ensure that a wireless device can communicate to another device, the applications have to be customized as necessary. Operating systems for wireless devices include Android for Samsung, iOS for iPhone, and Blackberry OS. These different operating systems for wireless devices perform the same functions as computer operating systems such as Windows or Mac OS (Buyya, Branson, Giddy, & Abramson, 2012).
Wireless communication industry has been using academic and industrial research to design and implement wireless applications. This results in multiple wireless applications which are system dependent. Engineers working on wireless devices face challenges of limited memory and processing power. Software developers making wireless devices are also faced with environmental challenges. Some of these environmental challenges are due to the lower bandwidth in wireless networks as compared to wired networks (Buyya, et al., 2012.
The embedded software for a wireless device determines its functionality. This embedded software must run on a real time operating system (RTOS). It takes time for one to learn and be able to develop protocols such as Bluetooth or GPRS. Developers have to cope up with challenges such as time constrains. Newly developed software for wireless devices must be tested to make sure it will work with other software applications. Testing might lead to a lot of time being wasted. Since there is a wide range of operating systems, the developer has to be aware of the working of these technologies in order to understand the performance expected. This makes the testing and debugging phase of the project to be more time demanding and challenging (Rice, 2005).
As a result of the lack of an internationally accepted standard for wireless devices, wireless application developers have come up with Graphical User Interfaces (GUI) specific to their devices. These user interfaces include applications such as touch screen. These are application logic features; they vary over a range of wireless devices. This is a major challenge because devices from different vendors are sometimes unable to communicate.
Programmers developing software for wireless devices have to be skillful and ready to learn the operations of the wireless environment. These developers must be able to make important decisions regarding the performance issues of the wireless device. This will help in choosing the best software architecture to use. Another challenge facing software developers for wireless devices is that most wireless devices have limited input capabilities. They provide a one hand keypad with a limited number of buttons. The limited resource such as memory in wireless device has a negative impact on the design and development of applications. This is because such systems can only handle small applications, which require less memory utilization. Wireless devices software developers should consider the impact that the limited resources have on the application design before they start developing the software. They should also consider developing platform- independent applications to ensure interoperability (Rice, 2005).