Software Engineering Body of Knowledge

Software Engineering Body of Knowledge

The software engineering body of knowledge is an all-inclusive term that explains the sum of knowledge within the profession of software engineering. Since it is n not possible to put the full body of knowledge of even an emerging discipline, such as software engineering, into a single document, there is a need for a guide to the software engineering body of knowledge. This guide will seek to identify and describe that subset of the body of knowledge that is usually accepted, even though software engineers must be knowledgeable not only in software engineering, but also, of course, in other related disciplines. The SWEBOK project team established the project with five objectives:

1.  Characterize the contents of the software engineering discipline.

2.  Provide topical access to the software engineering body of knowledge.

3.  Promote a consistent view of software engineering worldwide.

4.  Clarify the place - and set the boundary - of software engineering with respect to other disciplines, such as computer science, project management, computer engineering, and mathematics.

5.  Provide a foundation for curriculum development and individual certification material.

Figure 1 is a diagram of the topology of the SWEBOK. Box 1 is another view of the definition of software engineering.

SWEBOK Taxonomy of Knowledge Areas

A Definition Different from the IEEE

SWEBOK Taxonomy of Knowledge Areas covers these knowledge areas. Capital roman numerals denote the major areas:

I.  Software Requirements

    a.  Requirements engineering process
    b.  Requirements elicitation
    c.  Requirements analysis
    d.  Requirements specification
    e.  Requirements validation
    f.  Requirements management

II.  Software Design

    a.  Software design basic concepts
    b.  Key issues in software design
    c.  Software structure and architecture
    d.  Software design quality analysis and evaluation
    e.  Software design notations
    f.  Software design strategies and methods

III.  Software Construction

    a.  Reduction in complexity
          i.  Linguistic construction methods
         ii.  Formal construction methods
        iii.  Visual construction methods

    b.  Anticipation of diversity
          i.  Linguistic construction methods
         ii.  Formal construction methods
        iii.  Visual construction methods

    c.  Structuring for validation
          i.  Linguistic construction methods
         ii.  Formal construction methods
        iii.  Visual construction methods

    d.  Use of external standards
          i.  Linguistic construction methods
         ii.  Formal construction methods
        iii.  Visual construction methods

IV.  Software Testing

    a.  Testing basic concepts and definitions
    b.  Test levels
    c.  Test techniques
    d.  Test-related measures
    e.  Managing the test process

V.  Software Maintenance

    a.  Basic concepts
    b.  Maintenance process
    c.  Key issues in software maintenance
    d.  Techniques for maintenance

VI.  Software Configuration Management

    a.  Management of the SCM process
    b.  Software configuration identification
    c.  Software configuration control
    d.  Software configuration status accounting
    e.  Software configuration auditing
    f.  Software release management and delivery

VII.  Software Engineering Management

    a.  Organizational management
    b.  Process/project management
    c.  Software engineering measurement

VIII.  Software Engineering Process

    a.  Software engineering process concepts
    b.  Process infrastructure
    c.  Process measurement
    d.  Process definition
    e.  Qualitative process analysis
    f.  Process implementation and change

IX.  Software Engineering Tools and Methods

    a.  Software tools
            i.  Software requirements tools
           ii.  Software design tools
          iii.  Software construction tools
          iv.  Software testing tools
           v.  Software maintenance tools
          vi.  Software engineering process tools
         vii.  Software quality tools
        viii.  Software configuration management tools
          ix.  Software engineering management tools
           x.  Infrastructure support tools
          xi.  Miscellaneous tools issues

    b.  Software methods
          i.  Heuristic methods
         ii.  Formal methods
        iii.  Prototyping methods
        iv.  Miscellaneous methods issues

X.  Software Quality

    a.  Software quality concepts
    b.  Definition and planning for quality
    c.  Techniques requiring two or more people
    d.  Support to other techniques
    e.  Testing special to SQA or V&V
    f.  Defect-finding techniques
    g.  Measurement in software quality analysis

This comprehensive outline of the body of knowledge required for software engineering is constantly being improved. It is important to note that this is not computer science. Computer science is related to software engineering in the same fashion that the laws of physics are related to electrical engineering. Science has as its goal the extension of our knowledge of the laws of nature. Engineering's goal is to build useful artifacts based on those laws and the constraints of the product environment.


software engineering, swebok project, computer science, electrical engineering
The contents available on this website are copyrighted by TechPlus unless otherwise indicated. All rights are reserved by TechPlus, and content may not be reproduced, published, or transferred in any form or by any means, except with the prior written permission of TechPlus.
Copyright 2018 SPMInfoBlog.
Designed by TechPlus