Lably
Skip to content

Programming complexity

Attribute of a software system

  • 3 min read
  • 3 chapters

Related on Lably

Through Application software

The idea of linking software complexity to software maintainability has been explored extensively by Professor Manny Lehman, who developed his Laws of Software Evolution. He and his co-author Les Belady explored numerous software metrics that could be used to measure the state of software, eventually concluding that the only practical solution is to use deterministic complexity models.

Types

The complexity of an existing program determines the complexity of changing the program. Problem complexity can be divided into two categories:

  1. Accidental complexity relates to difficulties a programmer faces due to the software engineering tools. Selecting a better tool set or a higher-level programming language may reduce it. Accidental complexity often results from not using the domain to frame the form of the solution. Domain-driven design can help minimize accidental complexity.
  2. Essential complexity is caused by the characteristics of the problem to be solved and cannot be reduced.

Sign in to keep reading

2 more chapters are free with a Lably account.

More in Computing and communication