Durability Challenges in Software Engineering

120 downloads 1100 Views 257KB Size Report
Durability in aspect of software is the time period for which software is giving services. There has been lot of work done in the field of software maintenance in ...
Accepted Manuscript in CrossTalk, The Journal of Defense Software Engineering, pp. 29-31, Sep 2016.

Durability Challenges in Software Engineering Rajeev Kumar1, Suhel Ahmad Khan2 and Raees Ahmad Khan3 [email protected], [email protected], [email protected] 1,3Department of Information Technology, Babasaheb Bhimrao Ambedkar Central University, Lucknow226025, UP, India 2Department of Computer Application, Integral University, Lucknow-226026, UP, India

Abstract: Practices shows that the software quality is not that high as it could be. Development organizations spend a relatively large amount of money and effort on fixing quality issues during late stage development of software. One of the qualities of software that has received significant attention in recent years is durable serviceability. Software with poor durability is likely to fail in a highly competitive market; therefore, software developing organizations are paying more attention towards ensuring the durability of their software. To be able to develop durable software cost-effectively, there is a need to investigate the connection between durability characteristics and software. In software engineering, durability depends on four characteristics mainly; i.e. trustworthiness, human trust, dependability and usability of software. To address the relationship between these characteristics, software designers analyze the durability requirements which may need to be implemented to fulfill these specific requirements of software serviceability. The main objective of this article is to gain an in-depth understanding of the relationship between software and durability characteristics. Keywords: Software Serviceability, Software Durability, Software Design.

1. Introduction Software development life cycle contains many phases such as requirements engineering, design, coding, testing and debugging and finally maintenance. Maintenance is regarded as the last stage of development[1] .But what if this phase continues for years? Here comes the issue of serviceability. Serviceability of software can be defined as the conditions in which software is still useful or maintainable. Serviceability of software should be durable as to achieve maintainability. Durability in aspect of software is the time period for which software is giving services. There has been lot of work done in the field of software maintenance in regard to durability as Nathan Ensenger in his article ‘When good software goes bad: the surprising durability of an ephemeral technology’ talks about problems i n maintenance[2]. This work also stated that there is a need to focus more on problems related to maintenance achievement. It is stated that software durability is related to software serviceability and it has been pointed out that achieving durability may enhance the serviceability of the software. Service oriented durable design of software is the aim of this study. Rest of the paper is organized as follows: in section 2 basic concepts of durability are defined. In section 3 emergence of software durability is defined. In section 4 successful strategies for developers is given. In section 5 conclusions is given for the paper. 2. Basic Concepts of Durability The evolving flexible environment in the early twenty-first century creates new challenges for all, including the software[3]. Many programmers collaborate on a software project; they work on individual software functions or architectural components[4]. These components are often developed separately and fixed time frame to ensure that they work together. When time comes to tie it all together, project manager integrates the different components as a required unit to achieve assured result. This process makes a complex activity of software development.

Accepted Manuscript in CrossTalk, The Journal of Defense Software Engineering, pp. 29-31, Sep 2016.

Figure 1: A Structure of the Software Durability Factors[7] 

Complexity of software development leads to problems, design vulnerabilities being one of the most significant[4]. Some of the fundamental principles of design and its related systematic tools, includes availability, reliability, security and usability. Service of a software product is durable, if it work efficiently, effectively for user’s satisfaction up to his/her expected duration. Many factors of software quality affect the serviceability of software among them these few trustworthiness, human-trust, dependability and usability affect the durability directly and auditability, scalability, robustness, traceability, detectability, accessibility, efficiency, extensibility, physiological acceptability, user satisfaction, business continuity, learnability, effectiveness, flexibility, operational controls co-factors affects durability indirectly[1-2].

The meanings of these factors are different in software scenario such as: trustworthiness is a kind of assurance that software will perform as expected; human trust is defined as a willingness to rely on partner(software) in whom one has confidence; dependability is an ability to deliver service that can justifiably be trusted; usability is the degree of software that can be used by particular users to reach quantified results with effectiveness and satisfaction. The factors and co-factors of durability have positive and negative impact on software service design directly or indirectly as shown in Figure 1. A problem often comes while assuring the durability, which is to modify the architecture of software. Modification is very expensive and time taking. 3. Emergence of Software Durability Usually software is delivered without considerable security, this welcomes vulnerabilities to mitigate them patching is done which further results is more vulnerabilities in future. It is normally expected that the design will remain serviceable for the whole life of the software and that services and qualities may come and go [5-6]. This leaves designers and users to consider the relationship of the durability to the rest of the software architecture. Software durability is a term used to describe the usefulness of service-life of a software such as designing and construction with optimal maintenance[7-8]. The term may also be used to describe the whole software development life cycle by comparing between the service life of the design and its functional undesirability. A review of international research indicates that except operational components of software, all of the other elements require different levels of service maintenance, repair, and replacement during the life cycle of the software development [9-10]. The extent and strength of these services

