Font Size: a A A

Analysis And Simulation Of Software Fault Propagation

Posted on:2012-01-20Degree:MasterType:Thesis
Country:ChinaCandidate:X L LiuFull Text:PDF
GTID:2178330335950468Subject:Software engineering
Abstract/Summary:PDF Full Text Request
With the development of information technology, people's demand of software features are getting bigger and bigger. The increasing complexity of software structure causes the increasing complexity of software failure. If faults propagate from one module to other modules through calls and dependencies, that may eventually lead to a collapse of part or the whole system. Some simple errors, such as overflows, compatibility, often cause irreparable results. Therefore, how to improve the reliability of software is concerned by more and more people.As a typical complex system, the "communication" between software modules shows the characteristics of complex networks from the overall structure, and software system can model and analyze by complex network theory. We can model software through different granularity, such as service, components, modules, packages, interfaces, classes, functions. Take these elements as complex network nodes, and take the relationship between these elements as the edge of the network, the relationship may be call relations, inheritance, aggregation, inclusion, collaboration and so on. Currently, most researchers study software system by complex network theory and tools, they focus on open source software, extract classes from source code by reverse engineering, and create software network model to analyze, then find a variety of statistical properties, and get some objective laws from the phenomenon.We introduced some knowledge of complex network first, including the progress of complex network, and the significance of some fault propagating experimental research on extracting software elements into complex network model. Then we presented four typical network models, including the regular networks, random networks, small world networks and scale-free networks, meanwhile we introduced the progress of software network, some traditional methods to measure software quality, the related background of software and fault classification. We proposed a method to construct the complex software network topology model, then added the weight to the complex network model by considering the importance of edge weight showed in the real software systems. In order to compare different fault tolerance of network topology, we constructed random networks and scale-free networks with the same number of nodes, edges, weight sum, which are the same as real software networks. At the same time, we added the fault tolerance of function and software failure intensity to establish complex software cascade fault model, taking the following factors that affected the network quality into account: failure intensity, initial fault number, node fault tolerance, fault strength, failure trigger mode, and we added these factors into the system for the following discussion.When simulating the fault propagating behavior of runtime software, we explore the experiment results and its real meanings by doing research on topology, trigger mode, failure strength, initial fault number, fault tolerance and other factors, and drew some conclusions:(1) The simulation results of real software network, random network and scale-free network reveal that the speed and range of cascading failure propagation has a close relationship with failure strength, initial fault number, and fault tolerance, that is to say, weak fault strength, less initial fault number and high fault tolerance will lower the cascade failure propagation, reduce the affected range, improve software quality; (2) Cascading failures in different scenarios of three networks show the overall trend is consistent, that means the network topology model and cascading fault model we built is correct; (3) In all scenarios, the fault tolerance in real software network is better than that in random network and scale-free network; (4) The propagation speed by malicious trigger is faster than that by random trigger, which means if we can improve the fault tolerance of key function and its surroundings, that will help to improve the overall quality of software systems.In this cascade failure model, failure strength in the entire propagation process remains the same, however, due to different functions have different fault tolerance, and fault strength may change by function call. For example, if a function has no exception handling part, then the fault propagation strength should be increased via this point, otherwise weakened. Modeling on cascading failures of complex software will help to improve the understanding of software complexity and fault tolerance; it also helps to improve software quality.
Keywords/Search Tags:Complex Networks, Software Complexity, Fault Propagation, Software Metrics, Networked software
PDF Full Text Request
Related items