0% found this document useful (0 votes)
17 views57 pages

SE Question Bank

Uploaded by

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

SE Question Bank

Uploaded by

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

SE

UNIT 1

Software Introduction

 Give advantages and disadvantages of Prototyping model.


ADVANTAGES DISADVANTAGES

 Provides a working model  If the user is not satisfied


to the user early in the by the developed
process, enabling early prototype, then a new
assess prototype is developed.
 ment and increasing user  This process goes on until
confidence. a perfect prototype is
 Developer gains developed. Thus, this
experience and insight by model is time consuming
developing a prototype, and expensive.
thereby resulting in better  Developer loses focus of
implementation of the real purpose of
requirements. prototype and compromise
 Prototyping model serves with the quality of the
to clarify requirements, product. For example, they
 which are not clear, hence apply some of the
reducing ambiguity and inefficient algorithms or
 Improving communication inappropriate programming
between developer and languages used in
user. developing the prototype.
 There is a great  Prototyping can lead to
involvement of users in false expectations. It often
software development. creates a situation where
Hence, the requirements of user believes that the
the users are met to the development of the system
greatest extent. is finished when it is not.
 Helps in reducing risks  The primary goal of
associated with the project prototyping is rapid
development, thus, the
design of system can suffer
as it is built in a series of
layers without considering
integration of all the other
components

Solution:

2. Explain software along with its characteristics?

Solution: Software is a collection of programs, documentation


and operating procedures. The Institute of Electrical and
Electronic Engineers (IEEE) defines software as a ‘collection of
computer programs, procedures, rules and associated
documentation and data.’ It possesses no mass, no volume, and
no colour, which makes it a non-degradable entity over a long
period.

Software Characteristics

Software characteristics are classified into six major components.

• Functionality: Refers to the degree of performance of the


software against its intended purpose.

• Reliability: Refers to the ability of the software to provide


desired functionality under the given conditions.

• Usability: Refers to the extent to which the software can be


used with ease.

• Efficiency: Refers to the ability of the software to use system


resources in the most effective and efficient manner.
 Maintainability: Refers to the ease with which the modifications
can be made in a software system to extend its functionality,
improve its performance, or correct errors.

• Portability: Refers to the ease with which software developers


can transfer software from one platform to another, without (or
with minimum) changes. In simple terms, it refers to the ability of
software to function properly on different hardware and software
platforms without making any changes in it.
 Robustness and integrity are also important. Robustness refers
to the degree to which the software can keep on functioning in
spite of being provided with invalid data while integrity refers to
the degree to which unauthorized access to the software or data
can be prevented

3. Explain more about the waterfall model.

Solution: This method is very old and fashionable which is often


used because simplicity is the key to the success of this method.
In this way all the steps taken are pre-programmed in the
software development process. For small size projects the
waterfall method is very convenient.

The uniqueness of this method is that each section has a


sequence. After the end of one phase, the next phase begins at
that point and the result of each phase is changed to include in all
subsequent steps. So for this reason the second name of this
model is Sequence Model. With systematic research the first
phase began and after this analysis, design, coding, testing and
control took place one by one. All the sections are completed one
by one in a water-like sequence so this is the reason for the
name.

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 engineering is an engineering disciplines


where steps or phases occur in software development and
primary aim of software engineering is to develop high quality
software reasonable cost and less time, it is essential to perform
software development in phases. This phased development is
referred to as software development life cycle (SDLC) or software
life cycle.

A software development process comprises of different phases.


These phases work in top to bottom approach, implying that the
phases take inputs from the previous phases, add features, and
then produce outputs. The outputs from different phases are
referred to as intermediate product, work product, or derivable.
The various phases involved in the systematic development of
software are shown in Figure below.

FIGURE 1: Software development process


Preliminary Investigation

Preliminary investigation verifies the problem and understands


the need for required system. It considers whether the proposed
system will be cost effective from business point of view and
whether it can be developed within existing budgetary
constraints. In addition, time factor, which determines the
duration of the project, is also considered. Preliminary
investigation should be quick and cost effective.

The output of preliminary investigation decides whether the new


system should be developed or not.

There are three deciding constraints:

• Technical: it evaluates determines whether technology needed


for proposed system is available or not and if it is available then
how can it be integrated within the organization.it also
determines whether the existing system can be upgraded to use
new technology and whether the organization has the expertise
to use it or not.

• Time: it determines the time needed to complete a project.


Time is an important issue in software development as cost
increases with an increase in the time period of a project.

• Budgetary: it examines the financial aspect of the project.


Budgetary

Evaluation determines whether the investment needed to


implement the system will be recovered at later stages or not.

(a) Software Analysis: analysis of requirements is done in


detail. Analysing the requirements of the user is documented in
software requirement specification (SRS) is developed, planning
for the project begins after it.
(b) Software Design: In this phase the requirements are ‘defined’
as a plan and Designing begins with deciding information
structures, in terms of efficiency, flexibility, and reusability.
During this phase, strategic and tactical decisions are made to
meet the required functional and quality requirements of a
system. Software design serves as the blueprint for the
implementation of requirement in the software system.

