首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
Many software engineering tasks can potentially be automated using search heuristics. However, much work is needed in designing and evaluating search heuristics before this approach can be routinely applied to a software engineering problem. Experimental methodology should be complemented with theoretical analysis to achieve this goal. Recently, there have been significant theoretical advances in the runtime analysis of evolutionary algorithms (EAs) and other search heuristics in other problem domains. We suggest that these methods could be transferred and adapted to gain insight into the behaviour of search heuristics on software engineering problems while automating software engineering.  相似文献   

2.
Software-intensive systems of the future are expected to be highly distributed and to exhibit adaptive and anticipatory behavior when operating in highly dynamic environments and interfacing with the physical world. Therefore, visual modeling techniques to address these software-intensive systems require a mix of models from a multitude of disciplines such as software engineering, control engineering, and business process engineering. As in this concert of techniques software provides the most flexible element, the integration of these different views can be expected to happen in the software. The software thus includes complex information processing capabilities as well as hard real-time coordination between distributed technical systems and computers.In this article, we identify a number of general requirements for the visual model-driven specification of next generation software-intensive systems. As business process engineering and software engineering are well integrated areas and in order to keep this survey focused, we restrict our attention here to approaches for the visual model-driven development of adaptable software-intensive systems where the integration of software engineering with control engineering concepts and safety issues are important. In this survey, we identify requirements and use them to classify and characterize a number of approaches that can be employed for the development of the considered class of software-intensive systems.  相似文献   

3.
ContextSoftware engineering organizations routinely define and implement processes to support, guide and control project execution. An assumption underlying this process-centric approach to business improvement is that the quality of the process will influence the quality, cost and time-to-release of the software produced. A critical question thus arises of what constitutes quality for software engineering processes.ObjectiveTo identify criteria used by experienced practitioners to judge the quality of software engineering processes and to understand how knowledge of these criteria and their relationships may be useful for those undertaking software process improvement activities.MethodInterviews were conducted with 17 experienced software engineering practitioners from a range of geographies, roles and industry sectors. Published reports from 30 software process improvement case-studies were selected from multiple peer-reviewed software journals. A qualitative Grounded Theory-based methodology was employed to systematically analyze the collected data to synthesize a model of quality for software engineering processes.ResultsThe synthesized model suggests that practitioners perceive the overall quality of a software engineering process based on four quality attributes: suitability, usability, manageability and evolvability. Furthermore, these judgments are influenced by key properties related to the semantic content, structure, representation and enactment of that process. The model indicates that these attributes correspond to particular organizational perspectives and that these differing views may explain role-based conflicts in the judgement of process quality.ConclusionConsensus exists amongst practitioners about which characteristics of software engineering process quality most influence project outcomes. The model presented provides a terminological framework that can facilitate precise discussion of software engineering process issues and a set of criteria that can support activities for software process definition, evaluation and improvement. The potential exists for further development of this model to facilitate optimization of process properties to match organizational needs.  相似文献   

4.

As a recognized discipline, software engineering traces its roots back to the 1968 NATO conference where the term was first used extensively to highlight the need for an engineering approach to the development of software. In the 30 years since that first “software engineering” conference, significant attempts have been made to improve the overall effectiveness of the software development process, and thus reduce the frequency and severity of software project failures. A major part of this improvement effort has been the attempt to develop quantitative measures which can be used to more accurately describe and better understand and manage the software development life cycle. Thus, many software metrics and models have been introduced during this period. In this article, we briefly trace the history of the development of software metrics and models, and then summarize the current state of the field. For discussion purposes, this entire development period is then arbitrarily divided into an Introductory Period (1971–1985), Growth Period (1985–1997) and the Current Period (1997–?). The development of metrics during each of these periods is then related to the treatment of software metrics and models in software engineering curricula during that same period. Our conclusion is that software engineering curricula have indeed reflected the state of software engineering as the work in software metrics and models has progressed. Furthermore, software engineering curricula of the future should reflect the relatively mature state that software metrics have attained, by covering the basic concepts of metrics in appropriate core courses, and more advanced metrics topics in a specialized, elective metrics course.

  相似文献   

5.
Many approaches have been proposed to enhance software productivity and reliability. These approaches typically fall into three categories: the engineering approach, the formal approach and the knowledge-based approach. But the optimal gain in software productivity cannot be obtained if one relies on only one of these approaches. This paper describes the work in knowledge-based software engineering conducted by the authors for the past 10 years. The final goal of the research is to develop a paradigm for software engineering which integrates the three approaches mentioned above. A knowledge-based tool which can support the whole process of software development is provided in this paper.  相似文献   

