La entropía del software es la medida de desorden del software que refleja la complejidad de su mantenimiento. Ya que a medida que se hacen modificaciones o se agrega nuevo código este va perdiendo su estructura inicial y aumenta su entropía.

En un trabajo sobre Ingeniería de software por Ivar Jacobson y otros[1]​ describe la entropía del software como sigue:

La segunda ley de la termodinámica, en principio, afirma que el desorden de un sistema cerrado no puede reducirse, sólo puede permanecer sin cambios o aumentar. Una medida de este desorden es la entropía. Esta ley también parece plausible para los sistemas de software; Cuando un sistema es modificado, su desorden o entropía, tiende a aumentar. Esto es conocido como entropía del software.
En desarrollo de software, hay teorías similares; ver a Lehman (1985),[2]​ quien propuso una serie de leyes, de los cuales dos eran, básicamente, como sigue:
  1. Un programa de computadora que es usado se modificará
  2. Cuando un programa es modificado, su complejidad aumentará, siempre que no se trabaje activamente en contra de esto.

Andrew Hunt y David Thomas utilizan la metáfora reparando ventanas rotas de criminología para evitar la entropía del software en el desarrollo de software.[3]

El proceso de refactorización de código puede reducir gradualmente la entropía del software.

Véase también

editar

Referencias

editar
  1. Jacobson, Ivar; Christerson, Magnus; Jonsson, Patrik; Övergaard, Gunnar (1992), Object-Oriented Software Engineering: A Use Case Driven Approach, ACM Press. Addison–Wesley, pp. 69–70, ISBN 0-201-54435-0 .
  2. Lehman, M. M.; Belady, L.A. (1985), Program evolution: processes of software change, Academic Press Professional, Inc., San Diego, CA .
  3. Hunt, Andrew; Thomas, David (1999), The Pragmatic Programmer, Addison Wesley, ISBN 0-201-61622-X . – Item 4 (of 22 tips) is Don't Live with Broken Windows.

📚 Artikel Terkait di Wikipedia

JasperReports

Cyclomatic Complexity in Object Oriented Software». 7th workshop on the quantitative approaches in object-oriented software engineering (QAOOSE'2003). Archivado

Ivar Jacobson

Jacobson, Magnus Christerson, Patrik Jonsson, Gunnar Overgaard. Object-Oriented Software Engineering: A Use Case Driven Approach (ACM Press) Addison-Wesley, 1992

Mantenimiento de software

14764:2006 Software Engineering — Software Life Cycle Processes — Maintenance Software Maintenance and Re-engineering, CSE2305 Object-Oriented Software Engineering

Ingeniería de software

Ingeniería del software: un enfoque práctico. Sexta edición, pág. 67-72. Bernd Bruegge & Allen H.Dutoit. Object-Oriented Software Engineering, Prentice Hall

Ingeniería de software basada en componentes

Object-Oriented Software Construction. 2nd ed. Prentice Hall. George T. Heineman, William T. Councill (2001). Component-Based Software Engineering: Putting

Daniel Weinreb

Feinberg, D Gerson, C Lamb, An object-oriented database system to support an integrated programming environment, Data Engineering Bulletin, 1988 Charles Lamb

Bertrand Meyer

OOPSLA, TOOLS, la European Software Engineering Conference, la Australian Software Engineering Conference, Object Expo, Object World, etc., y ha impartido

Base de datos orientada a objetos

2019.  Evolution of Object-Oriented Database Systems Global Journal of Computer Science and Technology: C Software & Data Engineering Volume 16 Issue 3