Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Software Engineering Terminology - What does "Inconsistency" and "Incompleteness" really mean [closed]

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.

like image 989
Julian Avatar asked Jan 24 '10 00:01

Julian


People also ask

What do you mean by inconsistency and incompleteness in an SRS document?

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 !

What is inconsistency in requirement?

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).


2 Answers

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:

  • of code what makes it not well-formed or syntactically complete, so not compilable, interpretable, executable
  • of implementation - an algorithm can be incomplete, not handling possible cases properly
  • of functionality - a software does not include all features ordered by a client or planned in a team

Inconsistency

  • of conventions and coding style
  • of design on implementation - interface of functions, classes and algorithms designed in inconsistent way (i.e. sort for vector expects vector to be passed, sort for list accepts two iterators)
  • of design of user interface in terms of interactions - on one dialog user is supposed to hit ENTER to accept but on another dialog OK button is displayed for this action
  • of look and feel of graphical user interface - various windows have completely different look; or command line interface - one option is given as -v value but another one as --v=value
  • of licensing - imagine Visual Studio product is licensed on BSD, but .NET Framework on GPL :-)
like image 96
mloskot Avatar answered Oct 23 '22 13:10

mloskot


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".

like image 35
Matt Bishop Avatar answered Oct 23 '22 13:10

Matt Bishop