首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 281 毫秒
1.
ContextKnowledge management technologies have been employed across software engineering activities for more than two decades. Knowledge-based approaches can be used to facilitate software architecting activities (e.g., architectural evaluation). However, there is no comprehensive understanding on how various knowledge-based approaches (e.g., knowledge reuse) are employed in software architecture.ObjectiveThis work aims to collect studies on the application of knowledge-based approaches in software architecture and make a classification and thematic analysis on these studies, in order to identify the gaps in the existing application of knowledge-based approaches to various architecting activities, and promising research directions.MethodA systematic mapping study is conducted for identifying and analyzing the application of knowledge-based approaches in software architecture, covering the papers from major databases, journals, conferences, and workshops, published between January 2000 and March 2011.ResultsFifty-five studies were selected and classified according to the architecting activities they contribute to and the knowledge-based approaches employed. Knowledge capture and representation (e.g., using an ontology to describe architectural elements and their relationships) is the most popular approach employed in architecting activities. Knowledge recovery (e.g., documenting past architectural design decisions) is an ignored approach that is seldom used in software architecture. Knowledge-based approaches are mostly used in architectural evaluation, while receive the least attention in architecture impact analysis and architectural implementation.ConclusionsThe study results show an increased interest in the application of knowledge-based approaches in software architecture in recent years. A number of knowledge-based approaches, including knowledge capture and representation, reuse, sharing, recovery, and reasoning, have been employed in a spectrum of architecting activities. Knowledge-based approaches have been applied to a wide range of application domains, among which “Embedded software” has received the most attention.  相似文献   

2.
Domain-oriented design environments   总被引:2,自引:1,他引:1  
The field of knowledge-based software engineering has been undergoing a shift in emphasis from automatic programming to human augmentation and empowerment. In our research work, we support this shift with an approach that embedshuman-computer cooperative problem-solving tools intodomain-oriented, knowledge-based design environments. Domain orientation reduces the large conceptual distance between problem-domain semantics and software artifacts. Integrated environments support the coevolution of specification and construction while allowing designers to access relevant knowledge at each stage within the software development process.This paper argues thatdomain-oriented design environments (DODEs) are complementary to the approaches pursued withknowledge-based software assistant systems (KBSAs). The DODE extends the KBSA framework by emphasizing a human-centered and domain-oriented approach facilitating communication about evolving systems among all stakeholders. The paper discusses the major challenges for software systems, develops a conceptual framework to address these problems, illustrates DODE with two examples, and assesses the contributions of the KBSA and DODE approaches toward solving these problems.  相似文献   

3.
ContextSoftware documents are core artifacts produced and consumed in documentation activity in the software lifecycle. Meanwhile, knowledge-based approaches have been extensively used in software development for decades, however, the software engineering community lacks a comprehensive understanding on how knowledge-based approaches are used in software documentation, especially documentation of software architecture design.ObjectiveThe objective of this work is to explore how knowledge-based approaches are employed in software documentation, their influences to the quality of software documentation, and the costs and benefits of using these approaches.MethodWe use a systematic literature review method to identify the primary studies on knowledge-based approaches in software documentation, following a pre-defined review protocol.ResultsSixty studies are finally selected, in which twelve quality attributes of software documents, four cost categories, and nine benefit categories of using knowledge-based approaches in software documentation are identified. Architecture understanding is the top benefit of using knowledge-based approaches in software documentation. The cost of retrieving information from documents is the major concern when using knowledge-based approaches in software documentation.ConclusionsThe findings of this review suggest several future research directions that are critical and promising but underexplored in current research and practice: (1) there is a need to use knowledge-based approaches to improve the quality attributes of software documents that receive less attention, especially credibility, conciseness, and unambiguity; (2) using knowledge-based approaches with the knowledge content in software documents which gets less attention in current applications of knowledge-based approaches in software documentation, to further improve the practice of software documentation activity; (3) putting more focus on the application of software documents using the knowledge-based approaches (knowledge reuse, retrieval, reasoning, and sharing) in order to make the most use of software documents; and (4) evaluating the costs and benefits of using knowledge-based approaches in software documentation qualitatively and quantitatively.  相似文献   

