scispace - formally typeset
Search or ask a question

Showing papers on "Object-oriented design published in 2020"


Journal ArticleDOI
TL;DR: It is proposed that identifying design flaws at a higher level of granularity will save from the vicious cycle of small refactoring operations and their cascaded side-effects.
Abstract: Good software quality is a consequence of good design. Model refactoring counteracts erosion of the software design at an early stage in the software development project complying with the model-dr...

16 citations


01 Jan 2020
TL;DR: In this paper, the authors examined the relationship between design best practices and 10 selected design principles and found that the main design aspects of the design principles are covered by their approach and is therefore feasible to derive concrete design improvement actions.
Abstract: Object-oriented design principles are fundamental concepts that carry important design knowledge and foster the development of software-intensive systems with a focus on good design quality. They emerged after the first steps in the field of object-oriented programming and the recognition of best practices in using this programming paradigm to build maintainable software. Although design principles are known by software developers, it is difficult to apply them in practice without concrete rules to follow. We recognized this gap and systematically derived design best practices for a number of design principles and provide tool support for automatic measurement of these practices. The aim of this paper is to examine the relationship between design best practices and 10 selected design principles. This should provide evidence whether the key design aspects of the design principles are covered. We conducted focus group research with six focus groups and 31 participants in total. In parallel, each group discussed five design principles and assessed the coverage by using the Delphi method. Despite suggestions of additional design practices that were added by the participants, the result reveals the impact of each design best practice to the design principle and shows that the main design aspects of the design principles are covered by our approach and is therefore feasible to derive concrete design improvement actions.

10 citations


Proceedings ArticleDOI
15 Apr 2020
TL;DR: This paper identifies a consolidated set of metrics that is more effective than the existing sets at identifying fault-prone classes, and outperforming the other metric sets.
Abstract: Background: Using design metrics to predict fault-prone elements of a software design can help to focus attention on classes that need redesign and more extensive testing. However, some design metrics have been pointed out to be theoretically invalid, and the usefulness of some metrics is questioned. Aim: To identify a set of object-oriented metrics that are theoretically valid, and useful for identifying fault-prone classes in a design. Method: Drawing on four well-known sets of design metrics (CK, LK, MOOD and QMOOD), we propose a consolidated set of metrics that covers many aspects of object-oriented software design. We conduct two experiments, first using a single large system and then considering successive releases of that system, to compare the usefulness of the consolidated set with the other four sets for within-project prediction of fault-prone classes. Results: Both experiments suggest the consolidated set is effective at identifying fault-prone classes, outperforming the other metric sets (though at a cost of more false alarms). Conclusion: This paper adds to knowledge about the usefulness of existing sets of design metrics for within-project defect prediction, and identifies a consolidated set of metrics that is more effective than the existing sets at identifying fault-prone classes.

5 citations


Proceedings ArticleDOI
01 Jan 2020
TL;DR: The proposed object model is basis to develop the specialized software for automation of the metallographic analysis and represents basic abstractions of the meetallographicAnalysis, software use-cases and organization of the program modules.
Abstract: The relevance to develop the specialized software for automation of the metallographic analysis has been substantiated. The object model of the specialized software for automation of the metallographic analysis has been designed. The proposed object model is basis to develop the specialized software for automation of the metallographic analysis. The model represents basic abstractions of the metallographic analysis, software use-cases and organization of the program modules. Bases on the proposed model the specialized software for automation of the metallographic analysis has been developed.

2 citations


Journal ArticleDOI
01 Nov 2020
TL;DR: A Maintainability Measurement Model that works at design phase of system development life cycle is proposed and the developed model has been authenticated using investigational tryout and contains the empirical authentication of the developed maintainability measurement model.
Abstract: Measuring maintainability early in the software development life cycle mainly at design phase is a landmark of crucial significance to software designers, developers and quality controllers. Initial Measurement of object oriented software maintainability, absolutely at design phase supports designers to increase their designs before the coding starts. Practitioners and developers repeatedly advocate that maintainability Measurement should be planned at design phase of development life cycle. This paper proposes a Maintainability Measurement Model that works at design phase of system development life cycle. Furthermore, statistical test is performed to justify the correlation of Maintainability with its key contributors Modifiability and Analyzability. The developed model has been authenticated using investigational tryout. In decision, it contains the empirical authentication of the developed maintainability measurement model. KeywordsMaintainability, Object Oriented Metrics, Maintainability Factors, Analyzability, Modifiability, Design Phase, Development life cycle

2 citations


Proceedings ArticleDOI
01 Jan 2020
TL;DR: A simple model for reasoning about limits on coupling among a program's classes—a long-standing question in the software design literature—is proposed, taking the form of a directed graph with classes as nodes and four distinct forms of compilation dependencies as labeled edges.
Abstract: Given that all of a program's code must be reachable from its main method, and that type-safety causes this reachability to substantially manifest as compilation dependencies among the program's classes, a simple model for reasoning about limits on coupling among a program's classes—a long-standing question in the software design literature—is proposed. The model takes the form of a directed graph with classes as nodes and four distinct forms of compilation dependencies as labeled edges. As manifested in compilation dependencies, the model suggests that there is a trade-off between direct and transitive coupling, and that certain forms of coupling in a class are prerequisites for the existence of other forms in that same class.

1 citations



Book ChapterDOI
01 Jan 2020
TL;DR: The “Transmission Network Management Information System” which was implemented at the National Power Transmission Grid state-owned stock company is discussed as well as the difficulties faced and the solution found by using the five principles of object-oriented design.
Abstract: Using the SOLID principle of the five principles of object-oriented design, it is possible to establish the software, which is more easily understandable, flexible, and more sustainable. This article discusses the “Transmission Network Management Information System” which was implemented at the National Power Transmission Grid state-owned stock company as well as the difficulties faced and the solution found by using the five principles of object-oriented design

Journal ArticleDOI
TL;DR: This paper describes an entirely original idea of the author based on experience of managing the design and construction of the process control, emergency shut-down and fire and gas and communication systems for a major oil and gas platform in the North Sea around the time of the Piper Alpha disaster.
Abstract: The purpose of this study is to provide a method for designing the software for a process control system that avoids difficulties that lead to safety problems.,Design of real-time software for safety critical programmable equipment systems (PES) such as process control or shutdown systems needs to be approached quite differently compared to any other software. It must be designed by those who understand the equipment system not by software engineers who do not. Following the ‘Piper Alpha’ disaster in the North Sea in the late 1980s, it was realised that the software of safety critical PES, such as the shut-down system on an oil rig, was proving very unreliable. Earlier hardwired relay-based shut-down systems were designed by process control engineers who understood the functions the equipment was required to perform; however, by the 1980s, such systems had been replaced by PES designed by system analysts who did not understand the technologies involved. The safety critical real-time software for a programmable equipment system will only be reliable when it is designed by control engineers who understand the functions it has to perform.,Bottom-up design of software is necessary to avoid safety issues and this can only be achieved using object-oriented methods.,This paper describes an entirely original idea of the author based on experience of managing the design and construction of the process control, emergency shut-down and fire and gas and communication systems for a major oil and gas platform in the North Sea around the time of the Piper Alpha disaster.