Software Engineering — Final Polished Answers
1. Introduction
Software engineering applies systematic, disciplined, and measurable methods to develop
software. It arose from the software crisis where projects faced delays, budget overruns, and
failures. Principles like abstraction, decomposition, and structured design are applied.
2. Nature of Software
Software is intangible and does not wear out physically, but deteriorates when frequent changes
introduce errors. It is complex, evolutionary, and depends on human creativity.
3. Types of Software
System software (OS, compilers, drivers); Application software (banking, payroll, library);
Embedded software (controllers in devices); Real-time software (air traffic control, defense);
Business software (ERP, billing, inventory).
4. Software Dependability
Dependability includes reliability (correct execution), availability (ready when needed),
safety (no harm), and security (protection from unauthorized access). It is crucial in safety-
critical and business systems.
5. Software Characteristics
Intangible, complex, team-developed, and evolutionary. Software is reusable and modifiable, and
errors may remain latent until execution.
6. Product Characteristics
A professional product includes: tested source code, documentation (requirements, design, user
manuals, test reports), and support tools (debuggers, testing frameworks).
7. Software Engineering Perspective
Software engineering is an engineering discipline that applies abstraction, modularity, and
systematic design. It balances cost, usability, performance, and maintainability.
8. Achievements & Challenges
Achievements: high-level languages, object-oriented methods, agile practices, CASE tools.
Challenges: changing requirements, cost and time overruns, managing complexity, ensuring
dependability.
9. Purpose of Software Engineering
To deliver high-quality software within cost and time limits. It manages complexity using life
cycle models, structured processes, and design principles while ensuring teamwork and
maintainability.
10. Generic View
Life cycle models (waterfall, spiral, incremental, agile) provide a framework from requirements
to maintenance. They ensure systematic and controlled development.
11. Need & Significance
Need arises from the software crisis (delays, poor quality, overruns). Software engineering
provides discipline, predictability, teamwork, and quality assurance.
12. Criticism
Software engineering may be bureaucratic, rigid, and costly for small projects. However, it is
essential for large, critical systems where risks are high.
13. Principles of Software Engineering
Principles include abstraction (focus on essentials), decomposition (divide into parts),
modularity (independent modules), reusability, maintainability, and structured programming
practices.
14. Process Development
Phases: requirements → design → implementation → testing → deployment → maintenance. Models
like waterfall, spiral, agile, and iterative define execution.
15. Project Management
Project management covers planning, scheduling, monitoring, risk management, and cost control.
The manager ensures scope, time, and quality goals are achieved.
16. Configuration Management
Configuration management controls versions and changes using baselines, change requests, and
traceability. It ensures integrity across teams. Tools: Git, SVN, Mercurial.