4.
ContextDomain engineering aims at facilitating software development in an efficient and economical way. One way to measure that is through productivity indicators, which refer to the ability of creating a quality software product in a limited period and with limited resources. Many approaches have been devised to increase productivity; however, these approaches seem to suffer from a tension between expressiveness on the one hand, and applicability (or the lack of it) in providing guidance for developers.ObjectiveThis paper evaluates the applicability and efficiency of adopting a domain engineering approach, called Application-based DOmain Modeling (ADOM), in the context of the programming task with Java, and thus termed ADOM-Java, for improving productivity in terms of code quality and development time.MethodTo achieve that objective we have qualitatively evaluate the approach using questionnaires and following a text analysis procedure. We also set a controlled experiment in which 50 undergraduate students performed a Java-based programming task using either ADOM-Java or Java alone.ResultsThe qualitative evaluation reveal that the approach is easy to uses and provides valuable guidance. Nevertheless, it requires training. The outcomes of the experiment indicate that the approach is applicable and that the students that used ADOM-Java achieved better code quality, as well as better functionality and within less time than the students who used only Java.ConclusionThe results of the experiments imply that by providing a code base equipped with reuse guidelines for programmers can increase programming productivity in terms of quality and development time. These guidelines may also enforce coding standards and architectural design.  相似文献   

5.
Abstract

Different languages, tools, and techniques are used for the development of software systems, including database and knowledge-based systems. Although underlying languages employ structuring concepts such as classification, modularization, generalization, and perspectives, these common concepts remain overshadowed by differing terminologies and notations, due to the separate histories of software engineering, databases, and knowledge representation. Currently the still more complex and ambitious requirements on software systems call for integrated solutions concerning software engineering environments. As a starting point toward integration, in this paper we aim at deriving a common structural level for software systems. To approach this goal we start by analyzing the human thought process on one hand and successfully applied structuring techniques on the other hand to derive a catalogue of 10 structuring concepts. Building on that, a self-contained language called SFW (structuring framework) is introduced to provide means for a general and uniform specification of the structure of software systems. SFW is aimed at providing a catalogue of reference for structuring concepts in today's languages as well as a suggestion to establish a uniform structural level in future approaches.  相似文献   

6.
Reusing software: issues and research directions   总被引:2,自引:0,他引:2  
Software productivity has been steadily increasing over the past 30 years, but not enough to close the gap between the demands placed on the software industry and what the state of the practice can deliver; nothing short of an order of magnitude increase in productivity will extricate the software industry from its perennial crisis. Several decades of intensive research in software engineering and artificial intelligence left few alternatives but software reuse as the (only) realistic approach to bring about the gains of productivity and quality that the software industry needs. In this paper, we discuss the implications of reuse on the production, with an emphasis on the technical challenges. Software reuse involves building software that is reusable by design and building with reusable software. Software reuse includes reusing both the products of previous software projects and the processes deployed to produce them, leading to a wide spectrum of reuse approaches, from the building blocks (reusing products) approach, on one hand, to the generative or reusable processor (reusing processes), on the other. We discuss the implication of such approaches on the organization, control, and method of software development and discuss proposed models for their economic analysis. Software reuse benefits from methodologies and tools to: (1) build more readily reusable software and (2) locate, evaluate, and tailor reusable software, the last being critical for the building blocks approach. Both sets of issues are discussed in this paper, with a focus on application generators and OO development for the first and a thorough discussion of retrieval techniques for software components, component composition (or bottom-up design), and transformational systems for the second. We conclude by highlighting areas that, in our opinion, are worthy of further investigation  相似文献   

7.
现代软件工程在现代软件开发中的合理应用   总被引:3,自引:0,他引:3  
从一个角度分析了现代软件体系结构对现代软件工程方法的影响,指出由RDBMs提供数据服务的C/S结构的软件开发中,使用面向对象软件工程方法并无很大优势,使用传统软件工程方法是一种较好的选择;由RDBMs提供数据服务的三层结构的软件开发中,业务逻辑层组件的分析和设计使用面向对象软件工程方法是合适的,但是也不排斥传统软件工程方法,不宜盲目使用面向对象的软件工程方法、UML和RUP。  相似文献   

8.
In software engineering, new technologies and methodologies have been developed with the aim of simplifying the software development process and improving software productivity. Model-driven engineering is considered as one potential alternative to the classical code-based approach to software development. A current challenge in model-driven engineering is the model evolution problem, which is focused on maintaining the relationships among modeling artifacts in the presence of change. A variety of model-driven technologies have been widely researched and applied both in academia and industry to address the model evolution problem. Reverse engineering technologies have been applied in many areas including software engineering to address issues of software evolution. This paper describes one application of reverse engineering, using an approach that uses Metamodel Inference from Models (MIM) to address a specific aspect of the model co-evolution problem related to metamodel evolution. In order to illustrate the problem clearly, a set of examples are used to present our experimental results from applying MIM on diverse industry-focused domains.  相似文献   

