The Guide to the Software Engineering Body of Knowledge SWEBOK
Chapters Introduction Software Requirements Software Design Software Construction Software Testing Software Maintenance Software Configuration Management Software Engineering Management Software Engineering Process Software Engineering Tools and Methods Software Quality
Introduction Software Engineering is an emerging discipline Degrees offered in SE CSAB and ABET accreditation Canadian IPS accreditation SEI and ISO standards are used to assess organizations ACM and IEEE have code of ethics All of these are based on presumption that there is a body of knowledge that should be mastered by practicing software engineers
Introduction Guide developed by international team from 1993-2001 Definition: “Software Engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software; that is, the application of engineering to software.”
Characteristics of a Profession Initial professional education in a curriculum validated by society through accreditation Registration of fitness to practice via voluntary certification or mandatory licensing Specialized skill development and continuing professional education Communal support via a professional society A commitment to norms of conduct often prescribed by a code of ethics.
Objectives Promote a consistent view of software engineering Clarify the place of software engineering with respect to other disciplines Characterize the contents of the software engineering discipline Provide topical access to the body of knowledge Provide a foundation for curriculum development
Software Requirements Requirements Engineering Process Requirements Elicitation Requirements Analysis Requirements Specification Requirements Validation Requirements Management
Software Design Basic Concepts Key Issues of Software Design Structure and Architecture Software Design Quality Analysis and Evaluation Design Notations Software Design Strategies and Methods
Software Construction Four principles reduction of complexity (remove, automate, localize) anticipation of diversity (change) structuring for validation use of external standards Three styles linguistic formal visual
Software Testing Basic concepts Test levels Test techniques Test-related measures Management
Software Maintenance Basic concepts Maintenance process Key issues Techniques for maintenance
Software Configuration Management Management of SCM process Software configuration identification Software configuration control Software configuration status accounting Software configuration auditing Software release management and delivery
Software Engineering Management Organizational management policies: development, dissemination personnel: hiring, retention, training communication Process/project management negotiation of requirements, feasibility, reviews, planning Software engineering measurement size, structure, quality, resources, models
Software Engineering Process Process infrastructure Measurements Process definition Qualitative process analysis Process implementation and change
Software Engineering Tools and Methods Software development environments Software development methods heuristic methods formal methods prototyping methods miscellaneous methods
Software Quality Software quality concepts Purpose and planning of software quality assurance and V&V Activities and techniques SQA V&V Measurement applied to SQA and V&V
CSDP Certified Software Development Professional Certification for Software Engineers (Not a license) Maintained by IEEE
CSDP Requirements BS or equivalent University degree Minimum 9,000 hours software engineering experience in 6 of 11 areas At least two (2) years of software engineering experience within the four-year (4) period prior to the application Exam
CSDP Exam Areas I. Business Practices and Engineering Economics (3-4% questions) A. Engineering Economics B. Ethics C. Professional Practice D. Standards
CSDP Exam Areas II. Software Requirements (13-15% questions) A. Requirements Engineering Process B. Requirements Elicitation C. Requirements Analysis D. Software Requirements Specification E. Requirements Validation F. Requirements Management
CSDP Exam Areas III. Software Design (22-24% questions) A. Software Design Concepts B. Software Architecture C. Software Design Quality Analysis and Evaluation D. Software Design Notations and Documentation E. Software Design Strategies and Methods F. Human Factors in Software Design G. Software and System Safety
CSDP Exam Areas IV. Software Construction (10-12% questions) A. Construction planning B. Code design C. Data design and management D. Error processing E. Source code organization F. Code documentation G. Construction QA H. System integration and deployment I. Code tuning J. Construction tools
CSDP Exam Areas V. Software Testing (15-17% questions) A. Types of Tests B. Test Levels C. Testing Strategies D. Test Design E. Test Coverage of Code F. Test Coverage of Specifications G. Test Execution H. Test Documentation I. Test Management
CSDP Exam Areas VI. Software Maintenance (3-5% questions) A. Software Maintainability B. Software Maintenance Process C. Software Maintenance Measurement D. Software Maintenance Planning E. Software Maintenance Management F. Software Maintenance Documentation
CSDP Exam Areas VII. Software Configuration Management (3-4% questions) A. Management of 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
CSDP Exam Areas VIII. Software Engineering Management (10-12% questions) A. Measurement B. Organizational Management and Coordination C. Initiation and Scope Definition D. Planning E. Software Acquisition F. Enactment G. Risk Management H. Review and Evaluation I. Project Close Out J. Post-closure Activities
CSDP Exam Areas IX. Software Engineering Process (2-4% questions) A. Process Infrastructure B. Process Measurement C. Process Definition D. Qualitative Process Analysis E. Process Implementation and Change
CSDP Exam Areas X. Software Engineering Tools and Methods (2-4% questions) A. Management Tools and Methods B. Development Tools and Methods C. Maintenance Tools and Methods D. Support Tools and Methods
CSDP Exam Areas XI. Software Quality (6-8% questions) A. Software Quality Concepts B. Planning for SQA and V&V C. Methods for SQA and V&V D. Measurement Applied to SQA and V&V