0% found this document useful (0 votes)
22 views

Detailed Notes Software Engineering

Uploaded by

Ahetisam Malek
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views

Detailed Notes Software Engineering

Uploaded by

Ahetisam Malek
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 3

Detailed Notes: Software Engineering Important Topics

Software Process Models

1. Incremental Model: Develops software in increments with each providing functionality.

Advantages: Manages risk effectively, delivers partial systems quickly.

Disadvantages: Needs well-defined architecture early on.

2. Spiral Model: Combines iterative nature with risk analysis.

Advantages: Strong risk management focus.

Disadvantages: Can be complex and costly.

3. Agile Model: Emphasizes flexibility, collaboration, and customer feedback.

Advantages: Quick iterations, responsive to change.

Disadvantages: Requires constant communication.

Requirement Engineering

1. Tasks:

- Requirement elicitation: Gathering user needs.

- Requirement analysis: Evaluating needs for feasibility.

- Documentation: Creating Software Requirement Specification (SRS).

- Validation: Ensuring requirements meet user needs.

2. SRS Example:

Functional: 'System shall allow user login.'

Non-functional: 'System shall respond in under 2 seconds.'

Design Principles

1. Modularity: Divide the system into manageable modules.


2. Coupling: Minimize interdependence between modules.

3. Cohesion: Ensure a single, well-defined purpose for each module.

4. Architectural Design: High-level structure organizing software components.

Software Testing

1. Black Box Testing: Focuses on inputs and outputs without knowing internal logic.

2. White Box Testing: Tests internal structures using code knowledge.

3. Boundary Value Analysis: Tests edge cases.

4. Equivalence Partitioning: Divides input into valid/invalid regions for testing.

DevOps

1. Importance: Bridges gaps between development and operations teams.

2. Lifecycle:

- Plan, Develop, Build, Test, Release, Deploy, Operate, Monitor.

3. Benefits: Faster delivery, improved collaboration, and automation.

4. Challenges: Cultural shifts, tool integration, and training requirements.

Software Quality Assurance (SQA)

1. Six Sigma: Process improvement methodology to enhance quality.

2. Capability Maturity Model (CMM):

- Levels: Initial, Managed, Defined, Quantitatively Managed, Optimizing.

3. Metrics: Defects per KLOC (thousand lines of code), customer satisfaction index.

Software Maintenance and Reengineering

1. Types of Maintenance:

- Corrective: Fixing bugs.

- Adaptive: Updating for environment changes.

- Perfective: Enhancing performance.

- Preventive: Preparing for future issues.


2. Reengineering:

- Reverse engineering: Understanding existing code.

- Forward engineering: Enhancing functionality.

Project Management

1. Scheduling Techniques:

- Gantt Chart: Visual timeline for tasks.

- Critical Path Method (CPM): Identifies task sequences.

2. Risk Management:

- Identification, Analysis, Mitigation.

3. Resource Allocation: Efficient utilization of human and technical resources.

You might also like