Thanks to visit codestin.com
Credit goes to www.scribd.com

0% found this document useful (0 votes)
7 views5 pages

Software Engineering Note

Uploaded by

infonaimul40
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views5 pages

Software Engineering Note

Uploaded by

infonaimul40
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 5

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: Focuses on practical development, design, maintenance, and


management of software systems.
●​ Computer Science: Focuses on theoretical foundations of computation, algorithms, and
hardware/software principles.

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: Custom-built for one client.


●​ Generic software: Developed for general use, sold to many customers.

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?​


(Same as previous sets – improves quality, efficiency, cost-effectiveness, and customer satisfaction)

10. Difference between product specification and product development:

●​ Product specification: Describes what the software should do (requirements).


●​ Product development: The actual process of designing, coding, and building the software
system.

You might also like