6 research outputs found

    Recognising object-oriented software design quality : a practitioner-based questionnaire survey

    Get PDF
    Design quality is vital if software is to be maintainable. What practices do developers actually use to achieve design quality in their day-to-day work and which of these do they find most useful? To discover the extent to which practitioners concern themselves with object-oriented design quality and the approaches used when determining quality in practice, a questionnaire survey of 102 software practitioners, approximately half from the UK and the remainder from elsewhere around the world was used. Individual and peer experience are major contributors to design quality. Classic design guidelines, well-known lower level practices, tools and metrics all can also contribute positively to design quality. There is a potential relationship between testing practices and design quality. Inexperience, time pressures, novel problems, novel technology, and imprecise or changing requirements may have a negative impact on quality. Respondents with most experience are more confident in their design decisions, place more value on reviews by team leads and are more likely to rate design quality as very important. For practitioners, these results identify the techniques and tools that other practitioners find effective. For researchers, the results highlight a need for more work investigating the role of experience in the design process and the contribution experience makes to quality. There is also the potential for more in-depth studies of how practitioners are actually using design guidance, including Clean Code. Lastly, the potential relationship between testing practices and design quality merits further investigation

    Extension of Object-Oriented Metrics Suite for Software Maintenance

    Get PDF

    Closing the gap between guidance and practice, an investigation of the relevance of design guidance to practitioners using object-oriented technologies

    Get PDF
    This thesis investigates if object oriented guidance is relevant in practice, and how this affects software that is produced. This is achieved by surveying practitioners and studying how constructs such as interfaces and inheritance are used in open-source systems. Surveyed practitioners framed 'good design' in terms of impact on development and maintenance. Recognition of quality requires practitioner judgement (individually and as a group), and principles are valued over rules. Time constraints heighten sensitivity to the rework cost of poor design decisions. Examination of open source systems highlights the use of interface and inheritance. There is some evidence of 'textbook' use of these structures, and much use is simple. Outliers are widespread indicating a pragmatic approach. Design is found to reflect the pressures of practice - high-level decisions justify 'designed' structures and architecture, while uncertainty leads to deferred design decisions - simpler structures, repetition, and unconsolidated design. Sub-populations of structures can be identified which may represent common trade-offs. Useful insights are gained into practitioner attitude to design guidance. Patterns of use and structure are identified which may aid in assessment and comprehension of object oriented systems.This thesis investigates if object oriented guidance is relevant in practice, and how this affects software that is produced. This is achieved by surveying practitioners and studying how constructs such as interfaces and inheritance are used in open-source systems. Surveyed practitioners framed 'good design' in terms of impact on development and maintenance. Recognition of quality requires practitioner judgement (individually and as a group), and principles are valued over rules. Time constraints heighten sensitivity to the rework cost of poor design decisions. Examination of open source systems highlights the use of interface and inheritance. There is some evidence of 'textbook' use of these structures, and much use is simple. Outliers are widespread indicating a pragmatic approach. Design is found to reflect the pressures of practice - high-level decisions justify 'designed' structures and architecture, while uncertainty leads to deferred design decisions - simpler structures, repetition, and unconsolidated design. Sub-populations of structures can be identified which may represent common trade-offs. Useful insights are gained into practitioner attitude to design guidance. Patterns of use and structure are identified which may aid in assessment and comprehension of object oriented systems

    Ohjelmistometriikat arkkitehtuuritasolla

    Get PDF
    Siirretty Doriast

    Improvement of object-oriented software systems by applying software quality standards.

    Get PDF
    Предмет истраживања докторске дисертације је могућност побољшања објектно-оријентисаних софтверских система коришћењем стандарда квалитета софтвера. У истраживању је дат преглед различитих стандарда квалитета софтвера из области софтверског инжењерства, софтверских метрика и алата за статичку анализу квалитета софтвера који се оперативно користе у процесу евалуације квалитета софтвера. У докторској дисертацији су идентификовани механизми побољшања објектно-оријентисаних софтверских система (општи принципи пројектовања софтвера, принципи објектно-оријентисаног пројектовања софтвера, стратегије пројектовања софтвера, патерни пројектовања софтвера и методе развоја софтвера) и успостављена је њихова веза са стандардима квалитета софтвера. У раду је развијена оригинална SilabQOSS (енг. Silab Quality Method for Object-oriented Software Systems) метода за побољшање објектно-оријентисаних софтверских система коришћењем стандарда квалитета софтвера. Предложена метода користи стандарде квалитета софтвера, софтверске метрике и алате за статичку анализу квалитета софтвера. Такође, метода користи претходно поменуте механизме за побољшање објектно-оријентисаних софтверских система. Посматрана метода је подржана софтверским алатом SilabMetrics који се може користити самостално или се интегрисати са NetBeans окружењем за развој софтвера. На основу извршене евалуације закључено је да се применом SilabQOSS методе и SilabMetrics алата за статичку анализу квалитета софтвера омогућава развој софтверских система који су стабилнији, једноставнији за развој, одржавање и даљу надоградњу.The research subject of the doctoral dissertation is the possibility of improvement of object-oriented software systems by applying software quality standards. The research provides an overview of different software engineering quality standards, software metrics, and tools for static analysis of software quality which are operatively used in the software quality evaluation process. The doctoral dissertation identifies different mechanisms for improving object-oriented software systems (i.e. general principles of software design, principles of object-oriented software design, software design strategies, design patterns, and software development methods) as well as their relation with the software quality standards. The doctoral dissertation introduces original SilabQOSS (Silab Quality Method for Object-oriented Software Systems) method for improving object-oriented software systems using software quality standards. The proposed method incorporates software quality standards, software metrics, and tools for static analysis of software quality. In addition, the method uses mechanisms for improving object-oriented software systems, as already mentioned. The method is supported by the SilabMetrics software tool that can be used independently or integrated with the NetBeans software development environment. The evaluation results confirm that the SilabQOSS method and the SilabMetrics software quality tool enable the development of software systems which are more stable, easier to develop, maintain, and upgrade

    A Critical Analysis of Current OO Design Metrics

    No full text
    Chidamber and Kemerer (C&K) outlined some initial proposals for language-independent OO design metrics in [10]. This suite is expanded on in [11] and the metrics were tested on systems developed in C++ and Smalltalk?. The six metrics making up the C&K suite can be criticised for a number of reasons. This does not make them bad metrics; on the contrary the C&K work represents one of the most thorough treatments of the subject at the current time. However, the authors explicitly state, "…there is no reason to believe that the proposed metrics will be found to be comprehensive, and further work could result in additions, changes and possible deletions from this suite". This analysis will serve to make other researchers and practitioners aware of some of the problems that may arise from using these measures. As a by-product, the axioms of E. Weyuker [29] come under scrutiny in terms of their applicability to object-orientated metrics. 1
    corecore