443,344 research outputs found

    An investigation of the utility and value of process patterns in the management of software development projects.

    Get PDF
    Pattern theory has engendered much controversy in the field of architecture; yet it has brought new insights to the field of software engineering. Patterns continue to play an important role in software engineering in general, and in software development in particular. In this study, two preliminary surveys, focusing on the two fields of architecture and software engineering, were carried out to investigate the role and effect of patterns. The surveys indicate that while, patterns are unpopular within the architecture community and are criticised for stifling creativity, software patterns are popular within the software community and a high proportion of software development companies use them in their development practice. The results however show that in the vast majority of cases, pattern usage is limited to design-based problems, involving a single type of pattern (i.e. design patterns). The results further show that process-based patterns are seldom used in the software development industry, which prompted the topic of the main investigation of this research to evaluate the effect and utility of process patterns. A controlled experimental research method was designed and used to evaluate the utility and value of process patterns in the management of software development projects. In this '2x2 factorial design' experiment, the subjects were divided in two groups of experimental and control, where the experimental groups were given a set of process patterns to use in their software development projects. Overall, there were over 750 subjects involved in this experiment and a total of 260 software development projects (individual and group projects) were investigated. Measurements of a number of appropriate software attributes were taken during the life of the projects though a devised goal-based measurement process. A further number of attributes were measured after the projects were completed. Using metrics, a number of software attributes across the four major phases of the development lifecycle (i.e. Requirement Analysis, Design, Implementation, and Delivery) were measured and statistically analysed. In addition to these specific measurement data, official marks awarded to the projects by the tutors were also used in the analysis. The objective was to determine if the experimental groups produced software projects that were of higher quality, in terms of the measured software attributes, than the control groups. The experiment results show that, in the case of thirteen measured attributes, the treated groups scored significantly higher than the control groups. The improvements are across all the four major development phases, with at least two attribute in each phase, showing significant improvement. The experiment, therefore, confirms that the application of process patterns in software development projects, improves the quality of the projects in terms of a number of specific attributes such as productivity and defect density. The results further show that the treated subjects in the group projects performed significantly better than those in the individual projects. This, therefore, confirms that while the application of process patterns significantly improves the quality of both group and individual projects, the improvement is more prominent in the case of team projects. Process patterns are thus shown to be more effective on team projects in improving the quality of software development projects

    Software design measures for distributed enterprise information systems

    Get PDF
    Enterprise information systems are increasingly being developed as distributed information systems. Quality attributes of distributed information systems, as in the centralised case, should be evaluated as early and as accurately as possible in the software engineering process. In particular, software measures associated with quality attributes of such systems should consider the characteristics of modern distributed technologies. Early design decisions have a deep impact on the implementation of distributed enterprise information systems and thus, on the ultimate quality of the software as an operational entity. Due to the fact that the distributed-software engineering process affords software engineers a number of design alternatives, it is important to develop tools and guidelines that can be used to assess and compare design artefacts quantitatively. This dissertation makes a contribution to the field of Software Engineering by proposing and evaluating software design measures for distributed enterprise information systems. In previous research, measures developed for distributed software have been focused in code attributes, and thus, only provide feedback towards the end of the software engineering process. In contrast, this thesis proposes a number of specific design measures that provide quantitative information before the implementation. These measures capture attributes of the structure and behaviour of distributed information systems that are deemed important to assess their quality attributes, based on the analysis of the problem domain. The measures were evaluated theoretically and empirically as part of a well defined methodology. On the one hand, we have followed a formal framework based on the theory of measurement, in order to carry out the theoretical validation of the proposed measures. On the other hand, the suitability of the measures, to be used as indicators of quality attributes, was evaluated empirically with a robust statistical technique for exploratory research. The data sets analysed were gathered after running several experiments and replications with a distributed enterprise information system. The results of the empirical evaluation show that most of the proposed measures are correlated to the quality attributes of interest, and that most of these measures may be used, individually or in combination, for the estimation of these quality attributes-namely efficiency, reliability and maintainability. The design of a distributed information system is modelled as a combination of its structure, which reflects static characteristics, and its behaviour, which captures complementary dynamic aspects. The behavioural measures showed slightly better individual and combined results than the structural measures in the experimentation. This was in line with our expectations, since the measures were evaluated as indicators of non-functional quality attributes of the operational system. On the other hand, the structural measures provide useful feedback that is available earlier in the software engineering process. Finally, we developed a prototype application to collect the proposed measures automatically and examined typical real-world scenarios where the measures may be used to make design decisions as part of the software engineering process

    Software Measurement Activities in Small and Medium Enterprises: an Empirical Assessment

    Get PDF
    An empirical study for evaluating the proper implementation of measurement/metric programs in software companies in one area of Turkey is presented. The research questions are discussed and validated with the help of senior software managers (more than 15 years’ experience) and then used for interviewing a variety of medium and small scale software companies in Ankara. Observations show that there is a common reluctance/lack of interest in utilizing measurements/metrics despite the fact that they are well known in the industry. A side product of this research is that internationally recognized standards such as ISO and CMMI are pursued if they are a part of project/job requirements; without these requirements, introducing those standards to the companies remains as a long-term target to increase quality

    WEAK MEASUREMENT THEORY AND MODIFIED COGNITIVE COMPLEXITY MEASURE

    Get PDF
    Measurement is one of the problems in the area of software engineering. Since traditional measurement theory has a major problem in defining empirical observations on software entities in terms of their measured quantities, Morasca has tried to solve this problem by proposing Weak Measurement theory. In this paper, we tried to evaluate the applicability of weak measurement theory by applying it on a newly proposed Modified Cognitive Complexity Measure (MCCM). We also investigated the applicability of Weak Extensive Structure for deciding on the type of scale for MCCM. It is observed that the MCCM is on weak ratio scale

    An Approach for the Empirical Validation of Software Complexity Measures

    Get PDF
    Software metrics are widely accepted tools to control and assure software quality. A large number of software metrics with a variety of content can be found in the literature; however most of them are not adopted in industry as they are seen as irrelevant to needs, as they are unsupported, and the major reason behind this is due to improper empirical validation. This paper tries to identify possible root causes for the improper empirical validation of the software metrics. A practical model for the empirical validation of software metrics is proposed along with root causes. The model is validated by applying it to recently proposed and well known metrics

    Model-driven performance evaluation for service engineering

    Get PDF
    Service engineering and service-oriented architecture as an integration and platform technology is a recent approach to software systems integration. Software quality aspects such as performance are of central importance for the integration of heterogeneous, distributed service-based systems. Empirical performance evaluation is a process of measuring and calculating performance metrics of the implemented software. We present an approach for the empirical, model-based performance evaluation of services and service compositions in the context of model-driven service engineering. Temporal databases theory is utilised for the empirical performance evaluation of model-driven developed service systems
    • …
    corecore