close
test_template

Research on Enhancement in Function Point Analysis Software Cost Estimation

About this sample

About this sample

close

Words: 3425 |

Pages: 8|

18 min read

Published: Sep 19, 2019

Words: 3425|Pages: 8|18 min read

Published: Sep 19, 2019

System engineers are tasked with roles of providing products with visual parameters which enhance user interactivity with software systems. End-User program design involves coding system modules that target people with or without programming familiarity. Normally, users of software applications focus less on the underlying mechanisms and configurations regarding system functionalities. Moreover, these users demand applications that are simple to use and interact with. In addition, the systems should solve the requirements collected from the users’ concerns. As a result, software designers majoring in user interfaces require tools with supportive components to create products providing the required functionalities. User interface functions are more dynamic and incorporate diverse frameworks in their development activities. Software engineers apply different methodologies in designing, developing and implementing the software systems to meet the constantly changing user needs.

'Why Violent Video Games Shouldn't Be Banned'?

Due to diverse functional aspects in software systems, proper metric systems remain to be a major concern in software engineering. Therefore, software engineers focus on measuring the functionality size in software products development projects. In reducing the complex task of software metrics in terms of functional size, functional point analysis method was developed. Functional point analysis refers to the standardized methods of determining software sizes by using functional constraints which 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 major components are measured. The most crucial aspects of software application measure in function point analysis comprise of the data functionality and transaction functionality attributes. Precisely, the metrics of the two basic features are determined by evaluating the scope of the system product, quality indicators, productivity and the system performance.

One of the most significant role of software engineers includes estimation of complexities of the system and the total costs. Estimations and calculations of the system’s functionalities tends to be complex. However, the existence of function point analysis method aids system engineers in estimating the function points and the whole project’s parameters in addition to storing the results for future reference. Significantly, function point analysis considers functional requirements of the software system. On the other hand, the non-functional constraints of the software products are considered widely in the General System Characteristics as well as the value adjustment factor estimation. In systems development projects, customers are usually concerned with the development speed and cost of the project. As a result, there is a necessity of examining the system characteristics that influence others, which leads establishing the relationship between the values. Essentially, non-functional requirements influences the complexities of software product just as the functional requirements. Thus, there is need to investigate ways of incorporating nonfunctional requirements into the estimation methods applied on functional requirements.

Functional Point Analysis

Function point analysis evaluates the system’s metrics from a functional perspective, thereby resolving issues associated with technology dependency in the development lifecycle. FPA is applied in software development without considering the type of programming language, development methodology and the hardware platforms. The efficiency of FPA in software engineering is achieved through comprehensive analysis of applications in three stages. The first stage of function point analysis concerns identifying the forms of transactions to be made in the software applications. Secondly, the engineers evaluate and appraise the components of the software system. Lastly, the process involves evaluations of the general system characteristics.

What are the non-functional requirements of a software system?

Non-functional requirements are the features that specify the operations of a system under different constraints or quality prospects. Essentially, they describe how the system will work and determine the quality of the system. Generally, non-functional requirements are grouped into two major classifications. The first category relates to execution qualities while the second is associated with evolution qualities. Execution non-functional requirements are exhibited at the run time of the system and include security, usability and safety. On the contrary, evolution non-functional requirements determine the system’s structure and comprise of testability, extensibility, scalability and maintainability. However, most software engineers base on the availability, capacity, performance, reliability and security requirements when analyzing the NFRs. Unlike the functional requirements which are implemented using system design plan, implementation of non-functional requirements is outlined using a system architecture. Capturing of the non-functional requirements and matching them to the architectural plan tends to be complicated among software engineers. This is because users face difficulties in explaining the non-functional requirement compared to the functional ones. Several techniques may be employed in trying to model the nonfunctional requirements. Some of the common techniques include natural language processing, speech processing, aspect-oriented requirements engineering, and feature oriented modelling.

Fundamentally, general system characteristics are categorized 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 of multiple sites and change facilitations. After evaluating the general system characteristics, they contribute to the final value adjustment factor. These requirements greatly influence the software project development costs compare to the functional requirements. As a result, sizing strategies should be employed in order to efficiently plan and estimate the resources required in the development process as well as improving on the quality of the software product. Thus, basing on the value adjustment factor, non-functional requirements are grouped into either ascending or descending features. In ascending non-functional software requirements, the estimated value grows proportional to the actual values denoting the features such as resolution and throughput of the system. Conversely, in descending non-functional requirements the estimated value grows as the actual value denoting them decreases which may include waiting time and cost. Which are the nonfunctional requirements added to the general system characteristics proposed in previous research (like security, etc)?

How to Map General System Characteristics to the Non-Functional Requirements

