User talk:Kedemzm

=Mark Harmon Comments=

Thanks for asking my comments on the tree structure for Software. Here are my suggestions.

I think that in any activity like this, there are three primary issues to consider:

1. Topics not included that have gained importance and therefore need to be included

2. Topics that are included but have declined in importance

3. Topics that appear to be in the wrong place

I will therefore make my recommendations based on these three aspects. I hope that they are helpful.

I have given, where possible, verifiable evidence to support my assertions about the relative importance or otherwise of topics; this is not merely my option, but I provide some degree of impartial evidence upon which it is based (that's just "good science", right? :-)).

1. Missing topics that ought to have a home:-
There are generic approaches to software engineering that cut across all categories and which are notably missing in the software engineering category.

If one types "based software engineering" into google then one finds strong contenders that are (in alpha order)


 * agent based software engineering
 * component based software engineering
 * evidence based software engineering
 * search based software engineering

click on: http://www.google.co.uk/ http://www.google.co.uk/#hl=en&cp=26&gs_id=58&xhr=t&q=based+sowftare+engineering&pf=p&sclient=psy&source=hp&pbx=1&oq=based+sowftare+engineering&aq=f&aqi=&aql=&gs_sm=&gs_upl=&bav=on.2,or.r_gc.r_pw.&fp=bc43efb2eb28da73&biw=1251&bih=857

These do not appear to have a place in the hierarchy, yet many of them (e.g. Agent based and search based software engineering) have their own conferences and a large body of literature and so clearly deserve a place in the tree.

This raises a question as to how to include generic approaches to software engineering. The easiest way seems to me to be to have just such a category under the "software engineering" node called "generic approaches to software engineering".

2. Older topics that seem now defunct:-
The inclusion of some very old topics might denote candidates for a "clean up" operation. Maybe these should not be removed, but might be noted as "legacy" in some way.

One way to do this would be to simply retain them, but to have a separate list that indicated areas considered to be "currently active". Of course that would need updating, but this could be done at each cycle. A more interventionist approach would be to move such topics to a "history" section of the tree. Even more radical would be to delete them. If something is not done, then the tree simply grows. Maybe this is not a problem since it is a "tree of knowledge" after all. I thought I would raise this issue since some of the topics are notable by their lack of present day relevance; this may dyer use of the categories since they may lose credibility. Most notable of these is "Pretty printers". I cannot see any evidence of activity in this area in the last 10 years. Try this in Google scholar for confirmation:

http://scholar.google.co.uk/scholar?q=Pretty+printer&hl=en&btnG=Search&as_sdt=1,5&as_sdtp=on http://scholar.google.co.uk/scholar?q=Pretty+printer&hl=en&btnG=Search&as_sdt=1%2C5&as_sdtp=on

As you can see, there are no noteworthy papers for some ten years yielded up by such a search.

3. Topics that appear to be in odd subtrees:-
I cannot give evince for these claims, so I restrict myself to those that I think are truly uncontroversial and which I believe many would agree to share some sympathy.

"Software visualisation" is located under "Software/program verification and validation". It does not seem to fit here. It should be a root of a tree from "Software".

"Formal methods" is located under "Software/program verification and validation". However, formal methods can be used in other aspects of Software Engineering, such as design, specification (notably) and testing. Therefore, "Formal methods" should be a root of a tree from "Software engineering". It is a generic approach and so would fit well under my proposed new category to be locoed under "Software Engineering" and which I proposed should be called "generic approaches to software engineering" (see point 1. above).

Either "Testing and debugging" and "Software/program verification and validation" are exceptionally closely related. Either approach can be used to address problems in the other area. I recommend merging these two as a category called "verification, validation and testing" under which all topics under  "Software/program verification and validation" and under "Testing and debugging" are currently located. Or, if this is not acceptable since it would be a large category, then we should have a section called "verification and validation", under which the current "Testing and debugging" can reside as a sub tree. Certainly testing is as much a part of verification and validation as are the existing subtopics identified, such as "Statistical methods" and "Software/program reliability".