Verification of Component-Based Software Application Families [chapter]

Fei Xie, James C. Browne
2006 Lecture Notes in Computer Science  
We present a novel approach which facilitates formal verification of component-based software application families using model checking. This approach enables effective compositional reasoning by facilitating formulation of component properties and their environment assumptions. This approach integrates bottom-up component verification and top-down system verification based on the concept of application family architectures (AFA). The core elements of an AFA are architectural styles and
more » ... components. Reusable components of a family are defined in the context of its architectural styles and their correctness properties are verified in bottom-up component compositions. Top-down system verification utilizes architectural styles to guide decomposition of properties of a system into properties of its components and formulation of assumptions for the component properties. The component properties are reused if already verified; otherwise, they are verified top-down recursively. Architectural style guided property decomposition facilitates reuse of verified component properties. Preliminary case studies have shown that our approach achieves order-of-magnitude reduction on verification complexities and realizes major verification reuse. Provides: P(pro): After(Login) Eventually(LoggedIn+Rejected+TryLater); Never(LoggedIn+Rejected+TryLater) UnlessAfter(Login); After (LoggedIn+Rejected+TryLater) Never (LoggedIn+Rejected+TryLater) UnlessAfter(Login); After(AddClassReq) Eventually(AddClassReply); Never(AddClassReply) UnlessAfter(AddClassReq); After(AddClassReply) Never(AddClassReply) UnlessAfter(AddClassReq); After(DelClassReq) Eventually(DelClassReply); Never(DelClassReply) UnlessAfter(DelClassReq); After(DelClassReply) Never(DelClassReply) UnlessAfter(DelClassReq); After(Logout) Eventually(LoggedOut); Never(LoggedOut) UnlessAfter(Logout); After(LoggedOut) Never(LoggedOut) UnlessAfter(Logout); A(pro): Never(AddClassReq+DelClassReq+Logout) UnlessAfter(LoggedIn); After(AddClassReq) Never (AddClassReq+DelClassReq+Logout) UnlessAfter(AddClassReply); After(DelClassReq) Never (AddClassReq+DelClassReq+Logout) UnlessAfter(DelClassReply); After(LoggedIn) Eventually (Logout); After(Logout) Never(AddClassReq+DelClassReq+Logout); Fig. 5. Properties of Registration System Provides: (same as the provides in Figure 5.) Requires 1: A(req):
doi:10.1007/11783565_4 fatcat:u26r6u6vkjca3ezrrhhxaaoz3a