Non-functional requirements represent the system’s attributes such as portability, efficiency, testability, reliability, human engineering, understandability as well as modifiability. These features specify the external constraints that software products should meet in the development process. Thus, the list of non-functional requirement is wide depending on the robustness of the system developed. The overall quality of the software products is what customers and developers target. Therefore, in software engineering, different metrics exist that determine the quality constraints of the software applications. Essentially, there is need to avoid injecting quality issues of the software products during the requirements gathering and design processes.

Mapping of the general system characteristics to the non-functional requirements aims at improving accuracy in the estimates. Software systems and development technologies keep on changing from time to time. As a result, the progressive evolution of software development technologies and demands lead to the reexamination of the 14 general system characteristics and their influence on the non-functional requirements. This is due to the need of special coding methodologies and infrastructure requirements that cater for both stand-alone applications and distributed software applications. Derivation of nonfunctional requirements and how they are mapped to general system characteristics differ among the systems. Basing on the function point analysis, the 14 general system characteristics are classified as follows.

1. Data communications

2. Distributed data processing

3. Performance

4. Heavily used configuration

5. Transaction rate

6. Online data entry

7. End-user efficiency

8. Online update

9. Complex processing

10. Reusability

11. Installation ease

12. Ease of operation and use

13. Multiple sites

14. Facilitate change

Below are the most common non-functional requirements of software applications and how they are mapped to the respective general system characteristics. Non-functional requirement General system characteristic reliability Operational ease Response time No mapping offered Performance Performance, data entry, update Security No mapping offered Availability Online data entry, operation ease Scalability Transactional rates Capacity Transactional rates, multiple sites.

Mapping operational ease to reliability

Operation ease is the twelfth general system characteristics under the function point analysis categorization. This characteristic provides a reflection on the automation capability of the system. According to this feature, once a software application developed, it should require minimum amount of manual interventions. Accordingly, the software product should have capabilities of maintaining a required performance level in case breakdown or faults. The operational ease capability requires the systems to recover affected data and performance level within a short time in case of system failure. As a result, the general system characteristic gets mapped on the reliability non-functional requirement. It therefore defines the efficiency of the system of recovering data and level of performance within the required time in times of system failure.

Mapping performance, online update and online data entry to the performance non-functional requirement

This feature relates to real-time applications which incorporated highly restricted parameters in relation to performance, throughput level and user service. It affects the degree of performance requirements in relation to the system’s response time during business hours. Therefore, the performance non-functional requirement can be mapped on the GSC. This is because software systems need to meet the expected performance levels such as response, throughput rates and processing times. Accordingly, online systems are developed with high performance expectations. Moreover, performance non-functional requirement also concerns the data entry traits on the online applications. With the increasing trends in real time systems, GUI creation should incorporate measures such as validation, user help instructions, and high speed data entry processes.

Mapping of transactional rate to the scalability non-functional requirement

Most of the business system applications experience increased transaction rates on occasional basis. Significantly, the increase in transaction time rises to a given peak level such that no more drastic increase is realized. As a result, there is need to focus on the transaction rate during the design and implementation processes of the software products. In this regard, it is notable that transaction rates scale from time to time. This leads to the addition of the scalability nonfunctional requirement to this feature on the GSC. Scalability requirement allows the software systems to rise to specific operational loads. This significantly guides software engineers to designing software applications with the ability to cater for high resource loads thus minimizing time and space wastage. However, modern software applications do not focus on this GSC due to the built-in configurations integrated in hardware systems.

Mapping of transaction rate and multiple sites to capacity NFR

Capacity requirement is added to the fifth GSC feature which is the transaction rate. Accordingly, it is added to the multiple sites general system characteristic. In so doing, the requirement of the system aims at increasing the service provision of the applications developed. Software applications should have the capacity of transacting more user requests on time basis without any failure. Consequently, capacity entails the portability of the system as it should be able to be used on different platforms. This is implemented by considering the multiple sites feature which enables the applications to be operated on different systems with high levels of compatibility.

Mapping online data entry and operation ease GSCs to the availability non-functional requirement

These features are usually associated with the real-time applications which are designed to support distributed processing. It majorly entails ensuring the features on the software products provide the intended service when required. For instance, the applications should allow users to make data entry through the use of forms. As a result, the systems should be designed with simple graphical user interfaces that support easier interactivity of users with the systems. This GSCs are therefore mapped to the availability nonfunctional requirements of the systems. The features of data entry should be readily available of the software application particularly those base on online sites. Are there any more non-functional requirements to be added to the 14 general system characteristics in function point analysis ( I thought of safety)In software engineering, the complexities in cost estimation can be tacked by examining a variety of critical attributes in the project. With the increased demand of high performance systems, there in need to add more non-functional requirements to the 14 GSCs in the function point analysis. For instance, the safety factor of the software application is usually invoked after the development process. Secure systems are on high demand among the various software engineering companies. Most customers request for software products that incorporate high security features in addition to contributing to the products quality.

