14 research outputs found

    Towards the Evaluation of Software Products from an Environmental Sustainability Perspective

    Get PDF
    Sustainable development implies resource management that simultaneously guarantees the satisfaction of the present and future generations, considering the social, economic, and environmental dimensions. This paper proposes an approach to quantitatively assess software products\u27 sustainability quality based on a library of requirements (i.e., general goals) considered as criteria in a multicriteria evaluation and analysis. To increase the environmental sustainability of software products, we argue that it is fundamental to comparatively evaluate them, identify the ones most in need of change, and quickly adapt existing products effectively and efficiently

    Measuring the Overall Complexity of Graphical and Textual IEC 61131-3 Control Software

    Full text link
    Software implements a significant proportion of functionality in factory automation. Thus, efficient development and the reuse of software parts, so-called units, enhance competitiveness. Thereby, complex control software units are more difficult to understand, leading to increased development, testing and maintenance costs. However, measuring complexity is challenging due to many different, subjective views on the topic. This paper compares different complexity definitions from literature and considers with a qualitative questionnaire study the complexity perception of domain experts, who confirm the importance of objective measures to compare complexity. The paper proposes a set of metrics that measure various classes of software complexity to identify the most complex software units as a prerequisite for refactoring. The metrics include complexity caused by size, data structure, control flow, information flow and lexical structure. Unlike most literature approaches, the metrics are compliant with graphical and textual languages from the IEC 61131-3 standard. Further, a concept for interpreting the metric results is presented. A comprehensive evaluation with industrial software from two German plant manufacturers validates the metrics' suitability to measure complexity.Comment: 8 pages, https://ieeexplore.ieee.org/abstract/document/9444196

    A COUPLING AND COHESION METRICS SUITE FOR

    Get PDF
    The increasing need for software quality measurements has led to extensive research into software metrics and the development of software metric tools. To maintain high quality software, developers need to strive for a low-coupled and highly cohesive design. One of many properties considered when measuring coupling and cohesion is the type of relationships that made up coupling and cohesion. What these specific relationships are is widely understood and accepted by researchers and practitioners. However, different researchers base their metrics on a different subset of these relationships. Studies have shown that because of the inclusion of multiple subsets of relationships in one measure of coupling and cohesion metrics, the measures tend to correlate among each other. Validation of these metrics against maintainability index of a Java program suggested that there is high multicollinearity among coupling and cohesion metrics. This research introduces an approach of implementing coupling and cohesion metrics. Every possible relationship is considered and, for each, addressed the issue of whether or not it has significant effect on maintainability index prediction. Validation of orthogonality of the selected metrics is assessed by means of principal component analysis. The investigation suggested that some of the metrics are independent set of metrics, while some are measuring similar dimension

    Sensitivity of Graph-theoretic Metrics to Edge Directions for Structured and Unstructured Programs�

    Get PDF
    Program complexity can be measured based on graph-theoretic metrics such as cyclomatic number, track number, normal number, etc. This thesis explores the question of changing the directions of the edges on a flow graph and its impact on the graph-theoretic complexity metrics. Both structured and unstructured flow graphs are considered in this study.Computer Scienc

    Measurement for the management of software maintenance

    Get PDF
    This thesis addresses the problem of bringing maintenance, in a commercial environment, under management control, and also increasing the profile of maintenance in a corporate picture, bringing it onto a par with other components of the business. This management control will help reduce costs and also the time scales inherent in maintenance activity. This objective is achieved by showing how the measurement of the products and processes involved in maintenance activity, at a team level, increases the visibility of the tasks being tackled. This increase in visibility provides the ability to impose control on the products and processes and provides the basis for prediction and estimation of future states of a project and the future requirements of the team. This is the foundation of good management. Measurement also provides an increase in visibility for higher management of the company, forming a basis for communication within the corporate strategy, allowing maintenance to be seen as it is, and furnished with the resources it requires. A method for the introduction of a measurement strategy, and collection system, is presented, supported by the examination of a database of maintenance information collected by a British Telecom research team, during a commercial software maintenance exercise. A prototype system for the collection of software change information is also presented, demonstrating the application of the method, along with the results of its development and the implications for both software maintenance management and the technical tasks of implementing change

    Automatic marking of Shell programs for students coursework assessment

    Get PDF
    The number of students in any programming language course is usually large; more than 100 students is not uncommon in some universities. The member of staff teaching such a course has to mark, perhaps weekly, a very large number of program assignments. Manual marking and assessing is therefore an arduous task. The aim of this work is to describe a computer system for automatic marking and assessment of students' programs written in Unix Bourne Shell. In this study, a student's program will be assessed by testing its dynamic correctness and its maintainability. For dynamic correctness to be checked the program will be run against sets of input data supplied by the teacher, whereas for maintainability the student's program will be tested statically. The program text will be analysed, and its typographic style and its complexity measured. The typographic assessment in this system is adaptable to reflect the change of emphasis as a course progresses. This study presents the results generated from the assessment of a typical class of students in a Shell programming course. The experience with the development of the typographic assessment system has been generally positive. The results have shown that it is feasible to automate the assessment of this quality factor, as well as dynamic testing. Realistic grading can be achieved and useful information feedback can be obtained. The system is useful to both the students learning programming in Shell, (Arthur, L. J. and Burns, T., 1996) and the staff who are teaching the course. Although the work here is focused on the Bourne Shell, (Bourne, S. R., 1987) the study is still valid, with little or no change, to all other shells. The method used can also be applied, with some modification, to other programming languages. Furthermore this method is not limited to university and teaching, it can also be used in other fields for the purposes of software quality assessment

    A quantitative charcterization of control flow context: software measures for programming environments

    Get PDF
    A review of published measures of control flow complexity in programs reveals three major deficiencies: loss of information, lack of specificity, and lack of analytical support. A new approach is used to characterize the control structure of a program, with the aim of defining properties and measures of control flow that can be of immediate use to programmers, regardless of their utility as complexity measures. Mathematical rigor and analytical evaluation techniques are used to define a set of properties of control structure and a corresponding vector of measures. Instead of defining the properties and measures for an entire flowgraph, they are defined at the node level, reflecting the control flow surrounding each node in a flowgraph. The properties and their measures reflect the following characteristics of control flow: nesting, iteration, structuredness, and predecessors. Algorithms for computing the properties and their measures are presented. An assessment of the computational complexity of the algorithms shows that they are feasible programming environment tools;A finite path set, representing all possible execution sequences, is evaluated as a characterizing property. Desired characteristics of the path set are defined and used to evaluate four published path subset criteria. Those criteria are shown to be deficient, so a fifth criterion is defined. However, the path set satisfying this fifth criterion is shown to be too large to be of practical use to a programmer
    corecore