Introduction
The requirements for security, stability, quality, and performance have been growing continuously for both hardware and software throughout the decades. This process is defined by a constant stream of new technological advancements. However, there are core issues with design from both software and hardware development points of view that prevent computer engineers from reaching a level desired by most high-end IT objectives set by modern companies. Yeh (2017) writes that security and privacy requirements “are important but necessarily general” (p. 96). This vagueness in description causes a multitude of issues in development (Iqbal et al., 2020). The paper will examine common obstacles caused by non-functional requirements in software development and hardware design to outline a research proposal for each of the topics.
Software Development
Software development processes continue to evolve as new practices emerge from technological advancements, yet not all design restrictions are resolved. Software development plays a vital part in the resolution of these long-standing issues, as it attempts to enhance processes and utilize resources at optimal capacity (Iqbal et al., 2020). During this stage, many companies focus on delivering a product that will perform its proposed functions. However, without well-integrated security and privacy measures, an application can have an adverse impact on overall performance, incur additional costs on both developers and customers, and hinder other processes instead.
Such issues often come from cost-optimization attempts during development processes and limitations imposed on teams. As a way to mitigate the high costs of software development, many companies utilize outsourcing as a method of cost optimization (Iqbal et al., 2020). This approach introduces additional risks, including high chances of failure of a project, security loopholes, and the lack of understanding of non-functional requirements (Iqbal et al., 2020). It is vital not to overlook these issues since many software projects are prone to failure due to the general avoidance of non-functional requirements during the development phase (Shahid and Tasneem, 2017). While it is vital for companies to create a product to their vision, ignoring basic requirements can harm their software as much as their financial gains.
Therefore, the software research proposal aims to determine the balance between attention to non-functional requirements and cost optimization. Legal requirements that define the security and privacy of an application must be included as an essential part of the development on par with functional requirements (Rahy and Bass, 2021). Adding quality checking for these features before release is viewed as costly by most companies, yet their lack can lead to significant revisions of the original design (Wahyuningrum and Mustofa, 2017). There are software development models that include cross-team cooperation that will focus on addressing all aspects of an application, yet they are less prevalent than those that are widely implemented due to higher costs (Rahy and Bass, 2021). Software engineering must include the evaluation of measures for all necessary parts as well as intended operations. Analytical testing for non-functional requirements is necessary to add throughout the development of application features. There is a need to establish the cost-efficiency of such measures and synthesize a workflow that will actively encourage the implementation of safety, privacy, and security.
Hardware Design and Limitations
The architecture of a machine can open a system for an attack as well. Currently, hardware often contains flaws in security that are neglected due to obscurity (Yeh, 2017). Outsourcing and complex supply chains leave a high window of opportunity for the injection of harmful components into hardware (Gu et al., 2020). There are other threats, such as direct physical attacks or Trojans (Gu et al., 2020). Unauthorized extraction of data due to the lack of countermeasures can incur not only significant financial losses but also legal concerns. However, there is an opportunity in hardware design to resolve issues listed for software development.
Dataflow in hardware parts can be more vulnerable to attacks as it is less protected. Technology-driven development allows engineers to create more complex applications, yet they may lack reconfigurability and flexibility, preventing them from being adaptable to new threats (Capra et al., 2020). The majority of solutions for design flaws in hardware remain focused on software-driven development, which makes them less efficient against more complex attacks (Gu et al., 2020). For example, hardware-based encryption and trust verification can be highly beneficial against such threats, yet they are not well-integrated into hardware design (Rahman et al., 2018). These design flaws need to be addressed by computer engineers with the possible application of the most recent technological advancements.
Interference with physical data storage or transmission devices is not uncommon. User hardware is not designed to be heavily encrypted, as the majority of organizations pursue high performance. Rahman et al. (2018) state that a “systematic approach for developing countermeasures” is necessary due to the rising threat of direct attacks on physical assets (p. 101). There are viable methods for protection, yet they are not widely utilized.
Therefore, the proposal stemming from this research is focused on the methods of implementing security measures for software protection from a hardware standpoint. Yeh (2017) discusses “hardware-enhanced security” as a possible solution for critical software parts (p. 97). However, there are tradeoffs in performance that are associated with such measures (Gu et al., 2020). There are possible solutions, such as encryption, that exist, yet they tend to be memory-intensive and incur high workloads, especially on cloud servers (Gu et al., 2020). It is essential to determine the type of protection that will be viable for different situations and scales. The proposal calls for the evaluation of these existing methods to assess their impact on performance and their potential for application in different settings.
Conclusion
In conclusion, these two proposals regarding long-standing issues can provide new opportunities at discovering potential ways to overcome limitations and requirement flaws in both software and hardware. Including non-functional requirements for security and privacy in the development stages of software on the same level of importance as functional design can resolve a portion of problems in computer engineering. In turn, hardware can be created with built-in protection for critical software applications that will be utilized on a machine to enhance these two factors.
The proposal calls for research on the benefits of integration of these measures in the core of software and hardware creation. This addition has the potential to significantly decrease the risks of failure for software applications and make systems that use hardware with built-in protection measures a new standard of quality in the IT sphere. While empirical testing often leads to proper addressing of safety, security, and privacy measures, it creates a gap in assessment, making it more difficult for developers to successfully eliminate said issues (Wahyuningrum and Mustofa, 2017). The role of non-functional requirements must be reassessed by developers.
Reference List
Capra, M. et al. (2020) ‘Hardware and software optimizations for accelerating deep neural networks: Survey of current trends, challenges, and the road ahead,’ IEEE Access, 8.
Gu, J. et al. (2020) ‘Enclavisor: A hardware-software co-design for enclaves on untrusted cloud,’ IEEE Transactions on Computers.
Iqbal, J. et al. (2020) ‘Requirements engineering issues causing software development outsourcing failure,’ PLOS ONE, 15(4).
Rahman, M. T. et al. (2018) ‘Physical inspection & attacks: New frontier in hardware security,’ 2018 IEEE 3rd International Verification and Security Workshop (IVSW).
Rahy, S. and Bass, J. M. (2021) ‘Managing non‐functional requirements in agile software development,’ IET Software.
Shahid, M. and Tasneem, K. (2017) ‘Impact of avoiding non-functional requirements in software development stage,’ American Journal of Information Science and Computer Engineering, 3(4), pp. 52–55.
Wahyuningrum, T. and Mustofa, K. (2017) ‘A systematic mapping review of software quality measurement: Research trends, model, and method,’ International Journal of Electrical and Computer Engineering (IJECE), 7(5), p. 2847.
Yeh, D. (2017) ‘Designing secure electronics: Challenges from a hardware perspective,’ IEEE Design & Test, 34(3), pp. 96–102.