(c) Software Coding: This phase can be defined as a process of


translating the software requirements into a programming
language using tools that are available. Writing a software code
requires a thorough knowledge of programming language and its
tools. Therefore, it is important to choose the appropriate
programming language according to the user requirements.

(c) Software Testing: This testing is performed to assure that


software is free from errors. Efficient testing improves the quality
of software. To achieve this, software testing requires a thorough
analysis of the software in a systematic manner. Test plan is
created to test software in a planned and systematic manner. In
addition, software testing is performed to ensure that software
produces the correct outputs. This implies that outputs produced
should be according to user requirements.

(d) Software Maintenance: This phase comprises of a set of


software engineering activities that occur after software is
delivered to the user. The objective of software maintenance is to
make software operational according to user requirements. The
need of software maintenance is to provide continuity of service.
This implies that software maintenance focuses on fixing errors,
recovering from failures, such as hardware failures, or
incompatibility of hardware with software. In addition, it facilitates
future maintenance work by modifying the software code and
databases used in the software.
5. Define Product and Process

Solution: Product: What is delivered to the customer, is called a


product. It may include source code, specification document,
manuals, documentation etc. Basically, it is nothing but a set of
deliverables only.

Process: Process is the way in which we produce software. It is


the collection of activities that leads to (a part of) a product. An
efficient process is required to produce good quality products.

6. Write a short note on Software Design Principles

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.

7. Write a short note on Spiral model


Solution: IEEE defines spiral model as “a model of the software
development process in which the constituent activities, typically
requirements analysis, preliminary and detailed design, coding,
integration, and testing, are performed iteratively until the
software is complete.”

The objective of spiral model is to emphasise management to


evaluate and resolve risks in the software project. This model
combines the features of prototyping model and waterfall model
and is advantageous for large, complex and expensive projects.
The spiral model determines requirement problems in developing
the prototypes. In addition, spiral model guides and measures the
need of risk management in each cycle of the spiral model.

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.

Specifies a mechanism for Difficult to estimate budget


software quality assurance and schedule in the
activities. beginning, as some of the
analysis is not done until
the design of the software
is developed.
Spiral model is utilised by
complex and dynamic
projects.
Re-evaluation after each
step allows changes in user
perspectives, technology
advances or financial

Perspectives.
Estimation of budget and
schedule gets realistic as
the work progresses.

SE

UNIT 2

Software Requirements

 What is Requirement Engineering? Explain its types.

Solution: Requirement Engineering is the disciplined application


of proven principles, methods, tools, and notations to describe a
proposed system’s intended behaviour and its associated
constraints. SRS may act as a contract between developer and
customer

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

It is a four-step process, which includes:

 Feasibility Study
 Requirement Elicitation and Analysis
 Software Requirement Specification
 Software Requirement Validation
 Software Requirement Management

2. Explain SRS? What are the Properties of a good SRS


document?
Solution Software requirement specification (SRS) is a formal
document, which is a representation of software that enables the
users to review whether it (SRS) is according to their
requirements or not.it includes user requirement for a system as
well as detailed specification of the system requirement. The
structure of SRS differs according to the project and the
requirements.

The essential properties of a good SRS document are the


following:

Concise: The SRS report should be concise and at the same time,
unambiguous, consistent, and complete.

Structured: A well-structured document is simple to understand


and modify.as user requirements are evolving continuously
many revisions are need to be made to cope up with changing
requirements.

Black-box view: External behaviour of the system should be


defined in SRS and implementation issues are refrained from
it. The SRS report should view the system to be developed as a
black box and should define the externally visible behaviour of
the system. Due to this the SRS report is also known as the black-
box specification of a system.

Conceptual integrity: conceptual integrity should be there as


response to undesired events: It should characterize acceptable
responses to unwanted events. These are called system response
to exceptional conditions.

Verifiable: each requirement of the system documented in


the SRS document, should be clear and correct. So that
it’s possible to decide whether or not requirements have been
met in an implementation.
3. What is requirements validation?

Solution: It is desirable to detect errors in the requirements


before the design and development of the software begin. To
check all the issues related to requirements, requirements
validation is performed. Requirements validation is similar to
requirements analysis as both these processes review the
gathered requirements. Requirements validation studies the ‘final
draft’ of the requirements Document, while, requirements
analysis studies the ‘raw requirements’ from the system users.

The output of requirement validation is a list of problems and


agreed possible solutions actions of the problems. The lists of
problems shows the problems encountered in the requirements
document of requirement validation process. The agreed
solution is a list that displays the actions to

be performed to resolve the problems.

4. Explain Requirements analysis in brief.

Solution: Requirements analysis is (1) the process of studying


user needs to arrive at a definition of a system, hardware, or
software requirements. (2) The process of studying and refining
system, hardware, or software requirements.

Steps in Requirements analysis


 Draw the context diagram
 Development of a Prototype
 Model the requirements
 Finalise the requirements

5. Write a short note on Requirements Management.

Solution: Requirements management is a process of eliciting,


documenting, organizing and controlling changes to the
requirements. The process of requirements management begins
as soon as requirements document is available, but ‘planning’ for
managing the changing requirements should start during
requirement elicitation process.

