 Therefore, a true software blueprint should share a number of key properties with its building-blueprint counterpart.Software blueprinting relies on achieving a clean separation between logically orthogonal aspects of the software.Once that is achieved, it facilitates the localization of related logic and use of an optimal description medium for each of the logically independent components (for each blueprint).