Developing A New Desktop Application? Have You Considered…
There is always a great number of things to remember when you embark on a new system development, meaning it can be quite easy to overlook some rather important points. To give yourself some piece of mind take a look at these guidelines on what to consider when developing new desktop applications.
Does Your Hardware Have The Man Power?
When developing new desktop applications one of the first points you should consider will be the demands on hardware. A system that will be handling high volumes of data will most likely have quite a high performance demand, and as such will require a high power CPU to meet the demand. Although unlikely in this day and age, should you find yourself in the position where you are unable to source suitable hardware it may be necessary to re-evaluate the system design.
Have You Limited Yourself With Your Language?
Choosing a programming language for your project will not be as simple as it sounds as there is never a magic ‘one glove fits all’ when it comes to developing software. When selecting your language there is a variety of things that need to be considered:
For applications where there will be a large demand on the User Interface, languages such as C#, Java, & Python are always a good choice. Large savings can also be made on development time due to the large number of function libraries that are available. However, there are issues that should be taken into account. For example, whilst there is reasonable support for C# on other Operating Systems it is generally more suited for use with Microsoft Windows.
When it comes to Multi-platform or embedded systems languages such as C or C++ are typically a better choice. You will find that there is a wealth of development tools available for different processor based architectures, however they tend to be expensive and vary greatly in the functionality that they provide.
In terms of safety critical systems, languages such as ADA or SPARK would be a better choice. The downside to these languages is that the development tools available are generally very limited and in cases where they are available, they are generally very expensive to use.
For organisations that have a limited internal software resource the choice of language will almost certainly be biased by the skillset of their workforce.
It isn’t just Linux vs Microsoft?
Choosing the Operating System to run your desktop system is more than the never-ending Windows vs Linux supremacy battle. Factors such as familiarity and cost should be taken into consideration. For example where Linux is typically free to use, Windows requires the payment of a license fee. However, if your resources are more familiar with the development environment for Windows, is it really worth trying to work with Linux? The end user and the suitability of each operating system is also an important point to consider. When developing applications for other businesses you may find that they have a preference as to which operating system is chosen.
Did You Stop To Think About The Extras?
The term supporting applications is typically applied to applications either provided as part of the ‘Native’ Operating System (i.e. Notepad) or available as either COTS (i.e. Microsoft Office) or Freeware (i.e. Apache OpenOffice) software. The uses of supporting applications can vary considerably however the main benefit comes from time saved in product development. However supporting applications also bring additional issues that need to be considered:
Licensing – whilst ‘Freeware’ maybe free for home users it often isn’t free when used in a commercial context so consideration needs to be given in determining how potential licencing fees may affect cost savings against development. However, some open source licences will require your application to also be open source.
Interface – the interface to supporting applications can vary considerably from spawning and application via a command line style interface to communicating with the application via an application program interface (API). A good application program interface (API) can save a considerable amount of development time but only if it is well documented.
How Will You Maintain Security?
When it comes to desktop applications and security the first thing you should consider is whether there is need for your system to be on the internet. By isolating your system from the internet, hackers will need to have physical access to the system in order to steal or modify data, which is easier to protect. System security should be considered at every point of the development lifecycle and be tested thoroughly upon completion. Even after the final release, security should be considered as part of ongoing application maintenance to ensure it remains robust to new and emerging threats.
Remember There Will Be An End User
In most cases, a desktop application will require some form of user interface to enable interaction with its various features and functions, and often the end user does not have extensive software experience. So surely, it makes sense that the end user should be involved in the design process. Prototyping is a perfect example of how the end user can be included in the development and ensure that the final user interface will behave as they expect.
Is There An Expiration Date?
Have you stopped to consider just how long your system will need to operational before it is to be replaced? For example, systems for use in the rail industry are expected to last for at least 25 years before being updated or replaced. As you can imagine a long lifetime demand will have a direct impact on the decision making process and even limit the choice of operating systems and programming language.