6. Elaborate structured analysis?

Solution: Structured analysis is a top-down approach,


which focuses on refining the problem with the help of functions
performed in the problem domain and data produced
by these functions. Generally, the structured analysis is depicted
by a data flow diagram, which uses several levels to provide
detailed information about the system.

The basic principles of this approach are:

• To facilitate software engineer in order to determine the


information received during analysis and to organize the
information to avoid complexity of the problem.

• To provide a graphical representation to develop new software


or enhance the

Existing software.
7. What is requirement elicitation?

Solution: Requirements elicitation, also known as requirements


capture and requirements acquisition, is a process of collecting
information about software requirements from different
individuals, such as users.

The commonly followed elicitation techniques are listed below:

• Interviews

• Scenarios

• Prototypes

• Quality function deployment (QFD)

8. Define feasibility and its types.

Solution:Feasibility determines or refers to the evaluation of


possibility of the software process, design, procedure, or plan to
know whether they can be successfully accomplished or not. To
evaluate feasibility, a feasibility study is performed,
which determines whether the solution considered to
accomplish the requirements is practically possible or not.

Types of feasibility include:


 Technical feasibility
 operational Feasibility
 Economic feasibility.

Technical feasibility assesses the current resources (such as


hardware and software) and technology, which are required to
accomplish user requirements in the software within the allocated
time and budget.
Operational feasibility assesses the extent to which the required
software performs

Series of steps to solve business problems and user requirements.

Economic feasibility determines whether the required software is


capable of generating economic benefits for an organization or
not.

9. Differentiate between Functional and Non-functional


requirements

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.

10. Briefly explain Data dictionary.


Solution: A data dictionary is an organized collection of
information about data and their relationships, data flows, data
types, data stores, processes, and so on. It also helps users to
understand the data types and processes defined along with their
uses.

11. What is the difference between SRS document and


design document?

SRS Document

Solution: Consider a flow graph given below and calculate the


Cyclomatic SRS document is a contract between the development
team and the customer. Once the SRS document is approved by
the customer, any subsequent controversies are settled by
referring the SRS document. SRS document defines the
customer’s requirements in terms of Functions, performance,
external interfaces and design constraints.

SRS Includes:

• Functional

• Non functional

• User

• Interface

• System

Design Document

The purpose of a design is to describe how the enhancements will


be incorporated into the existing project. It should contain
samples of the finished product. This could include
navigational mechanism screenshots, example reports, and
component diagrams.

Design Includes:
• E-R Diagrams

• Data flow diagrams

• Data Dictionary

SE

UNIT 3

Software Design

 Give short notes on following :

a) Data coupling

The dependency between module A and B is said to be data


coupled if their dependency is based on the fact they
communicate by only passing of data. Other than communicating
through data, the two modules are independent

b) Stamp coupling

Stamp coupling occurs between module A and B when complete


data structure is passed from one module to another.

c) Control coupling

Module A and B are said to be control coupled if they


communicate by passing of control information. This is
usually accomplished by means of flags that are set by one
module and reacted upon by the dependent module.

d) Common coupling

With common coupling, module A and module B have shared


data. Global data areas are commonly found in programming
languages. Making a change to the common data means tracing
back to all the modules which access that data to evaluate the
effect of changes.
e) Content coupling

Content coupling occurs when module A changes data of module


B or when control is passed from one module to the middle of
another. In fig. module B branches into D, even though D is
supposed to be under the control of C.

2. Explain Cohesion and its types.

Solution: It is a measure of the degree to which the elements of


a module are functionally related

Types of cohesion
 Functional cohesion
 Sequential cohesion
 Procedural cohesion
 Temporal cohesion
 Logical cohesion
 Coincident cohesion
Functional cohesion:

A and B are part of a single functional task. This is very good


reason for them to be contained in the same procedure.

Sequential Cohesion

Module A outputs some data which forms the input to B. This is


the reason for them to be contained in the same
procedure.

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

 Module exhibits temporal cohesion when it contains tasks


that are related by the fact that all tasks must be executed in the
same time-span.

Logical Cohesion

Logical cohesion occurs in modules that contain instructions that


appear to be related because they fall into the same logical class
of functions.

Coincidental Cohesion

Coincidental cohesion exists in modules that contain instructions


that have little or no relationship to one another.

Relationship between Cohesion & Coupling

Fig. View of cohesion and coupling

If the software is not properly modularized, a host of seemingly


trivial or changes will result into death of the project Therefore, a
software engineer must design the modules with goal of high
cohesion and low coupling

3. What is data modelling?

Solution: Data modelling is the act of exploring data-oriented


structures. Like other modelling artifacts data models can be used
for a variety of purposes, from high-level conceptual models to
physical data models. From the point of view of an object-oriented
developer, data modelling is conceptually similar to class
modeling. With data modeling you identify entity types whereas
with class modeling you identify classes. Data attributes are
assigned to entity types just as you would assign attributes and
operations to classes. Examples for data modeling include:

• Entity-Relationship diagrams

• Entity-Definition reports

• Entity and attributes report

