Software Engineering - AKTU Notes
Introduction to Software Engineering
Software Engineering is the systematic, disciplined, and quantifiable approach to the development, operation,
and maintenance of software. It applies engineering principles to software creation to ensure that the final
product is reliable, maintainable, and meets user requirements.
Software Components
Software components are modular parts of a system:
- User Interface (UI)
- Business Logic
- Data Access Layer
- Database
Promotes reusability, scalability, and easier maintenance.
Software Characteristics
- Intangibility
- Flexibility
- Complexity
- Maintenance
- No Wear and Tear
Software Crisis
Refers to problems like over-budget projects, poor quality, maintenance difficulties. Software Engineering
emerged to solve this crisis.
Software Engineering Processes
Structured tasks:
- Requirement Analysis
- Design
- Implementation
- Testing
- Deployment
- Maintenance
Similarity and Differences from Conventional Engineering Processes
Similarity: Both follow systematic processes.
Differences:
- Product Nature: Intangible vs. Tangible
- Changes: Frequent vs. Costly
- Wear and Tear: None vs. Physical
- Measurement: LOC vs. Length/Weight
- Tools: IDEs vs. Machinery
Software Quality Attributes
- Correctness
- Reliability
- Efficiency
- Integrity
- Usability
- Maintainability
- Portability
SDLC Models
Waterfall Model: Linear, simple but rigid.
Prototype Model: Builds early prototype, clarifies requirements.
Spiral Model: Combines iteration and risk analysis.
Evolutionary Models: Delivers in increments, like Agile.
Iterative Enhancement: Adds features step by step, flexible but needs control.