'''Addressing the question of "What is an ImpedanceMismatch?" ...and its use in the ImpedanceMismatchMetaphor:''' It's a metaphor, based on ElectricalImpedanceMismatch. ---- So, the original definition, of an ElectricalImpedanceMismatch, led to the ImpedanceMismatchMetaphor, used in... * BusinessImpedanceMismatch describes the occurrence where the ability to change a corporation is misaligned with the ability to change software systems, or vice versa. * DatabaseImpedanceMismatch = incompatibility between the design of database(s) and application host language(s). Database processing is based on set operations -- a concept not generally supported in host languages. * RelationalHostLanguageImpedanceMismatch = general incompatibility with host languages (not limited to OO) -- such as the fact the NULL values are not supported in most host languages. * TrueRelationalToPseudoRelationalImpedanceMismatch: The impedance caused by the SqlFlaws. There are many differences between what can be done in SQL and what should actually be possible in relational algebra. A better relational language (like TutorialDee) could eliminate this impedance. The big question here is, how much of the ObjectRelationalImpedanceMismatch is in fact caused by the impedance between SQL and a true relational language (or pure relational algebra). ----- '''''Other development-related "Impedance Mismatches:"''''' * http://osm7.cs.byu.edu/ER97/workshop4/sw.html = "The Impedance Mismatch Between Conceptual Models and Implementation Environments" by Scott N. Woodfield, Computer Science Department, Brigham Young University Between development languages: * With multi-dimensional arrays, like A(X,Y,Z) -- In FORTRAN, the "X" dimension changes most rapidly, as you "scan through physical memory, but in most other languages "Z" changes most rapidly. So, when doing cross-language in-memory data passing (such as between C and FORTRAN), programs of one language must declare and use array arguments in the opposite order of programs in the other language. * Calling conventions: In "C", the caller pops arguments from the stack after a return, but in other languages (like Pascal), the subroutine unwinds the arguments from stack on return. ----- '''On BusinessImpedanceMismatch:''' A BusinessSystemsAnalyst is usually concerned that a system design can be changed (after production implementation) easily enough to match how he foresees business conditions changing. ---- SerializationImpedenceMismatch: when the serialization formats of two processes don't match, usually due to a version incomparability. ---- A good design pattern to discuss on the Wiki might be AvoidingImpedanceMismatch during the design and development process.