CbyP technology constructs adequate requirements before development, minimizing overhead costs and reducing time to market by:
- Drawing a clear boundary between the system under development and the application domain.
- Using scientific method to represent the application domain in its entirety as a scientific theory with which we are able to scope, explain, predict and even control events in the application domain. This is subject to the possibility of representing the application domain or problem space completely. If this cannot be done, the project shall be cancelled at the first phase of software development lifecycle. The reason for this is not because of insufficiency of the method but the chaotic condition in the application domain.
- Requirements specification, including data, features, user interfaces, and interfaces with other systems etc, is objectively derived from requirements in the application domain. Because requirements are well scoped and their changes are anticipated, requirements specification accommodates all the variations of the application domain.
- Analysis proceeds to create domain model.
General concepts of CbyP:
Fundamental insight into the generic nature of the design process is offered by Alexander, who suggests that ‘the ultimate object of design is form’. Alexander notes that
“…Every design problem begins with an effort to achieve fitness between two entities: the form in question and its context. The form is the solution to the problem; the context defines the problem. In other words, when we speak of design, the real object of discussion is not the form alone, but the ensemble comprising the form and its context. Good fit is a property of this ensemble which relates to some particular division of the ensemble into form and context.”
The context of design relates to requirements. The design process determines the design’s objectives in terms of specific requirements, which will be called functional requirements. Then, to satisfy these functional requirements, a physical embodiment characterized in terms of design parameters must be created. Design is defined as the mapping process from the functional space to the physical solution space.
Herbert Simon suggests that every problem solving effort begins with the creation of a representation of the problem to define the space in which the solution can take place. Simon advocates the use of abstraction to obtain a successful problem representation: “…focus of attention is the key to success – focusing on particular features of a situation that are relevant to the problem, then building a problem space containing these features, but omitting the irrelevant ones.” Simon further suggests: “solving the problem simply means representing it as to make the solution transparent.”
All the above indicates that the quality of design solution depends on how well we are able to represent the problem. Because the context of software is invisible and complex that tacit knowledge is impossible to represent it precisely and economically.
The significance of CbyP is the use of scientific knowledge to represent problem space. Scientific knowledge is basically a system for description and explanation. Scientific knowledge provides:
- A method of organizing and categorizing “things;”
- Predictions of future events;
- Explanations of past events;
- A sense of understanding about what causes events
- The potential for control of events.
It is through scientific knowledge that we are able to define adequate requirements. Scientific method, that is well developed and applied in diverse fields, contains steps that ordinary skills in the field can follow with certainty. The significance of CbyP is that it decorates scientific method so that it can be used systematically in the field of software development.
|