next up previous
Next: . Up: The Software Dragons (ErrorLog:Documentation:Introduction). Previous: .

The third outcome

The software can be described from different points of view. The best procedure for our tasks is to consider software as a result of the human's activity. To simplify our model we'll speak only about the mental activity. We won't investigate such things as the speed of typing or the number of errors by drawing a diagram.

In other words our primary subject is the process in the human's head. There are many models describing it too. Let's make or model maximal simple and maximal applicable to solve real problems. We get out all activities that can be made by a computer and all human's activities that aren't bound with the information. The rest is the human's ability to make decisions.

There is a principal difference between solution and decision. The solution can be found, if a person has a task to solve, all information needed and a method to apply. In case of decision a human may or may not have enough information, appropriate method and even the task itself. He can have even an information conflict, where facts he knows demand quite different decisions. To find a solution one can use formal or empirical methods. To make a decision a human or a group of people must use a mixture of knowledge, experience and intuition.

We won't consider the chemistry of the process of the decision here. Let's use the following simple black box model:

  1. A human or a group of people gets information to make a decision.

  2. Different factors are applied to this person or group when he or it is making a decision. These factors can be random or systematic, measurable or hidden, informational, psychological, social etc. For us is important only the existence of them and the fact that we cannot take into account all the factors influenced the decision.

  3. The decision is made and applied to the software. In other words the person or the group decides to do something or not to do something with the software product and/or the process of software development.

We consider a simplified model. In our model the software is the result of all decisions about software.6 The word ``decision'' will be used below in meaning of the result of a decision, not of the process of making it.

In general the decisions about software are hierarchical and sequential. The first and main decision is the decision to start a software project. All other decisions are depended from it. In a real project some decisions are independent, some can be made simultaneously. We haven't any method to prove such facts. To simplify our model we don't consider this problem now.

For instance in our model the decision to code an operator in a function can be made only after one have decided which function must be coded and which programming language must be used. The decision to code a class member function can be made only as a result of the decision to make this class. The decision to use a class in one module cannot be made without the decision to make this module, etc.



Subsections
next up previous
Next: . Up: The Software Dragons (ErrorLog:Documentation:Introduction). Previous: .
2002-03-18