<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>http://wiki.karljones.com/index.php?action=history&amp;feed=atom&amp;title=Essential_complexity</id>
		<title>Essential complexity - Revision history</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.karljones.com/index.php?action=history&amp;feed=atom&amp;title=Essential_complexity"/>
		<link rel="alternate" type="text/html" href="http://wiki.karljones.com/index.php?title=Essential_complexity&amp;action=history"/>
		<updated>2026-10-23T17:45:34Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.24.2</generator>

	<entry>
		<id>http://wiki.karljones.com/index.php?title=Essential_complexity&amp;diff=17911&amp;oldid=prev</id>
		<title>Karl Jones: Created page with &quot;In computer science, '''essential complexity''' is a numerical measure defined by Thomas J. McCabe, Sr.  in his highly cited, 1976 paper better known for introducing [...&quot;</title>
		<link rel="alternate" type="text/html" href="http://wiki.karljones.com/index.php?title=Essential_complexity&amp;diff=17911&amp;oldid=prev"/>
				<updated>2016-09-06T15:16:27Z</updated>
		
		<summary type="html">&lt;p&gt;Created page with &amp;quot;In &lt;a href=&quot;/index.php/Computer_science&quot; title=&quot;Computer science&quot;&gt;computer science&lt;/a&gt;, &amp;#039;&amp;#039;&amp;#039;essential complexity&amp;#039;&amp;#039;&amp;#039; is a numerical measure defined by &lt;a href=&quot;/index.php?title=Thomas_J._McCabe,_Sr.&amp;amp;action=edit&amp;amp;redlink=1&quot; class=&quot;new&quot; title=&quot;Thomas J. McCabe, Sr. (page does not exist)&quot;&gt;Thomas J. McCabe, Sr. &lt;/a&gt; in his highly cited, 1976 paper better known for introducing [...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;In [[computer science]], '''essential complexity''' is a numerical measure defined by [[Thomas J. McCabe, Sr. ]] in his highly cited, 1976 paper better known for introducing [[cyclomatic complexity]].&lt;br /&gt;
&lt;br /&gt;
== Description ==&lt;br /&gt;
&lt;br /&gt;
McCabe defined essential complexity as the cyclomatic complexity of the reduced CFG (control flow graph) after iteratively replacing (reducing) all structured programming control structures, i.e. those having a single entry point and a single exit point (for example if-then-else and while loops) with placeholder single statements.&lt;br /&gt;
&lt;br /&gt;
McCabe's reduction process is intended to simulate the conceptual replacement of control structures (and actual statements they contain) with subroutine calls, hence the requirement for the control structures to have a single entry and a single exit point. (Nowadays a process like this would fall under the umbrella term of refactoring.)&lt;br /&gt;
&lt;br /&gt;
All structured programs evidently have an essential complexity of 1 as defined by McCabe because they can all be iteratively reduced to a single call to a top-level subroutine.&lt;br /&gt;
&lt;br /&gt;
As McCabe explains in his paper, his essential complexity metric was designed to provide a measure of how far off this ideal (of being completely structured) a given program was.&lt;br /&gt;
&lt;br /&gt;
Thus greater than 1 essential complexity numbers, which can only be obtained for non-structured programs, indicate that they are further away from the structured programming ideal.&lt;br /&gt;
&lt;br /&gt;
== See also ==&lt;br /&gt;
&lt;br /&gt;
* [[Cyclomatic complexity]]&lt;br /&gt;
* [[Decision-to-decision path]]&lt;br /&gt;
* [[History of software engineering]]&lt;br /&gt;
&lt;br /&gt;
== External links ==&lt;br /&gt;
&lt;br /&gt;
* [https://en.wikipedia.org/wiki/Essential_complexity Essential complexity] @ Wikipedia&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Category:Complexity]]&lt;br /&gt;
[[Category:Computer science]]&lt;br /&gt;
[[Category:Computing]]&lt;/div&gt;</summary>
		<author><name>Karl Jones</name></author>	</entry>

	</feed>