Software Engineering Body of Knowledge SWEBOK Reflection
The Software Engineering Body of Knowledge guide provides a detailed categorization of the software engineering discipline. The fact that it adopts the traditional waterfall model to begin the description of the knowledge areas in software engineering makes it easy to comprehend. An important feature of the guide is that concentrates on the software engineering process as a whole, instead of describing technologies. Thereby, it gives a thorough outlook of the functional components of the software engineering process. The organization of the document into knowledge areas, sub-areas and topics improves readability and understandability; so one can begin with the knowledge area of interest and then focus on a particular aspect.
Ø Emergent properties and FSM (Functional Size Measurement) in software requirements
Ø Family pattern design, invention design, ADL (Architecture Description Language), and IDL (Interface Description Language) in software design
Ø Extreme programming, scrum and static analysis in software construction
Ø Oracle, mutation testing, fault seeding, and difference between fault and failure in software testing
Ø Different types of maintenance categories in software maintenance
Ø SCSA (Software Configuration Status Accounting) and SCSR (Software Configuration Status Reporting) in software configuration management
Ø EF (Experience Factory), orthogonal defect classification and personal software process in software engineering process
An aspect of software engineering that I would like to have seen incorporated in the guide is Knowledge Management, which is gaining importance in organizations worldwide. Although KM is almost equivalent to the Experience Factory discussed in the software engineering process knowledge area, it also comprises of the knowledge and documents which are not part of the deliverables.
Since the guide is a dynamic document, it explains the evolving software engineering standards, best practices and processes and the inter-relationships between them and equips the software engineering professional with the necessary knowledge of what to do in a specified situation.
Comments
Post a Comment