Software Engineering Concepts and Practices

Software Risks and Types

Software Risks are potential problems during software development. Types include:

Technical Risks

Issues with technology like compatibility or scalability.

Project Risks

Challenges in project management like unrealistic deadlines.

Business Risks

External factors affecting the project, like market changes.

Quality Risks

Concerns about software defects or performance.

Legal and Compliance Risks

Risks related to not meeting legal regulations.

Black Box and White Box Testing

Black Box Testing

Tests functionality without knowing internal code, focusing on inputs, outputs, and system behavior.

White Box Testing

Tests internal structure, code, and logic, focusing on code analysis for errors and optimization.

Risk Management Process

  1. Identification: Identify potential risks.
  2. Assessment: Evaluate likelihood and impact.
  3. Mitigation: Develop strategies to minimize impact.
  4. Monitoring: Continuously monitor for new risks.
  5. Response: Implement predefined responses to address risks.

Risk Projection

Forecasting the potential impact of identified risks on a project or system.

Types of Risks

  1. Financial Risk: Possibility of financial loss.
  2. Operational Risk: Risks from internal processes, people, and systems.
  3. Strategic Risk: Factors affecting objectives due to changes in the business environment.
  4. Compliance Risk: Potential for penalties due to non-compliance.
  5. Reputational Risk: Damage to an organization’s reputation.

Test Case Design

Creating instructions to verify software functionality.

Example: User Authentication

Test Scenario: Valid User Login

Inputs: Username, Password

Expected Output: Successful login

CMMI Model

A framework to improve and evaluate organizational processes.

  1. Levels: Five maturity levels representing process maturity.
  2. Process Areas: Critical areas for organizational success.
  3. Appraisal Method: Assessing process maturity and capability.
  4. Continuous Improvement: Continually refining and optimizing processes.
  5. Integration: Integrating different process improvement models.

PDCA Cycle

A four-step management method for continuous improvement.

  1. Plan: Identify objectives and develop plans.
  2. Do: Implement the plan and collect data.
  3. Check: Evaluate outcomes and identify deviations.
  4. Act: Take corrective actions and improve processes.

McCall’s Quality Factors

Software quality attributes for evaluating software systems.

  1. Product Revision: Ability to undergo modifications.
  2. Product Transition: Ease of migration between environments.
  3. Product Operation: Performance and efficiency during operation.
  4. Product Adaptability: Flexibility in adapting to different environments.

Verification and Validation

Essential processes in quality management.

  1. Verification: Ensuring the product is built correctly.
  2. Validation: Ensuring the product meets user needs.

Inspection Process

Examining products or processes to ensure they meet requirements.

  1. Preparation: Establish criteria and standards.
  2. Execution: Conduct the inspection.
  3. Identification of Defects: Identify and document defects.
  4. Documentation: Record all inspection findings.
  5. Decision Making: Accept or reject the product/process.
  6. Feedback and Improvement: Implement improvements.

Principles of Software Testing

  1. Testing Shows Presence of Defects
  2. Exhaustive Testing is Impossible
  3. Early Testing
  4. Defect Clustering
  5. Pesticide Paradox
  6. Testing is Context Dependent
  7. Absence-of-Errors Fallacy

Software Quality Assurance (SQA)

A systematic approach to ensuring software quality.

  1. Quality Planning
  2. Quality Control
  3. Quality Improvement
  4. Quality Management
  5. Standards and Procedures

Prototype Model

Prototype Model Diagram

Waterfall Model: Advantages and Disadvantages

Advantages

  1. Simple and easy to understand.
  2. Well-defined stages.
  3. Easy to manage.

Disadvantages

  1. Lack of flexibility.
  2. Limited user involvement.
  3. High risk of project failure.

Coupling in Software

The degree of interconnectedness between modules or components.

Make-or-Buy Decision

Choosing between producing a product internally or purchasing it externally.

CMMI Model Levels

  1. Initial: Unpredictable and poorly controlled processes.
  2. Managed: Basic project management processes established.
  3. Defined: Processes are documented and standardized.
  4. Quantitatively Managed: Process performance is controlled quantitatively.
  5. Optimizing: Continuous process improvement is ingrained.

Project Scheduling Process

Determining start and end dates for project activities and allocating resources.