Designing Verifiable and Reusable Data Access Layer Using Formal Methods and Design Patterns | IEEE Conference Publication | IEEE Xplore