Software Engineering Classifications

From Citizendium
Revision as of 02:16, 29 September 2008 by imported>Stéphane Richard
Jump to navigation Jump to search

Template:TOC-right Software engineering today has grown into a huge pool of knowledge. Knowledge that is manifested as disciplines, fields of applications, different software engineering methodologies and so on. Today, it's more of a challenge the explain what Software Engineering is completely than it is to use it per se. This knowledge base is an effort to bring together, under one hood, everything that can be considered software engineering material. To do so, many different types of knowledge related material will be created and made available through this knowledge base.

After researching the internet for a little while (which brought me to creating this knowledge base) it became clear to me that some already existing standard classification existed. Since they are present and used in many places already I decided I would support them here. This means that when subject matter is added here I will then figure out where it goes in these classification systems and give them references so you know where it belongs. Here are the supported classification systems.


The Software Engineering 2004 (SE2004) Classification

The Software Engineering 2004 Classification (SE2004) is a classification created by the IEEE Computer Society and the Association for Computing Machinery (ACM) that presents what the software engineer courses should cover. These are not necessarily followed by all teaching institutions as institutions are at liberty to include different aspects of software engineering subjects to their curriculum. The SE2004 effort is there to give universities the complete list of subject matter that is considered as good knowledge to have for a software engineering undergraduate program. Depending on the program schedule institutions may or may not include all that is specified in the SE2004 but are very likely to have subjects that are in the SE2004 classification.

External Links:

Software Engineering Body Of Knowledge (SWEBOK) Classification

The SWEBOK Classification System was created again by the IEEE Computer Society with the collaborate of many organizations. It is an effort to give a structure, a taxonomy if you will, the everything that is the body of Software Engineering knowledge. The main purpose is to help organize and recognize software engineering as a engineering field in itself. It's worth noting that everything that makes it into the SWEBOK hierarchy is the result of a acceptance effort (a vote if you will) and as such some software engineering philosophies and practices may not make it in this reference.

External Links:

The A.C.M. Classification System

The ACM Classification System is probably the oldest of the classification system and was created by the Association for Computing Machinery. This hierarchy attempts to classify everything about computers not just software engineering (which you can find in the D. section of the main hierarchy). I believe it to be one of the best places to start searching for any computing related needs and as such I have included it here as part of the support software engineering classification systems.

External Links:


In Conclusion

And there you have it, these four classification systems are at the basis of the Software Engineering knowledge Base project. Depending on where you're coming from, you might prefer to use one over the other of the classifications available here. The choice is entirely up to you. Undergraduates might want to follow the Software Engineering 2004 approach to the knowledge base since it has been created especially for them. Software engineers may use any of the other classification systems available.

The Knowledge Base is always looking for the best way to present it's contents. If you happen to know of a classification system not listed here and you know it's a rather widespread method, by all means contact me so I can begin the work of integrating this classification system to the knowledge so everyone can benefit from it's advantages and features.