3 ms·
> What it means is that the overall structure of the system is sufficiently clear with proper separation of concerns and modular boundaries to begin implementat
by nordsieck 3y ago
> What it means is that the overall structure of the system is sufficiently clear with proper separation of concerns and modular boundaries to begin implementation. The design is "exact" at a high level but the details would be worked out iteratively. Top-down design and Bottom-up implementation.
With a complex enough problem, that doesn't work as well as you imply.
The architecture that you come up with initially gets compromised by practical considerations. Which is the reason why re-implementations (often caused by changing languages for unrelated reasons) often result in substantially smaller code sizes because the second time around, the architecture is informed by the experience of implementation.
- rramadass 3y ago> With a complex enough problem, that doesn't work as well as you imply. No, the approach of breaking down a problem into smaller manageable pieces and attacking each piece separately in the same manner is universal. This of course will be guided by one's prior knowledge, experience and techniques to manage Risk. See for example the classic; The Spiral Model of Software Development - https://en.wikipedia.org/wiki/Spiral_model https://en.wikipedia.org/wiki/Spiral_model > Which is the reason why re-implementations ... because the second time around, the architecture is informed by the experience of implementation. True; but you don't get to do a re-implementation every time. Hence one has to evolve the system architecture carefully with the the same approach mentioned above.