Unit 1: Introduction to Software Engineering
Software Engineering (4353202)
1.1: Introduction to Software & Application Domains
What is Software?
Software is a collection of computer programs, procedures, and documentation that performs tasks on a computer system.
Key Components: Programs + Documentation + Procedures
Software Characteristics
- Intangible: Cannot be touched, only experienced.
- Developed: It is engineered, not manufactured in the classical sense.
- Maintainable: Can be modified and updated.
- Reliable: Should work consistently.
- Efficient: Uses resources optimally.
Software Application Domains
| Domain | Description |
|---|---|
| System Software | Operating systems, device drivers |
| Application Software | Word processors, games, business apps |
| Engineering/Scientific Software | CAD, simulation tools |
| Embedded Software | Real-time control systems |
| Web Applications | Browser-based applications |
| AI Software | Machine learning, expert systems |
1.2: Software Engineering - A Layered Approach
Software engineering is a layered technology. The layers are the foundation for software engineering.
1.3: Programs vs. Software Products
A **program** is a set of instructions. A **software product** is a licensed and packaged program or set of programs for sale.
| Aspect | Program | Software Product |
|---|---|---|
| Scope | Single, specific task | Collection of integrated features |
| Documentation | Minimal or none | Extensive user and system docs |
| Lifecycle | Short, often for personal use | Long, involves maintenance and updates |
1.4: Software Process & Engineering Methods
Software Process
A software process is a set of related activities that leads to the production of a software product.
Software Engineering Methods
Provide the technical "how-to's" for building software. Methods encompass a broad array of tasks that include communication, requirements analysis, design modeling, program construction, testing, and support.
1.5: Generic Framework & Umbrella Activities
Generic Process Framework
A process framework establishes the foundation for a complete software engineering process by identifying a small number of framework activities that are applicable to all software projects, regardless of their size or complexity.
Umbrella Activities
Umbrella activities are a set of activities that are applied throughout the software process.
- Software project tracking and control
- Risk management
- Software quality assurance
- Technical reviews
- Software configuration management

