Add software_architecture.md