-
Essay / Research on Improving Cost Estimation of Function Point Analysis Software
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 that target people familiar or unfamiliar with programming. Normally, users of software applications focus less on the underlying mechanisms and configurations regarding system functionality. Additionally, these users demand applications that are easy to use and interact with. Additionally, systems must meet requirements gathered from user concerns. As a result, software designers specializing in user interfaces need tools with supporting components to create products with the required functionality. UI functions are more dynamic and integrate various frameworks into their development activities. Software engineers apply different methodologies in the design, development and implementation of software systems to meet ever-changing user needs. Say no to plagiarism. Get a tailor-made essay on “Why Violent Video Games Should Not Be Banned”? Get an Original EssayDue to various functional aspects of software systems, proper metric systems remain a major concern in software engineering. Therefore, software engineers focus on measuring feature size in software product development projects. In order to reduce the complex task of software metrics in terms of functional size, a functional point analysis method was developed. Functional point analysis refers to standardized methods of determining the size of software using functional constraints that determine the key features to be designed. It is important to note that 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 measuring software applications in function point analysis include the attributes of data functionality and transaction functionality. Specifically, metrics for the two core functionalities are determined by evaluating system product scope, quality indicators, productivity, and system performance. One of the most important roles of software engineers includes estimating system complexity and total costs. Estimates and calculations of system functionality tend to be complex. However, the existence of a function point analysis method helps system engineers estimate the function points and parameters of the entire project, in addition to storing the results for future reference. It is important to note that function point analysis takes into account the functional requirements of the software system. On the other hand, non-functional constraints of software products are largely taken into account in the general characteristics of the system as well as in the estimation of the value adjustment factor. In systems development projects, clients are usually concerned about development speed and project cost. Accordingly, it is necessary to examine the characteristics of the system that influence others, which leads to establishing the relationship between values. Essentially, non-functional requirements influence complexityof the software product, as are the functional requirements. It is therefore necessary to study ways to incorporate non-functional requirements into estimation methods applied to functional requirements. Function Point Analysis Function point analysis evaluates system metrics from a functional point of view, thereby solving problems associated with technology dependency in the development life cycle. FPA is applied to software development without considering the type of programming language, development methodology and hardware platforms. The effectiveness of FPA in software engineering is achieved through comprehensive application analysis in three steps. The first step in function point analysis is to identify the forms of transactions to be performed in software applications. Second, engineers evaluate and evaluate software system components. Finally, the process involves assessments of general system characteristics. What are the non-functional requirements of a software system? Non-functional requirements are the functionalities that specify the operations of a system under different constraints or quality perspectives. Essentially, they describe how the system works and determine its quality. Generally, non-functional requirements are grouped into two broad classifications. The first category concerns the qualities of execution while the second is associated with the qualities of evolution. Non-functional runtime requirements are exposed at system runtime and include security, usability, and safety. Rather, 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 which are implemented using a system design plan, the implementation of non-functional requirements is described using a system architecture. Capturing non-functional requirements and matching them to the architectural plan tends to be complicated for software engineers. This is because users have difficulty explaining non-functional requirements versus functional requirements. Several techniques can be used to 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 features. These are data communications, data processing, system performance, hardware configurations, transaction rates, data entry, end user efficiency, online updates , reusability, ease of installation, ease of use, support for multiple sites and ease of change. After evaluating the general characteristics of the system, they contribute to the final value adjustment factor. These requirements greatly influence the development costs of the software project compared to the functional requirements. As a result, sizing strategies should be used in order to effectively plan and estimate the resources required for the development process as well as improve the quality of the software product. Thus, based on the value adjustment factor, theNon-functional requirements are grouped into bottom-up or top-down characteristics. In increasing non-functional software requirements, the estimated value increases proportionally to the actual values denoting characteristics such as resolution and system throughput. Conversely, by decreasing non-functional requirements, the estimated value increases as the actual value that designates them decreases, which can include wait time and cost. What are the non-functional requirements added to the general system characteristics 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 as well as modifiability. These features specify the external constraints that software products must meet in the development process. Thus, the list of non-functional requirements is broad depending on the robustness of the system developed. The overall quality of software products is the goal of customers and developers. Therefore, in software engineering, there are different metrics that determine the quality constraints of software applications. Essentially, one should avoid injecting 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 evolve from time to time. As a result, the gradual evolution of software development technologies and requirements leads to re-examining 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 address both standalone and distributed software applications. The calculation of non-functional requirements and how they are mapped to general system characteristics differs between systems. Based on the function point analysis, the 14 general characteristics of the system are classified as follows.1. Data communications2. Distributed data processing3. Performance4. Widely used configuration5. Transaction rate6. Online data entry7. End-user efficiency8. Online update9. Complex treatment10. Reusability11. Ease of installation12. Ease of use and use13. Several sites14. Facilitating ChangeBelow are the most common non-functional requirements of software applications and how they map to the respective general system characteristics. Non-functional requirement General system characteristics Reliability Operational ease Response time No mapping offered Performance Performance, data capture, updating Security No mapping offered Availability Online data capture, ease of operation Scalability Transactional pricing Capacity Transactional pricing, multiple locations . Mapping Operational Ease to Reliability Operational ease is the twelfth general system characteristic under the Function Point Analysis categorization. This characteristic gives a reflection on the automation capacity of the system. According to this feature, once a software application is developed, it should require minimal manual interventions. As a result, the software product must have the ability to maintain a level of performancerequired in the event of a breakdown or breakdown. The operational ease capability requires systems to recover affected data and performance level within a short period of time in the event of a system failure. As a result, the general characteristic of the system is mapped to the non-functional requirement of reliability. It therefore defines the efficiency of the data recovery system and the level of performance within the required time frame in the event of a system failure. Performance mapping, online updating and online data entry according to non-functional performance requirements. This functionality concerns real-time applications that have very restricted parameters in terms of performance, throughput level and user service. This affects the degree of performance requirement relative to system response time during business hours. Therefore, non-functional performance requirements can be mapped onto the GSC. Indeed, software systems must meet expected performance levels such as response, throughputs and processing times. 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, the creation of graphical interfaces should incorporate measures such as validation, user assistance instructions and high-speed data entry processes. Mapping Transaction Rate to Nonfunctional Scalability Requirements Most enterprise systems applications experience increased transaction rates on an occasional basis. Significantly, the increase in transaction time reaches a given maximum level, so no more drastic increase is achieved. As a result, it is necessary to focus on transaction rate during the design and implementation processes of software products. In this regard, it is notable that transaction rates change from time to time. This leads to the addition of the non-functional scalability requirement to this feature on the GSC. The requirement for scalability allows software systems to meet specific operational loads. This significantly guides software engineers in designing software applications capable of meeting high resource loads, thereby minimizing wastage of time and space. However, modern software applications do not focus on this GSC due to the configurations built into the hardware systems. Mapping transaction rate and multiple sites based on NFR capacity Capacity requirements are added to the fifth feature of the GSC which is transaction rate. As a result, it is added to the general feature of the multi-site system. In doing so, the system requirement aims to increase the service delivery of the developed applications. Software applications must have the capacity to handle more user requests over time without any failures. Therefore, capacity implies portability of the system as it must be able to be used on different platforms. This is implemented by considering the multiple site functionality which allows applications to be operated on different systems with high levels of compatibility. Mapping online data capture and usability of GSCs to non-functional availability requirements. These features are typically associated with real-time applications. which are designed to support distributed processing. Thatprimarily involves ensuring that the functionality of software products provides the intended service when needed. For example, applications should allow users to enter data via forms. Accordingly, systems should be designed with simple graphical user interfaces that facilitate user interactivity with the systems. These GSCs are therefore mapped to the non-functional availability requirements of the systems. Data entry features should be readily available in the software application, especially those based on online sites. Are there any other non-functional requirements to add to the 14 general system characteristics in the function point analysis (I thought about security). In software engineering, the complexities of cost estimation can be addressed by examining a variety of critical project attributes. With the increasing demand for high-performance systems, it is necessary to add more non-functional requirements to the 14 GSCs in 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 by different software engineering companies. Most customers demand software products that incorporate high security features in addition to contributing to product quality. As a result, it is essential for software engineers to analyze cost estimates and develop security features in various software systems. Software security cost estimates should be formulated based on general system characteristics when designing the function point analysis. When adding the non-functional security requirement to the 14 general security characteristics, emphasis should be placed 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 probabilities associated with data loss due to errors. Accordingly, it is suggested that the required security be integrated into the 14 GSCs to improve the recovery features 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 in the general system are the planning phase, the design phase, the coding phase, the testing phase and finally the implementation phase. At all these stages, different safety features are evaluated in order to efficiently calculate cost estimates. The table below shows the suggested formulation plan for integrating security features into the 14 GSCs at different stages of software development. Development stage Security aspect Planning Security requirements Design Security features and functional features Coding Attack planning, secure coding, review and audit Testing Security assurance, security review, infrastructure security measures Implementation Hardening software and application security monitoring. What are the general security requirements for system software? For safety-critical systems, security requirements are determined by examining errorspossible resulting from development processes. Security requirements are specified taking into account decisions, risk levels, security assurance level and security visibility from the software development perspective. Therefore, the specifications of software safety requirements are determined by analyzing the initial dangers and defects of previous similar systems. Typically, security requirements for software systems are determined by reducing risk control measures into requirements appropriate for the systems at a given stage of development. This leads to mapping out the system requirements, associated risks, and the code module to be assigned. In this research, the types of security requirements for software systems are derived at each stage of project development. Essentially, this allows software engineers to estimate security costs as a requirement in function point analysis. In general, security requirements for software systems include the safety of hardware, software, and people in the system environment. Hardware security mainly focuses on damage caused by foreign objects injected into the hardware components of the system. Hardware security concerns the physical attributes of the system. The security of physical system components may be affected by external subjects affecting the overall security of the system and by human subjects. Accordingly, software security requirements address defects and errors associated with software commands necessary for system operation. These result from code design and logic errors during the software systems development process. Additionally, human safety requirements are based on errors related to 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. During the planning phase, human, software and hardware security requirements are gathered to avoid possible human-made errors during project development. Security requirements from the design phase include security features of hardware and software. This involves proper design of hardware components and software processes to prevent future risks resulting from failures. During the development phase, software security requirements are gathered with respect to the coding and associated logic of the programs. Accordingly, the testing phase involves analyzing the system security and human safety needs when the systems are used. Is the security requirement a non-functional requirement? The security constraint is a crucial non-functional requirement incorporated in the development of modern systems. Safety and security are included in software engineering projects due to increasing instances of hazards and negative impacts of systems. As a result, software engineers have decided to incorporate safety factors into design processes to improve the fault tolerance of systems. This has been driven by the reported number of system outages and dangers that have seriously harmed users. As a result, research into system security has also been influenced by the widespread problems of identity theft, in addition to cases of fraud, among other security threats. As a result, security constraints have been integrated into the analysis of software project engineering needs. By integrating security as a requirementFunctional in systems engineering, software engineers are able to trace certain aspects of defects and coding errors. This reinforces the reflection of incomplete and terrible assumptions related to how systems work. As a requirement, security features are applied to software applications and safety-critical systems in which defects can lead to negative impacts. Significantly, security is a non-functional requirement that is considered when developing systems involving interaction of components in a specified environment. . Therefore, it is considered an emerging property in software engineering. This implies that the characteristic manifests itself when the system is used. The requirement is analyzed by considering that software systems become faulty or dangerous when applied in a given environment rather than when not in use. As a result, non-functional security requirements significantly determine the goals and existence of organizations. This is because the assessment of security as a requirement has a direct impact on the risks associated with operating systems under certain conditions. Due to its importance in systems engineering environments, it is necessary to extend function point analysis by including cost estimates for security features. Therefore, identifying general system characteristics that can be mapped to security non-functional requirements is a necessity for improving software cost estimates. Do security requirements play an equal role in estimating the costs of a software system and software? Software cost estimation depends on different attributes that have a direct impact on the quality and accuracy of software projects. Essentially, customers demand secure systems that can be used safely in terms of human health and information protection. Thus, security requirements analysis is essential in the process of software system development and cost estimation. System security influences the final cost estimation of software projects due to the engineering standards used to design secure systems. As a result, software development costs increase significantly. Significantly, safety requirements influence construction costs, required development efforts and overall schedules. It is therefore crucial to make early estimates of security costs in order to overcome possible financial limitations in system development. By extending the function point analysis, a mathematical formulation can be derived to account for safety elements in cost estimation. Function point analysis is calculated using two different measurements. The first metric is determined by calculating five components including External Inputs (EI), External Outputs (EO), External Requests (EQ), Internal Logic Files (IIF) and finally External Interface Files (ELF) . The five components are assigned weights leading to the unadjusted function point. The results for the UFP are then determined using the expression below.UFP = EI + EO + EQ + ILF + EIFThe second measure is to assess the security requirements, using the 14 GSCs. After mapping the security requirements onto the 14 general system characteristics, the degree of influence of the characteristics is determined based on a scale of 0 to 5. It is important to note that the degree of influence determines the strength of a requirement>=43).