Constructing and Testing of Polynomials Predicting Software Maintainability
In this project we create a set of design principles for code modularization and produce set of metrics that characterize software in relation to those principles. Some metrics are structural, architectural, and notions. The structural metrics refer to intermodule-coupling based notions. The architectural metrics refer the horizontal layering of modules in large software systems. Here we are using three types of contributions coupling, cohesion, and complexity of metrics to modularize the software. These contributions measure were primarily at the level of how the individual classes were designed from the standpoint of how many methods were packed into the classes, the depth of the inheritance tree, the inheritance fan-out, coupling between objects created by one object invoking a method on another object. Other contributions that have also used function call dependencies to characterize software modularization. Modularization algorithm is based on the combination of coupling and cohesion metrics. This is used to find modularization quality. Finally we provide two types of experiments to validate the metrics using Open-Source Software Systems. I) Applied the metrics to two different versions of the same software system. II) Experimental validation consisted of randomizing a well-modularized body of software and seeing how the value of the metrics changed.
In existing system they are used non-object oriented software system. In non-object oriented software system modularization quality is calculated only based on the modules without using classes. Theoretical validation implies conformance to a set of agreed upon principles. Code reorganization of legacy software, consisting of millions of non-object oriented code. Reorganization of millions of lines of code residing in thousands of files in hundreds of directories into modules, where each module is formed by grouping a set of entities such as file, data structures, functions and variables.
Proposed system is developed using Object oriented software system. Create a set design principles for code modularization and produce set of metrics. Modularization quality is calculating using metrics such as structural, architectural and notions.
There are three contributions such as coupling, cohesion and complexity metrics to modularize the software. Our proposed metrics seek to characterize a body of software according to the enunciated principles. Provide two types of experiments to validate the metrics.
Modules and its Description:
This project contains four modules. They are:
1. Source Code Import And Partition
2. Module Count and Function Call Calculation
3. Metric Calculation
4. Report Generation
1. Source Code Import & Partition:
User will import file/project to our tool. The tool will partition the source code.
2. Module Count & function Call Calculation:
In this module the tool will find the size/total number of lines in the project. After that calculate what are the functions/methods are involved in this project. How many methods call from other modules, how many modules call other modules and what are all the functions from other module and find how many classes and modules in a given file.
3. Metrics Validation:
This module is heart of our project. Here we are going to calculate the quality of software based on the modules, function and size. There are three types of metrics used to calculate the quality of software. Each metric is given various output/result. Using these outputs we can draw a graph. Finally the graph will denote the quality.
4. Report Generation:
In this module we are going to generate a report for our testing result. Using this report we give some suggestion to developer. There are two type reports available. One is normal report another one is graph report.
Software/ Hardware Requirements:
Â¢ System : Pentium IV 2.4 GHz
Â¢ Hard Disk : 40 GB
Â¢ RAM :512 MB
Operating system : Windows XP Professional
Technology : Microsoft Visual Studio .Net 2008
Coding Language : C#
Back End : SQL Server 2005