首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 15 毫秒
1.
ContextA Software Product Line is a set of software systems that are built from a common set of features. These systems are developed in a prescribed way and they can be adapted to fit the needs of customers. Feature models specify the properties of the systems that are meaningful to customers. A semantics that models the feature level has the potential to support the automatic analysis of entire software product lines.ObjectiveThe objective of this paper is to define a formal framework for Software Product Lines. This framework needs to be general enough to provide a formal semantics for existing frameworks like FODA (Feature Oriented Domain Analysis), but also to be easily adaptable to new problems.MethodWe define an algebraic language, called SPLA, to describe Software Product Lines. We provide the semantics for the algebra in three different ways. The approach followed to give the semantics is inspired by the semantics of process algebras. First we define an operational semantics, next a denotational semantics, and finally an axiomatic semantics. We also have defined a representation of the algebra into propositional logic.ResultsWe prove that the three semantics are equivalent. We also show how FODA diagrams can be automatically translated into SPLA. Furthermore, we have developed our tool, called AT, that implements the formal framework presented in this paper. This tool uses a SAT-solver to check the satisfiability of an SPL.ConclusionThis paper defines a general formal framework for software product lines. We have defined three different semantics that are equivalent; this means that depending on the context we can choose the most convenient approach: operational, denotational or axiomatic. The framework is flexible enough because it is closely related to process algebras. Process algebras are a well-known paradigm for which many extensions have been defined.  相似文献   

2.
软件构件表示与检索形式化的研究与进展   总被引:2,自引:0,他引:2  
1 引言软件复用被认为是提高软件生产效率和软件质量较为现实的途径。尽管软件复用的思想已经提出了30多年,但软件复用的现状离人们最初的设想仍然相距甚远。阻碍大规模软件复用的技术与非技术因素很多,主要的技术因素有构件分类、构件表示、构件检索、构件更改及构件库的管理与维护等。其中,软件构件表示与检索是软件复用获得成功的重要前提。  相似文献   

3.
4.
Domain analysis is an expansion of conventional requirements analysis. Domain analysis can support effective software reuse. However, domain analysis is time consuming and is limited to a particular application area. Analogical approaches to software reuse, on the other hand, often occur across domains. Analogical problem solving is a process of transferring knowledge from a well-understood base domain to a new target problem area. Analogy can facilitate software reuse for poorly understood problems or new application areas. Analogy shares similar concepts with reuse and some analogy theories have been applied to software reuse. However, current research on software analogy often overlooks the importance of analysis for the base domain and does not consider some critical aspects of analogy concepts. Reuse must be based on high quality artifacts, especially reuse across domains. This paper presents an approach to integrate domain analysis and analogy methods. In our view, domain analysis and software analogy have complementary roles. Domain analysis is regarded as a process to identify and supply necessary information for analogical transfer. Software analogy can provide the analyst with similar problems and solutions to reuse previous domain analysis knowledge or artifacts for a new domain. This paper presents case studies to demonstrate the increase of efficiency in applying the approach. Evaluation of the approach from various perspectives is also reported.  相似文献   

5.
In contrast to current practices where software reuse is applied recursively and reusable assets are tailored trough parameterization or specialization, existing reuse economic models assume that (i) the cost of reusing a software asset depends on its size and (ii) reusable assets are developed from scratch. The contribution of this paper is that it provides modeling elements and an economic model that is better aligned with current practices. The functioning of the model is illustrated in an example. The example also shows how the model can support practitioners in deciding whether it is economically feasible to apply software reuse recursively.  相似文献   

6.
Software reuse is an effective way to improve software productivity and quality. Software libraries are getting bigger, while most of them, such as those for object-oriented languages, use simple but somewhat ineffective classification methods. These libraries typically provide search aids for novices, but not for experts. They are not flexible enough to adequately serve users with different abilities. In this paper, a Software Reuse Framework (SRF) for overcoming these drawbacks is proposed. Based on a built-in hierarchical thesaurus, the classification process can be made semi-automatic. SRF is a domain-independent framework that can be adapted to various libraries. SRF also provides four search levels to serve users with different skill levels. Two sample SRF systems are implemented, one for Smalltalk-80 and the other for MFC 4.0 (Microsoft® Foundation Class) libraries. © 1998 John Wiley & Sons, Ltd.  相似文献   

7.
Numerical software development tends to struggle with an increasing complexity. This is, on the one hand, due to the integration of numerical models, and on the other hand, due to change of hardware. Parallel computers seem to fulfill the need for more and more computer resources, but they are more complex to program.

The article shows how abstraction is used to combat complexity. It motivates that separating a specification, “what,” its realisation, “how,” and its implementation, “when, where,” is of vital importance in software development. The main point is that development steps and levels of abstraction are identified, such that the obtained software has a clear and natural structure.

