Time: Max.
Marks: 100
1.A. Define Software Quality Assurance.
Software Quality Assurance (SQA) is the process of making sure that the software is good,
reliable, and meets user needs by checking and improving each step of its development.
Key Points:
It includes planning, testing, reviewing, and monitoring the software process.
SQA helps in detecting and fixing problems early.
It ensures that the final software is bug-free, efficient, and user-friendly.
1.B. Define waterfall model.
The Waterfall Model is a linear and sequential software development model where each
phase must be completed before the next one begins. It flows downwards like a waterfall,
from one phase to the next.
Requirements → 2. Design → 3. Coding → 4. Testing → 5. Deployment → 6. Maintenance
1.C. Discuss Software Requirement Specifications.
SRS is a document that clearly describes what a software system should do and how it
should work. It includes all the functional and non-functional requirements. It serves as a
blueprint and acts as a contract between the client and the developer. It guides developers,
testers, and clients.
1.D. Discuss the difference between technical and business requirement.
Business Requirement: Describes what the business needs (e.g., increase sales,
manage customer data).
Technical Requirement: Describes how the system will be built to meet those
needs (e.g., database design, programming languages, security settings).
In short:
Business = What to do
Technical = How to do it
1.E. Differentiate between the manual testing and automation testing in software
engineering.
Manual Testing
Done by a person.
Slower process.
Can have human errors.
Good for new or simple features.
No special tools needed.
Automation Testing
Done by a computer using tools.
Faster process.
More accurate, fewer errors.
Good for repeated testing.
Needs tools and programming knowledge.
1.F. Define bug in software testing.
A bug in software testing is an error, flaw, or fault in the software that causes it to behave
unexpectedly or produce incorrect results, differing from the intended or expected outcome
1.G. Discuss the best practices in software engineering.
a) Write Clear Code: Keep your code simple and easy to read.
b) Test Often: Test your software regularly to catch bugs early.
c) Use Version Control: Track code changes using tools like Git.
d) Plan Before Starting: Understand what you need to build and plan ahead.
e) Review Code: Ask others to check your code for mistakes.
f) Document Your Work: Write notes or comments so others can understand your code.
g) Keep Learning: Always improve your skills and knowledge.
1.H. Differentiate between errors, faults, and failures in software systems.
Error
A mistake made by a developer.
Happens during coding or design.
Example: Wrong formula written in code.
Fault
A defect or bug in the software.
Caused by an error in code or design.
It is present in the system but may not always cause problems.
Failure
When the software does not work as expected.
Caused by a fault being executed.
Example: App crashes or gives wrong results.
Summary:
Error → Fault → Failure
(Mistake → Bug → Problem seen by user)
2. Answer all the questions.
2.A. Discuss the SDLC steps in software engineering with an example.
Planning: Define goals, scope, resources, and schedule.
Example: A company decides to build an online bookstore and
outlines its objectives and timeline
Requirements Analysis: Gather and analyze detailed user and
system requirements.
Example: Stakeholders specify features like user registration, book
search, and payment options.
Design: Create system architecture, database, and user interface
designs.
Example: Designers draft wireframes for the bookstore’s homepage
and checkout process
Implementation (Coding): Developers write code based on
design documents.
Example: Programmers build the website’s search and shopping
cart features
Testing: Test the software for bugs and verify it meets
requirements.
Example: QA team checks if users can successfully buy books and if
payments process correctly
Deployment: Release the software to users.
Example: The bookstore website goes live for customers.
Maintenance: Fix issues, update features, and ensure smooth
operation.
Example: Developers add a wish-list feature and resolve user-
reported bugs
2.B. Explain the role of testing in identifying defects and ensuring software reliability.
Testing is an important part of software development because it helps find bugs (mistakes)
and makes sure the software works correctly.
1. Identifying Defects (Bugs):
What it does: Testing looks for mistakes or problems in the software. It checks if
everything works as expected.
How it helps: By testing different parts of the software, we can find bugs before users
do.
Example: If a button on the website doesn’t work or a payment isn’t processed
correctly, testing finds and fixes it.
2. Ensuring Software Reliability:
What it does: Testing checks if the software is stable and works well under all
conditions.
How it helps: It makes sure that the software doesn’t crash or slow down, even when
a lot of people use it at once.
Example: Testing ensures that an online store can handle many users shopping at the
same time without problems.
Why It’s Important:
Testing helps make sure the software is bug-free and works smoothly, which builds
trust with users.
2.C. Discuss the best practices in software engineering with an example.
1. Write Clear Code:
What it is: Keep your code simple and easy to understand.
Example: Use clear names for functions and variables.
2. Test Often:
What it is: Test your software regularly to catch bugs early.
Example: After writing new code, run tests to make sure it works as expected.
3. Use Version Control:
What it is: Use tools like Git to keep track of changes in your code.
Example: Save different versions of your code so you can go back to an earlier
version if needed.
4. Plan Before You Start:
What it is: Plan the project carefully before coding begins.
Example: Break the project into small tasks and set clear goals.
5. Review Code:
What it is: Ask others to check your code for errors.
Example: A teammate looks over your code to find any mistakes you might have
missed.
6. Document Your Work:
What it is: Write notes in your code to explain what it does.
Example: Add comments to explain a complex part of the code for others to
understand.
7. Keep Learning:
What it is: Always improve your skills and learn new things.
Example: Take online courses to learn new programming languages or tools.
2.D. Discuss the similarities and differences between SEI CMM and ISO-9001.
Similarities:
1. Quality Focus:
Both are aimed at improving the quality of products and services.
2. Process Improvement:
Both encourage improving processes to be more efficient and effective.
3. Documentation:
Both require organizations to document their processes to ensure consistency.
Differences:
1. Focus Area:
o SEI CMM: Focuses on improving software development processes.
o ISO-9001: A general quality standard that applies to any industry (not just
software).
2. Approach:
o SEI CMM: Uses 5 levels to measure the maturity of software processes (from
basic to advanced).
o ISO-9001: Has general guidelines for quality management, without specific
stages like CMM.
3. Industry Application:
o SEI CMM: Mainly used in software development.
o ISO-9001: Used in many industries like manufacturing, healthcare, and
services.
4. An ABC software company is developing a new application. Analyze the potential
benefits and disadvantages of using both waterfall and agile models with
examples.
1. Waterfall Model
Benefits:
1. Simple and Structured:
o Each phase (like planning, design, coding, testing) happens one after another.
o Example: Good for small projects where requirements are fixed (e.g.,
building a calculator app).
2. Clear Documentation:
o Everything is well-documented, so it’s easier to manage.
3. Easy to Manage:
o Progress is easy to track since it follows a fixed plan.
Disadvantages:
1. Not Flexible:
o Hard to go back and change something once a phase is completed.
o Example: If users want a new feature during testing, it’s difficult to add.
2. Late Testing:
o Testing happens at the end, so bugs may be found late.
3. Not Ideal for Long-Term or Complex Projects
o Can be risky if requirements are not clear from the beginning.
2. Agile Model
Benefits:
1. Flexible and Adaptive:
o Changes can be made at any time.
o Example: If users want a new feature during development, it can be added
easily.
2. Faster Delivery:
o The product is built in small parts (called sprints), so it can be delivered and
improved continuously.
3. More Customer Involvement:
o Customers give feedback regularly, which helps in building what they really
want.
Disadvantages:
1. Less Predictable:
o Hard to know the exact time and cost in advance.
2. Needs Active Teamwork:
o Requires more communication and coordination between team members and
customers.
3. Documentation May Be Lighter:
o Since focus is on working software, less time may be spent on writing detailed
documents.
6. A software company is developing a new payments application. Make Use of use-case
Diagram to design Online Banking System and explain in detail with an example.
Actors (Users of the System)
Customer: A person who uses the bank for personal services.
Cashier: A bank staff member who helps with transactions.
Bank: The organization itself.
Manager: The person who manages loans and workers.
Main Functions (Use Cases)
1. Add Account:
Customers, Cashiers, and the Bank can add new accounts.
2. Check Balance:
Customers and Cashiers can check the balance of an account.
3. Transfer:
Customers and Cashiers can transfer money between
accounts.
4. Transaction:
Includes two types:
CREDIT: Add money to an account.
DEBIT: Take money out of an account.
5. Update Balance:
Cashier can update the balance after a transaction.
6. Check Interest:
Manager can check the interest on accounts.
7. LOAN:
Customers and Cashiers can request a loan.
Manager can approve a loan.
Loans have terms (duration) and types (home, personal,
etc.).
8. Manage Workers:
Manager can manage workers, including:
Salary: Pay workers.
Promotions: Give promotions to workers.
How They Work Together (Example)
A customer can open a new account, check their balance, or
transfer money.
A cashier helps customers with transactions like deposits (CREDIT)
and withdrawals (DEBIT), and updates balances.
A manager checks interest rates, approves loans, manages worker
salaries, and promotions.
The bank oversees account creation and overall operations.
7.An XYZ software company developed a banking application, and they have been
experiencing some application issues. Hence, management decided to do reverse
engineering. Analyze the process of effective debugging contribute to overall software
quality and development efficiency.
Reverse Engineering is the process of analyzing an existing software system to
understand how it works, especially when the original design or code is not clearly
available.
It helps developers rebuild or improve the software without starting from scratch.
What is Debugging?
Debugging is the process of finding and fixing bugs (errors) in the code to make the
software work correctly.
How Effective Debugging Improves Software Quality and Efficiency:
1. Finds Root Causes of Problems
Debugging helps locate the exact point where the banking app is failing (e.g., login
error or transaction issue).
This allows developers to fix problems faster and more accurately.
2. Improves Software Quality
Fixing bugs means the software runs smoothly and securely.
This is very important for banking apps where data accuracy and safety are critical.
3. Boosts Development Efficiency
With good debugging tools, developers save time by not guessing where the problem
is.
They can fix one issue without causing new ones.
4. Supports Reverse Engineering
Debugging helps understand the old or poorly documented code during reverse
engineering.
This makes it easier to rebuild or upgrade the application.
5. Reduces Future Failures
Regular debugging helps prevent app crashes or errors during real use.
This builds trust among users and keeps the banking system reliable.
Conclusion:
By combining reverse engineering with effective debugging, XYZ Software Company can:
Understand the old app better
Fix issues quickly
Improve software quality
And create a stable and secure banking application
10.An XYZ software company developed a retail application and they have been
experiencing some applicaton issues. Hence, management decided to do reverse
engineering. Analyze the software quality practices such as SEI CMM, ISO-9001, and fault
tolerance be integrated into software development processes effectively.
1. SEI CMM (Software Engineering Institute Capability Maturity Model)
What it is: A model that helps software companies improve their development
processes step by step (Level 1 to Level 5).
How it helps XYZ:
o Helps find what’s going wrong in their current process.
o Guides them to make the process more organized, planned, and efficient.
o For example, they can improve how they plan projects, write code, and test
the software.
Result: Fewer mistakes and better quality in the next version of the app.
2. ISO-9001 (Quality Management System)
What it is: A global standard that ensures companies deliver quality products and
services.
How it helps XYZ:
o Makes sure all development steps are well-documented and followed.
o Focuses on customer satisfaction and delivering consistent results.
o Encourages regular reviews and updates to improve the product.
Result: The app meets customer needs and works smoothly every time.
3. Fault Tolerance
What it is: A way to make software keep working even if something goes wrong.
How it helps XYZ:
o They can build error-handling systems so the app doesn’t crash.
o Add backups and alerts to recover from failures quickly.
o For example, if the payment system fails, the app can still let users browse or
save their cart.
Result: The app becomes more reliable and user-friendly.
Conclusion:
By applying:
SEI CMM → To improve the software development process,
ISO-9001 → To maintain quality and customer satisfaction,
Fault Tolerance → To keep the app stable even during failures,
XYZ Company can fix current problems and create a better, higher-quality retail
application.