首页 | 本学科首页   官方微博 | 高级检索  
相似文献
 共查询到20条相似文献,搜索用时 31 毫秒
1.
Reuse between software systems is often not optimal. An important reason is that while at the functional level well-known modularization principles are applied for structuring functionality in modules, this is not the case at the build level for structuring files in directories. This leads to a situation where files are entangled in directory hierarchies and build processes, making it hard to extract functionality and to make functionality suitable for reuse. Consequently, software may not come available for reuse at all, or only in rather large chunks of functionality, which may lead to extra software dependencies. In this paper, we propose to improve this situation by applying component-based software engineering (CBSE) principles to the build level. We discuss how existing software systems break CBSE principles, we introduce the notion of build-level components, and we define rules for developing such components. To make our techniques feasible, we define a reengineering process for semiautomatically transforming existing software systems into build-level components. Our techniques are demonstrated in two case studies where we decouple the source tree of Graphviz into 46 build-level components and analyze the source tree of Mozilla.  相似文献   

2.
净室软件工程采用过程模型,在缺陷可能产生严重的危险前消除缺陷,它能减少设计过程中的逻辑错误,降低开发成本,保证软件质量。对基于函数的净室策略进行了研究,并应用于企业资源计划ERP的开发设计上,实现了物流管理系统。采用增量开发模型、基于函数的盒式规范设计及验证,并建立了测试模型,通过统计测试软件进行验证。  相似文献   

3.
一个改善软件结构设计质量的知识系统   总被引:1,自引:0,他引:1  
本文讨论我们在研制”MIS软件工程环境“中为优化软件结构而采用的知识技术。尽管技术工程学对软件设计提出了优化软件结构的任务并给出了一些指导性原则,但由于设计者的经验和理解程度不同,因而软件结构设计质量往往因人而异。本研究旨在探索一种方法提供一种工具,以改善软件结构的质量,提高软件工程环境的智能水平。  相似文献   

4.
《Software, IEEE》2002,19(6):64-65
We've talked about software quality for a long time, developing numerous software quality assurance approaches in the hope of making our software increasingly better. Charles Mann, contributing editor of MIT's Technology Review, points out that other technologies-televisions, cars, airplanes, bridges-have improved over time as their engineering matured; he asks why software has not. In the February 2001 issue of Communications of the ACM, Edsger Dijkstra said that software's biggest challenge is "how not to make a mess of it." So, where have we gone wrong? To answer this question, we can look at how other disciplines learn and grow. Software development is as much an art as a science, and we learn lessons from both perspectives. Many of us think of ourselves as engineers: we train in engineering departments and rely on engineering tools, techniques, and quantitative methods to guide us. But our work's artistic side-which those who promote agile methods often emphasize-plays an important role, too. As good software developers, we are grounded in artistic engineering activities such as modeling and design. Our good people skills enable us to work with customers and on teams. And we need good instincts to select the best approaches and products to use.  相似文献   

5.
Software engineering should provide software engineers with methodologies and tools suitable for use in that small number of applications where efficiency is really important. In order to do that, the optimization process should be a clearly visible phase of the software lifecycle (regardless of the particular software development paradigm adopted), so that it can be regulated, securing the production of good quality and efficient software. With this in mind, the author suggests an approach to program optimization based on a paradigm, a method, some principles and guidelines, and some well-known techniques  相似文献   

6.
As educators plan for curriculum enhancement and modifications to address the net-generation of software engineers, it will be important to communicate the necessity of considering software security engineering as applications are net-enabled. This paper presents a case study where commonly accepted software security engineering principles that have been published and employed for approximately 30 years, are not often seen in an important class of application software today. That class of software is commonly referred to as control system software or supervisory control and data acquisition (SCADA) software which is being used today within critical infrastructures and being net-enabled as it is modernized. This circumstance is driven by evolution and not intention. This paper details several vulnerabilities existing in a specific software application as a case study. These vulnerabilities are a result of not following widely-accepted secure software engineering practices which should have been considered by the software engineers developing the product studied. The applicability of these lessons to the classroom are also established with examples of how they are integrated into software engineering and computer science curricula.  相似文献   

