Chapter-1
1. What is a software process?
A software process is a structured set of activities required to develop a software system. It includes
specification, design, implementation, testing, and maintenance.
2. Main activities in a typical software process:
● Specification – defining requirements.
● Design and implementation – developing the software.
● Validation – checking the software meets requirements.
● Evolution – modifying software to meet changing needs.
3. Difference between plan-driven and agile process:
Plan-driven Agile
Fixed plan from the start Flexible, change anytime
Step by step, one phase after another Small cycles, repeated improvements
Decided before coding starts Can change during project
Less involvement Involved throughout
Full product at the end Small parts delivered quickly
Hard to change Easy to change
Big projects with clear needs Small/medium projects with changing needs
4. Define the waterfall model:
The Waterfall model is a sequential software development model where each phase (requirements,
design, implementation, testing, maintenance) must be completed before the next begins.
5. Advantages of incremental development:
● Early delivery of working software.
● Easier to incorporate customer feedback.
● Reduces risks by handling requirements in small increments.
● Lower cost of change compared to big-bang models.
6. Explain “prototyping”:
Prototyping is the creation of an early, simplified version of the system to understand requirements
and get user feedback before full development.
7. Main idea of the spiral model:
The Spiral model combines iterative development with risk analysis. Development proceeds in loops
(spirals), where risks are identified, prototypes may be built, and refinements made before moving
ahead.
8. Define the V-model and its purpose:
The V-model is a software development model where each development phase has a corresponding
testing phase. Its purpose is to ensure validation and verification at every stage.
9. Why is software process improvement important?
● Improves product quality.
● Reduces development cost and time.
● Enhances predictability and customer satisfaction.
● Helps organizations remain competitive.
10. What is meant by software reuse?
Software reuse is the process of using existing software components, libraries, or systems to build
new applications, reducing development time and cost.
Chapter-2
1. What is a software process?
A software process is a structured set of activities required to develop a software system. It includes
specification, design, implementation, testing, and maintenance.
2. Main categories of software process models:
● Waterfall model – sequential.
● Incremental model – builds software in small increments.
● Spiral model – risk-driven, iterative.
● Prototyping model – uses early prototypes.
● Agile models – iterative, customer-focused.
3. Difference between waterfall and incremental model:
Waterfall Model Incremental Model
Linear and step-by-step Built in small parts (increments)
Rigid, hard to change Flexible, changes are possible
Full product at the end Partial working product after each increment
Taken only at the end Continuous after each increment
High, errors found late Low, problems found early
Done after full development Done after every increment
Small projects with fixed requirements Projects with changing requirements
4. Define iterative development:
Iterative development builds software through repeated cycles (iterations), with each cycle producing
a more complete version of the system.
5. Prototype model and its use:
The Prototype model creates a working model early to clarify requirements and refine functionality
through user feedback. It reduces requirement misunderstandings.
6. Explain the V-model:
Definition: Extension of Waterfall where each development phase has a matching testing phase.
● Shape: “V” → left = development, right = testing, bottom = coding.
Phases:
● Requirement ↔ Acceptance Testing
● System Design ↔ System Testing
● Architecture Design ↔ Integration Testing
● Module Design ↔ Unit Testing
● Coding (bottom)
Advantages: Early testing, simple, reliable.
Disadvantages: Rigid, not good for changing requirements.
7. Advantages of incremental development:
● Early delivery of working software.
● Easier to incorporate customer feedback.
● Reduces risks by handling requirements in small increments.
● Lower cost of change compared to big-bang models.
8. Define agile development:
Agile development is an iterative and incremental approach that emphasizes customer collaboration,
adaptability, and delivering working software frequently.
9. What is process improvement, and why is it important?
Process improvement is the practice of analyzing and refining software processes to make them
more efficient and effective.
Importance: Improves quality, reduces cost/time, and increases reliability and customer satisfaction.
10. Explain software process activities:
● Specification – defining what the system should do.
● Design and implementation – translating requirements into software.
Validation – ensuring the system meets user needs.
● Evolution – adapting to new requirements.
Chapter-3
1. What is software engineering?
Software engineering is the systematic application of engineering principles, methods, and tools to
the development and maintenance of high-quality software systems.
2. Main categories of software products:
● Generic products: Developed for a broad market (e.g., MS Office).
● Customized (bespoke) products: Developed for a specific customer’s needs.
3. Key differences between software engineering and computer science:
Software Engineering Computer Science
Practical development and management of Theoretical foundations of computation and
software systems algorithms
Application-oriented Theory-oriented
Building reliable, maintainable software Studying computation, problem-solving methods
Requirement analysis, design, coding, testing, Designing algorithms, data structures,
maintenance mathematical models
Working software systems Knowledge, theories, and computational models
Project management, teamwork, testing, design Mathematics, logic, algorithm design
methods
4. Essential attributes of good software:
● Maintainability – easy to evolve.
● Dependability – reliable and secure.
● Efficiency – good performance and resource use.
● Usability – easy for users to operate.
5. Importance of software engineering in modern society:
● Powers critical systems (healthcare, banking, transportation).
● Improves productivity and automation.
● Enhances communication and global connectivity.
● Reduces errors and increases reliability in daily life.
6. Four fundamental activities of software engineering:
● Software specification – defining system functions.
● Software development – designing and coding.
● Software validation – ensuring correctness.
● Software evolution – modifying to meet new needs.
7. Difference between bespoke and generic software:
Bespoke Software Generic Software
Custom-built for a specific client Developed for general use
One organization/client Many users/customers
Expensive (customized) Cheaper (shared by many)
Highly tailored to needs Limited customization
Bank management system, hospital system MS Office, Photoshop
8. Main challenges in software engineering today:
● Managing complexity of large systems.
● Ensuring security and privacy.
● Keeping up with rapidly evolving technologies.
● Meeting deadlines and budget constraints.
● Handling changing requirements.
9. Why is software process improvement important?
Software Process Improvement is important because it:
● Improves quality of software
● Increases efficiency of development
● Reduces costs
● Enhances customer satisfaction
10. Difference between product specification and product development:
Product Specification Product Development
What the software should do How the software is built
Requirements and features Designing and coding
Documents, lists of features Working software
Planning stage Building stage
Managers, clients Developers, designers
Know what to build Make the software