9.
Assembly is one of the most important stages for product development. Assembly-oriented design (AOD) is a new approach to designing assemblies, which uses a number of design and analysis tools to help the designer plan out and analyze candidate assembly schemes prior to having detailed knowledge of the geometry of the parts. Using this approach, many assembly schemes can be inexpensively evaluated for their ability to deliver the important characteristics of the final product. This research proposes a knowledge-based approach and develops an expert design system to support top-down design for assembled products. The presentation of research report is divided into two parts: the knowledge-based approach (Part I) and the knowledge-based expert design system (Part II). This paper is the first part of the report (Part I), which mainly proposes a knowledge-based approach and framework for intelligent assembly oriented design. The proposed approach focuses on the integration of product design, assemblability analysis and evaluation, and design for assembly with economical analysis. It differs from the existing approaches adopting the part-first bottom-up modeling technique, in which a hybrid model related to design problem-solving including function–behavior–structure model, feature-based geometric model, and parametric constraint model is used as a comprehensive intelligent framework for assembly modeling and design in a top-down manner from the conceptual level to the detailed level. Through the use of intelligent approach and framework, concurrent engineering knowledge can be effectively incorporated into the assembly design process, and a knowledge-based expert design system can be implemented.  相似文献   

10.
11.
Recent research results in software engineering have shown that the process of formalizing and automating software specification activity is moving towards knowledge-based specification systems. A modeling approach and a knowledge-based system that assist in the requirement acquisition, development, and maintenance of such software system specifications are presented  相似文献   

12.
Reuse-based software production technology   总被引:4,自引:0,他引:4  
Software reuse is viewed as a key technology to improve software product quality and productivity. This paper discusses a series of technologies related with software reuse and software component technology: component model, which describes component's essential characteristics; component acquisition technology, of which domain engineering is the main approach; component management technology, of which component library is the kernel; application integration and composition technology, of which application engineering is the main approach; software evolution technology, of which software reengineering is the main approach, etc. This paper introduces the software development environment: JadeBird Software Production Line System, which effectively integrates the above-mentioned technologies.  相似文献   

13.
CASE (computer aided software engineering) tools are believed to have played a critical role in improving software productivity and quality by assisting tasks in software development processes since the 1970s. Several parametric software cost models adopt "use of software tools" as one of the environmental factors that affects software development productivity. Several software cost models assess the productivity impacts of CASE tools based only on breadth of tool coverage without considering other productivity dimensions such as degree of integration, tool maturity, and user support. This paper provides an extended set of tool rating scales based on the completeness of tool coverage, the degree of tool integration, and tool maturity/user support. Those scales are used to refine the way in which CASE tools are effectively evaluated within COCOMO (constructive cost model) II. In order to find the best fit of weighting values for the extended set of tool rating scales in the extended research model, a Bayesian approach is adopted to combine two sources of (expert-judged and data-determined) information to increase prediction accuracy. The extended model using the three TOOL rating scales is validated by using the cross-validation methodologies, data splitting, and bootstrapping. This approach can be used to disaggregate other parameters that have significant impacts on software development productivity and to calibrate the best-fit weight values based on data-determined and expert-judged distributions. It results in an increase in the prediction accuracy in software parametric cost estimation models and an improvement in insights on software productivity investments.  相似文献   

14.
We investigate the formal specification of the reasoning process of knowledge-based systems in this paper. We analyze the corresponding parts of the KADS specification languages KARL and (ML)2 and deduce some general requirements. The essense of these languages is that they integrate a declarative specification of inferences with control information. The languages differ in the way they achieve this integration and each of them has shortcomings. We propose a unifying semantical framework that integrates the core of the different solutions and overcomes their problems. We define a semantics and axiomatization with the Modal Change Logic (MCL). The main contribution of the paper is not to introduce yet another specification language. Instead we aim at four goals: (1) defining a framework for describing the dynamic reasoning behavior of knowledge-based systems which integrates existing approaches; (2) defining a semantics for the specification of the dynamic reasoning behavior of a knowledge-based system within the states as algebras setting that overcomes several shortcomings and ad hoc solutions of existing approaches; and (3) providing an axiomatization that enables the development of mechanized proof support. (4) Through conceptual and semantical clarity, we investigate the relationships to similar work in software engineering and database engineering opening possibilities for further cross-fertilization of these fields.  相似文献   

