Empirically Validated Simplicity Evaluation Model for Object Oriented Software

Software program developers need to go from beginning to ending and understand source code of the program and other software attributes. The software complexities and length of the program exceedingly affects many design level quality attributes, specifically Simplicity, Testability and software Maintainability. Incomplete design of any software generally leads to misunderstanding and ambiguities and therefore to gives faulty design and development results. This is mainly seeming and appears owing to the absence of it’s an appropriate observation, design and development control. However, high level design and program simplicity are very necessary and one of the vital attributes of the system development cycle. This research paper highlights the impact and significance of design level software simplicity in common and as a one of the most useful key factor or index of software quality assurance and testing. In this research work principally there are three major efforts are made. As a first contribution, a valuable relationship between software design quality factor simplicity and related object oriented design properties, this has been set up. In the second contribution, using design level corresponding metrics a simplicity evaluation model for object oriented software is developed. Subsequently, the developed simplicity model has been rationally authenticated by means of experimental data try-out.


INTRODUCTION
To timely fulfill the continuing changing demands and the requirements of users and the customer or may be some additional reasons, developed software must want to be proper renovated or altered on or after time to time. This procedure of maintenance or modification is generally worked out by current/existing programmers and developers, which might be not have built that previous application software [5]. They must require proper narrating and proper recognizing source codes and additional associated credentials [21]. Yet for the program creators of the object oriented design, next a break of not many years, it might not be always a simple or easy work for them to understand original source programs and other associated design documents of the program or the software [8,22]. Incorrect interpretations and explanations can proceed to or direct to misconceptions and finally to not acceptable delivered results [15]. Rundown of an understanding and the capability to eloquent the procedures in use, it is not probable that it can be enhanced [16,23].
So, the ability to be understood and the design simplicity of software have many direct influences on the criteria that indirectly or directly disturb quality of software. Complicated software design assuredly direct to bad maintainability and testability results, which in go products to un Electronic copy available at: https://ssrn.com/abstract=3311330 successful maintenance and testing that may outcome to bad significances [9,24]. It is unspoken truth that defects of software design creation have a robust adverse effect on expected quality attributes. Organizing a good quality complex design endures to be an inefficiently well-defined procedure [10]. Hence, software implementation design and further development must be simple as well as minimal complex, this minimizes the required development efforts for the unexpected coming functional and operational extensions. Moreover, the design is alienated into functionally separated and less interdependent modules of reasonable program size [25]. Finally, we can achieve to build in this method so as to make them simply testable, maintainable, and possibly stable [11,14].

SOFTWARE QUALITY
In this segment, it discusses the contents of the following quality model for software: McCall software quality model, Boehm software quality model, FURPS model, and finally Dromey model. The McCall's software quality method has focus on three (3) main value of software application: Product Transition perspective (that is adaptableness to new platform setting) product Revision perspective (The capability to go through proper changes) product Operations perspective (Its operational characteristics).
McCall's Quality Assurance Model contains 11 software quality factors and twenty-three quality criteria [3]. Where the quality criteria define disparate kinds of software properties and software quality criterions are valuable characteristics to single or supplementary of the software quality factors. Boehm's quality model works to qualitatively evaluation of the quality of software [1,7]. The high level factors address three classifications; maintainability, portability and general utility into as utility. In the intermediate level criteria, Boehm quality model has seven quality factors like reliability, portability, Usability, efficiency, Human engineering, understandability, flexibility. Dromey's software quality model proposed a complete framework to evaluate the phases of requirement, design and implementation [12]. The high level design properties for the Dromey's implementation software quality model that include: internal, correctness, descriptive and contextual.
Furps quality model [13] formerly presented by quality expert Grady [9], then it is extended by IBM Software (Rational) into FURPS+. Where the '+' indicates such requirements as design constraints, requirements, implementation, physical requirements and interface requirements. There are mainly four characteristics in FURPS quality model. The quality factors and features of the software in the FURPS quality mode clearly indicated under ISO 9000 and stated as "they provide crystal clear implementation guidelines for product quality assurance [17]. ISO 9000 is a process or procedure oriented approach for software quality management [19]. It processes designing, implementing, documenting, monitoring, supporting, improving and controlling. Recently, the ISO/IEC 9126-1: 2001 product quality model of software, which defined mainly six quality factors, has replaced by software product quality model and ISO/IEC 205010:2011 system [20]. The ISO 25010 is the widely used quality standard model now a day. ISO 25010 uses ten main quality factors: operability, Functional, suitability, reliability, security, efficiency, performance, compatibility, maintainability, and portability. The given 28 software quality features are arranged and given under the basis of major six quality criteria [20].

