Software Engineering Unit-1 (Full Detailed Notes
for Exams)
1. The Nature of Software
Software is a collection of computer programs, procedures, rules, and associated documentation
that perform specific tasks. Unlike hardware, software is intangible and exists in digital form.
Key Characteristics:
1. Software is developed or engineered, not manufactured. Cost is mainly in development.
2. Software does not wear out, but it deteriorates due to changes and maintenance.
3. Most software is custom-built rather than assembled from existing components.
4. Software is highly complex due to logical structure.
5. Software evolves continuously with changing requirements.
Types of Software:
• System Software – Operating systems, compilers.
• Application Software – End-user programs.
• Embedded Software – Built into hardware systems.
• Web Applications – Internet-based software.
• AI Software – Intelligent systems.
2. Need of Software Engineering
Software Engineering is needed to manage complexity and ensure systematic development.
Reasons:
• Large size of modern software systems
• Requirement changes frequently
• Need for high reliability and security
• Cost and time constraints
Advantages:
• Improves quality
• Reduces cost
• Increases maintainability
• Ensures timely delivery
• Provides better project management
3. Prescriptive Process Model
A prescriptive process defines a framework for software development.
Framework Activities:
1. Communication – Gathering requirements from stakeholders.
2. Planning – Estimation of time, cost, and resources.
3. Modeling – Analysis and design of the system.
4. Construction – Coding and testing.
5. Deployment – Delivery and feedback.
Umbrella Activities:
• Risk management
• Quality assurance
• Configuration management
4. Process Models
Process models define how software is developed step-by-step.
Waterfall Model
Linear model where each phase is completed before the next begins.
Phases: Requirements → Design → Implementation → Testing → Maintenance.
Advantages: Simple, easy to understand.
Disadvantages: Not flexible.
Incremental Model
Software is developed in small parts (increments).
Advantages: Early delivery, flexible.
Disadvantages: Requires good planning.
Spiral Model
Combines iterative development with risk analysis.
Each cycle includes planning, risk analysis, engineering, evaluation.
Best for large, complex projects.
Agile Model
Focuses on iterative development and customer feedback.
Features: Flexibility, continuous delivery, teamwork.
5. Specialized Process Models
Component-Based Development (CBD): Uses reusable components to build software.
Formal Methods Model: Uses mathematical models for high reliability.
Aspect-Oriented Software Development: Separates cross-cutting concerns like logging and
security.
6. The Unified Process
Unified Process (UP) is iterative and incremental.
Phases:
1. Inception – Define scope and feasibility.
2. Elaboration – System architecture and planning.
3. Construction – Coding and development.
4. Transition – Delivery to users.
Features:
• Use-case driven
• Architecture-centric
• Iterative development
Important Exam Points
• Difference between software and hardware
• Advantages of Software Engineering
• Explain Waterfall vs Agile
• Phases of Unified Process
• Characteristics of software