Sunday, November 30, 2008

A program is as a car, can I think first to what car could be according to program features ? (FR, NFR)

It happens often that working on a piece of code, its design has to be resilient to stress, fast, flexible to react to changes, able to change the environment where it lives. What else ? Need to resist in time for its lifecicle. Well, enumerating these way the needs for a program it seems to be speaking about an iron made structure fully physical, 3D, with its own materials, like a car. It must be fast, resilient, resistent, enduring, reactive to stress and strain being elastic and so able to return to its previous shape without permament modifications or fractures. They seem the same, isn't it ?

Is it possible, this is my question, to use the inverse procedure, so starting from the model of thinking a software architecture to proceed then starting to think to design ? Choosing a model prototype more suitable to the features the design will have to have, first then starting the design itself can actually help the design phase ?

Can be:

NON functional requirements --> real world physical structure satisfying the requirements (like prototype) --> design ?

This could be applied I suppose just to very high level non functional requirements that state HOW the system should behave and at the same time, they are responsible for deciding actually the architecture design.

Design first, design archetype first ?