Expected Questions and Answers: Introduction to Software Engineering
1. What is Software Engineering?
Software engineering is an engineering approach to develop software. It involves a systematic
collection of past experiences like techniques, methodologies, and guidelines.
2. Why study Software Engineering?
- To acquire skills for developing large programs.
- To break down complex problems into manageable parts.
- To write better-quality programs and increase productivity.
3. What is the Software Crisis?
The software crisis refers to issues like:
- Software failing to meet user requirements.
- Frequent crashes, high costs, and late delivery.
- Difficulty in debugging, altering, and enhancing software.
4. What are the differences between programs and software products?
- Programs: Small, developed by one person, no proper user interface or documentation.
- Software Products: Large, developed by a team, well-documented with a proper interface.
5. What is the importance of Life Cycle Models?
- Defines systematic stages like feasibility study, design, coding, testing, and maintenance.
- Ensures disciplined and systematic software development.
- Helps in tracking and managing project progress.
6. What are the common life cycle models?
- Classical Waterfall Model
- Iterative Waterfall Model
- Evolutionary Model
- Prototyping Model
- Spiral Model
7. How has software development evolved?
- Early 50s: Exploratory programming in assembly language.
- 60s: Control flow-based design with structured programming.
- 70s: Data structure-oriented design.
- Late 70s: Data flow-oriented design.
- 80s: Object-oriented design for simplicity, reuse, and robustness.
8. What is Structured Programming?
Structured programming uses constructs like sequence, selection, and iteration to make programs:
- Easier to understand and maintain.
- Less prone to errors.
9. What are the key differences between exploratory and modern software practices?
- Modern practices emphasize error prevention over error correction.
- Use of standardized techniques, documentation, and project planning.
- Periodic reviews and use of CASE tools for better management.
10. Why is proper documentation important in software engineering?
- Ensures smooth fault diagnosis and maintenance.
- Improves visibility and consistency in project management.
- Helps in understanding and collaboration among team members.