Software Engineering Principles

  1. Software Development Lifecycle Principles
    1. Requirements Engineering Principles
      1. Requirements Elicitation
        1. Stakeholder Identification
          1. Elicitation Techniques
            1. Requirements Sources
            2. Requirements Analysis
              1. Completeness
                1. Consistency
                  1. Feasibility
                    1. Verifiability
                    2. Requirements Specification
                      1. Clarity
                        1. Unambiguity
                          1. Traceability
                            1. Modifiability
                            2. Requirements Validation
                              1. Review Processes
                                1. Prototyping
                                  1. Model Validation
                                  2. Requirements Management
                                    1. Change Control
                                      1. Version Management
                                        1. Impact Analysis
                                      2. Software Testing Principles
                                        1. Fundamental Testing Principles
                                          1. Testing Shows Presence of Defects
                                            1. Exhaustive Testing is Impossible
                                              1. Early Testing
                                                1. Defect Clustering
                                                  1. Pesticide Paradox
                                                    1. Testing is Context Dependent
                                                      1. Absence of Errors Fallacy
                                                      2. Test Design Principles
                                                        1. Test Case Independence
                                                          1. Repeatability
                                                            1. Traceability to Requirements
                                                              1. Risk-Based Testing
                                                              2. Test Process Principles
                                                                1. Continuous Testing
                                                                  1. Test Automation
                                                                    1. Defect Prevention
                                                                      1. Test Documentation
                                                                    2. Software Maintenance Principles
                                                                      1. Types of Maintenance
                                                                        1. Corrective Maintenance
                                                                          1. Adaptive Maintenance
                                                                            1. Perfective Maintenance
                                                                              1. Preventive Maintenance
                                                                              2. Maintainability Factors
                                                                                1. Understandability
                                                                                  1. Modifiability
                                                                                    1. Testability
                                                                                      1. Portability
                                                                                      2. Evolution Management
                                                                                        1. Change Impact Analysis
                                                                                          1. Regression Testing
                                                                                            1. Configuration Management
                                                                                              1. Documentation Updates
                                                                                              2. Technical Debt Management
                                                                                                1. Debt Identification
                                                                                                  1. Debt Measurement
                                                                                                    1. Refactoring Strategies
                                                                                                      1. Debt Prevention