Planning Software Development Based on Requirements, Use Cases, or Subsystems (Components)

Should a project plan be based on requirements, use cases, or subsystems? Not an easy question to answer. After thinking a while about it, I come to the conclusion that it is not based on one of them but based on all of them, depending on what phase the project is in.

In the inception phase, the planning can't be based yet on one of these artifacts, since we don't know yet what will be in the release. The planning can only be based on general tasks such as elicit stake holder requests, identify requirements, ... The outcome of this phase is a clear and agreed list of requirements that will be included in the release. So requirement descriptions are limited to brief descriptions, just to make sure that all stakeholders have the same understanding of the requirements.

For the elaboration phase, it will depend on what elaboration iteration you are in. In a first iteration, you typically (for the selected requirements) try to find the new use cases, identify existing use cases that are impacted, identify the non-functional requirements that need a detailed elaboration, and assess the architectural impact. In this iteration you don't yet elaborate the use cases but limit the work to finding good use-case names and describing them briefly. So this first elaboration iteration will also be planned more task oriented.

After this first elaboration iteration, you should have a good view of use cases and non-functional requirements that need elaboration. In the second elaboration iteration you make a detailed description for them and do analysis and design of them (updating analysis and design models). This is best planned based on use cases and non-functional requirements. At the end of elaboration, it should be clear what changes of existing subsystems (components) and what new subsystems are required. At this stage you are able to make a detailed construction plan, planning different construction iterations.

Planning the construction iterations is the most complex since you also need to consider a logical order of doing the changes to existing subsystems and a logical order based on subsystem dependencies (first do the lower subsystems). Therefore, construction iterations are typically planned subsystem based. However, it can be that you still leave in the dimension of use cases or non-functional requirements for cases where you want to align your construction iterations with delivering completed use cases or non-functional requirements. Note that these type of construction iterations can only be planned in parallel if no changes are required in the same subsystems (or at least changes to a particular subsystem can be isolated or synchronized).

Related posts

Comments

December 31. 2008 07:53

many of the programmer always develop the application that based on their imagination and at the end the user will suffer because they do not know how to use the system.

Busby seo test

April 7. 2009 15:21

Yes, planning is a very important stage. And if you do not give it due attention, the whole process could end badly.

Herbs

April 22. 2009 13:28


Very interesting post, but I would like to know why you can not add new positions has already been such a long time?

laptop ac adapter

June 15. 2009 23:28

Planning the most important stage in the beginning of any activity!

long distance

November 16. 2009 03:07

Thanks for the great article indeed. I am a web application developer by myself so planning is a very important part in every order I get. First of all you must plan your work till the smallest detail and only then start doing something. You must finish your order always on time because it is important to be punctual. Thanks one more time for the great entry. I will be waiting for other great articles from you in the future.

web application development

November 27. 2009 13:20

Hi, great blog! I do search engine optimization for months now. Not many are getting the way Search Engine Optimization has to be done the right way. Great backlinks are the way to go for SEO, if done correct. Getting good information about SEO is essential. Keep up the good work!

white hat seo software

November 30. 2009 02:59

Nice to see you posting on this topic, I should book mark this site. Keep up the good work.

Computer Fax

November 30. 2009 06:33

Thanks for taking the time to hash out this, I feel strongly about it and love learning more on this subject. If possible, as you gain expertise, would you mind updating your blog with more information? It is highly helpful for me.

Sonya Willers

November 30. 2009 20:13

Website optimization, website seo and Google Optimization services. Our proven track records in website optimization, website seo, Google Optimizatio...

search engine optimisation

December 1. 2009 04:14

I can testify that you are an expert at your field! I will be launching a website very soon, and your information will be very useable for me. Many thanks for all your help and wishing you all the success in your business enterprise.

boulder hiking trails

December 1. 2009 12:47

I have saved your site to my bookmarks, can anyone else tell me any other related topics that I can research for to learn more?

Article Submitter