In terms of designing software what does "Inconsistency" and "Incompleteness" really mean?
E.g. - Creating Specifications
Usage of Formal Methods of Software Engineering are said to be less "inconsistent" and "incomplete" than other less formal methods such as Object Orientated Design when creating specifications.
The full definitions depend on the exact context, but inconsistency normally means something like "for some X, you can prove both X and ! X", and incompleteness means something like "for some X, you can't prove X and you can't prove !
Intuitively, argumentation is a tool for reasoning with inconsistent knowledge: requirements are defined in terms of arguments (a conclusion with its support); then, a class of acceptable arguments is built (arguments with no counter arguments).
The question title indicates software eng. but the body specifies software design. These two terms are not equivalents.
Regarding inconsistency and incompleteness, there are many areas in which these apply. Just to name a few of them:
Incompleteness:
Inconsistency
Inconsistency and incompleteness are both originally terms from formal logic, where they are used to describe logical systems.
The full definitions depend on the exact context, but inconsistency normally means something like "for some X, you can prove both X and !X", and incompleteness means something like "for some X, you can't prove X and you can't prove !X".
So, for specifications, I'd understand "inconsistent" to mean something like "cannot be implemented, because it is self-contradictory in some way", and "incomplete" to mean "underspecified - for some inputs, the outputs are not clearly defined".
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With