I was mildly concerned when I saw else where on the forum on of our experts express the opinion that software design saw not required and their prefered design method of development was to just start coding and just let the program evolve the features required.
My concern is no so much the method, everyone uses this design method at sometime (I recon) even if it is just for a test bed investigating the method to perform some operation. However the impression I got was this was the only design method this person used.
There are a lot of design methodologies out there but just jumping in there and writing the code is probably right at the bottom of my list of ways to create a comercial piece of software (and at the top of my list of writing test beds with a lifetime of < 1 month or so).
By now you probably want to know what amazing design methodology I use. Well I can't name one (I have never been good at remembering useless information), however some of the things I do are
And this is where I start. I often go back and alter bits as development continues, new requirements come to light or deficiencies of other systems are discovered and have to be programmed round,
My concern is no so much the method, everyone uses this design method at sometime (I recon) even if it is just for a test bed investigating the method to perform some operation. However the impression I got was this was the only design method this person used.
There are a lot of design methodologies out there but just jumping in there and writing the code is probably right at the bottom of my list of ways to create a comercial piece of software (and at the top of my list of writing test beds with a lifetime of < 1 month or so).
By now you probably want to know what amazing design methodology I use. Well I can't name one (I have never been good at remembering useless information), however some of the things I do are
- Decide and record how various parts of the system are going to communicate with each other taking particular note of timing and avoidance of race conditions.
- Either record the standard of the protocol to be used in communication or write a protocol document
- Record the class structure if the project uses OOP
- Decide how program data will be store
- Record the data(or table) structures used for data storeage
- Design key classes or modules in detail so they are ready to be used when I start on the main program design.
- Write out any state machines that will be used as art of the program
And this is where I start. I often go back and alter bits as development continues, new requirements come to light or deficiencies of other systems are discovered and have to be programmed round,
Comment