The Artima Developer Community
Sponsored Link

Java Buzz Forum
Laws of Software Complexity

0 replies on 1 page.

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 0 replies on 1 page
Carlos Perez

Posts: 153
Nickname: ceperez
Registered: Jan, 2003

Carlos Perez is a Software Architect with over 10 years of industry experience
Laws of Software Complexity Posted: Jul 26, 2003 5:39 AM
Reply to this message Reply

This post originated from an RSS feed registered with Java Buzz by Carlos Perez.
Original Post: Laws of Software Complexity
Feed Title: .:Manageability:.
Feed URL:
Feed Description: Random thoughts on the manageability of complex software.
Latest Java Buzz Posts
Latest Java Buzz Posts by Carlos Perez
Latest Posts From .:Manageability:.


Matt Quail has blogged about a first law of software complexity. It's an analogy of the First Law of Thermodynamics, also known as the Law of Energy Conservation. The analogy Matt is that without radical changes in abstractions, a complex system will remain complex. That is complexity is conserved.

I replied in his blog about The Second Law of Thermodynamics, in that closed systems tend to maximum entropy. Entropy means maximum disorder and if you can make the inference that disorder implies complexity. Then a evolving software system without significant external contributions tends towards entropy. In otherwords, to avoid entropy you've got to be constantly adding energy, and in information terms this means organized knowledge. So you have to keep on refactoring, reducing disorganization into organization.

Keep in mind for both laws, when we talk about a closed system, we don't mean static and unchanging. There's a Zeroth Law of Thermodynamics, namely thermal equilibrium. Well I've got a Zeroth Law too for complexity. Software systems tend towards equilibrium with their environment. In otherwords, in a real world environment where change is unavoidable then a system is under constant pressure to require change.

So in summary, the Laws of Sofware Complexity are:

Laws of Software Complexity
  • Zeroth Law. Change Equilibrium - Change is Unavoidable
  • First Law. Complexity will be Conserved - Incrementally changes do not change inherent complexity
  • Second Law. Software Complexity tends to Maximum Entropy - Aggressive refactoring tends to slow down that tendency.


Read: Laws of Software Complexity

Topic: microBlog improved Previous Topic   Next Topic Topic: Only one word can describe it...

Sponsored Links


Copyright © 1996-2018 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use