Architecture of software. Creation of software with selection of tools and technologies, planning of software lifecicle, interaction, perfomance, phases of development, crestion of main structure/skeleton of a project, prediction and planning of possible upgrades, new features with a foundation for the future.