First of all I would like to consider the V life cycle, which is traditionnaly used as reference for every life cycles, under the concepts of Problem and Solutions domains.
We actually can break down the V life cycle into two main parts, i.e.
- Problem domain : it is the modelization from an external point of view of the real system under development, and also the requirements wrt the system to be developped. We find in this area three main types of activities, ie establishing system needs document by the customer, describing by IT guys the software specification from this document, describing then running validation tests, and qualification tests
- Solution domain : it is the internal view of the system under development which regroups the following formal phases : analysis, design, coding, verification testing(unit and integration testing)
The goal of the sofware specification is to provide the development team with a set of elements needed to realize in the best conditions a system which is as close as possible from the customer needs.
There are many means to reach this goal. We can envisage :
- mockups and prototypes
- free textual expression of the needs
- formal specifications with methods like the B Method
It is important to notice that the specification model pursues three goals, ie :
- a cognitive aiming, ie understanding the environment of the system under development. We then speak about establishing the Knowledge model
- a prescriptive aiming, ie undertanding interactions between the environment and the real system under development. We then speak about Requirement model also known as Interaction model
- an operational aiming, ie designing an effective system in order to fulfill customer needs as close as possible; it is known as Operational model.
Knowledge and Requirement models establishment is the goal of the specification phase.
We'll see in later blog messages a deeper definition of thoses models.