14 research outputs found
Towards the Evaluation of Software Products from an Environmental Sustainability Perspective
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
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
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�
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
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
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
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
Recommended from our members
The safety of industrially-based controllers incorporating software
This thesis is concerned with the safety of industrial controllers which incorporate software. Software safety is compared with software reliability as a means of discussing the special concerns of safety. Definitions are given for the terms hazard, risk, danger and safe. A relationship between these terms has been attempted and the philosophy of safety is discussed. A formal definition of software safety is given. The factors influencing the development of software are examined. The subjectivity of safety is discussed in the context of safety measurement being a conjoint measurement. Methods of assessing the risk resulting from the use of software are described along with a discussion on the impracticability of using state transition diagrams to isolate catastrophic failure conditions. Categories of danger are discussed and three categories are advanced. The structuring of the software for safety is discussed and the principle of using safety modules and integrity locks is proposed. In discussing the reasons for errors remaining present in the software after testing two methods of measurement are suggested; Plexus and Fallibility Index. The need to declare variables is discussed.
An experiment involving 119 volunteers was conducted to examine the influence of the length of variable names'on the correct usage. It was found that variables with a character length of 7 have a better probability of correct interpretation than others.
The methods of assessing safety are discussed and the measurements proposed were applied to a commercially available product in the form of a Software Safety Audit.
It is concluded that some aspects of the safety of controllers incorporating software can be quantified and that further research is needed