As a result, is essential for software engineers to analyze cost estimates require do develop security features in various software systems. Software security cost estimates should be formulated basing on the general system characteristics as design in the function point analysis. When adding the security non-functional requirement to the 14 general security characteristics, focus should be put on designing applications with high data integrity and recovery features. In this research, it is proposed that security required should be mapped to the multiple sites, online update, and data communication characteristics in the function point analysis. This is due to number of users interacting with the systems and the likelihoods associated with data loss due to errors. As a result, it is suggested that the safety required be incorporated in the 14 GSCs in order to improve of recovery features of the software products in addition to authentication measures. The safety aspects of the software are considered in all the design phases of the software project development lifecycle. The five phases to be considered when implementing security requirements in the general system characteristics are the planning stage, design stage, coding stage, testing stage and finally the implementation stage. In all these stages, different security characteristics are evaluated in order to effectively calculate the cost estimates. The table below outlines the suggested formulation plan for integrating security features in the 14 GSCs in different stages of software development. Development stage Security aspect Planning Security requirements Design Security features and functional features Coding Attack planning, secure coding, reviewing and auditing Testing Security assurance, security review, infrastructure security measures Implementation Software hardening and application security monitoring.

What are the general safety requirements for a software system?

For the safety-critical systems, safety requirements are determined by examining the possible errors that arise from the development processes. Safety requirements are specified by considering the decisions, risk levels, level of safety assurance and safety visibility within the software development perspective. Consequently, specifications of the software safety requirements determined by analyzing initial hazards and fault from previous similar systems. Generally, safety requirements of software systems are determined by narrowing down the hazard control measures into suitable requirements for the systems at a given development stage. This leads to tracing the requirements of the system, the associated risks and the module of the code to be affected. In this research, the types of safety requirements for software systems are derived at each stage of the project development. Essentially, this enables software engineers to estimate safety costs as a requirement in the function point analysis. In general, safety requirement for software systems comprise of the hardware, software and human safety within the system environment. Hardware safety mainly focuses on the damages of foreign objects injected into the hardware components of the system. Hardware safety concerns the physical attributes of the system. Safety of the physical system components may be affected from external subjects that affected the overall security of the system and to human subjects. Accordingly, software safety requirements deal with the faults and errors associated with software commands necessary for the operation of the system. These result from code and logic design errors during the development process of the software systems. In addition, human safety requirements are based on the errors associated with the use of the software systems. As a result, it is necessary for software engineers to analyze the possible errors during the development process and possible mitigations. In the planning stage, human, software and hardware safety requirements are gathered in order to prevent possible manmade errors in the project development. Safety requirements in the design stage include the hardware and software safety characteristics. This involves proper design of the hardware components and software processes in order to prevent future hazards resulting from the failures. During the development stage, software safety requirements are gathered in regard to coding and the associate logics of the programs. Accordingly, the testing phase involves analyzing the system’s safety and human safety needs when the systems are in use.

Is safety requirement a non-functional requirement?

Safety constraint is a crucial non-functional requirement incorporated in the development of modern systems. Both safety and security are included in the software engineering projects due to the rising cases of hazards and negative impacts of the systems. As a result, software engineers decided to integrate safety factors into the design processes in order to enhance fault tolerance of the systems. This was instigated by the reported number of system failures and hazards which seriously damaged users. Accordingly, research on system safety was also influenced by widespread issues of identity theft in addition to fraud cases among other security threats. As a result, safety constraints were included in the requirements analysis in software project engineering. By incorporating safety as a non-functional requirement in systems engineering, software engineers are able to trace aspects of flaws and coding errors. This enhances the reflection of incomplete and awful assumptions relating to operations of the systems. As a requirement, safety characteristics are applied in the safety-critical software applications and systems in which faults may lead to negative impacts.

Significantly, safety is a non-functional requirement that is considered when developing systems that involve interaction of components within a specified environment. Consequently, it is considered as an emergent property in software engineering. This implies that the characteristic exhibits itself when the system is in use. The requirement is analyzed by considering software systems become faulty or hazardous when applied in a given environment rather than when not in use. Accordingly, safety non-function requirement significantly determines the objectives and existence of organizations. This arises from the fact that appraisal of safety as a requirement directly impacts on the risks associated with operating the systems under certain conditions. Due to its significance in system engineering environments, there is need to extend function point analysis by including cost estimates for safety characteristics. Therefore, identifying the general system characteristics that can be mapped to safety non-functional requirement is a necessity of improving software cost estimates.

