Parts of a Software Application
Different parts of a software application
Let's start this article by defining what is a software application?
Today whatever we use on our laptops, computer, smart phones, TVs they are all nothing but software applications. For example a music player, a game, a website etc.
All these software applications have become an essential part of our life and now these pandemic times are adding fuel to fire by most of the things going digital and making these software applications gel with our daily routine.In this article we will understand what are different parts or components of a software application.
Before deep diving in different parts of a software application. Let's first understand what actually every software application does in very simple and general terms.
So this is whate every software application actually do.
- Accept the input from user. For example entering username and password on login screen.
- Process the user input. For example check if username and password are valid or not blank.
- Store the data. For example storing user preference or any kind of application data.
- Return the output to user on same or another screen. For example showing error if password is not much strong.
Based on above understanding we can say that any software application has mainly 3 parts
1. Frontend or user interface. This part is whatever that is visible to user. For example a login screen, list of products on shopping website, an error message etc.
2. Middle ware or processing logic. This part is responsible for processing user input, validations, storing the data and presenting output back to user. Middleware is a logic part which is never visible to user.
3. Data storage. This part is responsible for storing the application data. For example user preference and application settings.
For any software application will have these 3 parts. Let's try to understand how these parts are implemented in a software application.
A software application can be categorized in 2 categories based on the usage
1. Offline software applications
Offline software applications are those which do not require internet usage to function. For example a calculator application.
These applications have frontend and middleware part bundled in single code base and both frontend and middleware parts are implemented using same technology.
For data storage these applications have a standard database bundled inside the application. For example MySQL, SOLite etc.
Also these applications are desktop or mobile based and all the 3 parts are part of single application package and installed as a single package on each separate computer or mobile device.
Let's say a calculator application developed for desktop. It can be created using JavaFX for frontend and middleware part and MySQL or SQLite for database part. Entire calculator application is treated and installed as a single packate or each desktop or mobile device.
2. Online software applications
Online software applications are those which require use of internet to function. Most of the software applications developed today are online in some or other way. Example of online software applications ranges from mobile and desktop to web applications.
For any online software applications each part is created using separate technology. Let's try to understand how?
2. Middleware. This part is mostly implementd using one of the server technologies like JavaEE, .Net, PHP, Python, Node.js etc. This part is mostly developed in the form of REST or SOAP apis. Mostly known as web services.
3. Data storage: This part is implemented using a standard database technology like MySQL, MongoDB, GraphQL etc.
Unlike offline software applications in which all the above 3 parts are part of a single package. In online software applications these parts are part of separate packages and all installed separately.
Frontend part is installed on respective desktop or mobile device. Middleware and databases are installed on separate servers like Apache for example.
OK so this covers a high leve understanding of what is a software application and what are different parts of it and how they can look like.
Thats all for this article. Thank you for reading, will keep posting further articles on software development, technology and programming concepts.