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.

    More From The Blog

    Achieving Software Quality During Implementation

    Achieving Software Quality During Implementation

    Achieving Software Quality During ImplementationSoftware quality is not something you can introduce to a system during the final moments before a release, nor should it be something to sacrifice simply to increase the speed of development. Rather it should be given...

    Do You Know If Your Project Failing?

    Do You Know If Your Project Failing?

    Do You Know If Your Project Failing?Did you know that a study by IBM found that only 40% of software projects successfully meet schedule, budget or quality targets? Or that a separate study by the Portland Journal found similarly concerning results, with between 65...

    Is Your Project In A Mess? – Top 5 Solutions To Turn It Around

    Is Your Project In A Mess? – Top 5 Solutions To Turn It Around

    Is Your Project In A Mess? - Top 5 Solutions To Turn It AroundKeeping a project on track is far from a simple task. The mere act of bringing together a group of individuals with unique thoughts and opinions is bound to introduce a whole mix of problems. So is it...

    Developing A New Web Based System? Have You Considered…

    Developing A New Web Based System? Have You Considered…

    Developing A Web Based System? 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...

    Developing A New Embedded System? Have You Considered…

    Developing A New Embedded System? Have You Considered…

    Developing A New Embedded System? 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...

    Why Do You Need Requirements? – 6 Top Reasons

    Why Do You Need Requirements? – 6 Top Reasons

    Why Do You Need Requirements? - 6 Top ReasonsIt would be impossible to spend more than a month in the world of software development and never encounter requirements to some degree. Almost every project is centred around some form of requirements documentation, and...

    The Hazards of Updating Legacy Systems

    The Hazards of Updating Legacy Systems

    The Hazards of Updating Legacy SystemsThere is, of course, only one real hazard – to fix a bug or make an enhancement and, in so doing, to introduce a new problem.  The problem usually manifests itself in an area far away from where the changes have been made and so...