“Software” it is the term that changes the world. It is also called the soul of a computerised system. All we know that the computer has changed our world because after the invention of computer the time period of completing a work becomes very less as compared to human effort. From a small mobile to laptop or toy car to big car or aeroplane everything is automated. Now we can drive a car without putting the hands on the steering. Hence everything has become an example of an Artificial Intelligence and all the gadgets or devices whatever we called is run by a Software. Day by day our world is modernised with the help of continuously Software Development. That is why it has great craze on market and software developer are also get well paid too.

Software Development is said to be the series of computer activities which is dedicated to the process of creating, designing and supporting the software. It is called the brain of a computer that allows the computer to be clarified what to do and it is totally independent of hardware.

Software is basically three types they are a) SYSTEM SOFTWARE b) PROGRAMMING SOFTWARE c) APPLICATION SOFTWARE.

Let us discuss what these three types of software are.

SYSTEM SOFTWARE: This software is created to provide core functions such as disk managements, operating systems, utilities, hardware management and other utility operations that is why their utility areas are very specific.

PROGRAMMING SOFTWARE: These types of software are made in order to create a programme. They give the programmers some tools such as text editors, compilers, linkers and debuggers in order to create codes. These types of software have a wide area of implementations that is why programming software are very necessary because every software is run by a specific programme and coding.

APPLICATION SOFTWARE: This type of software is very essential because that is made in order to help users to perform tasks that is why this type of software has a great area of implementations. Application software are also called any application or apps. Media players, data management software are the main example of application software and applications are like any web or mobile application that is used to shop on amazon or share or upload pictures with facebook or Instagram.

Besides all these a fourth type software is there which is known as Embedded Software. But this is not a conventional software this type of software is used to control machines such as cars, industrial robots, telecommunication network etc and all these devices along with the software together they are called the INTERNET OF THINGS which is abbreviated as IOT. Hence this type of software is used in Artificial Intelligence, called AI.

Software Development is generally performed by Programmers or Software Engineers or by the Software Developers and sometimes their work is connected with each other.

Programmers or Coders write the source code in order to programme the computer to perform specific task such as processing online orders, merging database, routing communications, conducting searches or displaying text and graphics. Programmers expound the instructions from software developer and software engineers and use the programming language such as C++ or JAVA to bring out them.

Software Engineer usually uses the engineering principles to create software and systems to work out problems. Basically they use modelling language to conceive solutions further they can be applied when facing problems in a very simple way. Software Engineering solutions choose the path of scientific method they must work in the real world.

Software Developer has a less formal role as compared to software engineer because their area of implementation is involved with specific project area including writing codes. At the same time they drive the overall software development lifecycle including manging the development teams and processes and also conducting the software testing and maintenance. The work of the software development does not confine to coders or development teams. Many professionals like scientists or device fabricator or also hardware makers also create codes although they are not a primarily software developer. It is also not confined to traditional Information technologies or as a software business.

But we have to remember that there is an important distinction between custom software development and commercial software development. Custom software development is the procedure of creating, deploying and maintaining the software for a specific set of users, functions or may be for an organisation where as commercial software is designed for a variety of requirements which allows it to be marketed and distributed commercially.

Developing a software is involved the following steps and they are as follows:

SELECTING METHODOLOGY: It creates a frame work and here software development is applied. It defines an overall process or road map for the project. Some methodologies are Rapid Application Development (RAD), Scaled Agile Framework (SAF), Agile Development etc.

GATHERING REQUIREMENTS: It is to make out the document what is required by the user.

CHOOSING OR BUILDING AN ARCHITECTURE: In this step we have to build an architecture within which the software will operate.

DEVELOPING A DESIGN: In this step we have to develop a design in order to solve a specific problem which is presented by requirements which often includes the process models and story boards.

CONSTRUCTING A CODE: Here we have to construct a code in the correct programming language that involves peer and team review to eliminate problems and to produce quality software faster.

TESTING: It includes the pre-planned scenarios as a part of software design and coding and also we have to conduct a performance testing to simulate load testing.

MANAGING CONFIGURATION AND DEFECTS: In this step we have to manage and configure the defects in order to understand all the software artifacts (requirements, design, code, test) and build; distinct version of software.

DEPLOYING: Here we have to deploy the software for user and to respond for the user problems.

MIGRATING DATA: Here we have to migrate data to the new and updated software if needed.

MANAGING AND MEASURING THE PROJECT: In this step we have to manage and measure the project in order to maintain quality and delivery over the application lifecycle and to evaluate the development process.