Systems engineers are responsible for providing products with visual parameters that improve user interactivity with software systems. End-user program design involves coding system modules intended for people with or without programming familiarity. Typically, users of software applications focus less on the underlying mechanisms and configurations related to system functionality. Additionally, these users demand applications that are easy to use and interact with. Additionally, systems should address requirements gathered from user concerns. As a result, software designers specializing in user interfaces need tools with supporting components to create products that provide the required functionality. UI features are more dynamic and incorporate different frameworks into their development efforts. Software engineers apply different methodologies in designing, developing, and implementing software systems to meet evolving user needs. Say no to plagiarism. Get a tailor-made essay on "Why Violent Video Games Shouldn't Be Banned"? Get an Original Essay Due to the different functional aspects of software systems, adequate metric systems continue to be a major concern in software engineering. Therefore, software engineers focus on measuring feature size in software product development projects. To reduce the complex task of software metrics in terms of functional dimensions, the functional point analysis method was developed. Functional point analysis refers to standardized methods for determining software dimensions using functional constraints that determine the key features to be designed. Significantly, this method is universal because its application is not limited to programming languages and technologies. In functional point analysis, two main components are measured. The most crucial aspects of software application measurement in function point analysis include data functionality and transaction functionality attributes. Precisely, the metrics of the two basic characteristics are determined by evaluating the system's product scope, quality indicators, productivity and system performance. One of the most significant roles of software engineers includes estimating system complexities and total costs. Estimates and calculations of system functionality tend to be complex. However, the existence of function point analysis method helps system engineers in estimating function points and parameters of the entire project as well as storing the results for future reference. Significantly, function point analysis considers the functional requirements of the software system. On the other hand, non-functional constraints of software products are widely considered in the General System Characteristics as well as in the estimation of the value adjustment factor. In systems development projects, customers are usually concerned with the speed of development and the cost of the project. Consequently, it is necessary to examine the characteristics of the system that influence others, which leads to establishing the relationship between the values. Essentially, non-functional requirements influence the complexity of the software product just like functional requirements. Therefore, it is necessary to study ways to incorporate non-functional requirements into estimation methods applied to functional requirements. Functional point analysisFunctional point analysis evaluates system metrics from a functional perspective, thus solving problems associated with technology dependency in the development lifecycle. FPA is applied in software development without considering the type of programming language, development methodology, and hardware platforms. The efficiency of FPA in software engineering is achieved through comprehensive analysis of applications in three phases. The first phase of the function point analysis concerns the identification of the forms of transactions to be carried out in software applications. Second, engineers evaluate and evaluate the components of the software system. Finally, the process involves evaluations of the general characteristics of the system. What are the non-functional requirements of a software system? Non-functional requirements are characteristics that specify the operations of a system under different quality constraints or perspectives. Essentially, they describe how the system will function and determine the quality of the system. Generally, non-functional requirements are grouped into two main classifications. The first category refers to the qualities of execution while the second is associated with the qualities of evolution. Non-functional execution requirements are presented at system runtime and include safety, usability, and security. In contrast, the non-functional requirements of evolution determine the structure of the system and include testability, extensibility, scalability, and maintainability. However, most software engineers rely on availability, capacity, performance, reliability, and security requirements when analyzing NFRs. Unlike functional requirements that are implemented using the system design plan, the implementation of non-functional requirements is outlined using a system architecture. Capturing non-functional requirements and matching them to the architectural plan tends to be challenging for software engineers. This is because users have difficulty explaining non-functional requirements compared to functional ones. Several techniques can be employed in an attempt to model non-functional requirements. Some of the common techniques include natural language processing, speech processing, aspect-oriented requirements engineering, and feature-oriented modeling. Basically, the general characteristics of the system are classified using function point analysis into 14 main characteristics. These are data communication, data processing, system performance, hardware configurations, transaction speed, data entry, end-user efficiency, online updates, reusability, ease of installation, ease of use, multiple site support and facilitation of changes. After evaluating the general characteristics of the system, they contribute to the final value adjustment factor. These requirements significantly influence software project development costs compared to functional requirements. Consequently, sizing strategies should be used to efficiently plan and estimate the resources required in the development process and to improve the quality of the software product. Therefore, based on the value adjustment factor, non-functional requirements are grouped into ascending or descending characteristics. In increasing non-functional software requirements, the estimated value grows proportionally to the actual values that denote characteristics such as system resolution and throughput. In contrast, in decreasing non-functional requirements the estimated value grows as the actual value denoting them decreases, which may include waiting times and costs. What are the requirements notfunctional additions to the general system features proposed in previous research (such as security, etc.)? How to Map General System Characteristics to Non-Functional Requirements Non-functional requirements represent system attributes such as portability, efficiency, testability, reliability, human engineering, understandability, and modifiability. These characteristics specify the external constraints that software products should satisfy in the development process. Therefore, the list of non-functional requirements is large depending on the robustness of the developed system. The overall quality of software products is the goal of customers and developers. Therefore, in software engineering there are several metrics that determine the quality constraints of software applications. In essence, it is necessary to avoid introducing software product quality issues during the requirements gathering and design processes. Mapping general system characteristics to non-functional requirements aims to improve the accuracy of estimates. Software systems and development technologies continue to change from time to time. Consequently, the progressive evolution of technologies and software development demands leads to the re-examination of the 14 general system characteristics and their influence on non-functional requirements. This is due to the need for special coding methodologies and infrastructure requirements that cater for both standalone and distributed software applications. The derivation of non-functional requirements and how they map to overall system characteristics differ between systems. Based on the function point analysis, the 14 general characteristics of the system are classified as follows.1. Data communication2. Distributed data processing3. Performance4. Widely used configuration5. Transaction rate6. Online data entry7. Efficiency for the end user8. Online update9. Complex processing10. Reusability11. Easy installation12. Ease of operation and use13. Multiple sites14. Facilitating Change Below are the most common non-functional requirements of software applications and how they map to their overall system characteristics. Non-functional requirement Reliability general characteristic of the system Operational ease Response time No mapping offered Performance Performance, data entry, update Security No mapping offered Availability Online data entry, operational ease Scalability Transactional rates Capacity Transactional rates, multiple sites. Mapping from operational ease to reliability Operational ease is the twelfth general system characteristics under the categorization of function point analysis. This feature provides a reflection on the automation capability of the system. According to this characteristic, once a software application is developed, it should require a minimum amount of manual intervention. Accordingly, the software product should have the ability to maintain the required level of performance in the event of failures or failures. Operational ease requires that systems restore the affected data and performance level in a short time in the event of a system failure. As a result, the general characteristic of the system is mapped onto the non-functional reliability requirement. It therefore defines the efficiency of the data recovery system and the level of performance within the required time in case of system failure. Performance mapping, online updating and online data entry against non-functional performance requirements. This feature refers to real-time applications that incorporate highly parametersrestricted in relation to performance, throughput level and user service. Affects the degree of performance requirements in relation to system response time during business hours. Therefore, the non-functional performance requirement can be mapped onto the GSC. This is because software systems must meet expected performance levels such as response, throughput speed and processing time. As a result, online systems are developed with high performance expectations. Furthermore, the non-functional performance requirement also concerns data entry features on online applications. With the growing trends in real-time systems, GUI creation should incorporate measures such as validation, user help instructions, and high-speed data entry processes. Mapping transaction rate to non-functional scalability requirements. Most enterprise system applications experience increased transaction rates on an occasional basis. Significantly, the increase in transaction time reaches a given peak level such that no more drastic increase is possible. As a result, it is necessary to focus on the transaction rate during the design and implementation processes of software products. In this regard it is worthy of note that transaction rates vary from time to time. This leads to the addition of the non-functional requirement of scalability to this functionality on the GSC. The scalability requirement allows software systems to adapt to specific operational loads. This significantly guides software engineers in designing software applications with the ability to accommodate high resource loads, thus minimizing wastage of time and space. However, modern software applications do not focus on this GSC due to the configurations built into hardware systems. Mapping Transaction Rate and Multiple Sites to Capacity The NFR capacity requirement is added to the fifth GSC characteristic which is the transaction rate. As a result, it adds to the overall feature of the multi-site system. Thus, the system requirement aims to increase the service provision of the developed applications. Software applications should have the ability to handle multiple user requests in a timely manner without any error. Accordingly, the capability implies the portability of the system as it should be able to be used on different platforms. This is implemented by considering the multi-site functionality that allows applications to run on different systems with high levels of compatibility. Mapping online data entry and operation eases GSCs around non-functional availability requirements. These capabilities are usually associated with real-time applications designed to support distributed processing. This is primarily about ensuring that software product features deliver the intended service when required. For example, applications should allow users to enter data through the use of forms. Accordingly, systems should be designed with simple graphical user interfaces that support easier user interactivity with the systems. These GSCs are then mapped to the systems' non-functional availability requirements. Data entry features should be readily available in the software application, especially those based on online sites. There are other non-functional requirements to add to the 14 general system characteristics in function point analysis (I thought about security) In software engineering, complexities in cost estimation can be addressed by examining a variety of attributescritical in the project. With the growing demand for high-performance systems, it is necessary to add additional non-functional requirements to the 14 GSCs in the function point analysis. For example, the security factor of the software application is usually invoked after the development process. Secure systems are in high demand among various software engineering companies. Most customers require software products that incorporate strong security features as well as contribute to product quality. As a result, it is essential for software engineers to analyze cost estimates and request the development of security features in various software systems. Software security cost estimates should be formulated based on the overall system characteristics as a design in function point analysis. When you add the non-functional security requirement to the 14 general security characteristics, you need to focus on designing applications with high data integrity and recovery capabilities. In this research, it is proposed that the required security is mapped to the multiple sites, online updates, and data communication characteristics in the function point analysis. This is due to the number of users interacting with the systems and the associated probabilities of data loss due to errors. Accordingly, it is suggested to incorporate the required security into the 14 GSCs in order to improve the recovery characteristics of software products in addition to authentication measures. Software security aspects are considered in all design phases of the software project development life cycle. The five phases to consider when implementing security requirements into the overall system characteristics are the planning phase, the design phase, the coding phase, the testing phase, and finally the implementation phase. In all these phases, various safety features are evaluated in order to effectively calculate cost estimates. The following table illustrates the suggested formulation plan for integrating security features into the 14 GSCs at different stages of software development. Development phase Security aspect Planning Security requirements Design Security features and functional characteristics Coding Attack planning, secure coding, review and auditing Testing Security assurance, security review, infrastructure security measures Implementation Software hardening and security monitoring of applications. What are the general security requirements for a software system? For safety-critical systems, security requirements are determined by examining possible errors that arise from the development processes. Security requirements are specified by considering decisions, risk levels, security assurance level and security visibility in the software development perspective. Accordingly, the specifics of software security requirements are determined by analyzing the initial risks and failures of previous similar systems. Generally, security requirements for software systems are determined by narrowing risk control measures to appropriate requirements for systems at a given stage of development. This leads to the system requirements, the associated risks and the code module to be influenced. In this research, types of security requirements for software systems are derived at each stage of project development. In essence, this allows software engineers to estimate security costs as a requirement in function point analysis. In general, security requirements for software systems includethe hardware, software and human safety within the system environment. Hardware security mainly focuses on damage caused by foreign objects injected into the system's hardware components. Hardware security concerns the physical attributes of the system. The security of the physical components of the system can be compromised by external parties that affect the overall security of the system and by human subjects. As a result, software safety requirements address failures and errors associated with software commands necessary for system operation. These arise from code and logic design errors during the software systems development process. Furthermore, human safety requirements are based on errors associated with the use of software systems. As a result, it is necessary for software engineers to analyze possible errors during the development process and possible mitigations. In the planning phase, human safety, software and hardware requirements are collected in order to prevent possible human-caused errors in the development of the project. Design-time security requirements include hardware and software security features. This implies correct design of hardware components and software processes in order to prevent future risks resulting from failures. During the development phase, the software security requirements regarding coding and logic associated with the programs are collected. Accordingly, the testing phase involves analyzing system security and human safety needs when the systems are in use. Is the security requirement a non-functional requirement? The security constraint is a crucial non-functional requirement incorporated into the development of modern systems. Both safety and security are included in software engineering projects due to the increasing cases of dangers and negative impacts of systems. As a result, software engineers have decided to integrate safety factors into design processes in order to improve the fault tolerance of systems. This has been caused by the reported number of system failures and threats that have severely harmed users. As a result, system security research has also been influenced by widespread identity theft issues as well as cases of fraud among other security threats. safety. As a result, security constraints have been included in the requirements analysis in software project engineering. By incorporating security as a non-functional requirement into systems engineering, software engineers are able to track aspects of coding defects and errors. This improves thinking about incomplete and dire assumptions about systems operations. As a requirement, safety features are applied in software applications and safety-critical systems where failures can lead to negative impacts. Significantly, security is a non-functional requirement that is considered when developing systems that involve the interaction of components within a specific environment. As a result, it is considered an emerging property in software engineering. This implies that the feature manifests itself when the system is in use. The requirement is analyzed considering that software systems become defective or dangerous when applied in a certain environment rather than when not used. As a result, the non-function requirement of security significantly determines the goals and existence of organizations. This arises from the fact that safety assessment as a requirement directly affects the risks associated with the operation of plants under certain conditions. Given its importance>=43).
tags