final software architecture