7.
工程图是进行工业生产和技术交流的重要文档,而在三维CAD系统中制作标准化的工程图比较烦琐.通过分析UG和Pro/E等系统工程图模块功能的不足,充分考虑不同平台二次开发的差异,借鉴成熟的软件体系和先进的开发工具,提出了一个通用的面向异构CAD平台的工程辅助绘图软件框架;并详细讨论了物理模块部署、逻辑对象构造和实例维护、工程随动约束管理以及产品装配模型访问等关键技术;研究开发了实用系统并在企业中得到应用.  相似文献   

8.
9.
Educators across the country are struggling with difficult issues in the teaching of Ada and its relationship to the computer science curriculum. By design, the language supports software engineering principles. Therefore, it would seem that the “natural” place for teaching Ada is within the context of software engineering. This paper reports on the author's and his students' experiences in learning and using Ada in different settings, including a software engineering project course, and a course centered on Ada and its use.  相似文献   

10.
软件工程实践作为软件工程专业本科生企业实习前的综合实践课程在培养体系中占有重要地位,其教学过程不但使学生在编码、文档撰写和团队协作等方面得到了综合训练,而且也为大四学生进入企业实习提供了很好的岗前培训。为在校内营造更贴近实际的软件开发氛围,需要从实践内容、组织方式、实施过程、教师作用以及考核标准等方面进行精心设计。本文论述了北航软件学院本科生软件工程实践课程的建设思路,介绍了实施情况,并对实施中的优缺点进行了总结。  相似文献   

11.
12.
In this paper, problems related to the use of the microcomputer as a teaching tool in engineering education are discussed. The objectives and methodological principles of educational software are defined, stressing the need to improve the quality of engineering education. The microcomputer is considered as an engineering tool in the decision-making process, offering possibilities for further deeper analysis of physical phenomena in electrical devices. Examples of applications of the methodological principles developed for the elaboration of educational software packages for electrical engineering are given.  相似文献   

13.
Researchers in software engineering have attempted to improve software development by mining and analyzing software repositories. Since the majority of the software engineering data is unstructured, researchers have applied Information Retrieval (IR) techniques to help software development. The recent advances of IR, especially statistical topic models, have helped make sense of unstructured data in software repositories even more. However, even though there are hundreds of studies on applying topic models to software repositories, there is no study that shows how the models are used in the software engineering research community, and which software engineering tasks are being supported through topic models. Moreover, since the performance of these topic models is directly related to the model parameters and usage, knowing how researchers use the topic models may also help future studies make optimal use of such models. Thus, we surveyed 167 articles from the software engineering literature that make use of topic models. We find that i) most studies centre around a limited number of software engineering tasks; ii) most studies use only basic topic models; iii) and researchers usually treat topic models as black boxes without fully exploring their underlying assumptions and parameter values. Our paper provides a starting point for new researchers who are interested in using topic models, and may help new researchers and practitioners determine how to best apply topic models to a particular software engineering task.  相似文献   

14.
《Software, IEEE》2001,18(6):10-15
Software is an odd medium in which to construct something. Because few physical forces make you design one way or another, many design decisions sadly resist any form of objective analysis. Where design counts is often not in how the software runs but in how easy it is to change. When how it runs is important, ease of change can be the biggest factor in ensuring good performance. This drive toward changeability is why it's so important for a design to clearly show what the program does-and how it does it. After all, it's hard to change something when you can't see what it does. An interesting corollary of this is that people often use specific designs because they are easy to change, but when they make the program difficult to understand, the effect is the reverse of what was intended  相似文献   

15.
The case study is about the System Monitor and Control Facility (SMCF) workstation product developed by a major telecommunications company that has been used to monitor MVS OS mainframe computer systems since 1983. In 1991, mainframe UNIX systems were added to the list of systems supported using software executing on the mainframe side. In 1994, an effort to develop a common interface using TCP/IP and Remote Procedure Calls (RPC) began with a product being developed in the C. The product, which was officially delivered in June of 1994, was coded using structured programming techniques. However, after the product had been in use for some time, maintaining and extending the code for additional functionality and portability was less than desirable.A decision was made by the programmers who support the host-side code to restructure (re-engineer) it such that certain software engineering principles be included into the product to make the product more maintainable and portable. This paper discusses the factors that led to the initial decisions of the designers and programmers, the evaluation of the existing code, and the resulting code with software engineering principles re-engineered into the existing code, and how the incorporation of these principles make maintenance simpler and how they may prevent or minimize defects in the future.  相似文献   