• Table definition report

• Relationships, inheritance, composition and aggregation.

4. What is a modularity?

Modularity is a software design and architecture pattern achieved


by dividing the software into uniquely named and addressable
components, which are also known as modules. The basic idea
underlying modular design is to organize a complex system (large
program) into a set of distinct components, which are developed

Independently and then are connected together. This may appear


as a simple idea however, the effectiveness of the technique
depends critically on the manner in which the systems are divided
into components and the mechanisms used to connect
components together. Modularising a design helps to plan the
development in a more effective manner, accommodate changes
easily, conduct testing and debugging effectively and
efficiently, and conduct maintenance work without adversely
affecting the functioning of the software. Figure shows
modularity.
5. Elaborate Object oriented design

Solution: Object oriented design is the result of focusing


attention not on the function performed by the program, but
instead on the data that are to do manipulated by the program
Thus, it is orthogonal to function oriented design. It starts with an
examination of the real world “things” that are part of the
problem to be solved These things (which we will call objects) are
characterized individually in terms of their attributes and
behaviour.

Basic Concepts on which Objects are based:


 Behavior (they do things)
 State (which changes when they do things)

6. What is the importance of Structured Analysis?

Solution: Structured Analysis is a data analysis and development


tool that allows the analyst to understand the system and
its functional activities in a detailed logical manner. It is
a systematic approach, using graphical tools that analyse and
summarize objectives of an existing system to develop new
system specification which are easy to decipher by users.
The properties of structured analysis are:

 It is a graphic presentation of system

 It divides the processes to give a clear picture of system flow.

 It is logical rather than physical

 It is an approach that supports high-level overviews to lower-


level details.

Structured Analysis Tools


 Data Flow Diagrams
 Data Dictionary
 Decision Trees
 Decision Tables
 Structured English
 Pseudocode

7. Explain UML Diagrams & Design patterns

The UML stands for Unified modelling language, is a standardized


visual modelling language used for specifying and visualizing to
construct, and document a primary artifacts of the software
system. It helps in Object oriented designing and characterizing of
system. It explains both software and hardware working
of systems.

UML-Building Blocks

UML is composed of three main building blocks. The basic UML


building blocks are summarized in block diagram.

It has a collection of five types of views:


 Use case view
 Design view
 Implementation view
 Process view
 Development view

A UML DIAGRAM

8. What is Structured Analysis? How it represented?

Structured analysis is a top-down approach, which focuses on


refining the problem with the help of functions performed in the
problem domain and data produced by these functions.
The basic principles of this approach are:

 To facilitate software engineer in order to determine the


information received during analysis and to organize the
information to avoid complexity of the problem.
 To provide a graphical representation to develop new
software or enhance the existing software.

Generally, structured analysis is represented using data flow


diagram.

IEEE defines data flow diagram (also known as bubble


chart or work flow diagram) as “a diagram that depicts data
sources, data sinks, data storage, and processes performed on
data as nodes, and logical flow of data as links between the
nodes”.

DFD comprises of four basic notations (symbols), which


help to depict information in a system. These notations
are listed in Table.
SE

UNIT 4

Software Project Management

 What do you understand by Project Planning Process?

Solution: Project planning process includes a set of interrelated


activities followed in an orderly manner to implement user
requirements in software. project planning process comprises of
the following:
• Techniques used to perform project planning.

• Objectives and scope of the project.

• Effort (in time) of individuals involved in project.

• Project schedule and milestones.

• Resources required for the project.

• Risks associated with the project.

Project planning process comprises of several activities, which are


essential for carrying out a project systematically. These activities
refer to the series of tasks, which are performed over a period of
time for developing the software. These activities include
estimation of time, effort and resources required, and risks
associated with the project.

2. Define Software Measurement and Metrics

Solution: Software measurement is used to assess the


quality of the engineered product or system for better
understanding , with an intention to improve the software process
on a continuous basis. Measurement helps in estimation, quality
control, productivity assessment, and project control throughout a
software project. Also,

measurement is used by software engineers to gain insight into


the design and development of the work products.

Software measurements are of two categories namely,


 direct measures
 indirect measures.
Direct measures include software processes like cost and effort
applied and product like lines of code produced, execution speed,
and other defects that have been reported.

Indirect measures include products like functionality, quality,


complexity, reliability, maintainability,

software measurement is a management tool, which conducted in


a set of five activities, listed below:

• Formulation: Performs measurement and develops appropriate


metrics for software under consideration.

• Collection: Collects data to derive the formulated metrics.

• Analysis: Calculates metrics and use mathematical tools.

• Interpretation: Analyses the metrics to attain insight into the


quality of representation.

• Feedback: Communicates recommendation derived from


product metrics to the

software team.

Software Metric is “a quantitative measure of the degree to


which a system, component, or process possesses a given
attribute.” The goal of software metrics is to identify and control
essential parameters that affect software development. The other
objectives of using software metrics

• Measure the size of the software quantitatively.

• Assess the level of complexity involved.

• Assess the strength of the module by measuring coupling.

• Assess the testing techniques.


• Specify when to stop testing.

• Determine the date of release of the software.