6.
Uncertainty casts a shadow over all facets of software engineering. This negative meta-property is found in every aspect of software including requirement specifications, design, and code. It can also manifest itself in the tools and engineering practices employed, and in the off-the-shelf software incorporated into the final product. Unfortunately, it is often the case that software engineers ignore these sources of uncertainty or abstract them away. Perhaps this is because there is insufficient understanding of this uncertainty, and no universal techniques for handling its many forms. This paper focuses on the issues of uncertainty in software engineering. It further describes a rough set framework for making decisions in the face of such uncertainty and inconsistency. In particular, we show how to induce rule-based decision making from uncertain information in software engineering applications. Moreover, a freely available tool, Rosetta, is employed to automate the decision-making process. NASA has mandated the use of commercial off-the-shelf (COTS) solutions where possible. But in commercial real-time operating systems certain attributes are uncertain, even where published information is available. Therefore, the selection of a commercial real-time operating system for an embedded system is the software engineering problem with which we explain the rough set decision-making process.  相似文献   

7.
In software engineering, leading trends can be detected that will affect the characteristic features of a product and its development process. On a product level, the growth of size and complexity is apparent—but on the one hand only. On the other hand, there is also a growing demand for simple and reasonable small software products executed by handheld terminals and smartphones; these applications are in many cases expected to collaborate with databases over the Internet. In addition, different kinds of service concepts (ASP, SaaS) are becoming recognized alternatives to the traditional way of buying software. Increasingly, software products are also distributed in a wide geographical scope to users with different cultural backgrounds and expectations. In software engineering work, as a consequence of this growth in size and complexity, the development work is more and more often distributed. The software business itself is becoming global because of acquisitions, offshoring, and international subcontracting. The globalization of work sets new requirements to the engineering processes: in international teams the organisational and cultural differences of the development subteams have to be recognized. In this paper, the focus is on the software development and its global dimension—especially the roles of multi-cultural and cross-organizational issues in software engineering. Our paper presents the results of the first phase of our three phases research project related to “Culture-Aware Software Engineering.” The main result of the first phase is the multi-cultural software engineering working model introduced in our paper. Culture is seen as one example of the context, i.e. the situation at hand. The concept of culture has also different meanings, which have to be understood in well-organized software engineering. Software engineering work is analyzed as a knowledge creation process, in which both explicit and tacit knowledge are recognized and the transformation between these establishes baselines along the development life cycle.  相似文献   

8.
9.
The issues associated with the accreditation, certification, and licensure of software engineers are, or at least should be, of great concern to the software engineering community. Perhaps as a result of publicity about safety-critical software disasters in the news media, some state legislatures have considered regulating the practice of software engineering, and some professionals believe that accreditation, certification, and licensure are inevitable. Yet there is no agreed-upon body of knowledge for software engineering on which to base accreditation, certification, or licensure, which makes implementing them difficult at best. In addition, it is not clear that these processes and possible mechanisms to support them are well understood within the software engineering community. This paper surveys how these three processes are conducted in other professions, summarizes the processes as they currently exist for computing in general, identifies some issues that are involved in implementing the processes for software engineering, and suggests possible actions that can be taken by the software engineering profession. The implications of accreditation, certification, and licensure for education are also discussed.  相似文献   

10.
方木云 《微机发展》2004,14(1):29-31,33
软件工程学科在理论研究和实践应用中都取得了巨大成就,逐渐形成了方法、工具和管理三大要素。然而,这三要素的发展是不均衡的,相对于方法和工具,管理的理论研究和科学应用都显得滞后,已经成为软件工程学科发展的瓶颈问题。软件工程管理的本质是如何在软件工程生命周期的各个阶段最佳地配置人员、资金和时间三种资源,以取得软件质量最优化。它是一个多阶段决策问题.具有动态规划算法中多段图的特点。文中将动态规划算法应用到软件工程管理的决策之中。  相似文献   

11.
Service orientation is a promising paradigm that enables the engineering of large-scale distributed software systems using rigorous software development processes. The existing problem is that every service-oriented software development project often requires a customized development process that provides specific service-oriented software engineering tasks in support of requirements unique to that project. To resolve this problem and allow situational method engineering, we have defined a set of method fragments in support of the engineering of the project-specific service-oriented software development processes. We have derived the proposed method fragments from the recurring features of 11 prominent service-oriented software development methodologies using a systematic mining approach. We have added these new fragments to the repository of OPEN Process Framework to make them available to software engineers as reusable fragments using this well-known method repository.  相似文献   

12.
Service-oriented computing is a promising computing paradigm which facilitates the composition of loosely coupled and adaptable applications. Unfortunately, this new paradigm does not lend itself easily to traditional software engineering methods and principles due to the decentralised nature of software services. The goal of this paper is to identify a set of engineering activities that can be used to develop adaptable service-based applications. Rather than focusing on the entire service-based application development life-cycle, this paper will focus on adaptation-specific processes and activities and map them to an existing high-level service-based application development life-cycle. Existing software engineering literature as well as research results from service engineering research is reviewed for relevant activities. The result is an adaptation framework that can guide software engineers in developing adaptable service-based applications.  相似文献   

