The principles of construction practice (when coding ends) involve refactoring of the code, correcting errors that have been uncovered and performing unit tests, and performing a code walkthrough. At the other end, (when coding initiates) in the construction practice involves creating a visual layout that helps code understanding, writing self-documenting code, following other standards of local coding and selecting meaningful variable names. It also involves creating nested loops in a manner so that they can be tested easily, keeping conditional logic as simple as possible, creating interfaces that are continuous and understanding the architecture of the software. It also includes the selection of data structures that will effectively meet the needs of the design and constraining the algorithms by following the practices of structured programming.
The principles of modelling practice (design) involve iterative development of the design so that greater simplicity can be acquired by the designer, design representations (models) must be easily understandable, and components must be coupled loosely to the external environment and one another. It also involves functional independent of the component-level design, tuning of the user interface design as per the needs of the end-user, and designing of both external and internal interfaces with care. Lastly, it also involves the importance of designing of data similar to the design of processing functions, considering the software architecture of the system always to be constructed, and the design must be traceable to the analysis model.
At the other end, the principles of modeling practice (analysis) involve the movement of the analysis starting from important information and ending to implementation detail. It also includes the behavior, function, and information depiction by the models in such a manner that detail in a hierarchical or layered fashion are uncovered and as a consequence of external events the behaviour of the software must be represented. Lastly, it also involves the functions that must be well described by the software and the information domain of a problem (that is the data that flows out and in of the system) must be well-understood and represented.