Development steps can be cast into a formal, i.e., mathematical framework, which leads to rigourous software development. This way of development leads to accurate and unambiguous recording of development steps, which simplifies maintenance, extension and porting of software. Portability is especially important in the field of parallel computing where no universal parallel computer model exists.  相似文献   


8.
Using formal specifications to support software testing   总被引:1,自引:0,他引:1  
Formal specifications become more and more important in the development of software, especially but not only in the area of high integrity system design. In this paper it is demonstrated, how, apart from the specification phase, further benefits may be drawn from formal specifications for checking the implementation against the specification. It is shown how the specification can be used for systematically deriving test input data and for automatically evaluating test results. The approach is illustrated using the specification language Z. The same principles may be applied to other specification languages. The approach allows a high degree of automation, drastically improving productivity and quality of the testing process.  相似文献   

9.
Reuse of software assets in application development has held promise but faced challenges. In addressing these challenges, research has focused on organizational- and project-level factors while neglecting grass-root level adoption of reusable assets. Our research investigated factors associated with individual software developers’ intention to reuse software assets and integrated them in TAM. Towards that end, 13 project managers were interviewed and 207 software developers were surveyed in India. Results revealed that the technological-level (infrastructure), and individual-level factors (reuse-related experience and self-efficacy) were major determinants. Implications are discussed.  相似文献   

10.
A study of software reuse in NASA legacy systems   总被引:1,自引:0,他引:1  
Software reuse is regarded as a highly important factor in reducing development overheads for new software projects; however, much of the literature is concerned with cost and labor savings that reuse brings to industrial software development and little is known about the inherent risks associated with reuse, particularly in the case of mission and safety-critical software systems. We present the preliminary findings of a research project geared toward assessing the impact of risk in National Aeronautics and Space Administration (NASA) legacy software in flight control systems. We introduce the concept of context variables and the impact they have on reuse within these legacy systems as well as the genealogy classification models, which provide a simple, concise method of mapping reuse between families of software projects. This research was conducted at Global Science and Technology, Inc. under NASA grant number NCC0NNG06GI57G.  相似文献   

11.
Organizations have lost billions of dollars due to poor software project implementations. In an effort to enable software project managers to repeat prior successes and avoid previous mistakes, this research seeks to improve the reuse of a specific type of knowledge among software project managers, experiences in the form of narratives. To meet this goal, we identify a set of design principles for facilitating experience reuse based on the knowledge management literature. Guided by these principles we develop a model called Experience Exchange for facilitating the reuse of experiences in the form of narratives. We also provide a proof-of-concept instantiation of a critical component of the Experience Exchange model, the Experience Exchange Library. We evaluate the Experience Exchange model theoretically and empirically. We conduct a theoretical evaluation by ensuring that our model complies with the design principles identified from the literature. We also perform an experiment, using the developed instantiation of the Experience Exchange Library, to evaluate if technology can serve as a medium for transferring experiences across software projects.  相似文献   

12.
We present an experimental software repository system that provides organization, storage, management, and access facilities for reusable software components. The system, intended as part of an applications development environment, supports the representation of information about requirements, designs and implementations of software, and offers facilities for visual presentation of the soft-ware objects. This article details the features and architecture of the repository system, the technical challenges and the choices made for the system development along with a usage scenario that illustrates its functionality. The system has been developed and evaluated within the context of the ITHACA project, a technology integration/software engineering project sponsored by the European Communities through the ESPRIT program, aimed at developing an integrated reuse-centered application development and support environment based on object-oriented techniques.  相似文献   

13.
Systematic software reuse is proposed to increase productivity and software quality and lead to economic benefits. Reports of successful software reuse programs in industry have been published. However, there has been little effort to organize the evidence systematically and appraise it. This review aims to assess the effects of software reuse in industrial contexts. Journals and major conferences between 1994 and 2005 were searched to find observational studies and experiments conducted in industry, returning eleven papers of observational type. Systematic software reuse is significantly related to lower problem (defect, fault or error) density in five studies and to decreased effort spent on correcting problems in three studies. The review found evidence for significant gains in apparent productivity in three studies. Other significant benefits of software reuse were reported in single studies or the results were inconsistent. Evidence from industry is sparse and combining results was done by vote-counting. Researchers should pay more attention to using comparable metrics, performing longitudinal studies, and explaining the results and impact on industry. For industry, evaluating reuse of COTS or OSS components, integrating reuse activities in software processes, better data collection and evaluating return on investment are major challenges.
Reidar ConradiEmail:

