Software design SWDN
Architecting and designing software to meet specified requirements, ensuring adherence to established standards and principles.
Revision notes
Updates for SFIA 9
- Theme(s) influencing the updates for this skill: Software engineering, Application of SFIA skills for cloud-based working, Making SFIA easier to consume (enhance readability/guidance/descriptions), Making SFIA easier to consume (updates to skill name/skill description).
- Added reference to software architecture
- Content changes have been made to levels 2, 4, and 6.
- You can move to SFIA 9 when you are ready - SFIA 8 skill descriptions will still be available to use.
- Previous SFIA assessments or skills mapping are not impacted by this change.
Guidance notes
Activities may include, but are not limited to:
- designing and architecting software applications, components, interfaces and related characteristics (including security)
- designing for scalability, performance, resilience, security and privacy from the outset, aligned with cloud computing, distributed systems and data protection
- applying design concepts, patterns, modelling techniques and architectural styles such as microservices, serverless and domain-driven design to develop software designs and architectures, which serve as the foundation for software construction and verification
- evaluating alternative solutions and trade-offs to facilitate design decisions
- considering functional and non-functional requirements such as the target environment, performance, security, scalability and integration with existing systems
- adopting and adapting software design models, tools and techniques based on the context of the work, including contemporary practices such as cloud-native architectures, edge computing, cyber-physical systems and agile and iterative design practices
- developing prototypes/simulations to enable informed decision-making.
Unlike programming and designing at the code level, this skill focuses on higher-level design, addressing architecture and system-wide considerations.
Understanding the responsibility levels of this skill
Where lower levels are not defined...
- Specific tasks and responsibilities are not defined because the skill requires a higher level of autonomy, influence, and complexity in decision-making than is typically expected at these levels. You can use the essence statements to understand the generic responsibilities associated with these levels.
Where higher levels are not defined...
- Responsibilities and accountabilities are not defined because these higher levels involve strategic leadership and broader organisational influence that goes beyond the scope of this specific skill. See the essence statements.
Developing skills and demonstrating responsibilities related to this skill
The defined levels show the incremental progression in skills and responsibilities.
Where lower levels are not defined...
You can develop your knowledge and support others who do have responsibility in this area by:
- Learning key concepts and principles related to this skill and its impact on your role
- Performing related skills (see the related SFIA skills)
- Supporting others who are performing higher level tasks and activities
Where higher levels are not defined...
- You can progress by developing related skills which are better suited to higher levels of organisational leadership.
Click to learn why SFIA skills are not defined at all 7 levels.
Show/hide extra descriptions and levels.
Levels of responsibility for this skill
2 | 3 | 4 | 5 | 6 |
Level 1
Software design: Level 2
Creates and documents detailed designs for simple software applications or components.
Applies agreed modelling techniques, standards, patterns and tools.
Contributes to the design of components of larger software systems, ensuring alignment with overall design requirements, including security.
Reviews own work.
Software design: Level 3
Undertakes complete design of moderately complex software applications or components.
Applies agreed standards, guidelines, patterns and tools. Assists as part of a team in the design of components of larger software systems. Specifies user and/or system interfaces.
Creates multiple design views to address the different stakeholders' concerns and to handle functional and non-functional requirements, considering all relevant factors, including security. Assists in the evaluation of options and trade-offs.
Collaborates in reviews of work with others as appropriate.
Software design: Level 4
Designs and architects complex software applications, components and modules.
Uses appropriate modelling techniques in line with agreed software design standards, guidelines, patterns and methodologies. Produces and communicates multiple design views to address stakeholder concerns and meet both functional and non-functional requirements including security.
Identifies, evaluates and recommends design alternatives and trade-offs. Models, simulates or prototypes proposed software behaviours to secure stakeholder approval and facilitate effective software construction.
Reviews, verifies and enhances own designs against specifications and leads reviews of others' designs.
Software design: Level 5
Specifies, designs and architects large or complex software applications, components and modules.
Adopts and adapts software design methods, tools and techniques. Undertakes impact analysis on major design options, makes recommendations and assesses and manages associated risks. Specifies prototypes/simulations to enable informed decision-making.
Evaluates software designs to ensure adherence to standards and identifies corrective action. Ensures the software design balances functional, quality, security and systems management requirements.
Contributes to the development of organisational software design and architecture policies and standards.
Software design: Level 6
Leads the selection and development of software design and architectural methods, tools and techniques.
Defines and maintains architectural principles, patterns and frameworks to guide software design and development across the organisation.
Ensures adherence to technical strategies and systems architectures (including security).