Capturing and Using Rationale for a Software Architecture