Wednesday, January 18, 2012

SWEBOK vs. Core Processes of the SDLC

Below are two different methods that outline the process for building software applications.


Method 1:  Core Processes of the SDLC
  1. Identify the problem or need and obtain approval to proceed
  2. Plan and monitor the project--what to do, how to do it, and who does it
  3. Discover and understand the details of the problem or the need
  4. Design the system components that solve the problem or satisfy the need
  5. Build, test, and integrate system components
  6. Complete system tests and then deploy the solution
Method 2:  SWEBOK Knowledge Areas

  1. Requirements
  2. Design
  3. Construction
  4. Testing
  5. Maintenance
  6. Configuration Management
  7. Engineering Management
  8. Engineering Process
  9. Engineering Tools & Methods
  10. Quality

The six core processes tend to focus on a lot of effort on the pre-processes such as Identifying, Planning, and Discovery.  These steps are seen later in the SWEBOK KA's.  SWEBOK goes right into Requirements as the first step whereas the core processes don't get to this until the 3rd step.  Many would argue that these pre-processes are the most critical of steps as it allows you to create a scope around your project and really define what you are wanting to accomplish with the project.  It also defines the Who, the What, and the How of the project...all very critical components.  What good are the best requirements if you haven't really done the pre-work.

The Knowledge Areas are further broken down into sub areas.  For instance with Requirements you actually have 7 subareas:

  1. Requirements fundamentals
  2. Requirements process
  3. Requirements elicitation
  4. Requirements analysis
  5. Requirements specification
  6. Requirements validation
  7. Practical considerations
So really we have a very granular Knowledge Area that really breaks up requirements into all of these different sub areas.  With the six core processes we merely have one step (3) of gathering requirements and there is no significant detail around creating those requirements. 

Another thing to note about the KA's is that they are broken up into two separate groups.  The first five KA's represent something similar to a standard waterfall methodology (though that is not implied).  The last 5 (with the exception of Quality) are not really present when talking about the six core processes.  These 4 KAs are:

  1. Configuration Management - the discipline of identifying the configuration of software at distinct points in time.  
  2. Engineering Management - deals with the management and measurement of software engineering.  also deals with much of the pre-work of a project such as planning, scope, initiation, etc.
  3. Process Management - managing the process itself through implementation, assessment, measurement, change, etc.
  4. Tools and Methods - the tools involved as they relate to the other KA's
Both of the methods above have their similarities and differences.  I am probably more familiar with the 6 core processes than I am with the SWEBOK KA's.  When utilized they will both help to manage the project of building application software, though like with any type of project they will not magically solve all of your problems.

No comments:

Post a Comment