• 1. Code Quality Evaluation Methodology Using the ISO/IEC 9126 Standard

    Yiannis Kanellopoulos, Panos Antonellis, Dimitris Antoniou, Christos Makris, Evangelos Theodoridis, Christos Tjortjis and Nikos Tsirakis
    July 2010 | Cited by 40

    This work proposes a methodology for source code quality and static behaviour evaluation of a software system, based on the standard ISO/IEC-9126. It uses elements automatically derived from source code enhanced with expert knowledge in the form of quality characteristic rankings, allowing software engineers to assign weights to source code attributes. It is flexible in terms of the set of metrics and source code attributes employed, even in terms of the ISO/IEC-9126 characteristics to be assessed. We applied the methodology to two case studies, involving five open source and one proprietary system. Results demonstrated that the methodology can capture software quality trends and express expert perceptions concerning system quality in a quantitative and systematic manner.
  • 2. Mca Based Performance Evaluation of Project Selection

    Tuli Bakshi and Bijan Sarkar
    April 2011 | Cited by 31

    Multi-criteria decision support systems are used in various fields of human activities. In every alternative multi-criteria decision making problem can be represented by a set of properties or constraints. The properties can be qualitative & quantitative. For measurement of these properties, there are different unit, as well as there are different optimization techniques. Depending upon the desired goal, the normalization aims for obtaining reference scales of values of these properties. This paper deals with a new additive ratio assessment method. In order to make the appropriate decision and to make a proper comparison among the available alternatives Analytic Hierarchy Process (AHP) and ARAS have been used. The uses of AHP is for analysis the structure of the project selection problem and to assign the weights of the properties and the ARAS method is used to obtain the final ranking and select the best one among the projects. To illustrate the above mention methods survey data on the expansion of optical fibre for a telecommunication sector is used. The decision maker can also used different weight combination in the decision making process according to the demand of the system.
  • 3. People Factors in Agile Software Development and Project Management

    Vikash Lalsing, Somveer Kishnah and Sameerchand Pudaruth
    January 2012 | Cited by 19

    With the increasing popularity of Agile Methods, many software organizations are moving away from traditional methods to adopt Agile development methodologies. Instead of being predictive, Agile is rather adaptive and people-focused. It advocates a small and collaborative team that work closely together. But team size is a factor that is in turn constrained by people factors. When implementing Agile, these key factors are often overlooked. This study aims at identifying the underlying people factors to consider when adopting Agile for a team to be effective. The method used is the study of three different sized Agile teams developing products based on the same technologies and using Scrum. Both objective and subjective measures were used and the results are supported by a survey. The results clearly show that for agile methodologies to work well, it is crucial to select the right people for the right team.
  • 4. Towards Performance Measurement and Metrics Based Analysis of PLA Applications

    Zeeshan Ahmed
    July 2010 | Cited by 14

    This article is about a measurement analysis based approach to help software practitioners in managing the additional level complexities and variabilities in software product line applications. The architecture of the proposed approach i.e. ZAC is designed and implemented to perform preprocessesed source code analysis, calculate traditional and product line metrics and visualize results in two and three dimensional diagrams. Experiments using real time data sets are performed which concluded with the results that the ZAC can be very helpful for the software practitioners in understanding the overall structure and complexity of product line applications. Moreover the obtained results prove strong positive correlation between calculated traditional and product line measures.
  • 5. Survey of Maintenance Policies for the Last 50 Years

    Asis Sarkar, Subhash Chandra Panja and Bijan Sarkar
    July 2011 | Cited by 14

    In the past several decades, maintenance and replacement problems have been extensively studied in the literature. Thousands of maintenance and replacement models have been created. However, all these models can fall into some categories of maintenance policies: age replacement policy, block replacement policy, periodic preventive maintenance policy, failure limit policy, sequential preventive maintenance policy, repair cost limit policy, repair time limit policy, repair number counting policy, reference time policy, mixed age policy, group maintenance policy, opportunistic maintenance policy, etc. Each kind of policy has different characteristics, advantages and disadvantages with lot of contributions from Research scientist, Technologists... This survey summarizes, classifies, and compares various existing maintenance policies Around 170 Authors and their research works are presented in the Reference section. It will help to look into the different policies which is appropriate to the organization and for further study the reference section will be helpful for the researchers for further knowledge.
  • 6. Program Slicing Techniques and Its Applications

    N.Sasirekha, A.Edwin Robert and M.Hemalatha
    July 2011 | Cited by 13

    Program understanding is an important aspect in Software Maintenance and Reengineering. Understanding the program is related to execution behaviour and relationship of variable involved in the program. The task of finding all statements in a program that directly or indirectly influence the value for an occurrence of a variable gives the set of statements that can affect the value of a variable at some point in a program is called a program slice. Program slicing is a technique for extracting parts of computer programs by tracing the programs� control and data flow related to some data item. This technique is applicable in various areas such as debugging, program comprehension and understanding, program integration, cohesion measurement, re-engineering, maintenance, testing where it is useful to be able to focus on relevant parts of large programs. This paper focuses on the various slicing techniques (not limited to) like static slicing, quasi static slicing, dynamic slicing and conditional slicing. This paper also includes various methods in performing the slicing like forward slicing, backward slicing, syntactic slicing and semantic slicing. The slicing of a program is carried out using Java which is a object oriented programming language.
  • 7. Optimized Test Sequence Generation from Usage Models using Ant Colony Optimization

    Praveen Ranjan Srivastava, Nitin Jose, Saudagar Barade and Debopriyo Ghosh
    April 2010 | Cited by 12

    Software Testing is the process of testing the software in order to ensure that it is free of errors and produces the desired outputs in any given situation. Model based testing is an approach in which software is viewed as a set of states. A usage model describes software on the basis of its statistical usage data. One of the major problems faced in such an approach is the generation of optimal sets of test sequences. The model discussed in this paper is a Markov chain based usage model. The analytical operations and results associated with Markov chains make them an appropriate choice for checking the feasibility of test sequences while they are being generated. The statistical data about the estimated usage has been used to build a stochastic model of the software under test. This paper proposes a technique to generate optimized test sequences from a markov chain based usage model. The proposed technique uses ant colony optimization as its basis and also incorporates factors like cost and criticality of various states in the model. It further takes into consideration the average number of visits to any state and the trade-off between cost considerations and optimality of the test coverage.
  • 8. Formalization of the Data Flow Diagram Rules for Consistency Check

    Rosziati Ibrahim and Siow Yen Yen
    October 2010 | Cited by 12

    In system development life cycle (SDLC), a system model can be developed using Data Flow Diagram (DFD). DFD is graphical diagrams for specifying, constructing and visualizing the model of a system. DFD is used in defining the requirements in a graphical view. In this paper, we focus on DFD and its rules for drawing and defining the diagrams. We then formalize these rules and develop the tool based on the formalized rules. The formalized rules for consistency check between the diagrams are used in developing the tool. This is to ensure the syntax for drawing the diagrams is correct and strictly followed. The tool automates the process of manual consistency check between data flow diagrams.
  • 9. Examining Requirements Change Rework Effort: A Study

    Bee Bee Chua and June Verner
    July 2010 | Cited by 12

    Although software managers are generally good at new project estimation, their experience of scheduling rework tends to be poor. Inconsistent or incorrect effort estimation can increase the risk that the completion time for a project will be problematic. To continually alter software maintenance schedules during software maintenance is a daunting task. Our proposed framework, validated in a case study confirms that the variables resulting from requirements changes suffer from a number of problems, e.g., the coding used, end user involvement and user documentation. Our results clearly show a significant impact on rework effort as a result of unexpected errors that correlate with 1) weak characteristics and attributes as described in the program�s source lines of code, especially in data declarations and data statements, 2) lack of communication between developers and users on a change effects, and 3) unavailability of user documentation. To keep rework effort under control, new criteria in change request forms are proposed. These criteria are shown in a proposed framework; the more case studies that are validated, the more reliable the result will be in determining the outcome of effort rework estimation.
  • 10. Designing Code Level Reusable Software Components

    B.Jalender, A.Govardhan and P.Premchand
    January 2012 | Cited by 12

    The basic idea behind building Reusable software components is to design interchangeable parts from other industries to the software field of construction. A reuse library or component reuse repository organizes stores and manages reusable components. The biggest advantage of the building reusable software components is that it reduces the time and energy in developing any software. Frameworks provides a standard working system through which user �s main focus is on developing desired modules instead of developing lower level details. By using this facility the software developers can spend more time in developing the requirement of software, rather than preparing the tools of application development. Framework is set of reusable software program that forms the basis for an application. Frameworks help the programmers to build the application quickly .At its best code reuse is accomplished through the sharing of common classes and/or collections of functions, frameworks and procedures. This paper describes how to build the code level reusable components and how to design code level components. Finally providing coding guidelines, standards and best practices used for creating reusable code level components and guidelines and best practices for making configurable and easy to use.