# SD6.3-E Software Architecture # Background # Aim # Outcomes * Design the application as a plugin architecture so that the functionality can be extended more easily. * Design the software architecture of the system based on software architecture patterns. * Develop an HPC application according to a reference architecture and adhering to the standards/guidelines given by the reference architecture. * Implement component-based software architecture for scientific applications. * Apply component-based architecture design. * Detect architecture bad smells. * Identify sub-optimal design decisions in architecture designs (e.g. sub-optimal communication between components). # Subskills