• Estimate cost of resources and project schedule.

these objectives are accomplished by software metrics when


applied to different projects for a long period of time to
obtain indicators. Software metrics help project managers to gain
an insight into the efficacy of the software process, project, and
product. This is possible by collecting quality and productivity
data and then analysing and comparing these data with past
averages in order to know whether quality improvements have
occurred or not.Also, when metrics are applied in a consistent
manner, it helps in project planning and project management
activity. For example, schedule based resource allocation can be
effectively enhanced with the help of metrics.

3. Write a short note on LOC

Solution: LOC (Lines of Code): is a Simplest and most widely


used metric in which Comments and blank lines should not be
counted. LOC can be defined as the number of delivered lines of
code in software excluding the comments and blank lines.

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

Solution: Function point metric is used to measure the


functionality delivered by the system. It help in estimating effort
required to design, code and test software, predict the number of
errors, and forecast the number of components used in the
system.

Function point is derived using an empirical relationship, which is


based on the measure of software information domain value and
software complexity. Software complexity can be classified in
terms of simple, average, and complex levels. Information domain
value can be defined as a combination of all the points listed
below:

• Number of external inputs (EI): Users and other applications


act as a source of

external inputs and provide distinct application oriented data or


information.

• Number of external outputs (EO): Each external output


provided by the application provides information to the user.
External outputs refer to reports, screens, error message, and so
on. Individual data items in reports or screens are not counted
separately.

• Number of external inquires (EQ): External inquires are


defined as online input that helps to generate immediate
response in the form of online output. Here, each distinct inquiry
is counted separately.

• Number of internal logical files (ILF): Logical grouping of


data that resides within the application boundary, such as master
file as a part of database, is known as internal logical files. These
files are maintained through external inputs.

• Number of external interface files (EIF): Logical grouping


of data that resides external to the application, such as data files
on tape or disk, is known as external interface file. External
interface files provide data, which can be used by the application.
Organization using FP method develops criteria, which helps in
determining whether a particular entry is simple, average, or
complex. A weighting factor in terms of numeric value is assigned
for each level of complexity

5. What are different Project Size estimation Metrics?

Solution: Software metrics can be defined as “The continuous


application of measurement based techniques to the software
development process and its products to supply meaningful and
timely management information, together with the use of those
techniques to improve that process and its products”

Categories of Metrics

i Product metrics: describe the characteristics of the product


such as size, complexity, design features, performance,
efficiency, reliability, portability, etc

ii Process metrics: describe the effectiveness and quality of the


processes that produce the software product Examples are:

• effort required in the process • time to produce the product

• effectiveness of defect removal during development • number


of defects found during testing

• maturity of the process

iii) Project metrics: describe the project characteristics and


execution Examples are :

• number of software developers

• staffing pattern over the life cycle of the software

• cost and schedule

• productivity

size Oriented Metrics

a) LOC Metrics
b) Halstead's Software Metrics

c) Functional Point (FP) Analysis

6. Write short notes on following:

Solution:

 COCOMO

Boehm proposed COCOMO (Constructive Cost Estimation Model)


in 1981 to predict the efforts and schedule of a software product
based on the size of the software.projects are categorized into
three types:
 Organic
 Semidetached
 Embedded

Organic: A project is organic type, if the project deals with


developing a well-understood application program, the size of the
development team is reasonably small, and the team members
are experienced in developing similar methods of
projects. Examples: simple business systems, inventory
management systems, and data processing systems.

Semidetached: A project is semidetached type if the development


