Software Architecture and Object-Oriented Modeling, and UML