16.
Over the last two years, we have demonstrated the feasibility of applying category-theoretic methods in specifying, synthesizing, and maintaining industrial strength software systems. We have been using a first-of-its-kind tool for this purpose, Kestrel's SpecwareTM software development system. In this paper, we describe our experiences and give an industrial perspective on what is needed to make this technology have broader appeal to industry. Our overall impression is that the technology does work for industrial strength applications, but that it needs additional work to make it more usable. We believe this work marks a turning point in the use of mathematically rigorous approaches to industrial strength software development and maintenance.It is interesting to note that when this technology is applied to software systems whose outputs are designs for airplane parts, the design rationale that is captured is not only software engineering design rationale, but also design rationale from other engineering disciplines (e.g., mechanical, material, manufacturing, electrical, human factors, etc.). This suggests the technology provides an approach to general systems engineering that enables one to structure and reuse engineering knowledge broadly.  相似文献   

17.
Erwig  Martin 《Software, IEEE》2009,26(5):25-30
Spreadsheets are popular end-user programming tools. Many people use spreadsheet-computed values to make critical decisions, so spreadsheets must be correct. Proven software engineering principles can assist the construction and maintenance of dependable spreadsheets. However, how can we make this practical for end users? One way is to exploit spreadsheets' idiosyncratic structure to translate software engineering concepts such as type checking and debugging to an end-user programming domain. The simplified computational model and the spatial embedding of formulas, which provides rich contextual information, can simplify these concepts, leading to effective tools for end users.  相似文献   

18.
Reverse engineering techniques are broadly used in the development process of products with meaningful aesthetic properties. Many stylists prefer to evaluate the product shape on the basis of a full-scale hand made physical mock-up. Such model has then to be converted into a 3D CAD model, to begin the product engineering and production processes.A critical aspect of the RE process is that the physical mock-up, made by the stylist, usually does not take into account the engineering production constraints. The surface reconstruction activity must then be followed by a modelling phase, where the engineering designer modifies the reconstructed model shape in order to make it suitable for production.At the end of this process, no matter how accurate and precise the surface reconstruction phase has been, the product model will be different from the original mock-up, and then it needs to be submitted to the stylist for the validation of its shape.For the stylist, getting used to working with physical models, the shape validation on a virtual model is not a trivial task.The objective of this research is to develop a software tool to support the identification of aesthetic and functional regions of the product model shape, that have been modified with respect to the original mock-up.The proposed approach is based on the decomposition of a 3D surface analysis problem into a simpler 2D curves analysis problem. This approach simulates the traditional method used by stylists to evaluate the quality of shapes.The implementation of the developed algorithms has been performed using a commercial software package (I-deas FreeForm by EDS/Unigraphics) and it has been successfully applied on real test cases.  相似文献   

19.
软件工程虽然解决了软件危机问题,况且近三十年发展,软件工程积累了相当多的方法和经验,但这些方法和经验也不是一成不变的灵丹妙药,软件工程师只有不断的实践选择合适的方法,才能开发出优秀的软件来。怎样才能选择出合适的方法来呢,重要的办法就是软件工程师要用哲学思想来贯穿软件工程开发的全过程。  相似文献   

20.
Mili  A. Yacoub  S. Addy  E. Mili  H. 《Software, IEEE》1999,16(5):22-31
This article stems from a panel session at the 1997 Symposium on Software Reusability, and discusses open research issues, classified by goal and by approach. Software development cannot possibly become an engineering discipline so long as it has not perfected a technology for developing products from reusable assets in a routine manner, on an industrial scale. Software reuse cannot, in turn, achieve this status unless we make the following provisions: a sound scientific foundation that encompasses relevant design principles, widely acceptable engineering standards that compile these principles into working practical solutions, and coherent managerial standards that enable the deployment of these solutions under acceptable conditions of product quality and process maturity. Although successful software reuse experiments are increasingly common, success is not the norm, software reuse is not a matter of routine practice, the promises of software reuse remain for the most part unfulfilled, and a number of issues remain worthy of further research  相似文献   

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

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