Programming complexity: Difference between revisions

Content deleted Content added
m top: f
Adding short description: "Attribute of a software system"
 
(2 intermediate revisions by 2 users not shown)
Line 1:
{{Short description|Attribute of a software system}}
{{Distinguish|Computational complexity theory}}'''Programming complexity''' (or '''software complexity''') is a term that includes software properties that affect internal interactions. Several commentators distinguish between the terms "complex" and "complicated". Complicated implies being difficult to understand, but ultimately knowable. Complex, by contrast, describes the interactions between entities. As the number of entities increases, the number of interactions between them increases exponentially, making it impossible to know and understand them all. Similarly, higher levels of complexity in software increase the risk of unintentionally interfering with interactions, thus increasing the risk of introducing defects when changing the software. In more extreme cases, it can make modifying the software virtually impossible.
 
Line 31 ⟶ 32:
** <math>WMC = \sum_{i=1}^nc_i</math>
** n is the number of methods on the class
** <math>c_i</math> is the complexity of the method
* Coupling between object classes ("CBO")
** number of other class which is coupled (using or being used)
Line 54 ⟶ 55:
*[[Programming paradigm]]
*[[Software crisis]]
*[[Software metric]] - quantitative measure of some property of a program
 
==References==