Accepted Manuscript in CrossTalk, The Journal of Defense Software Engineering, pp. 29-31, Sep 2016. demands vary considerably, depending on how appropriately the durability of software and systems are synchronized and how accessible they are for regular maintenance, repair and replacement.

Figure 2: General Activities for Durability of Software The durability of software may be expressed as a function of service quality and service life of the development cycle. There are three important service quality thresholds associated with durability: 1) the quantified quality, recognized by the software developer or minimum codes 2) the minimum acceptable quality indicating the need for replacement; and 3) failure. In Figure 2 risk should be minimized to achieve durability of software. Two types of risk(active and passive) effect software at development stage. Durability of software enhances if risks are properly managed for a duration by means of detection, prevention and recovery. 4. Successful Strategies for Software Developers Quality is a significant feature of software to be addressed. Durability is an important issue in evaluating the software quality. Development of software design is not a one-time built-in process; it is based on reuse of existing specifications in the market. Analysis of service-life of the software relating to quality is the key point of this research work. This research is focused on increasing service life with the secure and durable serviceability of software. Following are the steps which form the process, which is effective in achieving durability when performed iteratively, incrementally, and in parallel with the other activities, tasks, and primary objectives:  To establish durability as a powerful factor of software quality  Identification of threat models of durability for degradation mechanisms  Develop a durability program plan that includes trustworthiness, human trust, usability and dependability  Identify and investigate their potential sources  Estimate the risks associated to durability for these respected assets  Arrange them based on the degree of the negative impacts  Identify and investigate the durable necessities of serviceability an arrangement as a benchmark for quality  Identify new attributes to provide a secure service-life of software for a specific duration  Identify durability subfactors and determine their impact on overall software  Analyze software risks relating to durability  Make an objective to lessen the complexity of software design by establishing durability as it optimize the maintainability  Enhance quality of software by improving service-oriented design of software  Calculate of durability parameters using available or developed calculation models  Possible updation of the ordinary architectural design tools for durability

Accepted Manuscript in CrossTalk, The Journal of Defense Software Engineering, pp. 29-31, Sep 2016.

5. Conclusion It is evident that generating a fully secure system is not possible; therefore, it cannot be considered as the objective of evaluating software durability to be the parameters of perfect and secure software. Thus, the objective is to decrease the maintenance issue for long time serviceable software. It could be concluded from the above discussion that achievement of durable software is going to be a new challenge in the software industry. It is also as important as achieving any other attributes of quality i.e.; dependability, usability, and supportability. One significant result has also been observed that achieving durability early in development will raise the level of quality in the so ftware. In this article, a general structure for assuring durable software is designed, and its processes are defined briefly. Acknowledgment This work is sponsored by UGC-MRP, New Delhi, India under F. No. 43-391/2014 (SR). References 1. Kelty C., Erickson S., The Durability of Software, Germany: Meson Press, pp. 1-13, 2015. 2. Nathan E., When Good Software Goes Bad: The Surprising Durability of an Ephemeral Technology.” In MICE (Mistakes, Ignorance, Contingency, and Error) Conference. Munich, pp. 1-16, 2014. 3. Firesmith D. G., Common Concepts Underlying Safety. Security and Survivability Engineering, Technical Note CMU/SEI2003-TN033, Software Engineering Institute, Pittsburg, Pennsylvania, 2003, pp. 1-75. 4. Becker S., Boskovic M., Dhama A., “Trustworthy Software Systems: A Discussion of Basic Concepts and Terminology”, Graduate School Trustsoft, Carl-von-Ossietzky University of Oldenburg, Germany Sep 2006. 5. Continuous Integration Strategies, Available at: http://developerblog.redhat.com/2013/11/08/ci-strategies-1of3/ Last Visit March 03 2016. 6. Software for Dependable Systems: Sufficient Evidence, Available at: http://www.nap.edu/read/11923/chapter/4 Last Visit March 02 2016. 7. Kumar R, Khan S. A., Khan R. A., Revisiting Software Security: Durability Perspective, International Journal of Hybrid Information Technology (SERSC), 2015, 8(2), pp. 311-22. 8. Kluwer W., “Starting your Software Security Assurance Program”, ITARC, Stockholm, Sweden, May 21, 2015. 9. Kumar R., Khan S. A., Khan R. A., “Durable Security in Software Development: Needs and Importance”, CSI Communications, pp. 34-36, October 2015. 10. Rogers R. L., “Principles of Survivability and Information Assurance”, Carnegie Mellon University Pittsburgh, PA 15213, 2004.

Suggest Documents