software engg PYQ Solution
software engg PYQ Solution
2. While
3. do-while
4. for
b. Define "program module" with its important characteristics:
In software engineering, a module is a distinct, reusable, and interchangeable unit of code designed to
perform a specific function.
Key characteristics are modularity, reusability, independence, and well-defined interfaces.
c. Write the difference between methodology and a process:
A methodology is a comprehensive, high-level framework or approach that guides the overall
strategy for solving problems or developing software, such as Agile or Waterfall. A process, on the
other hand, is a detailed, step-by-step set of activities or tasks, like coding, testing, or debugging,
that are executed within that methodology to achieve specific goals.
d. What is Regression Testing?
Regression Testing is a type of testing in the software development cycle that runs after every change to
ensure that the change introduces no unintended breaks. Regression testing addresses a common issue that
developers face — the emergence of old bugs with the introduction of new changes.
1. Unit Regression Testing approach uses a bird’s-eye view philosophy to test code. This is a
simple method in which the tester has a list of items to test every time a change occurs. This
is the best way to start regression testing in an existing project.
2. Partial Regression Testing approach divides the project into logical, coherent units that
work together to form the whole application. Select the units that are most critical to the
application and define specific test cases for them while performing unit regression testing
for the rest of the modules.
3. Complete Regression Testing, which is the most detailed form of regression testing. In this
case, one takes a comprehensive view of the codebase to identify all functionalities that
would affect usability on breaking and write detailed tests for each of them. This technique is
time-consuming but highly beneficial if applied from the early stages of project development.
e. What do you mean by the term software reengineering?
Software reengineering refers to the systematic process of updating or modifying an existing software
system to improve its maintainability, performance, or adaptability to new requirements. This involves
analyzing the current system, restructuring its code, and enhancing it without changing its fundamental
functionality, often to extend its lifecycle.
a. Explain how a software development effort is initiated and finally terminated in the spiral model:
In the spiral model, a software development effort begins with the identification of project objectives,
constraints, and potential risks, followed by a planning phase. The development then proceeds through
iterative cycles, each consisting of risk analysis, prototyping, design, implementation, and evaluation. The
process continues with multiple spirals until all objectives are met, risks are adequately mitigated, and the
product reaches a stable, deliverable state, at which point it is formally terminated and released.