SE Question Bank
SE Question Bank
UNIT 1
Software Introduction
Solution:
Software Characteristics
Advantages of a waterfall
Due to the simplicity and sequencing. it is very easy to use.
The user can understand it quickly because it is simple.
It explains the full details of every step.
This model is very helpful in planning and organizing projects.
Reduce the cost of error with accuracy.
it increases the chances of the system meeting the needs of
the customers.
Waterfall Limitations
Expectations become very fast in this wrong process.
Risk factors not involved in this model which is a much needed
component in every model.
This way user training times are not required.
We cannot detect any errors until the software testing period is
not performed.
Between user and developer the communication gap is low.
4. Elaborate Phases in software engineering
Solution:
Software design should correspond to the analysis
model: Often a design element corresponds to many
requirements, therefore, we must know how the design model
satisfies all the requirements represented by the analysis model.
Choose the right programming paradigm: A programming
paradigm describes the structure of the software system.
Depending on the nature and type of application, different
programming paradigms such as procedure oriented, object-
oriented, and prototyping paradigms can be used. The paradigm
should be chosen keeping constraints in mind such as time,
availability of resources and nature of user’s requirements.
Software design should be uniform and integrated:
Software design is considered uniform and integrated, if the
interfaces are properly defined among the design components.
For this, rules, format, and styles are established before the
design team starts designing the software.
Software design should be flexible: Software design should
be flexible enough to adapt changes easily. It is done by basic
design concepts such as abstraction, refinement, and modularity.
Software design should ensure minimal conceptual
(semantic) errors: The design team must ensure that major
conceptual errors of design such as ambiguousness and
inconsistency are addressed in advance before dealing with the
syntactical errors present in the design model.
Software design should be structured to degrade
gently: Software should be designed to handle unusual changes
and circumstances, and if the need arises for termination, it must
do so in a proper manner so that functionality of the software is
not affected.
Software design should represent correspondence
between the software and real-world problem: The software
design should be structured in such a way that it always relates
with the real-world problem.
Software reuse: Software engineers believe on the phrase:
‘do not reinvent the wheel’. Therefore, software components
should be designed in such a way that they can be effectively
reused to increase the productivity.
Designing for testability: first the software is developed
(designed and implemented) and then handed over to the testers
who subsequently determine whether the software is fit for
distribution and subsequent use by the customer. However, the
process of separating testing is seriously flawed, as if any type of
design or implementation errors are found after implementation,
then the entire or a substantial part of the software requires to be
redone. Thus, the test engineers should be involved from the
initial stages
Prototyping: Prototyping should be used when the
requirements are not completely defined in the beginning. The
user interacts with the developer to expand and refine the
requirements as the development proceeds. Using prototyping, a
quick ‘mock-up’ of the system can be developed.
Advantages Disadvantages
Avoids the problems Assessment of project risks
resulting in risk-driven and its resolution is not an
approach in the software. easy task.
Perspectives.
Estimation of budget and
schedule gets realistic as
the work progresses.
SE
UNIT 2
Software Requirements
State of practice
Requirements are difficult to uncover
Requirements change
Over reliance on CASE Tools
Tight project Schedule
Communication barriers
Market driven software development
Lack of resources
Feasibility Study
Requirement Elicitation and Analysis
Software Requirement Specification
Software Requirement Validation
Software Requirement Management
Concise: The SRS report should be concise and at the same time,
unambiguous, consistent, and complete.
Existing software.
7. What is requirement elicitation?
• Interviews
• Scenarios
• Prototypes
Solution:
Functional Non-functional
The functional requirements, The non-functional
also known as behavioural requirements, also known as
requirements, describe the quality requirements, relate
functionality or services that to system attributes, such as
software should provide. For reliability and response time.
this, functional requirements Different types of non-
describe the interaction of functional requirements
software with its environment include product
and specify the inputs, requirements, organizational
outputs, external interfaces requirements, and external
and sometimes, the functions Requirements.
that should not be included in
the software.
SRS Document
SRS Includes:
• Functional
• Non functional
• User
• Interface
• System
Design Document
Design Includes:
• E-R Diagrams
• Data Dictionary
SE
UNIT 3
Software Design
a) Data coupling
b) Stamp coupling
c) Control coupling
d) Common coupling
Types of cohesion
Functional cohesion
Sequential cohesion
Procedural cohesion
Temporal cohesion
Logical cohesion
Coincident cohesion
Functional cohesion:
Sequential Cohesion
Procedural Cohesion
Procedural Cohesion occurs in modules whose
instructions although accomplish different tasks yet have been
combined because there is a specific order in which the tasks are
to be completed.
Temporal Cohesion
Logical Cohesion
Coincidental Cohesion
• Entity-Relationship diagrams
• Entity-Definition reports
4. What is a modularity?
UML-Building Blocks
A UML DIAGRAM
UNIT 4
software team.
Disadvantages
Size can vary with coding style.
Focuses on coding activity alone.
Correlates poorly with quality and efficiency of code.
Penalizes higher level programming languages, code reuse,
etc.
Measures lexical/textual complexity only.
does not address the issues of structural or logical complexity.
Difficult to estimate LOC from problem description So not useful
for project planning
4. Write a short note on Function point metric
Categories of Metrics
• productivity
a) LOC Metrics
b) Halstead's Software Metrics
Solution:
COCOMO
Basic Model
Intermediate Model
Detailed Model
1. Basic COCOMO Model: The basic COCOMO model provide an
accurate size of the project parameters.
Effort=a1*(KLOC) a2 PM
Tdev=b1*(efforts)b2 Months
Where
B. Risk Management.
Solution: Risks are involved in every phase of software
development therefore, risks involved in a software project should
be defined and analysed, and the impact of risks on the project
costs should also be determined.
Risk Identification
Technology risks
People risks
Organizational risks
Tools risks
Estimation risks
Risk Analysis
Risk Control
SE
UNIT 5
Software Testing
ax2+bx+c=0
Solution:
1. V(G) = e – n + 2P
= 13 – 10 + 2 = 5
2. V(G) = π + 1
=4+1=5
=5
Alpha Testing
Beta Testing
The objective of white box testing is to ensure that the test cases
(developed by software. Testers by using white box testing)
exercise each path through a program. That is, test cases ensure
that all internal structures in the program are developed
according to design specifications. The test cases also ensure
that:
Advantages Disadvantages
Covers the larger part of the Tests that cover most of the
program code while testing. program code may not be
good for assessing the
functionality of surprise
(unexpected) behaviours and
other testing goals.
Uncovers typographical Tests based on design may
errors. miss other system problems.
Detects design errors that Tests cases need to be
occur when incorrect changed if implementation
assumptions are made about changes.
execution paths.
In this testing, various inputs are exercised and the outputs are
compared against specification to validate the correctness. Note
that test cases are derived from these specifications without
considering implementation details of the code. The outputs are
compared with user requirements and if they are as specified by
the user, then the software is considered to be correct, else se
the software
Advantages
Disadvantages
Tester requires no knowledge Only small number of possible
of implementation and inputs can be tested as testing
programming language used. every possible input consumes
a lot of time.
Reveals any ambiguities and There can be unnecessary
inconsistencies in the repetition of test inputs if the
functional specifications. tester is not informed about the
test cases that software
developer has already tried.
Efficient when used on larger Leaves many program paths
systems. untested.
Non-technical person can also Cannot be directed towards
perform black box specific segments of code,
hence is more error prone.
Testing.
Calculator.
Path Testing
2. Finding a set of test cases that will execute every path in the
set of program
Paths.
Calculated as :
V(G) = 9 – 6 + 2 = 5
Here e = 9, n = 6 and P =1
Path 1 : a c f
Path 2 : a b e f
Path 3 : a d c f
Path 4 : a b e a c f or a b e a b e f
Path 5 : a b e b e f
SE
UNIT 6
Software Maintenance
Types of maintenance
Corrective Maintenance
Adaptive Maintenance
Preventive Maintenance
The third phase consists of accounting for all of the ripple effect
as a consequence of program modifications.
Modified Program Testing
“Regression testing tests both the modified code and other parts
of the
purposes :
Solution:
USER DOCUMENTATION
SYSTEM DOCUMENTATION
SE
UNIT 7
Software Reliability
The reliability metric of code and design will evaluate the program
on complexity, size, and modularity. Complex modules are not
welcomed as there is a high probability of occurring bugs. The
reliability will reduce if modules have a combination of high
complexity and large size or high complexity and small size.
The second method is calculating the code, finding the bugs &
fixing them. To ensure that the system includes the functionality
specified, test plans are written that include multiple test cases.