I’m designing a category library to characterize western equal temperament music principle ideas for the aim of composing notated music with code (I understand there are different libraries and applications for this however I wish to design my very own). The issue I’m having is that once I begin with probably the most elementary idea (PitchClass) and begin constructing upwards, I in a short time spiral uncontrolled with an excessive amount of complexity within the design. I find yourself scrapping it and beginning over.
I’m serious about a brand new strategy. Begin by writing a program (which won’t compile) that demonstrates how I wish to use the library in the long run. For instance write the pattern applications which may accompany a library first, as part of the design course of. I’m hoping that doing so would possibly assist me with lower-level design choices in order that I don’t lose myself in design complexity.
This strategy is analogous to check pushed design, however completely different in that the pattern program isn’t remoted to a single class or perform, however as a substitute demonstrates the interface of many high-level courses.
Is the top-down design methodology I’m describing right here a sound strategy? Does it have a reputation? I’m working alone, however do groups ever use an strategy like this?
This doesn’t reply the query as a result of it’s particularly about designing an internet UI and coping with browser variations.
This isn’t related as a result of it’s about back-end vs front-end specs.
This isn’t a reproduction as a result of it’s particularly about approaching an MVC stack.