15.
In spite of numerous methods proposed, software cost estimation remains an open issue and in most situations expert judgment is still being used. In this paper, we propose the use of Bayesian belief networks (BBNs), already applied in other software engineering areas, to support expert judgment in software cost estimation. We briefly present BBNs and their advantages for expert opinion support and we propose their use for productivity estimation. We illustrate our approach by giving two examples, one based on the COCOMO81 cost factors and a second one, dealing with productivity in ERP system localization.  相似文献   

16.
In the recent past, software product line engineering has become one of the most promising practices in software industry with the potential to substantially increase the software development productivity. Software product line engineering approach spans the dimensions of business, architecture, software engineering process and organization. The increasing popularity of software product line engineering in the software industry necessitates a process maturity evaluation methodology. Accordingly, this paper presents a business maturity model of software product line, which is a methodology to evaluate the current maturity of the business dimension of a software product line in an organization. This model examines the coordination between product line engineering and the business aspects of software product line. It evaluates the maturity of the business dimension of software product line as a function of how a set of business practices are aligned with product line engineering in an organization. Using the model presented in this paper, we conducted two case studies and reported the assessment results. This research contributes towards establishing a comprehensive and unified strategy for a process maturity evaluation of software product lines.  相似文献   

17.
营造个体软件工程规程   总被引:2,自引:1,他引:1  
软件产品的开发都是由个体软件工程师完成的,因此能否具有有效的个体软件工程规程会直接影响到产品开发的效率、费用和最终产品的质量。文章从自我意识、过程规程和开发规程三个层次描述了个体软件工程规程应该包含的基本内容,给出了构建个体软件工程规程的基本步骤,并进一步讨论了个体软件开发过程中的工具支持、个体软件工程规程同软件企业能力成熟度之间的关系等问题。  相似文献   

18.
Time-constrained reasoning under uncertainty   总被引:1,自引:1,他引:0  
Dynamic classification problems present unique challenges beyond those of more traditionalstatic knowledge-based systems. Uncertain and incomplete input data, unpredictable event sequences, and critical time and resource constraints require new approaches and techniques for automated reasoning. Our work toward addressing these complex requirements has concentrated on developing an integrated software architecture which supports the knowledge engineering process from development to deployment. The approach we are using to deal with real-time issues in the deployment environment involves the use of a fast knowledge representation scheme, efficient forward and backward chaining mechanisms, and a meta-controller which handles asynchronous inputs, prioritized task requests, and hard performance deadlines.  相似文献   

19.
In Computer Numerical Control (CNC) machining, determining optimum or appropriate cutting parameters can minimize machining errors such as tool breakage, tool deflection and tool wear, thus yielding a high productivity or minimum cost. There have been a number of attempts to determine the machining parameters through off-line adjustment or on-line adaptive control. These attempts use many different kinds of techniques: CAD-based approaches, Operations Research approaches, and Artificial Intelligence (AI) approaches. After describing an overview of these approaches, we will focus on reviewing AI-based techniques for providing a better understanding of these techniques in machining control. AI-based methods fall into three categories: knowledge-based expert systems approach, neural networks approach and probabilistic inference approach. In particular, recent research interests mainly tend to develop on-line or real-time expert systems for adapting machining parameters. The use of AI techniques would be valuable for the purpose.  相似文献   

20.
This paper addresses the critical issues of knowledge acquisition in developing knowledge-based expert systems for engineering tasks. First, it reviews the role of knowledge acquisition and its current practice in expert system development. Then, a new approach based on three stages of knowledge refinement is suggested to improve the process of knowledge acquisition. This approach, calledrule verification without rule construction, is proposed to allow knowledge engineers and domain experts to experience a more intimate and balanced role in developing intelligent systems. The communication tool developed for this concept is calledknowledge map, which provides a systematic way of indexing and quantifying a piece of knowledge in the problem space by defining important attributes as the axes of the map. This approach is demonstrated by constructing a twodimensional map for a knowledge-based engineering design system, IDRILL, which we are currently developing. Future expansions of this knowledge acquisition technique are summarized as the conclusions of this paper.This paper was presented in part at the 1986 ASME International Computers in Engineering Conference in Chicago, IL, and appeared in the proceedings of that conference.  相似文献   

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

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