共查询到20条相似文献,搜索用时 31 毫秒
1.
Sarkar S. Rama G.M. Kak A.C. 《IEEE transactions on pattern analysis and machine intelligence》2007,33(1):14-32
We present in this paper a new set of metrics that measure the quality of modularization of a non-object-oriented software system. We have proposed a set of design principles to capture the notion of modularity and defined metrics centered around these principles. These metrics characterize the software from a variety of perspectives: structural, architectural, and notions such as the similarity of purpose and commonality of goals. (By structural, we are referring to intermodule coupling-based notions, and by architectural, we mean the horizontal layering of modules in large software systems.) We employ the notion of API (application programming interface) as the basis for our structural metrics. The rest of the metrics we present are in support of those that are based on API. Some of the important support metrics include those that characterize each module on the basis of the similarity of purpose of the services offered by the module. These metrics are based on information-theoretic principles. We tested our metrics on some popular open-source systems and some large legacy-code business applications. To validate the metrics, we compared the results obtained on human-modularized versions of the software (as created by the developers of the software) with those obtained on randomized versions of the code. For randomized versions, the assignment of the individual functions to modules was randomized 相似文献
2.
Lukas Linsbauer Roberto Erick Lopez-Herrejon Alexander Egyed 《Software and Systems Modeling》2017,16(4):1179-1199
Fast-changing hardware and software technologies in addition to larger and more specialized customer bases demand software tailored to meet very diverse requirements. Software development approaches that aim at capturing this diversity on a single consolidated platform often require large upfront investments, e.g., time or budget. Alternatively, companies resort to developing one variant of a software product at a time by reusing as much as possible from already-existing product variants. However, identifying and extracting the parts to reuse is an error-prone and inefficient task compounded by the typically large number of product variants. Hence, more disciplined and systematic approaches are needed to cope with the complexity of developing and maintaining sets of product variants. Such approaches require detailed information about the product variants, the features they provide and their relations. In this paper, we present an approach to extract such variability information from product variants. It identifies traces from features and feature interactions to their implementation artifacts, and computes their dependencies. This work can be useful in many scenarios ranging from ad hoc development approaches such as clone-and-own to systematic reuse approaches such as software product lines. We applied our variability extraction approach to six case studies and provide a detailed evaluation. The results show that the extracted variability information is consistent with the variability in our six case study systems given by their variability models and available product variants. 相似文献
3.
基于构件库管理系统的构件复用度度量模型 总被引:5,自引:0,他引:5
构件概念及其理论的发展始终以软件复用为切入点,只有被最大可能地复用,构件才有其存在的意义和经济价值。如何用一种较为精确的、基于实践应用的方法来评价构件的复用度,关系到构件质量的提高和构件库的有效性。该文介绍了构件复用的概念,并结合构件库管理系统,提供了一个对构件复用度的度量模型,分析了度量结果对构件库的反馈作用,能够对构件库管理系统的设计与实现提供参考。 相似文献
4.
Software Structure Metrics Based on Information Flow 总被引:2,自引:0,他引:2
《IEEE transactions on pattern analysis and machine intelligence》1981,(5):510-518
Structured design methodologies provide a disciplined and organized guide to the construction of software systems. However, while the methodology structures and documents the points at which design decisions are made, it does not provide a specific, quantitative basis for making these decisions. Typically, the designers' only guidelines are qualitative, perhaps even vague, principles such as "functionality," "data transparency," or "clarity." This paper, like several recent publications, defines and validates a set of software metrics which are appropriate for evaluating the structure of large-scale systems. These metrics are based on the measurement of information flow between system components. Specific metrics are defined for procedure complexity, module complexity, and module coupling. The validation, using the source code for the UNIX operating system, shows that the complexity measures are strongly correlated with the occurrence of changes. Further, the metrics for procedures and modules can be interpreted to reveal various types of structural flaws in the design and implementation. 相似文献
5.
基于体系结构的应用系统族开发方法的研究 总被引:2,自引:0,他引:2
对于建筑领域管理系统这样具有共同特性的一组应用系统的开发,如果没有系统性重用的方法,不仅会造成软件资产的大量浪费,而且也使系统的成本和开发周期大大增加。为解决上述问题,该文提出了一套以体系结构为中心的工程化软件开发方法,该方法利用软件产品线开发的思想,将软件产品线工程和应用工程两种开发活动集成到一起,通过族体系结构的重用实现系统性重用。 相似文献
6.
7.
Software architecture specifications are of growing importance for coping with the complexity of large-scale systems. They provide an abstract view on the high-level structural system entities together with their explicit dependencies and build the basis for ensuring behavioral conformance of component implementations and interactions, e.g., using model-based integration testing. The increasing inherent diversity of such large-scale variant-rich systems further complicates quality assurance. In this article, we present a combination of architecture-driven model-based testing principles and regression-inspired testing strategies for efficient, yet comprehensive variability-aware conformance testing of variant-rich systems. We propose an integrated delta-oriented architectural test modeling and testing approach for component as well as integration testing that allows the generation and reuse of test artifacts among different system variants. Furthermore, an automated derivation of retesting obligations based on accurate delta-oriented architectural change impact analysis is provided. Based on a formal conceptual framework that guarantees stable test coverage for every system variant, we present a sample implementation of our approach and an evaluation of the validity and efficiency by means of a case study from the automotive domain. 相似文献
8.
9.
10.
组件容器为组件提供部署和运行环境,是基于组件的分布式应用开发的核心。近年来,开发网构软件的需求驱动着组件技术持续改进,新型组件不断涌现,这对组件容器的开发效率提出更高的要求。因此,在组件容器开发过程中大规模复用已有的软件资产变得非常重要。在许多情况下,产品线工程已被证实是有效的系统化复用的工程方法。首先探讨将产品线工程应用于组件容器开发所面临的主要困难,并提出相应的解决方案;然后给出了一个组件容器的产品线——PLACE的设计,解释了其两个主要部分:产品线体系结构和产品派生流程;最后,通过一个实际案例,展示利用PLACE设计开发组件容器的完整过程,结果证实体系结构和源代码的复用性都有一定程度的提高。 相似文献
11.
将切片技术应用于软件体系结构中,根据程序依赖图和系统依赖图的构建思想,提出了体系结构元素依赖图(SADG)的概念,并给出了构建方法以及基于依赖图的切片算法。利用此切片技术从已有的软件体系结构的Wright描述中,提取使用者感兴趣的软件元素(例如,构件和连接体),从而从体系结构的角度,更好的支持了软件理解、软件维护、软件再工程以及软件复用。 相似文献
12.
13.
Banker R.D. Kauffman R.J. Wright C. Zweig D. 《IEEE transactions on pattern analysis and machine intelligence》1994,20(3):169-187
Measurement of software development productivity is needed in order to control software costs, but it is discouragingly labor-intensive and expensive. Computer-aided software engineering (CASE) technologies-especially repository-based, integrated CASE-have the potential to support the automation of this measurement. We discuss the conceptual basis for the development of automated analyzers for function point and software reuse measurement for object-based CASE. Both analyzers take advantage of the existence of a representation of the application system that is stored within an object repository, and that contains the necessary information about the application system. We also discuss metrics for software reuse measurement, including reuse leverage, reuse value, and reuse classification that are motivated by managerial requirements and the efforts, within industry and the IEEE, to standardize measurement. The functionality and the analytical capabilities of state-of-the-art automated software metrics analyzers are illustrated in the context of an investment banking industry application that is similar to systems deployed at the New York City-based investment bank where these tools were developed and tested 相似文献
14.
Embedded architecture description language 总被引:1,自引:0,他引:1
15.
软件复用度量是软件复用技术中不可分割的一部分,在软件复用开发中占据重要地位。软件复用开发与传统的软件开发方式不同,从而影响到软件度量,因此需要新的软件复用度量方法,软件复用度量的研究已经引起学术界的广泛重视。本文是一篇软件复用度量综述,阐述了软件复用对度量的影响以及有关软件复用的度量。 相似文献
16.
One of the biggest obstacles to software reuse is the cost involved in evaluating the suitability of possible reusable components. In recent years, code search engines have made significant progress in establishing the semantic suitability of components for new usage scenarios, but the problem of ranking components according to their non-functional suitability has largely been neglected. The main difficulty is that a component’s non-functional suitability for a specific reuse scenario is usually influenced by multiple, “soft” criteria, but the relative weighting of metrics for these criteria is rarely known quantitatively. What is required, therefore, is an effective and reliable strategy for ranking software components based on their non-functional properties without requiring users to provide quantitative weighting information. In this paper we present a novel approach for achieving this based on the non-dominated sorting of components driven by a specification of the relative importance of non-functional properties as a partial ordering. After describing the ranking algorithm and its implementation in a component search engine, we provide an explorative study of its properties on a sample set of components harvested from Maven Central. 相似文献
17.
基于软件体系结构的构件组装工具ABC-Tool 总被引:22,自引:1,他引:22
软件朝着越来越复杂和庞大的趋势发展,因此对更有效的软件开发技术的需求十分迫切,近年来,软件体系结构、构件技术和软件复用技术等开始在软件开发中发挥重要作用,成为软件工程领域研究的热点,在基于构件复用的开发方法中,构件组装技术是关键,而且一直以来也是难点所在,ABC(architecture-based component composition)是一种基于软件体系结构、面向构件的软件开发方法,介绍了为ABC方法提供有效支持的工具ABC-Tool,ABC-Tool以软件体系结构为设计蓝图,以构件为基本开发单元,在不修改构件源代码的前提下,通过可视化的图形建模方式,从体系结构的高层设计逐层映射到底层实现,将可运行或可部署的构件组装为最终的可正确运行的系统。 相似文献
18.
无适当使用软件测量将可能引起软件低品质且高成本的窘态.凝聚力是软件品质重要因子之一如同维护度,可靠度和再利用度.软件模组品质的优劣必影响整体系统之品质的优劣.为了设计和维护高品质软件,软件专案经理人和软件工程师无可避免需引用软件凝聚力测量以衡量和产生高品质软件.提出以活路跃变量及视觉化变量纵距为分析基础之功能导向凝聚力测量方法.进而,以一系列实际案例来作实验验证,并以一组性质来作理论辩证所提的测量方法.因此一经完善定义,完善实验和完善辩证之凝聚力测量方法被提出用于当软件凝聚力强度的指标和因此增进软件品质.这凝聚力测量方法能容易嵌入CASE以帮助软件工程师确保软件品质. 相似文献
19.
《Journal of Systems and Software》2004,73(2):245-255
Information systems development is typically acknowledged as an expensive and lengthy process, often producing code that is of uneven quality and difficult to maintain. Software reuse has been advocated as a means of revolutionizing this process. The claimed benefits from software reuse are reduction in development cost and time, improvement in software quality, increase in programmer productivity, and improvement in maintainability. Software reuse entails undeniable costs of creating, populating, and maintaining a library of reusable components. There is anecdotal evidence to suggest that some organizations benefit from reuse. However, many software developers practicing reuse claim these benefits without formal demonstration thereof. There is little research to suggest when the benefits are expected and to what extent they will be realized. For example, does a larger library of reusable components lead to increased savings? What is the impact of component size on the effectiveness of reuse? This research seeks to address some of these questions. It represents the first step in a series wherein the effects of software reuse on overall development effort and costs are modeled with a view to understanding when it is most effective. 相似文献
20.
Andrea Leitner Christopher Preschern Christian Kreiner 《Software and Systems Modeling》2014,13(1):35-54
High development and maintenance costs and a high error rate are the major problems in the development of automation systems, which are mainly caused by bad communication and inefficient reuse methods. To overcome these problems, we propose a more systematic reuse approach. Though systematic reuse approaches such as software product lines are appealing, they tend to involve rather burdensome development and management processes. This paper focuses on small enterprises. Since such companies are often unable to perform a “big bang” adoption of the software product line, we suggest an incremental, more lightweight process to transition from single-system development to software product line development. Besides the components of the transition process, this paper discusses tool selection, DSL technology, stakeholder communication support, and business considerations. Although based on problems from the automation system domain, we believe the approach may be general enough to be applicable in other domains as well. The approach has proven successful in two case studies. First, we applied it to a research project for the automation of a logistics lab model, and in the second case (a real-life industry case), we investigated the approaches suitability for fish farm automation systems. Several metrics were collected throughout the evolution of each case, and this paper presents the data for single system development, clone&own and software product line development. The results and observable effects are compared, discussed, and finally summarized in a list of lessons learned. 相似文献