Several Future Trends in Software Systems

2022-10-31 09:00:00
CMU SEI
Source
Translated 460
Summary : To anticipate the future research and development required to support software engineering, we must pay attention to the several major trends of software systems.

In order to anticipate the future research and development required to support software engineering, we must pay attention to the several major trends of software systems.

1. The software engineering pipeline is changing, accelerating the production of software code.

Image Source: Cyberark

Today, enterprises are challenged by a rapidly changing competitive environment, evolving security requirements and performance scalability. Organizations struggle to develop and deploy rapidly with innovation and confidence, bridging the gap between operational stability and rapid functional development. At the scale of large aerospace or product organizations such as Amazon, this often means that thousands of separate software teams must be able to work in parallel to deliver software quickly, securely and reliably, with zero tolerance for disruption or errors. Rapid development practices, such as Continuous Integration/Continuous Development (CI/CD) and DevSecOps, are being used to deliver software functionality quickly and reliably. As this rapid development/deployment continuum evolves further, the concept of a software engineering pipeline is evolving into a dynamic process through which new capabilities are introduced into evolving systems.

2. New systems will surpass what current software engineering theory, tools, and practice can support.

  • Highly adaptive defence systems. Software increasingly supports new heterogeneous computing systems that combine intelligence, weapons, human-machine collaboration and other capabilities.
  • Systems that perform large-scale data fusion. These systems leverage large data streams, including open-source data for news or intelligence. These data streams will also drive new ways of building future software systems.
  • Smart cities, buildings, roads, cars and other smart vehicles. Software systems are now part of the critical infrastructure in these areas, and they need to handle large-scale integration and properly address security and privacy issues.
  • Personal digital assistants. Software systems must be able to learn and adapt as part of their integration in home, business and national security workflows, as well as in our personal lives.
  • Dynamic integration of healthcare. Devices in homes, doctors and hospitals will increasingly be integrated using functions and data. This integration will lead to better disease prevention, treatment and recovery care.
  • Social-scale systems. These platforms are becoming more influential, driven by connectivity, artificial intelligence and data science. As these systems evolve, they influence social behaviour and have an impact at a societal level. Such applications have grown rapidly over the last decade, with 3.96 billion people worldwide using social media today.
3. Scale fuels the need for a secure and resilient software portfolio.

The range and size of systems for software are constantly changing and growing. As computer hardware improves, more complex and advanced software can be developed. As more devices are connected to the Internet of Things (IoT) via sensors and networks, the increase in scale is a trend that shows no sign of slowing down. Developing and maintaining components from scratch in these large, complex systems is no longer practical. As a result, there is a significant trend towards integrating (and continually re-integrating) software systems from modular components, many of which are reused from existing elements.

4. AI systems' development and maintenance are similar to traditional software systems' development.

AI is an expanding trend as it is increasingly used in various industries. And AI is a field with many sub-fields and applications with great software development potential. AI-enhanced software development promises to automate common or tedious tasks and make processes more efficient, effective and enjoyable. Software engineering needs to focus on AI's challenges to software analysis, design, build, deployment, maintenance and evolution.

5. Data privacy and trust are increasingly important to design considerations for software systems.

Data is now a strategic asset, bundled, shared, sold and distributed globally. Techniques to use this data appropriately while protecting it and preventing its misuse, such as differential privacy, pose significant architectural and software engineering challenges related to privacy, trust and ethics. These techniques are important for the census, medical analysis and other data analysis efforts that involve collecting personal information. Trust relates to user confidence in the data or output of systems (especially those with AI applications). Other technologies (e.g. blockchain technology) also have the potential to build trust. They can open up new software engineering opportunities with software testing, quality, configuration management and maintenance applications.


Need more help? Check out the Zentao blog


--


Read more:

Write a Comment
Comment will be posted after it is reviewed.