| Reliability is one of the important indicators to measure the software quality. Roughly speaking, the existing models include Software Reliability Growth Models(SRGMs) and architecture based models. Software reliability model based on architecture in the process of reliability calculation considering the software architecture, and compare that to just the static test of the reliability of the input and output calculation more accurate. But the method used in the information from the unit testing and coverage testing, and assumes the failure of the component is independent of each other.According to the above problem, this paper presents a method of software reliability calculation based on service component architecture(SCA). This paper configures the SCA architecture model of software system on the basis of using the state diagram to describe the system behavior. It derived all the accessible state in the model to build the software system of finite states machine model based on the SCA architecture model. In order to calculate the reliability of the software system, we put the port of the SCA architecture model mapping to the state in the finite state machine, and further calculate the reliability of each state, as well as any transition probability between different states, and then we use these data to establish a discrete Markov model. Our approach is that using the Markov model of the software system to calculate the reliability of the entire software system eventually. Finally, through an instance, this paper get the data from the log files, thereby get the state reliability, and then calculate the state transition probability and develop Markov model, to verify the validity of the method in this paper. On the basic of the method with respect to the reliability calculation presented in this paper, we can optimize the software design based on the reliability of the system status at the component level.The contribution point of this paper is as follows:(1) Based on the SCA service composition structure of the software system, and we can deduce the finite state machine from the algorithm. The behavioral model derived from the software architecture model, and then used for reliability calculation.(2) Implementing the correspondence from the state to port of the system, and extending the finite state machine to discrete Markov model. About reliability calculation, because we are at the port level, rather than at the component level, and we do not need assumption of independence between components.(3) Optimizing the design of the software by using the results of the software reliability calculation. Through simulation, we can improve the software reliability during the design phase, if lower than expected, we can find the part that results in the decrease of software reliability, and then design optimization. |