Does safety requirements play an equal amount of role in a software system and software cost estimation?

Software cost estimation depends on different attributes that have direct impact on the quality and accuracy of software projects. Essentially, customers demand for secure systems that are safe to use in terms of human health and information protection. Thus, analysis of safety requirements in vital in the process of software system development and cost estimation. System safety influences the final cost estimation of the software projects due to the engineering standards employed designing secure systems. As a result, there is a substantial increase in software development costs. Significantly, safety requirements influence the construction costs, development efforts requited and the overall schedules. Thus, it is crucial to make earlier estimations on safety costs in order to overcome possible financial limitations in the system development. By extending the function point analysis a mathematical formulation can be derived in order to accommodate security feature in the cost estimation.

Function point analysis is calculated using two different measurements. The first measure is determined by calculating five components including External Inputs (EI), External Outputs (EO), External Inquiries (EQ), Internal Logical Files (IIF) and finally External Interface Files (ELF). The five components are assigned weights leading to Unadjusted Function Point. The results for the UFP are then determined using the expression below.UFP = EI + EO + EQ + ILF + EIF

The second measurement involves evaluating safety requirements, by using the 14 GSCs. After mapping the safety requirements to the 14 general system characteristics the degree of influence for the characteristics is determined basing on a scale of 0 to 5. Importantly, the degree of influence determines the strength of a requirement on the characteristic selected from the 14 GSCs. The characteristics are later combined to determine the Total Degree of Influence (TDI). After determining the total, the value adjusted factor of the requirement is calculated using the mathematical expression below.VAF = 0.65 + (TDI x 0.01)

The function point count is then obtained by using the estimation below: FP = UFP x VAF

Get a custom paper now from our expert writers.

Since safety requirement influences the cost estimate of the software system, it is possible to extend the function point analysis formula in order to accumulate safety requirements. The extended function point analysis formulation below outlines how security requirement is applied in calculating the value adjusted factor.VAF = 0.65 + [(TDI + Security) x 0.01] The proposed degrees of influence for safety requirements are summarized in the table below. Score As Description for Degree of Influence 0 None of above 1 Less than 30% (1=19) 4 Security features greater than 70% and less than 90% (N>=36) 5 Security features equal or greater than 90% (N>=43).

Image of Alex Wood
This essay was reviewed by
Alex Wood

Cite this Essay

Research on Enhancement in Function Point Analysis Software Cost Estimation. (2019, August 27). GradesFixer. Retrieved April 26, 2024, from https://gradesfixer.com/free-essay-examples/research-on-enhancement-in-function-point-analysis-software-cost-estimation/
“Research on Enhancement in Function Point Analysis Software Cost Estimation.” GradesFixer, 27 Aug. 2019, gradesfixer.com/free-essay-examples/research-on-enhancement-in-function-point-analysis-software-cost-estimation/
Research on Enhancement in Function Point Analysis Software Cost Estimation. [online]. Available at: <https://gradesfixer.com/free-essay-examples/research-on-enhancement-in-function-point-analysis-software-cost-estimation/> [Accessed 26 Apr. 2024].
Research on Enhancement in Function Point Analysis Software Cost Estimation [Internet]. GradesFixer. 2019 Aug 27 [cited 2024 Apr 26]. Available from: https://gradesfixer.com/free-essay-examples/research-on-enhancement-in-function-point-analysis-software-cost-estimation/
copy
Keep in mind: This sample was shared by another student.
  • 450+ experts on 30 subjects ready to help
  • Custom essay delivered in as few as 3 hours
Write my essay

Still can’t find what you need?

Browse our vast selection of original essay samples, each expertly formatted and styled

close

Where do you want us to send this sample?

    By clicking “Continue”, you agree to our terms of service and privacy policy.

    close

    Be careful. This essay is not unique

    This essay was donated by a student and is likely to have been used and submitted before

    Download this Sample

    Free samples may contain mistakes and not unique parts

    close

    Sorry, we could not paraphrase this essay. Our professional writers can rewrite it and get you a unique paper.

    close

    Thanks!

    Please check your inbox.

    We can write you a custom essay that will follow your exact instructions and meet the deadlines. Let's fix your grades together!

    clock-banner-side

    Get Your
    Personalized Essay in 3 Hours or Less!

    exit-popup-close
    We can help you get a better grade and deliver your task on time!
    • Instructions Followed To The Letter
    • Deadlines Met At Every Stage
    • Unique And Plagiarism Free
    Order your paper now