![[FA] SIT One SITizen Alumni Initiative_Web banner_1244px x 688px.jpg](/sites/default/files/2024-12/%5BFA%5D%20%20SIT%20One%20SITizen%20Alumni%20Initiative_Web%20banner_1244px%20x%20688px.jpg)
Software Design
Software design is concerned with issues, techniques, strategies, representations, and patterns used to determine how to implement a component or a system. The design will conform to functional requirements as well as non-functional requirements such as resource, performance, reliability and security. This module focuses on techniques for software design in the context of large and complex software systems. Topics include software architecture, design principles (information hiding, cohesion and coupling), design notations, evaluation methods and their associated software tools. The course introduces more advanced design notations and concepts. Several design methods are presented and compared, with accompanying examples and case studies. An emphasis will be on placed on the application of design principles and evaluation of their trade-offs to the creation of successful software.