Abstract

With the rapid development of computer science and technology, software-intensive systems have been widely adopted and become much more complex than ever before. For example, the lines of code in the avionics of the fighter plane F-35 are as high as 500 million as estimated[1]. With the increasing complexity of these complex software-intensive systems, some new features emerge[2], bringing new challenges to the assurance of software dependability, namely: • Logical complexity: With the increasing lines of code and the trend of modularization, interactions between modules increase, making it difficult to control and predict the behavior brought by these interactions. Research indicates that more and more failures occur because of exceptional interactions within a system[3]. • Boundary erosion: The interaction between software and peripheral hardware in complex software-intensive systems becomes so frequent and complicated that the boundary of software has been eroded by peripheral environments. Investigation shows that failures caused by abnormal interaction behavior between software and peripheral hardware have taken a significant portion of total system failures[4]. • Longevity: Complex missions require these systems to operate during a long life cycle, during which the system has to fight against internal faults, external attacks and evolve to adapt to the environment but remains quasi-stable, which requires more attention on runtime characteristics of the system that may cause failure, such as exceptional runtime data stream.

Full Text
Published version (Free)

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call