consists of a mixture of experienced and inexperienced staff.
Team members may be unfamiliar with some aspects of the order
being developed. Example: a new operating system (OS), a
Database Management System (DBMS

Embedded: A project is embedded type, if the software being


developed is strongly coupled to complex
hardware.Example: ATM, Air Traffic control.

Boehm’s software cost estimation can be done through three


stages:

 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

KLOC is the estimated size of the software product indicate in


Kilo Lines of Code,

a1,a2,b1,b2 are constants for each group of software products,

Tdev is the estimated time to develop the software, expressed in


months,

Effort is the total effort required to develop the software product,


expressed in person months (PMs).

Estimation of development effort

For the three classes of software products, the formulas for


estimating the effort based on the code size are shown below:

Organic: Effort = 2.4(KLOC) 1.05 PM

Semi-detached: Effort = 3.0(KLOC) 1.12 PM

Embedded: Effort = 3.6(KLOC) 1.20 PM

Estimation of development time

For the three classes of software products, the formulas for


estimating the development time based on the effort are given
below:

Organic: Tdev = 2.5(Effort) 0.38 Months

Semi-detached: Tdev = 2.5(Effort) 0.35 Months

Embedded: Tdev = 2.5(Effort) 0.32 Month

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.

A software project is prone to a huge variety of risks. To enhance


the adaptability of a software project, it is essential to assess,
identify and classify risks into different classes. There are three
main classifications of risks which can affect a software project:
 Project risks
 Technical risks
 Business risk

Risk Management Activities

Risk Identification

The risk in the project should be identified as early as possible so


that the impact of risk can be reduced effectively by risk
management planning.There are different types of risks which
can affect a software project:

 Technology risks
 People risks
 Organizational risks
 Tools risks
 Estimation risks

Risk Analysis

risk analysis process, analyses the probability of identified risk


whether it is serious or a loose estimation.

Risk Control

It is the process of managing risks to achieve desired outcomes

There are three main methods to plan for risk management:

 Avoid the risk: avoiding risk by discussing with the client to


change the requirements to decrease the scope of the work,
giving incentives to the engineers to avoid the risk of human
resources turnover, etc.
 Transfer the risk: it involves getting the risky element
developed by a third party, buying insurance cover, etc.
 Risk reduction: This means planning method to include the loss
due to risk. For instance, if there is a risk that some key personnel
might leave, new recruitment can be planned.

C. Staffing Level Estimation

Solution: The staffing plan / Level Estimation determines the


number of individuals required for a project. It includes selecting
and assigning tasks to the project management team members.
Staffing plan provides information about appropriate skills
required to perform the task to produce the project deliverables
and manage the project. In addition, this plan provides
information of resources, such as tools, equipment, and processes
used by the project management team.

Staff planning is done by a staff planner, who is responsible for


determining the individuals available for the project.

The responsibilities of a staff planner are listed below:

 Determines individuals, who can be existing staff, staff on


contract, or newly employedstaff. It is important for the staff
planner to know the structure of the organization to determine
the availability of staff.

 Determines the skills required to execute the tasks mentioned


in the project schedule and task plan. In case, staff with required
skills is not available, staff planner informs project manager about
the requirement.

 Ensures that the required staff with required skills is available


at the right time. For this purpose, the staff planner plans the
availability of staff after the project schedule is fixed. For
example, at the initial stage of a project, staff may consist of
project manager and few software engineers, whereas during
software development

SE

UNIT 5

Software Testing

 Consider a program for the determination of the nature of roots


of a quadratic equation Its input is a triple of positive integers
(say a, b, c) and values may be from interval [0,100] The program
output may have one of the following words [Not a quadratic
equation; Real roots; Imaginary roots; Equal roots]. Design the
boundary value test cases.

Solution: Quadratic equation will be of type:

ax2+bx+c=0

Roots are real if (b2-4ac)>0

Roots are imaginary if (b2-4ac) <0

Roots are equal if (b2-4ac) =0

Equation is not quadratic if a=0

The boundary value test cases are:


2. Consider a flow graph given below and calculate
the Cyclomatic complexity by all three methods

Solution:

Cyclomatic complexity can be calculated by any of the three


methods

1. V(G) = e – n + 2P

= 13 – 10 + 2 = 5
2. V(G) = π + 1

=4+1=5

3. V(G) = number of regions

=5

Therefore, complexity value of a flow graph is 5.

3. What is Unit Testing? Explain in detail.

Solution: Unit testing is performed to test the individual units of


software. As software is made of a number of units/modules,
detecting errors in these units is simple and consumes less time,
as they are small in size. However, it is possible that the outputs
produced by one unit become input for another unit. Hence, if
incorrect output produced by one unit is provided as input to the
second unit, then it also produces wrong output. To avoid this, all
the units in software are tested independently using unit testing.

Unit level testing is performed many times during the software


development, rather it is repeated whenever software is modified
or used in a new environment. The other points noted about unit
testing are listed below:

• Each unit is tested in isolation from other parts of a program.

• The developers themselves perform unit testing.

• Unit testing makes use of white box testing methods.


Types of Unit Testing: The various tests that are performed as
a part of unit testing are listed below:

• Module interface: These are tested to ensure that information


flows in a proper manner into and out of the ‘unit’ under test.
Note that test of data flow (across a module interface) is required
before any other test is initiated.

• Local data structure: These are tested to ensure that the


temporarily stored data maintains its integrity while an algorithm
is being executed.

Boundary conditions: These are tested to ensure that the


module operates as desired within the specified boundaries.

• All independent paths: These are tested to ensure that all


statements in a module have been executed at least once. Note
that in this testing, the entire control structure should be
exercised.

• Error handling paths: After successful completion of the


various tests, error-handling paths are tested.

4. Explain Integration Testing and its importance.

Solution: After unit testing is completed, integration testing


begins. In integration testing, the units validated during unit
testing are combined to form a sub system. The purpose of
integration testing is to ensure that all the modules continue to
work in accordance with user/customer requirements even after
integration.

The objective of integration testing is to take all the tested


individual modules, integrate them, test them again, and develop
the software, which is according to design specifications.

Integration testing is done for further more reasons:

• It ensures that all modules work together properly, are called


correctly, and transfer accurate data across their interfaces.

• it is performed with an intention to expose defects in the


interfaces and in the
Interactions between integrated components or systems.

• Integration testing examines the components that are new,


changed, affected by a change, or needed to form a complete
system.

5. What is user acceptance testing?

Solution: User Acceptance Testing is a kind of testing in software


development in which the software is tested in the” real world" by
the intended users. User acceptance testing is used to know if the
system is working or not (both clients & in-house)

Different user acceptance testing are:

Alpha Testing

Alpha testing is the software prototype stage when the software is


first able to run. It will not have all the intended functionality, but
it will have core functions and will be able to accept inputs
and generate outputs. An alpha test usually takes place in the
developer's offices on a separate system.

Beta Testing

The beta phase of software design exposes a new product,


which has just emerged from in-house (alpha) testing, to a large
number of real people, real hardware, and real usage. Beta
testing is not a method of getting free software long-term,
because the software expires shortly after the testing period.

6. What is White Box Testing? Give its advantage and


disadvantages?

Solution: White box testing, also known as structural testing is


performed to check the internal structure of a program. To
perform white box testing, tester should have
thorough knowledge of the program code and the purpose for
which it is developed. The basic strength of this testing is that the
entire software implementation is included while testing
is performed. This facilitates error detection even when the
software specification is vague or incomplete.

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:

• All independent paths within the program have been executed


at least once.

• All internal data structures are exercised to ensure validity.

• All loops (simple loops, concatenated loops, and nested loops)


are executed at their boundaries and within operational bounds.

• All the segments present between the controls structures (like


‘switch’ statement) are executed at least once.

• Each branch (like ‘case’ statement) is exercised at least once.

• All the branches of the conditions and the combinations of these


conditions are executed at least once. Note that for testing all the
possible combinations, a ‘truth table’ is used where all logical
decisions are exercised for both true and false paths.

The various types of testing, which occur as part of white box


testing are basis path testing, control structure testing, and
mutation testing.

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.

7. What is Black box testing? Explain in detail.

Solution: Black box testing, also known as functional testing,


checks the functional requirements and examines the input and
output data of these requirements. The functionality is
determined by observing the outputs to corresponding inputs. For
example, when black box testing is used, the tester should only
know the ‘legal’ inputs and what the expected outputs should be,
but not how the program actually arrives at those outputs.

The black box testing is used to find errors listed below:


 Interface errors, such as functions, which are unable to send or
receive data to/from other software.
 Incorrect functions that lead to undesired output when
executed.
 Missing functions and erroneous data structures.
 Erroneous databases, which lead to incorrect outputs when
software uses the data present in these databases for processing
 Incorrect conditions due to which the functions
produce incorrect outputs when they are executed.
 Termination errors, such as certain conditions due to which
function enters a loop that forces it to execute indefinitely.

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

is tested for the presence of errors in it.

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.

8. Differentiate between Black box and White box


testing?

Solution: White box Black box


It is used to test the It is used to test the
Purpose internal structure of functionality of
software. software.
It is concerned only with It is concerned only
testing with
testing specifications
software and does not and does not guarantee
guarantee the that all the
components of
Complete implementatio software that are
n of all the specifications implemented are
mentioned in tested.
user requirements.
It addresses flow and It addresses validity,
control structure of a behaviour and
program. performance of
software.
It is performed in the It is performed in the
Stage early stages of testing. later stages of testing.
Knowledge of the No knowledge of the
Requireme internal structure of a internal structure of a
nt program is required for program is required to
generating test case. generate test case.
Here test cases are Here the internal
Test Cases generated based structure of modules or
on the actual code of the programs is
module to be tested. not considered for
selecting test cases.
The inner software In this testing, it is
present inside checked whether the
the calculator (which is calculator is
known by the developer working properly or not
only) is checked by by giving inputs by
giving inputs to the pressing the buttons in
code. the

Calculator.

9. Define Structural Testing and Path Testing

Solution: Structural Testing


A complementary approach to functional testing is called
structural / white box

testing. It permits us to examine the internal structure of the


program.

Path Testing

Path testing is the name given to a group of test techniques


based on judiciously

selecting a set of test paths through the program. If the set of


paths is properly

chosen, then it means that we have achieved some measure of


test thoroughness.

This type of testing involves:

1. Generating a set of paths that will cover every branch in the


program.

2. Finding a set of test cases that will execute every path in the
set of program

Paths.

10. Calculate the Cyclomatic Complexity flow graph


shown below with entry node ‘a’ and exit node ‘f’?

Solution: The value of Cyclomatic complexity can be

Calculated as :

V(G) = 9 – 6 + 2 = 5

Here e = 9, n = 6 and P =1

There will be five independent

paths for the flow graph

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

 What is Software Maintenance ? give its types .

Solution: Software maintenance is the phase of SDLC which


begins after the delivery of software to users. It is concerned with
modifications and updated changes required after system is used
or implemeyted on site.

Types of maintenance

Corrective Maintenance

Correction is discovered in user error reports on the basis of that


modifications and updation takes place

Adaptive Maintenance

To adapt the software according to ever changing world of


technology and requirements of evolving business environment
these modifications and updations are incorporated.
Perfective Maintenance

To keep software robust and working for a long duration


these modifications and updates are done. it also improves
software reliability and performance.

Preventive Maintenance

To prevent future problems these modifications and


updations are done focus is on current non significant anomalies
in system which might cause huge problems later.

2. What do you understand by Reverse engineering

Solution: Reverse engineering term is being derived from


hardware world. To understand the competitive item of a rival
company a prouct is dissembled and the manufacturing
technology for it is decoded.a successful reverse engineering
derives one or more design and manufacturing specifications for a
product by investigating and examining actual architecture of the
product. Software reverse engineering is none different but
mostly it is done by a company’s on its own software product to
understand the its complexity and structure several years later.
The process of analyzing a program in an effort to create a
representation of the program at a higher level of abstraction
than source code. Reverse engineering is a process of design
recovery. Reverse engineering tools extract data,
architectural, and procedural design information from an existing
program.

Figure :6.1 Reverse engineering model


3. What is software Configuration management?

Solution: Configuration Management (CM) is a technique of


identifying, organizing, and controlling modification made
to software by a programming team.The output of the software
process can be divided into three broad categories: (1) computer
programs (both source level and executable forms); (2)
documents that describe the computer programs (targeted at
both technical practitioners and users), and (3) data (contained
within the program or external to it). The items that comprise all
information produced as part of the software process are
collectively called a software configuration.

The SCM process includes a no. of processess:

 Identification of objects in the software configuration


 Version Control
 Change Control
 Configuration Audit
 Status Reporting

4. Write a short note on Forward Engineering

Forward engineering is done after reverse engineering, which is


a process of obtaining specifications from a old software or
product. The specification extracted through reverse engineering
now mapped and the product is re engineering takes place.

5. Explain maintenance process in software enginnering ?

Solution: The overall maintenance process is given in figure


below. It includes following steps:
 Program Understanding

The first phase consists of analyzing the program in order to


understand.
 Generating Particular Maintenance Proposal

The second phase consists of generating a particular


maintenance proposal to accomplish the implementation of the
maintenance objective.
 Ripple Effect

The third phase consists of accounting for all of the ripple effect
as a consequence of program modifications.
 Modified Program Testing

The fourth phase consists of testing the modified program to


ensure that the modified program has at least the same reliability
level as before.
 Maintainability
Each of these four phases and their associated software quality
attributes are critical to the maintenance process. All of these
factors must be combined to form maintainability.

6. What is the use of Regression Testing ? how it is


different from development testing ?
Solution: Regression testing is the process of retesting the
modified parts of the software and ensuring that no new errors
have been introduced into previously test code.

“Regression testing tests both the modified code and other parts
of the

program that may be affected by the program change. It serves


many

purposes :

 increase confidence in the correctness of the modified program


 locate errors in the modified program
 preserve the quality and reliability of software
 ensure the software’s continued operation

Development testing Development testing


 We create test suites  We can make use of
and test plans existing test suite and
test plans
 We test all software  We retest affected
components components that have
been modified by
modifications.
 Budget gives time for  Budget often does not
testing give time for regression
testing.
 We perform testing just  We perform regression
once on a software testing many times over
product the life of the software
product.
 Performed under the  Performed in crisis
pressure of situations, under greater
 release date of the  time constraints.
software
7. Define documentation with an example.

Solution:

Software documentation is the written record of the facts about


a software system recorded with the intent to convey purpose,
content and clarity.

Types of documentation is given below:

USER DOCUMENTATION
SYSTEM DOCUMENTATION
SE

UNIT 7

Software Reliability

 What is reliability and metrics to reliability

Solution: Software reliability is also defined as the probability


that a software system fulfils its assigned task in a given
environment for a predefined number of input cases, assuming
that the hardware and the inputs are free of error.

“It is the probability of a failure free operation of a


program for a specified time in a specified environment”

Reliability metrics are used to quantitatively express the reliability


of the software product. The option of which metric is to be used
depends upon the type of system to which it applies & the
requirements of the application domain. Some reliability metrics
which can be used to quantify the reliability of the software
product are as follows:
 Requirements Reliability Metrics

Requirements are a means of establishing a written agreement


between user and software developer that a system will be
designed with such required features. Requirement Reliability
metrics calculates quality factors of the required document.

 Design and Code Reliability Metrics

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.

 Testing Reliability Metrics

These metrics use two methods to calculate reliability. First, it


provides that the system is equipped with the tasks that are
specified in the requirements. Because of this, the bugs due to
the lack of functionality reduces.

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.

2. Give an Overview of S/W Quality management System


ISO 9000

ISO (International Standards Organization) is a large group or


consortium of 63 countries established to plan and fosters
standardization. ISO declared its 9000 series of standards in
1987. It serves as a reference for the contract which determines
the guidelines for maintaining a quality system. The ISO standard
mainly addresses operational methods and organizational
methods such as responsibilities, reporting, etc. ISO 9000 defines
a set of guidelines.
 Application: Once an organization decided to go for ISO
certification, it applies to the registrar for registration.
 Pre-Assessment: During this stage, the registrar makes a
rough assessment of the organization.
 Document review and Adequacy of Audit: During this
stage, the registrar reviews the document submitted by the
organization and suggest an improvement.
 Compliance Audit: During this stage, the registrar checks
whether the organization has compiled the suggestion made by it
during the review or not.
 Registration: The Registrar awards the ISO certification after
the successful completion of all the phases.
 Continued Inspection: The registrar continued to monitor the
organization time by time.

You might also like