共查询到20条相似文献,搜索用时 15 毫秒
1.
2.
一种精简二进制代码的程序理解方法 总被引:3,自引:0,他引:3
精简二进制代码形式的软件是软件分析和程序理解需要处理的一类具有代表性的对象,基于高级语言源代码和调试符号信息的传统分析方法在处理此类软件时受到了极大限制。提出一种精简二进制形式软件的理解方法,首先将分析对象转变为运行期进程,引入实际运行中的进程信息;然后引入程序的行为特征,以程序表现出的外在行为和对外接口作为辅助信息,将此类外部特征映射到程序代码;最后基于切片思想和调试技术,获得程序切片并分析。这种方法为分析理解过程扩展了信息量,降低了复杂度,解决了分析此类软件时信息缺失和难以建立理解模型的问题。 相似文献
3.
Patrick Heymans Quentin Boucher Andreas Classen Arnaud Bourdoux Laurent Demonceau 《International Journal on Software Tools for Technology Transfer (STTT)》2012,14(5):553-566
Software product line engineering seeks to systematise reuse when developing families of similar software systems so as to minimise development time, cost and defects. To realise variability at the code level, product line methods classically advocate usage of inheritance, components, frameworks, aspects or generative techniques. However, these might require unaffordable paradigm shifts for developers if the software was not thought at the outset as a product line. Furthermore, these techniques can be conflicting with a company’s coding practices or external regulations. These concerns were the motivation for the industry–university collaboration described in this paper in which we developed a minimally intrusive coding technique based on tags. The approach was complemented with traceability from code to feature diagrams which were exploited for automated configuration. It is supported by a toolchain and is now in use in the partner company for the development of flight-grade satellite communication software libraries. 相似文献
4.
Spectrum-based fault localization is amongst the most effective techniques for automatic fault localization. However, abstractions of program execution traces, one of the required inputs for this technique, require instrumentation of the software under test at a statement level of granularity in order to compute a list of potential faulty statements. This introduces a considerable overhead in the fault localization process, which can even become prohibitive in, e.g., resource constrained environments. To counter this problem, we propose a new approach, coined dynamic code coverage (DCC), aimed at reducing this instrumentation overhead. This technique, by means of using coarser instrumentation, starts by analyzing coverage traces for large components of the system under test. It then progressively increases the instrumentation detail for faulty components, until the statement level of detail is reached. To assess the validity of our proposed approach, an empirical evaluation was performed, injecting faults in six real-world software projects. The empirical evaluation demonstrates that the dynamic code coverage approach reduces the execution overhead that exists in spectrum-based fault localization, and even presents a more concise potential fault ranking to the user. We have observed execution time reductions of 27% on average and diagnostic report size reductions of 77% on average. 相似文献
5.
Model-driven code generation has been investigated in traditional and object-oriented design paradigms; significant progress has been made. It offers many advantages including the rapid development of high quality code. Errors are reduced and the consistency between the design and the code is retained, in comparison with a purely manual approach. Here, a model-driven code generation approach based on graph transformations for aspect-oriented development is proposed. The approach has two main transformation activities. The first activity transforms a visual (graphical) model of the design into a formal, text-based notation that can be readily processed. The graphical model is created by the software designer and uses a UML profile for aspect-oriented software (i.e., FDAF) to represent aspects and their components. XML is the target notation for this step; the transformation uses the XML meta-model to ensure that the output complies with the language. The second activity transforms the XML model into AspectJ source code. The transformation uses the AspectJ meta-model to ensure the output complies with the language. The transformations from the extended UML model to XML and from XML to AspectJ code are fully automated. The transformation algorithms are based on graph transformations; tool support has been developed. Key technical issues in the approach are discussed, including performance, the amount of code generated, correctness, and adaptability, in addition to a comparison of the proposal with existing alternative approaches. The approach has been validated on three example systems: a banking system, classroom scheduling system, and an insurance system. The banking system example is presented in the paper. 相似文献
6.
If the dynamics of an evolutionary differential equation system possess a low-dimensional, attracting, slow manifold, there
are many advantages to using this manifold to perform computations for long term dynamics, locating features such as stationary
points, limit cycles, or bifurcations. Approximating the slow manifold, however, may be computationally as challenging as
the original problem. If the system is defined by a legacy simulation code or a microscopic simulator, it may be impossible
to perform the manipulations needed to directly approximate the slow manifold. In this paper we demonstrate that with the
knowledge only of a set of “slow” variables that can be used toparameterize the slow manifold, we can conveniently compute, using a legacy simulator, on a nearby manifold. Forward and reverse integration,
as well as the location of fixed points are illustrated for a discretization of the Chafee-Infante PDE for parameter values
for which an Inertial Manifold is known to exist, and can be used to validate the computational results. 相似文献
7.
8.
In this paper, a mixed approach for probabilistic structural durability design of mechanical systems is proposed. In this approach, a deterministic design optimization that considers structural crack initiation and crack propagation lives at critical points of the structural component as design constraints is performed first. After an optimal design is obtained, a reliability analysis is performed to ascertain if the deterministic optimal design is reliable. If the probability of the failure of the deterministic optimal design is found to be acceptable, a reliability-based design approach that employs a set of interactive design steps, such as trade-off analysis and what-if study, is used to obtain a near-optimal design that is reliable with an affordable computational cost. A 3-D tracked vehicle roadarm is employed to demonstrate the feasibility of the proposed approach. 相似文献
9.
《Environmental Software》1991,6(3):161-167
In this paper we present a review of the different existing methods to evaluate the mixed layer depth (zi) by using direct and simple meteorological data over a mast. Wind speed at one height in the atmosphere and temperature at two levels are the necessary values for calculating a value of the mixed layer depth. The procedure is based on a reformulation of the Tennekes1 and Panosfky et al. 2 equations. The expression proposed in this paper has been tested with those values from four international field experiments Limagne (France), Beauce (France), Weldon (USA) and Sea of Chine (AMTEX). The resulting correlation coefficient (0.88) is considered to be good enough, taking into account the simplicity of the meteorological measurements to be carried out. No special computer requeriments are need. 相似文献
10.
针对已有克隆代码检测工具只输出克隆组形式的检测结果,而无法分析克隆代码对软件质量的影响问题,提出危害软件质量的关键克隆代码的识别方法。首先,定义了克隆代码的统一表示形式,使之可以分析各种克隆检测工具的检测结果;接下来,解析源程序和克隆检测结果,识别标识符命名不一致性潜在缺陷;然后,定义了克隆关联图,在此基础上检测跨越多个实现不同功能的文件、危害软件可维护性的克隆代码;最后,对检测结果进行可视化统计分析。本文的克隆代码分析工具被应用于分析开源代码httpd,检测出了1组标识符命名不一致的克隆代码和44组危害软件可维护性的关键克隆类,实验结果表明,本文方法可以有效辅助软件开发和维护人员分析、维护克隆代码。 相似文献
11.
An approach to code motion and hoisting, a program optimization technique, is discussed. The safety and profitability of optimization in general and hoisting in particular are analyzed. By restricting the analysis to a spanning tree imposed on the program graph, a linear algorithm is developed that provides sufficient but not necessary conditions for hoisting. 相似文献
12.
A supervised discriminant mixed integer programming algorithm (DISMIP) is described which achieves either linear or non-linear separation, without assuming any specific probability distribution. This system offers greater flexibility in dealing with problems of multi-spectral classification. If the training sets are disjoint, a strictly separating surface is generated that maximizes a “dead zone” between the sets. If the sets intersect, a surface is generated that minimizes a specified misclassification error. The system has been experimentally tested in three practical applications and the results are given in comparison with a supervised classification using the LARSIS classifier.(1) 相似文献
13.
Rodolfo Cuevas Juan-Carlos Ferrer Mathias Klapp Juan-Carlos Muñoz 《Journal of Scheduling》2016,19(1):91-106
The potential benefits of using human resources efficiently in the service sector constitute an incentive for decision makers in this industry to intelligently manage the work shifts of their employees, especially those dealing directly with customers. In the long term, they should attempt to find the right balance between employing as few labor resources as possible and keeping a high level of service. In the short run (e.g., 1 week), however, contracted staff levels cannot be adjusted, and management efforts thus focus on the efficient assignment of shifts and activities to each employee. This article proposes a mixed integer program model that solves the short-term multi-skilled workforce tour scheduling problem, enabling decision makers to simultaneously design workers’ shifts and days off, assign activities to shifts and assign those to employees so as to maximize and balance coverage of a firm’s demand for on-duty staff across multiple activities. Our model is simple enough to be solved with a commercial MIP solver calibrated by default without recurring to complex methodologies, such as extended reformulations and exact and/or heuristic column generation subroutines. A wide computational testing over 1000 randomly generated instances suggests that the model’s solution times are compatible with daily use and that multi-skilling is a significant source of labor flexibility to improve coverage of labor requirements, in particular when such requirements are negatively correlated and part-time workers are a scarce resource. 相似文献
14.
《Information and Software Technology》2014,56(10):1268-1288
ContextSoftware networks are directed graphs of static dependencies between source code entities (functions, classes, modules, etc.). These structures can be used to investigate the complexity and evolution of large-scale software systems and to compute metrics associated with software design. The extraction of software networks is also the first step in reverse engineering activities.ObjectiveThe aim of this paper is to present SNEIPL, a novel approach to the extraction of software networks that is based on a language-independent, enriched concrete syntax tree representation of the source code.MethodThe applicability of the approach is demonstrated by the extraction of software networks representing real-world, medium to large software systems written in different languages which belong to different programming paradigms. To investigate the completeness and correctness of the approach, class collaboration networks (CCNs) extracted from real-world Java software systems are compared to CCNs obtained by other tools. Namely, we used Dependency Finder which extracts entity-level dependencies from Java bytecode, and Doxygen which realizes language-independent fuzzy parsing approach to dependency extraction. We also compared SNEIPL to fact extractors present in language-independent reverse engineering tools.ResultsOur approach to dependency extraction is validated on six real-world medium to large-scale software systems written in Java, Modula-2, and Delphi. The results of the comparative analysis involving ten Java software systems show that the networks formed by SNEIPL are highly similar to those formed by Dependency Finder and more precise than the comparable networks formed with the help of Doxygen. Regarding the comparison with language-independent reverse engineering tools, SNEIPL provides both language-independent extraction and representation of fact bases.ConclusionSNEIPL is a language-independent extractor of software networks and consequently enables language-independent network-based analysis of software systems, computation of design software metrics, and extraction of fact bases for reverse engineering activities. 相似文献
15.
Alejandro Jara Fernando Quintana Ernesto San Martín 《Computational statistics & data analysis》2008,52(11):5033-5045
Normality of random effects and error terms is a routine assumption for linear mixed models. However, such an assumption may be unrealistic, obscuring important features of within- and among-unit variation. A simple and robust Bayesian parametric approach that relaxes this assumption by using a multivariate skew-elliptical distribution, which includes the Skew-t, Skew-normal, t-Student, and Normal distributions as special cases and provides flexibility in capturing a broad range of non-normal and asymmetric behavior is presented. An appropriate posterior simulation scheme is developed and the methods are illustrated with an application to a longitudinal data example. 相似文献
16.
为了解决渗透测试中大量攻击代码编写的问题,提高渗透测试效率,提出一种面向渗透测试的攻击代码生成方法.从拒绝服务(DOS)攻击入手,通过对攻击代码的多样性和相似性分析,提取攻击实现过程中的共性部分和可变要素.利用攻击模板表示攻击的通用结构,攻击原子表示攻击的通用组成,攻击元数据表示攻击的可变要素,然后通过对攻击元数据进行配置的方法实现人工定制的攻击代码生成.分析结果表明了该方法在攻击代码生成上的优点, 相似文献
17.
Santiago A. Vidal Claudia Marcos J. Andrés Díaz-Pace 《Automated Software Engineering》2016,23(3):501-532
Code smells are a popular mechanism to find structural design problems in software systems. Consequently, several tools have emerged to support the detection of code smells. However, the number of smells returned by current tools usually exceeds the amount of problems that the developer can deal with, particularly when the effort available for performing refactorings is limited. Moreover, not all the code smells are equally relevant to the goals of the system or its health. This article presents a semi-automated approach that helps developers focus on the most critical problems of the system. We have developed a tool that suggests a ranking of code smells, based on a combination of three criteria, namely: past component modifications, important modifiability scenarios for the system, and relevance of the kind of smell. These criteria are complementary and enable our approach to assess the smells from different perspectives. Our approach has been evaluated in two case-studies, and the results show that the suggested code smells are useful to developers. 相似文献
18.
M. Torabi
J. A. Dracup
《Computers & Mathematics with Applications》1988,15(12):1029-1039The optimal operation of pumps in a large water supply system under time-of-use electricity rates is formulated as a mixed integer programming (MIP) problem. The problem is solved using an iterative linear programming (LP) scheme. The scheme is applied to an actual world problem, the City of Inglewood Water Supply System. Computational results are presented and termination criteria for the solution scheme are discussed. 相似文献
19.
An approach to perform a system wide analysis of hospital resources and capacity has been developed. Embedded within an intelligent system it would provide planners and management capability to strategically improve the efficiency of their hospitals today and a means to create more efficient hospitals in the future. In theory, this approach can help hospitals with a variety of capacity planning and resource allocation activities. On a day to day basis it can be used to perform a variety of important capacity querying activities. In addition, it can be used to predict the future performance of a hospital and the effect of structural and parametric changes within the hospital. The approach consists of a mixed integer linear programming (MILP) model and a number of advanced extensions. The MILP models can determine the maximum number of patients of each type that can be treated within a given period of time or the time required to process a given cohort of patients. A case study of a large public hospital has been performed to validate our approach. Extensive numerical investigations successfully demonstrate the applicability of the approach to real sized health care applications and the great potential for further research and development on this topic. 相似文献
20.
The mixed model assembly lines are becoming increasingly popular in a wide area of industries. We consider the sequencing problem in mixed model assembly lines, which is critical for efficient utilization of the lines. We extend standard formulation of the problem to allow a hybrid assembly line, in which closed and open workstations are intermixed, and sequence-dependent setup time. A new approach using an artificial intelligence search technique, called genetic algorithm, is proposed. A genetic representation suitable for the problem is investigated, and genetic control parameters that yield good results are empirically found. A new genetic operator, Immediate Successor Relation Crossover (ISRX), is introduced and several existing ones are modified. An extensive experiment is carried out to determine a proper choice of the genetic operators. The performance of the genetic algorithm is compared with those of heuristic algorithm and of branch-and-bound method. The results show that our algorithm greatly reduces the computation time and its solution is very close to the optimal solution. We have identified the ISRX operator to play a significant role in improving the performance. 相似文献