共查询到20条相似文献,搜索用时 15 毫秒
1.
The distinction between the modeling of information and the modeling of data in the creation of automated systems has historically been important because the development tools available to programmers have been wedded to machine oriented data types and processes. However, advances in software engineering, particularly the move toward data abstraction in software design, allow activities reasonably described as information modeling to be performed in the software creation process. An examination of the evolution of programming languages and development of general programming paradigms, including object-oriented design and implementation, suggests that while data modeling will necessarily continue to be a programmer's concern, more and more of the programming process itself is coming to be characterized by information modeling activities. 相似文献
2.
While JavaScript programs have become pervasive in web applications, they remain hard to reason about. In this context, most static analyses for JavaScript programs require precise call graph information, since the presence of large numbers of spurious callees significantly deteriorates precision. One of the most challenging JavaScript features that complicate the inference of precise static call graph information is read/write accesses to object fields, the names of which are computed at runtime. JavaScript framework libraries often exploit this facility to build objects from other objects, as a way to simulate sophisticated high-level programming constructions. Such code patterns are difficult to analyze precisely, due to weak updates and limitations of unrolling techniques. In this paper, we observe that precise field origination relations can be inferred by locally reasoning about object copies, both regarding to the object and to the program structure, and we propose an abstraction that allows to separately reason about field read/write access patterns working on different fields and to carefully handle the sets of JavaScript object fields. We formalize and implement an analysis based on this technique. We evaluate the performance and precision of the analysis on the computation of call graph information for examples from jQuery tutorials. 相似文献
3.
一种基于抽象解释和通用单调数据流框架的值范围分析方法 总被引:2,自引:0,他引:2
安全而又精确的值范围分析对编译器优化至关重要.系统地提出了一个基于抽象解释和通用单调数据流框架的值范围分析框架,包括精确的定叉、分析和完整的正确性证明.与一般的值范围分析方法不同,该框架不仅包括抽象解释,还包括与之对应的具体解释,以及相应的正确性证明. 相似文献
4.
This article analyses the knowledge needed to understand a computer program within the philosophy of information. L. Floridi's method of levels of abstraction is applied to the relation between an ideal programmer and a modern computer seen together as an informational organism. The results obtained by the mental experiment known as the Knowledge Game are applied to this relation, so to explain what a programmer should know in order to program a modern computer. In particular, this analysis clearly shows why non-conscious agents have no hopes to write significant programs. Two main objections are then presented and attacked by corresponding counterobjections. 相似文献
5.
程序的正确性验证一直以来都是计算机科学中的一个挑战性问题,抽象解释理论为程序静态分析提供了一个通用框架,可以在编译时自动地推导程序的动态性质。基于抽象解释的数值程序分析可以自动推导程序中数值变量间的不变式关系,这对于编译优化、程序错误检查至关重要。本文建立并实现了一个面向C和Fortran程序并支持过程间分析的数值程序分析框架和工具,C或Fortran源程序经过预处理后转化为具有统一格式的中间表示形式,然后基于该中间表示抽取与源程序语义等价的语义等式,最后在该语义等式上进行不动点迭代计算从而得到程序不变式。在此基础上,本文还对数组等复杂语法结构进行了建模和抽象。实验结果表明,该工具具有较高的可扩展性、精度,并能够处理大部分因数组的使用而带来的程序分析上的问题。 相似文献
6.
Anneliese von Mayrhauser A. Marie Vans Adele E. Howe 《Journal of Software: Evolution and Process》1997,9(5):299-327
This paper reports on a software understanding field study during the enhancement of large-scale software. The participants were professional software maintenance personnel from industry. The paper reports on the general understanding process, the kinds of actions programmers preferred during the enhancement task, the level of abstraction at which they were working, and role of hypotheses in the enhancement strategies they used. The results of the observations are also interpreted in terms of the information needs of these personnel during the enhancement task. We found that programmers work predominantly at the code and algorithmic levels with differences depending on the stage of the enhancement. They frequently switch between levels of abstraction. The programmers' main concerns are with what software does and how this is accomplished, not why software was built a certain way. These questions guide the work process. There was strong indication that memory (over)load is an issue. This is, of course, related to the size of the software. Information is sought and cross-referenced from a variety of sources from application domain concepts to code-related information, outpacing current maintenance environments' capabilities which are mostly stratified by information sources, making cross-referencing difficult. © 1997 John Wiley & Sons, Ltd. 相似文献
7.
The Information Systems (IS) discipline, and related research, focuses on the development, understanding, and use of technology to meet business needs. Technology, in particular software, is the basis for IS research, making software engineering a critical component of research in the IS domain. While the importance of software development is well accepted, what constitutes high quality software engineering research is not well defined. Perhaps this is because some software development clearly is not research and it is hard to distinguish between pure application development, and systems development that pushes the boundaries of knowledge. Sir Karl Popper argued that the scientific quality of research is not based on its empirical method, but on the nature of the questions asked. Our research suggests that software engineering can meet Popper's criteria for scientific research.Drawing on well-established research philosophies, we propose a software engineering research methodology (SERM) and discuss the utility of this methodology for contributing to and expanding the IS body of knowledge. We also describe the considerations that need to be addressed by SERM to enhance acceptability of software engineering research in IS. Our suggestions are corroborated with a review of current IS software engineering research reported in leading IS journals. 相似文献
8.
Ying Mingsheng 《计算机科学技术学报》1995,10(3):267-273
The concept of institution of variable truth values is introduced and some main results about institutions are generalized.In particular,some properties of institutions of variable truth values preserved by change of truth values are established. 相似文献
9.
Ying Mingsheng 《计算机科学技术学报》1995,10(3):260-266
The problem of putting consistent theories together in institutions is discussed.A general necessary condition for consistency of the resulting theory is carried out,and some sufficient conditions are given for diagrams of theories in which shapes are tree bundles or directed graphs.Moreover,some transformations from complicated cases to simple ones are established. 相似文献
10.
11.
In this paper we design abstract domains for power analysis. These domains are conceived to discover properties of the following type: The variable X at a given program point is the power of c with the exponent having a given property , where c and are automatically determined. This construction is general and includes different algebraic entities, such as numerical and polynomial (with rational coefficients), as bases. Several families of domains are presented, some of these consider that the exponent can be any natural or integer value, the others also include the analysis of properties of the exponent set. Relevant lattice-theoretic properties of these domains are proved such as the absence of infinite ascending chain and the structure of their meet-irreducible elements. The numerical domains are applied in the analysis of integer powers of imperative programs and in the analysis of probabilistic concurrent programming, with probabilistic non-deterministic choice. Moreover we use the numerical power domains in order to analyze the factorization of integer variables, i.e., invariant properties of factors and of their exponents. In this way we are able to statically detect information hidden in prime factorization, which can be used in software watermarking. 相似文献
12.
Polymorphic type-checking in scheme 总被引:1,自引:0,他引:1
This paper presents a type-inference system for Scheme that is designed to be used by students in an introductory programming course. The major goal of the work is to present a type system that is simple enough to be used by beginner students, yet is powerful enough to express the ideas of polymorphism, abstract data types (ADTs), and higher-order procedures. The system also performs some rudimentary syntax checking. The system uses subtyping, but only in a primitive fashion. It has a type datum which is a supertype of all types, and a type poof which is a subtype of all types. It uses intersection types to control the use of datum and to generate simple but accurate types. 相似文献
13.
该文针对数据结构课程中抽象数据类型概念这一教学难点,分析抽象数据类型概念引入的原因,并从数学角度、程序设计角度以及面向对象的角度深刻理解这一概念,为学生把握数据结构课程内容的整体安排以及后续课程的铺垫奠定了坚实的基础。 相似文献
14.
三叉树结构及其实现 总被引:3,自引:0,他引:3
张乃孝 《计算机研究与发展》1993,30(1):50-54,44
本文定义了一种三叉树的结构。引进了三叉树抽象数据类型的概念。给出了一种多重链表的实现。最后对广义三叉树和三叉树林作了初步讨论. 相似文献
15.
Communication is a key success factor of distributed software projects. Poor communication has been identified as a main obstacle to successful collaboration. Global projects are especially endangered by information gaps between collaborating sites. Different communication styles, technical equipment, and missing awareness of each other can cause severe problems. Knowledge about actual and desired channels, paths, and modes of communication is required for improving communication in a globally distributed project. However, many project participants know little about communication and information flow in their projects. In this contribution, we focus on knowledge about communication and information flow. It is acquired by modelling on‐going and desired flows of information, including documented and non‐documented channels of information flow. We analyzed a distributed software project from the information flow perspective. Based on the findings, we developed specific techniques to improve information flow in distributed software development according to the FLOW Method. In a second distributed project, we evaluated one of the techniques. We found the FLOW mapping technique to be suitable for effectively spreading knowledge about communication and information flow in global software projects. 相似文献
16.
B方法主要是用抽象机来描述软件系统的规范说明,且有大量工具支持。UML已广泛用于面向对象技术的建模,许多工程项目和研究成果用UML图例给出。文中将B方法与UML结合用于软件的开发过程,结合工程实际和文献资料分析了从UML的类图、时序图和状态图转换到B的抽象机的技术要点,通过实例展示了具体的转换形式。 相似文献
17.
18.
新旧系统切换中数据转换的研究与实现 总被引:3,自引:0,他引:3
数据转换是信息系统升级、新旧信息系统切换过程中的重要工作。按照软件工程的方法,对数据转换过程中的各个环节进行定义,保证通过有效的数据转换工作使历史数据资源在新系统中得以利用。 相似文献
19.
在开发基于因特网的软件系统(文中称为网构软件)时,在开发过程的各个阶段都需要考虑软件系统的多种质量属性,这样网构软件的质量才能在软件系统的规约和设计阶段进行推导和预测,从而在部署和运行阶段进一步进行评估和验证。提出了一种新的抽象概念,即抽象质量类型,将软件实体的数据状态、相关的操作、质量属性以及保证质量得以实现的环境封装在一个统一的语法单元中,从而为建模软件实体以及推导其功能和非功能属性提供了一种严格的手段。探讨了基于软件体系结构及软件交互过程的抽象质量类型的组合,这为构建高质量网构软件提供了一定的形式化基础。最后,还描出了一个系统原型来展示如何利用抽象质量类型构造网构软件,并验证和提高网构软件系统的相关质量属性。 相似文献
20.
由于现实世界不断变化,政府部门或企事业单位的关联系统将不可避免地遇到不确定的需求,针对这种需求的几个技术方法,重要的是提取、捕获、分析客户的变化需求,解决方案能应对这种变化并保持一致地改进系统的行为。通过分析传统的软件开发技术和基于知识的软件工程方法。认为基于知识的关联多系统的软件工程方法是今后的发展方向。 相似文献