Tuesday, January 17, 2012

To Design Software, or to Design Software? The Comparison of Two Common Software Engineering Processes

Last week in my Software Systems Analysis class, we looked at two different perspectives on the Software Engineering process:  one proposed by our Satzinger textbook and one outlined in SWEBOK, the Software Engineering Body of Knowledge.  Below I have matched up the functional areas that I think are related with Satzinger being in red and SWEBOK being in blue.


Functional Areas that Line Up:

  1. Satzinger's first step is to "Identify the problem or need and obtain approval."  I believe this loosely maps to SWEBOK's "Software Engineering Process" phase, which covers "the definition, implementation, assessment, measurement, management, change, and improvement of the software engineering process itself."
  2. The next step in Satzinger's process is to "Plan and monitor the project", which I think binds closely to SWEBOK's "Software Engineering Management" that "addresses the management and measurement of the software engineering."
  3. The next step is to "Discover and understand the details of the problem or need."  SWEBOK's "Software Requirement" maps nicely to this section. 
  4. Satzinger has next to "Design the system components that solve the problem or satisfy the need," which can map to "Software Design" in SWEBOK.
  5. The next step is to "Build, test, and integrate system components."  This lines up with SWEBOK's "Software Construction" phase.
  6. The final phase that lines up between the two is to "Complete system tests and then deploy the solution."  This lines up with "Software Testing" in SWEBOK.

While these are very loose comparisons, there are some aspects of SWEBOK that are not covered by Satzinger or perhaps Satzinger combines them into other functional areas.  For example, SWEBOK details a section on "Software Maintenance."  This section covers what happens to the product after it has gone into production.  Another example is "Software Configuration Management."  This section defines each configuration change so that it can be traced throughout the lifetime of the product.  A third example is "Software Engineering Tools and Methods."  Satzinger does not really have a specific section on the tools and methods used but discussing both through out all his sections.  Finally, "Software Quality" is the last section not fully discussed in Satzinger's version, but just life with the tools and methods section, this too is discussed throughout each section of his process.


While this is a quick and dirty comparison, you should really review all methodologies before starting a project to verify that it will work in your environment with your team.



No comments:

Post a Comment