Widely considered to be a part of systems engineering as a whole, software engineering is the term given to applying different approaches of engineering for developing new software. The software industry often overlaps computer and management science while being one of the direct sub-fields of engineering as a whole. Software is basically a set of programs required by a computer to function. The whole software industry encompasses all the businesses present for developing, maintaining, and publishing software through the use of all the different models of business. These models can be “license/maintenance based” or even “cloud-based”. Other software services for eg. Training, along with Documentation, Consultation, and even Data Recovery also fall under the Software Industry.

Now Software Engineering is a blanket term and research topics on the subject are very wide and encompass everything that humans around the globe are working on, to solve problems in the real world. A few of the important Software Engineering research topics of today are,

●  Polynomial Time or Non-Polynomial Time for specific algorithmic problems – One of the biggest examples of that is whether, in the Polynomial-Time, the Discreet Logarithm can be computed. Another one can be whether or not Polynomial Time is enough to solve Parity Games. Finding out whether or not the problem of graph isomorphism is possible to be solved in Polynomial Time, is another very important example of these unsolved problems.

●  Natural Language Processing Algorithms – This category includes problems like whether or not there is any perfect stemming in the English Language. The problem of whether or not the English language has any perfect syllabification algorithm.

●  Other Algorithmic Problems – This category includes important problems like the least possible complexity of the average case-time of Shellsort, which has a fixed gap sequence that is deterministic.

●  Computational Complexity: Its main focus is to classify computational problems as per as the inherent difficulty and then relating the cases to each other. It requires mathematical steps like algorithms to solve such problems. 

●  Programming Language Theory – This branch of software industry mainly deals with the design, analysis, classification, and implementation of programming languages as well as their individual features. It is also dependent on mathematics, cognitive science as well as linguistics, thus justifying why there are still unsolves problems. 

The above-discussed problems are not solved, however, a conical list of the unsolved problems in the software industry, are as follows:

  • Artificial Intelligence – Also referred to as “Machine Intelligence”, AI is basically the intelligence which any machine demonstrates instead of being the Intelligence (natural) demonstrated by living beings(eg. Humans, Animals, etc.). Extensive research on the subject is being carried out all over to find out new and innovative ways to use AI in different works of life. However, there have also been important research going on recently on how much AI is already affecting our lives and what it might lead to in the future. The biggest example of it is in Drones, especially defense drones, unmanned vehicles, Marian subservience, etc. Check out The effect of AI and Machine Learning in threat hunting.
  • Algorithms and Theory – This field of research helps to design new all accessible broadcasts scheme using aggregate signatures and a comparatively less signature cost. Check out Recommendation Engines.
  • Computational Biology – It includes understanding diseases and it’s various fields with the help of gene regulation, bioinformatics, and epigenomics. It focuses further on the application of technology and AI in the fields of medicine and healthcare. Biotechnology is the biggest example of this.  
  • Data Mining – The main use of data mining software is to extract and collect data from various sources on the internet which is stored and organized for later use as required. it can be used to retrieve data like name, age, sex, email IDs, telephone numbers, fax numbers, mailing addresses, bank details, and preferences, of the concerned from multiple unstructured formats as when the need arises. This is then gathered into databases and further used in formulating marketing policies and developing new products and services. This is a process used to form useful information from simple raw data. Software engineering is used to detect patterns in large quantities of data which allows for the development of better and improved marketing strategies, more sales, and even cost reduction.
  • Cloud Computing – The availability of a Computer System and it’s resources as per demand (mostly storing data and the power of computing) in the absence of any direct and/or active management by a user is called Cloud Computing. It generally describes the data centers which many users can access on the Internet. Through this, Firms can simply pay for what they use when they use it and can avoid upfront costs and also the complex process of owing and maintaining their own IT  infrastructure.
  • IoT – The Internet of things is a system of interrelated computing devices, mechanical and digital machines provided with unique identifiers and the ability to transfer data over a network without requiring human-to-human or human-to-computer interaction. There are a number of serious concerns about dangers in the growth of IoT, especially in the areas of privacy and security, and consequently, industry and governmental moves to address these concerns have begun. Check out The uses of IoT in the cement industry.