13.
基于VC++平台的工程曲线绘图软件开发   总被引:1,自引:0,他引:1  
工程曲线在机械设计中有着很广泛的应用,而AutoCAD中不能直接应用函数或数据绘制工程曲线,给科研和教学工作带来很大不便,现在也很少有专门绘制工程曲线的软件。为了解决这个问题,利用面向对象的VC++编程语言编写了一个专用软件来绘制各种工程曲线,这样可以解决AutoCAD不能绘制工程曲线的问题,给科研、教学都带来些方便。  相似文献   

14.
随着计算机软件的广泛应用,反编译已成为软件逆向工程的重要研究领域,文章给出了一种反编译Android应用的方法。通过对Android应用的反编译,可以推导出他人的思路、原理、结构、算法、处理过程、运行方法等设计要素,作为自己开发软件时的参考,或者直接用于自己的软件产品中。  相似文献   

15.
There have been many claims about knowledge management's benefits in software engineering, such as decreased time and cost for development, increased quality, and better decision-making abilities. Although we can find some success stories illustrating these claims, particularly on aspects related to the systems and engineering schools, more research is necessary to explore the intersection between each school and the software engineering field. Researchers should continue to emphasize the need for a broad focus across multiple KM schools to suceed in improving KM's practical application in software engineering.  相似文献   

16.
Gannon  J.D. 《Computer》1979,12(12):6-7
Software engineering is an effort to reduce the cost of producing software by raising programming productivity and lowering maintenance effort and to increase the benefits of software by extending application areas and improving service. Human factors considerations can have a major impact on the software development process and the quality of the software produced. High-level languages have increased programmer productivity by removing from the programmer the burden of remembering what values are in what register and placing it on a software system which is much more suited to managing detail. Other programming methodologies and tools have been developed to reduce the cost of producing software: design methodologies, structured programming, chief programmer teams, disciplined coding conventions, etc. The efficacy of these software aids has been demonstrated mostly by case studies. The articles in this issue of Computer analyze some of these methodologies and tools from a human factors viewpoint, using the tools of human factors engineering to determine if the use of a particular aid increases programming performance or the quality of the resulting software.  相似文献   

17.
基于OWL的软件工程数据建模   总被引:1,自引:0,他引:1  
网络本体语言(Web ontology language,OWL)是语义网技术的一个重要组成部分,适合于对复杂的数据进行语义描述和建模.在软件系统的开发过程中通常会产生大量结构复杂、语义丰富的数据,而建立一个灵活的语义模型是对各类软件工程数据进行统一管理的基础.从设计和实现海量软件工程数据管理平台的需求出发,提出了一种基于OWL的软件工程数据描述模型.该模型不仅能够对源代码、需求、测试、版本和缺陷数据进行描述,同时还能对这些数据之问的语义关联进行描述.通过案例分析对模型的有效性进行了讨论.  相似文献   

18.
In the world of information and communications technologies the demand for professionals with software engineering skills grows at an exponential rate. On this ground, we have conducted a study to help both academia and the software industry form a picture of the relationship between the competences of recent graduates of undergraduate and graduate software engineering programmes and the tasks that these professionals are to perform as part of their jobs in industry. Thanks to this study, academia will be able to observe which skills demanded by industry the software engineering curricula do or do not cater for, and industry will be able to ascertain which tasks a recent software engineering programme graduate is well qualified to perform. The study focuses on the software engineering knowledge guidelines provided in SE2004 and GSwE2009, and the job profiles identified by Career Space.  相似文献   

19.
张莉 《计算机科学》1994,21(6):58-62
关于软件工程环境有多种定义。E.Fedchak曾将其定义为“共同构成软件开发与支持框架的一组工具、结构、规则和方法(proeedures)的集合。”〔2〕。C.J.Tully在第九届国际软件工程年会(I CSEg)上又将软件工程环境定义为“为了获得更高的生产率和更高的产品质量,用于支持程序设计者、软件工程师、系统设计者和项目管理者等活动的一组计算机辅助设施。  相似文献   

20.
Bishop  J. Horspool  N. 《Computer》2006,39(10):26-35
The design of software that is easy to port or deliberately targeted for multiple platforms is a neglected area of software engineering. A promising solution is to link components and toolkits through XML and reflection. One of the more compelling definitions of software engineering is, the multiperson construction of multiversion software. The popular view of software engineering focuses on the first part of this definition - managing teams to produce a large product. But just as important is the view inherent in the second part of the definition - identifying specific parts of a product so that experts can design them and organizations can mass-produce them free of language and environment dependencies. Component-based software engineering has made tremendous strides toward satisfying both parts of the definition. Through the use of middleware constructed using reflection and controlled through XML specifications, it is possible to give the components in a large software system a high degree of platform and even language independence. The result is long lived software that can migrate gracefully as platforms improve and change  相似文献   

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

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