Software architecture also encompasses the pragmatic aspects of realizing a software, including scheduling, cost estimation and implementation governance.Software architecture is also a collection of documentation artifacts (usu. diagram representations and technology details) that may be used to define the structure and/or behavior of a software that is to be or has been constructed.