SOFTWARE SIMPLICITY
When you genuinely discuss about software design simplicity, means you want to approve and validate of it because it reduced complicated details [18]. Simplicity tends to promote ease of testing and maintenance. Software simplicity is one of the most noteworthy quality factor for any type of system design and development. Designing a simple system is time consuming. It will Electronic copy available at: https://ssrn.com/abstract=3311330 have significant impact with the architecture level. It is crucial and challenging task that a product design shows reduced complexity and remains as simple design as possible while developer still being able to meet the needs of the requirements and services. Product's systems designs grow and it becomes more challenging and giving complex looks over the time. Eventually starting with a software system's design that is already getting complex means starting with at disadvantages. The more complex the system leads to the more difficult it is to have a comprehensive and an accurate model. An excessively complex design of a system results in a condition where no single user can understand it all at any one time.
The software or program quality factor describes dissimilar kinds of crucial system properties, whether software quality criteria are mainly attributes to single or supplementary of the quality factor. The quality model presented by Boehm try to attempts qualitatively assessment of the excellence of software. The high level software characteristics explain three important classifications; maintainability, portability and general explanation into as utility. Where at the intermediate level properties, the Boehm's design product quality model described seven important features of the quality factors like as efficiency portability, Usability, flexibility, Human engineering, reliability, understandability, [2]. Table 1 is denoted as the software quality factors and quality-criteria of Boehm quality-mode.

SIMPLICITY QUALITY CRITERIA AND RELATED FACTORS
Quality criteria are the characteristics which properly define the quality factor. The software quality criteria for the related factors are the characteristics of the software creation process or software product by which the factor can be defined. The relationships amid the simplicity quality factors between the related crucial criteria can be seen in Table 1

Figure1: Mapping between Design Properties and Simplicity Factors
Electronic copy available at: https://ssrn.com/abstract=3311330

MODEL DEVELOPMENT FOR SIMPLICITY EVALUATION OF OBJECT ORIENTED SOFTWARE
In direction to create Simplicity evaluation model for object oriented software, "Multivariate Linear Regression System" has been applied, that is specified as given below.

Simplicity= b0+ b1 x Encapsulation+ b2 x Coupling+ b3 x Inheritance + b4 x Polymorphism Eq. (2)
The data set accustomed for creating simplicity evaluation model for object oriented software is occupied from [26] that have been collected through the measured experimentation. It includes a group of 20 object oriented design class diagrams (symbolized as P1 to P20) and the associated metrics value of respective class diagram. Moreover, the mean value of the specialist's score of simplicity of these class diagrams is also given and labeled as 'Known Values' in this research work. The association amid simplicity factor and program design properties has been recognized as represented in figure one. Using SPSS, respective value of each coefficients is decided and simplicity evaluation model is articulated as given below.   (2). The experimental assessment of Simplicity is very hopeful to get simplicity index of object oriented design for low cost software maintenance.

SIMPLICITY MODEL SUMMARY
The model summary table 3 results are very helpful when writing multiple regressions. Capital (R), is the coefficient determinant that tells us how powerfully the all independent-variables are associated to the respective dependent-variable. The value of "R Square" is also very encouraging as it gives us the coefficient determination.

INVESTIGATIONAL TRYOUT
No problem, in what way powerful a hypothetical conclusion may be, it has to be experimentally authenticated if it is functioning to be of any real-world use [6]. This is real in all engineering systems, counting software engineering. Hence, in adding to the hypothetical or theoretical authentication, an investigational and experimental test is similarly significant in directive to make the claim additional adaptable. In assessment of this truth, an investigational authentication of the developed simplicity evaluation model (equation 2) has been performed by the assistance of design level metrics specified in the data set [26]. Summary of the values obtained by the developed model against the 'Known Values' of simplicity are given in Table 4.  any damage of oversimplification our study can accomplish that simplicity evaluation model (in eq. 2) calculations are consistent and effective in the viewpoint.

CONCLUSION AND FUTURE RESEARCH DIRECTION
This research work shows the importance of simplicity and its correlation with object oriented design properties viz. Encapsulation, Coupling, Inheritance and Polymorphism. Further, research study developed a simplicity evaluation model SEMOOD with the assistance of multiple linear regression method on object oriented design properties. Statistical result confirms that simplicity evaluation model is extremely significant and up to standard. The perfect validation on the simplicity model it is to be completed in future on live industrial projects for improved suitability and usefulness. Software simplicity is dynamic and one of the greatest noteworthy parts of the software development life cycle nowadays. Above described five quality attributes, have numerous highlighted properties in shared, in counting low level coupling, modularity and high level cohesion. Design level Simplicity is directly boosted software Reliability, Flexibility, Testability, Maintainability and Portability. Simplicity of the software when combined with design quality attributes and criteria supports to develop project with less development and further maintenance cost in the minimum time and framework, as well as improve acceptable consistency and better reliability of the final delivered software. Still, the proposed research work wants to be more investigational tryout with a bigger set of data for better level of acceptability and utility.