Leveraging existing software artifacts to support design, development, and testing of mobile applications