1,279 research outputs found

    On the State of the Art of Coupling and Cohesion Measures for Service-Oriented System Design

    Get PDF
    Service-oriented computing has encountered an increasing importance for enterprises over the last years. With Web services, the major underlying technical basis is already in an advanced state. The service design area, on the other hand, still provides several research gaps such as the field of service identification and in particular the determination of an optimal granularity level for services. Granularity, assessed through coupling and cohesion considerations, is yet a rather unexplored domain when it comes to service-orientation, although several results from earlier design principles are available. In this paper we summarize the current state of the art in granularity measures and identify the implications emerging for practice and re-search. As we reveal, several existing measures for other paradigms, which might be adapted for service-orientation, are left unconsidered. Further research gaps, as the mainly missing empirical evaluation or a tighter inclusion in the development process, are also detected

    Software design metrics for predicting maintainability of service-oriented software

    Get PDF
    As the pace of business change increases, service-oriented (SO) solutions should facilitate easier maintainability as underlying business logic and rules change. To date, little effort has been dedicated to considering how the structural properties of coupling and cohesion may impact on the maintainability of SO software products. Moreover, due to the unique design characteristics of Service-Oriented Computing (SOC), existing Procedural and Object-Oriented (OO) software metrics are not sufficient for the accurate measurement of service-oriented design structures. This thesis makes a contribution to the field of SOC, and Software Engineering in general, by proposing and evaluating a suite of design-level coupling and cohesion metrics for predicting the maintainability of service-oriented software products early in the Software Development LifeCycle (SDLC). The proposed metrics can provide the following benefits: i) facilitate design decisions that could lead to the specification of quality SO designs that can be maintained more easily; ii) identify design problems that can potentially have a negative effect on the maintainability of existing service-oriented design structures; and iii) support more effective control of maintainability in the earlier stages of SDLC. More specifically, the following research was conducted as part of this thesis: - A formal mathematical model covering the structural and behavioural properties of service-oriented system design was specified. - Software metrics were defined in a precise, unambiguous, and formal manner using the above model. - The metrics were theoretically validated and empirically evaluated in order to determine the success of this thesis as follows: a. Theoretical validation was based on the property-based software engineering measurement framework. All the proposed metrics were deemed as theoretically valid. b. Empirical evaluation employed a controlled experimental study involving ten participants who performed a range of maintenance tasks on two SO systems developed (and measured using the proposed metrics) specifically for this study. The majority of the experimental outcomes compared favourably with our expectations and hypotheses. More specifically, the results indicated that most of the proposed metrics can be used to predict the maintainability of service-oriented software products early in the SDLC, thereby providing evidence for the validity and potential usefulness of the derived metrics. Nevertheless, a broader range of industrial scale experiments and analyses are required to fully demonstrate the practical applicability of the metrics. This has been left to future work

    A survey on software coupling relations and tools

    Full text link
    Context Coupling relations reflect the dependencies between software entities and can be used to assess the quality of a program. For this reason, a vast amount of them has been developed, together with tools to compute their related metrics. However, this makes the coupling measures suitable for a given application challenging to find. Goals The first objective of this work is to provide a classification of the different kinds of coupling relations, together with the metrics to measure them. The second consists in presenting an overview of the tools proposed until now by the software engineering academic community to extract these metrics. Method This work constitutes a systematic literature review in software engineering. To retrieve the referenced publications, publicly available scientific research databases were used. These sources were queried using keywords inherent to software coupling. We included publications from the period 2002 to 2017 and highly cited earlier publications. A snowballing technique was used to retrieve further related material. Results Four groups of coupling relations were found: structural, dynamic, semantic and logical. A fifth set of coupling relations includes approaches too recent to be considered an independent group and measures developed for specific environments. The investigation also retrieved tools that extract the metrics belonging to each coupling group. Conclusion This study shows the directions followed by the research on software coupling: e.g., developing metrics for specific environments. Concerning the metric tools, three trends have emerged in recent years: use of visualization techniques, extensibility and scalability. Finally, some coupling metrics applications were presented (e.g., code smell detection), indicating possible future research directions. Public preprint [https://doi.org/10.5281/zenodo.2002001]

    Service-oriented design measurement and theoretical validation

    Get PDF
    As software systems become more and more complex over time, software quality accordingly becomes increasingly important. Service-Oriented Computing (SOC) paradigm is one of the established paradigms used for building and developing flexible, reusable, rapid and low cost software products. Consequently, the use of SOC to develop software systems is increasing. Software quality measurement has considerable importance in the context of SOC since it determines how the quality requirements for composite service should be achieved. As a result, several quality metrics for composite service design were proposed. However, these metrics were constructed based on previous development approaches, give insufficient focus and need modification to be applied to service-oriented systems. Furthermore, the existing metrics do not consider the composite service as building blocks and also they do not consider the indirect relationships. In this paper, a quality measurement for composite service-oriented design is proposed, with the aim of increasing reusability and decreasing the complexity of design. The paper begins with proposing a set of metrics to measure the quality of composite service design. Then, the proposed metrics are validated theoretically to check its usability and applicability for composite service. The results show that the proposed metrics are able to measure the quality of composite service design

    A novel model for improving the maintainability of web-based systems

    Get PDF
    Web applications incorporate important business assets and offer a convenient way for businesses to promote their services through the internet. Many of these web applica- tions have evolved from simple HTML pages to complex applications that have a high maintenance cost. This is due to the inherent characteristics of web applications, to the fast internet evolution and to the pressing market which imposes short development cycles and frequent modifications. In order to control the maintenance cost, quantita- tive metrics and models for predicting web applications’ maintainability must be used. Maintainability metrics and models can be useful for predicting maintenance cost, risky components and can help in assessing and choosing between different software artifacts. Since, web applications are different from traditional software systems, models and met- rics for traditional systems can not be applied with confidence to web applications. Web applications have special features such as hypertext structure, dynamic code generation and heterogenousity that can not be captured by traditional and object-oriented metrics. This research explores empirically the relationships between new UML design met- rics based on Conallen’s extension for web applications and maintainability. UML web design metrics are used to gauge whether the maintainability of a system can be im- proved by comparing and correlating the results with different measures of maintain- ability. We studied the relationship between our UML metrics and the following main- tainability measures: Understandability Time (the time spent on understanding the soft- ware artifact in order to complete the questionnaire), Modifiability Time(the time spent on identifying places for modification and making those modifications on the software artifact), LOC (absolute net value of the total number of lines added and deleted for com- ponents in a class diagram), and nRev (total number of revisions for components in a class diagram). Our results gave an indication that there is a possibility for a relationship to exist between our metrics and modifiability time. However, the results did not show statistical significance on the effect of the metrics on understandability time. Our results showed that there is a relationship between our metrics and LOC(Lines of Code). We found that the following metrics NAssoc, NClientScriptsComp, NServerScriptsComp, and CoupEntropy explained the effort measured by LOC(Lines of Code). We found that NC, and CoupEntropy metrics explained the effort measured by nRev(Number of Revi- sions). Our results give a first indication of the usefulness of the UML design metrics, they show that there is a reasonable chance that useful prediction models can be built from early UML design metrics

    A survey on software testability

    Full text link
    Context: Software testability is the degree to which a software system or a unit under test supports its own testing. To predict and improve software testability, a large number of techniques and metrics have been proposed by both practitioners and researchers in the last several decades. Reviewing and getting an overview of the entire state-of-the-art and state-of-the-practice in this area is often challenging for a practitioner or a new researcher. Objective: Our objective is to summarize the body of knowledge in this area and to benefit the readers (both practitioners and researchers) in preparing, measuring and improving software testability. Method: To address the above need, the authors conducted a survey in the form of a systematic literature mapping (classification) to find out what we as a community know about this topic. After compiling an initial pool of 303 papers, and applying a set of inclusion/exclusion criteria, our final pool included 208 papers. Results: The area of software testability has been comprehensively studied by researchers and practitioners. Approaches for measurement of testability and improvement of testability are the most-frequently addressed in the papers. The two most often mentioned factors affecting testability are observability and controllability. Common ways to improve testability are testability transformation, improving observability, adding assertions, and improving controllability. Conclusion: This paper serves for both researchers and practitioners as an "index" to the vast body of knowledge in the area of testability. The results could help practitioners measure and improve software testability in their projects

    Model-based risk assessment

    Get PDF
    In this research effort, we focus on model-based risk assessment. Risk assessment is essential in any plan intended to manage software development or maintenance process. Subjective techniques are human intensive and error-prone. Risk assessment should be based on architectural attributes that we can quantitatively measure using architectural level metrics. Software architectures are emerging as an important concept in the study and practice of software engineering nowadays, due to their emphasis on large-scale composition of software product, and to their support for emerging software engineering paradigms, such as product line engineering, component based software engineering, and software evolution.;In this dissertation, we generalize our earlier work on reliability-based risk assessment. We introduce error propagation probability in the assessment methodology to account for the dependency among the system components. Also, we generalize the reliability-based risk assessment to account for inherent functional dependencies.;Furthermore, we develop a generic framework for maintainability-based risk assessment which can accommodate different types of software maintenance. First, we introduce and define maintainability-based risk assessment for software architecture. Within our assessment framework, we investigate the maintainability-based risk for the components of the system, and the effect of performing the maintenance tasks on these components. We propose a methodology for estimating the maintainability-based risk when considering different types of maintenance. As a proof of concept, we apply the proposed methodology on several case studies. Moreover, we automate the estimation of the maintainability-based risk assessment methodology
    • …
    corecore