Knowledge in software engineering architectural design