Introduction
Today's software development environment is very different from 10 years ago: the market and customers' requirements for software functions, development progress, and quality are continually increasing, market competition is becoming increasingly fierce, new technologies are emerging quickly, and offsite development management is more complicated than ever (De Lemos et al., 2017). Most traditional software development methods are oriented towards stable business environments, and are not suitable for today's actual situation, and certainly not for future business environments (Weyns, 2017). The distribution of software operating environment, the multiple heterogeneity of software and equipment, the personalization and variability of user requirements, and the like, make software systems urgently need to achieve the resilience of adaptability, robustness, and reconstruction to achieve long-term survival, and adapt to the goals of resource and environmental change (unexpected bugs, updates, and patches).
Self-adaptive systems (SAA) are systems that can develop and learn for themselves and in which both their parameters and their structure adapt to the environment in real-time (De Lemos et al., 2017). SAA's are associated with systems that receive a large amount of data and whose mode of operation is in real-time (Quin, Bamelis, Sarpreet, & Michiels, 2019). A self-adaptive software system can modify its behavior in response to the changes in its requirements and operational environment at runtime (Tsigkanos et al., 2017). During runtime, the changes in the operational environment will produce new requirements, but traditional models can only deal with fixed requirements and cannot adapt themselves to the new requirements. Thus new models that can describe the new requirements automatically must be built to model the self-adaptive software systems. Besides, because of the continuity and uncertainty of the environment, the new models have infinite and uncertain states, so the correctness and properties of the new models must be verified.
Normally, conventional adaptive techniques are suitable to represent systems that undergo small changes in their structure. However, for the management of complex systems with multiple modes of operation or drastic changes in their characteristics, these conventional techniques usually take a long time to learn the new parameters of the model. The SAA paradigm is based on the concept of evolving (expanding or reducing) the structure of the system so that it can be able to adapt to changes in the environment (Erbel, Brand, Giese, & Grabowski, 2019). In this way, SAAs can develop their structure, functionality, and internal knowledge representation. This evolution is made from continuous learning obtained using the new data received and interacting with the environment. The framework of these systems is based on computational intelligence (fuzzy systems based on rules or networks of artificial neurons), and the tool for training is machine learning.
There are several reasons why the research topic is suitable. Software adaptation technology is a research hotspot that has gradually developed in the field of software engineering in recent years. The trend towards "mobile" and "pervasive computing" leads to a growing need for software systems that can adapt themselves to their dynamically changing process environment. Dynamic adaptation takes place at runtime of the application due to changes in the context or resource status (Weyns, 2017). For example, an application could adapt to lower transmission bandwidth, reduced battery capacity, new devices, and services, or changing user preferences.
Software adaptation refers to autonomously sensing changes in the environment and its state when the software is running, and then making decisions based on the situation, dynamically adjusting its behavior, and proactively adapting to it. Various changes have always ensured their stable, continuous, and efficient operation. Therefore, the research will introduce the current research issues, current status, and subsequent development trends in adaptive software, and introduce the reporter's research progress on software adaptation issues based on the combination of multi-agent technology and search software engineering technology, including how to adopt Multi-agent technology modeling adaptive software system, how to use search-based software engineering technology, fuzzy theory, machine learning, data mining and other technologies to realize change perception, decision-making, and overall software control process, and introduce support for adaptive software visual design.
References
De Lemos, R., Garlan, D., Ghezzi, C., Giese, H., Andersson, J., Litoiu, M., & Brun, Y. (2017). Software engineering for self-adaptive systems: Research challenges in the provision of assurances. In Software Engineering for Self-Adaptive Systems III. Assurances (pp. 3-30). Springer, Cham. Retrieved from https://people.cs.umass.edu/~brun/pubs/pubs/Lemos18SEfSAS.pdf
Erbel, J., Brand, T., Giese, H., & Grabowski, J. (2019). OCCI-compliant, fully causal-connected architecture runtime models supporting sensor management. In 2019 IEEE/ACM 14th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS) (pp. 188-194). https://doi.org/10.1109/SEAMS.2019.00032
Quin, F., Bamelis, T., Sarpreet, S. B., & Michiels, S. (2019). Efficient analysis of large adaptation spaces in self-adaptive systems using machine learning. In 2019 IEEE/ACM 14th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS) (pp. 1-12). IEEE. https://doi.org/10.1109/SEAMS.2019.00011
Tsigkanos, C., Nenzi, L., Loreti, M., Garriga, M., Dustdar, S., & Ghezzi, C. (2019). Inferring analyzable models from trajectories of spatially-distributed internet of things. In 2019 IEEE/ACM 14th International Symposium on Software Engineering for Adaptive and Self-Managing Systems (SEAMS) (pp. 100-106). IEEE. https://doi.org/10.1109/SEAMS.2019.00021
Weyns, D. (2017). Software engineering of self-adaptive systems: an organized tour and future challenges. Chapter in Handbook of Software Engineering (pp. 1-43). Retrieved from https://people.cs.kuleuven.be/~danny.weyns/papers/2017HSE.pdf
Cite this page
Software Dev: Evolving Strategies for Today's Market - Essay Sample. (2023, Apr 23). Retrieved from https://proessays.net/essays/software-dev-evolving-strategies-for-todays-market-essay-sample
If you are the original author of this essay and no longer wish to have it published on the ProEssays website, please click below to request its removal:
- Are Cyber-attacks a Threat to Today's Society? Essay Example
- Benefiting From Software Enhanced Cars
- Research Paper on Internet and Women
- Data Warehousing Essay Example
- Data Collection: Necessity or Risk? - Essay Sample
- Essay Example on Best Info System Infra: Hardware, Software, Networks, Data, Procedures
- Free Report Example on Over Dependence on Internet