-
Notifications
You must be signed in to change notification settings - Fork 3
Sample Knowledge Components
Nikola Luburić edited this page Jan 17, 2022
·
1 revision
This page maintains a list of knowledge components (KCs) from the clean code analysis and refactoring domain. It presents a KC inventory concerned with assigning meaningful names to identifiers in code and creating clean functions. It also acts as supplementary material to the Challenges of Knowledge Component Modeling: A Software Engineering Case Study paper.
| KC Id | KC Name | Parent KC Id |
|---|---|---|
| N01 | Assign meaningful names to identifiers in code | / |
| N02 | Follow team conventions when assigning names | N01 |
| N03 | Avoid meaningless noise words | N01 |
| N04 | Formulate an appropriate word type | N01 |
| N05 | Utilize the terminology from the problem domain | N01 |
| N06 | Analyze the broader context in which an identifier exists | N01 |
| N07 | Formulate a name on the appropriate level of abstraction | N01 |
| F01 | Create clean functions | / |
| F02 | Segment a long function into regions of cohesive logic | F01 |
| F03 | Reduce a function’s complexity | F01 |
| F04 | Reorganize logic to reduce its complexity | F03 |
| F05 | Extract sophisticated logic into a separate function | F03 |
| F06 | Name sophisticated logic | F03 |
| F07 | Shorten a function’s parameter list with a suitable strategy | F01 |
| F08 | Move the function into a more suitable module | F07 |
| F09 | Promote a parameter into a class field | F07 |
| F10 | Encapsulate a set of tightly-coupled parameters | F07 |
| F11 | Determine the semantic purpose of a function | F01 |