Title: Software Architecture Design Patterns in Java