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
- Identification: Identify potential risks.
- Assessment: Evaluate likelihood and impact.
- Mitigation: Develop strategies to minimize impact.
- Monitoring: Continuously monitor for new risks.
- Response: Implement predefined responses to address risks.
Risk Projection
Forecasting the potential impact of identified risks on a project or system.
Types of Risks
- Financial Risk: Possibility of financial loss.
- Operational Risk: Risks from internal processes, people, and systems.
- Strategic Risk: Factors affecting objectives due to changes in the business environment.
- Compliance Risk: Potential for penalties due to non-compliance.
- 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.
- Levels: Five maturity levels representing process maturity.
- Process Areas: Critical areas for organizational success.
- Appraisal Method: Assessing process maturity and capability.
- Continuous Improvement: Continually refining and optimizing processes.
- Integration: Integrating different process improvement models.
PDCA Cycle
A four-step management method for continuous improvement.
- Plan: Identify objectives and develop plans.
- Do: Implement the plan and collect data.
- Check: Evaluate outcomes and identify deviations.
- Act: Take corrective actions and improve processes.
McCall’s Quality Factors
Software quality attributes for evaluating software systems.
- Product Revision: Ability to undergo modifications.
- Product Transition: Ease of migration between environments.
- Product Operation: Performance and efficiency during operation.
- Product Adaptability: Flexibility in adapting to different environments.
Verification and Validation
Essential processes in quality management.
- Verification: Ensuring the product is built correctly.
- Validation: Ensuring the product meets user needs.
Inspection Process
Examining products or processes to ensure they meet requirements.
- Preparation: Establish criteria and standards.
- Execution: Conduct the inspection.
- Identification of Defects: Identify and document defects.
- Documentation: Record all inspection findings.
- Decision Making: Accept or reject the product/process.
- Feedback and Improvement: Implement improvements.
Principles of Software Testing
- Testing Shows Presence of Defects
- Exhaustive Testing is Impossible
- Early Testing
- Defect Clustering
- Pesticide Paradox
- Testing is Context Dependent
- Absence-of-Errors Fallacy
Software Quality Assurance (SQA)
A systematic approach to ensuring software quality.
- Quality Planning
- Quality Control
- Quality Improvement
- Quality Management
- Standards and Procedures
Prototype Model
Waterfall Model: Advantages and Disadvantages
Advantages
- Simple and easy to understand.
- Well-defined stages.
- Easy to manage.
Disadvantages
- Lack of flexibility.
- Limited user involvement.
- 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
- Initial: Unpredictable and poorly controlled processes.
- Managed: Basic project management processes established.
- Defined: Processes are documented and standardized.
- Quantitatively Managed: Process performance is controlled quantitatively.
- Optimizing: Continuous process improvement is ingrained.
Project Scheduling Process
Determining start and end dates for project activities and allocating resources.