Parastoo Mohagheghi   is a researcher at SINTEF, Department of Information and Communication Technology (ICT). She received her Ph.D. from the Norwegian University of Science and Technology in 2004 and worked there before joining SINTEF. She has also industry experience from Ericsson in Norway. Her research interests include software quality, model driven development, software reuse, measurement and empirical software engineering. She is a member of IEEE and ACM. Reidar Conradi   received his Ph.D. in Computer Science from the Norwegian University of Science and Technology (NTNU) in 1976. From 1972 to 1975 he worked at SINTEF as a researcher. Since 1975 he has been assistant professor at NTNU and a full professor since 1985. He has participated in many national and EU projects, chaired workshops and conferences, and edited several books. His research interests are in software engineering, object-oriented methods and software reuse, distributed systems, software evolution and configuration management, software quality and software process improvement. He is a member of IEEE Computer Society and ACM.   相似文献   

14.
David C. Rine  Nader Nada 《Software》2000,30(6):685-722
The contribution of this paper is a reference model for the practice of software reuse. Our research thesis is that software development based upon a software reuse reference model improves quality of products, productivity of processes and product time‐to‐market for many software development enterprises. The definition and investigation of such a model has been carried out using three steps. First, the reference model is developed based on existing software reuse concepts. Second, this reference model is empirically studied using both legacy studies and lessons learned studies. Third, the impact of the reference model on software development productivity, quality, and time‐to‐market is empirically derived. Copyright © 2000 John Wiley & Sons, Ltd.  相似文献   

15.
The success of software development using third party components highly depends on the ability to select a suitable component for the intended application. The evidence shows that there is limited knowledge about current industrial OTS selection practices. As a result, there is often a gap between theory and practice, and the proposed methods for supporting selection are rarely adopted in the industrial practice. This paper's goal is to investigate the actual industrial practice of component selection in order to provide an initial empirical basis that allows the reconciliation of research and industrial endeavors. The study consisted of semi-structured interviews with 23 employees from 20 different software-intensive companies that mostly develop web information system applications. It provides qualitative information that help to further understand these practices, and emphasize some aspects that have been overlooked by researchers. For instance, although the literature claims that component repositories are important for locating reusable components; these are hardly used in industrial practice. Instead, other resources that have not received considerable attention are used with this aim. Practices and potential market niches for software-intensive companies have been also identified. The results are valuable from both the research and the industrial perspectives as they provide a basis for formulating well-substantiated hypotheses and more effective improvement strategies.  相似文献   

16.
We describe the experience of modeling and formally verifying a software cache algorithm using the model checker RuleBase. Contrary to prevailing wisdom, we used a highly detailed model created directly from the C code itself, rather than a high-level abstract model.  相似文献   

17.
可复用软构件检索是构件库和软件复用领域的研究重点.基于刻面分类模式,将构件的刻面描述和查询表达式分别映射成两棵树,利用构件信息集成方式在集成端数据库借鉴树匹配思想进行检索,有效地提高了查全率和查准率.  相似文献   

18.
19.
Software reusability is widely believed to be a key to help overcome the ongoing software crisis by improving software productivity and quality. New computer technology and the demands of an advancing society require new and more complicated software. It is unrealistic to expect that every software system can be developed solely reusing existing software; however, software reusability has proven to be a way of enhancing software productivity and quality in different organizations. It is also believed that reuse of code segments alone does not significantly reduce software development effort.By creating reuse support information while software is being developed (when the software is best known to software developers), the reuse effort for both software development and maintenance can be potentially reduced.In this paper, five types of RSI are presented: Semantic Web, Horizontal Web, Vertical Web, Syntactic Web, and Alternative Web. We collectively call these five webs a Quintet Web. The Semantic Web enables software developers to locate a software segment. The Horizontal Web provides a means to reuse a block of soflware along with other types of software from other phases of a development process. The inter-phase integration of software can be performed through this Web. The Vertical Web identifies the vertical relationship of a software block to its operational environment. The Syntactic Web locates all statements in which a variable is used. The Alternative Web provides alternative software blocks that perform an identical operation.A prototype of the Quintet Web is presented.  相似文献   

20.
基于构件的软件开发模式是大规模软件复用的一条切实可行的途径。近二十年来面向对象技术的迅速发展为这种开发模式提供了必要的技术支持。从软件设计范型的角度出发可以将构件分为OO构件和非OO构件两类,本文针对OO构件提出了一个简明的OO构件模型和OO构件描述语言,能够描述OO方法学中一些最常用的软件形态,为OO构件的制作、检索和组装提供一种易于实现的基础支持。  相似文献   

设为首页 | 免责声明 | 关于勤云 | 加入收藏

Copyright©北京勤云科技发展有限公司  京ICP备09084417号