Explore KSACs by Pathway

Explore Knowledge, Skills, Abilities, and Credentials (KSACs) by IT Pathway.

6. Software Design

Label KSAC Description Bloom's Taxonomy Level Cross-Cutting
a Articulate design principles including separation of concerns, information hiding, coupling and cohesion, and encapsulation. knowledge 2
b Use a design paradigm to design a simple software system, and explain how system design principles have been applied in this design. skill 2
c Construct models of the design of a simple software system that are appropriate for the paradigm used to design it. skill 2
d Describe one or more design patterns that could be applicable to the design of a simple software within the context of a single design paradigm. knowledge 2
e Knowledge of best practices for a particular platform - for instance - iOS, Android, or the Web. knowledge 2
f Discuss and select an appropriate design paradigm for a simple system for a given scenario. skill 3
g Create appropriate models for the structure and behavior of software products from their requirements specifications. ability 4
h Explain the relationships between the requirements for a software product and its design, using appropriate models. ability 3
i Describe the software architecture for the design of a simple software system. skill 3
j Identify an appropriate software architecture by differentiating among common software architectures such as 3-tier, pipe-and-filter, message-queue, and client-server for a high-level design. skill 3
k Investigate the impact of software architecture selection on the design of a simple system. skill 4
l Apply simple examples of patterns in software design. skill 3
m Describe a form of refactoring and discuss when it may be applicable. knowledge 2
n Select suitable components for use in the design of a software product. ability 3
o Describe pros and cons of building a new component vs adapting an existing component in the design of a software product. knowledge 3
p Explain the role of objects in middleware systems and the relationship with components. skill 4
q Refactor an existing software implementation to improve some aspect of its design. ability 4
r Understand the user journey and the role it plays in the software development process knowledge 2
s Understand when to use low code or no code approaches in the software development process knowledge 2


  1. N/A