Software Engeenering Past Paper 2013

Download as pptx, pdf, or txt
Download as pptx, pdf, or txt
You are on page 1of 23

Past Paper (2013)

Subjective

Q1:
Answer the following questions. (4*5)=20
(i)
Differentiate between Software Engineering & Software Process?
Software Engineering:
1. Software engineering is the study & application of engineer to design ,
development and maintanence of software.
2. Software engineering is an engineering discipline which is concerned
with all aspects of software production.
3. Software engineering should adopt a systematic & organized approach
to their work & use appropriate tools depends on the
Software Engineering:

• Problem to be solved.
Example:
Software Process:

1. A software process is defined as collection of work,activities


and task that are performed when some work product is to be
controlled.
2. Each of these work activities,actions and tasks resides within a
framework or model that defines their relationships with the
process and one another.
(ii)
Differentiate between functional and non- function
requirement?
Here is a couple of difference between functional and non functional
requirement in software development process.
1. Functional requirement is specified by user while non-functional
requirements is specified by technical people e.g. Architect , technical
leaders and software developers.
2. Functional requirement is also a activity system must perform on the
other hand non-functional requirement are depending upon criticality
of applications. For example: if your application is not critical and you
can live with downtime you may not need to develop complex failover
and disaster recovery code , reducing your application total develop
time.
3. Functional requirement defines a software’s functionality i.e what can
they do on the other hand non-functional requirement defines other
things which are not required by user.
Functional requirement & Non- Functional
requirement
4.Non- Functional requirement are sometimes defines in terms of
metrices to make them more tangible.
(iii)
What is the main objective to conduct “critical path analysis” while
scheduling a project?

The main objective is to define all project tasks, builds a network


that depict their inter-denpendencies,identify their tasks that are
critical within the network and then track their progress to ensure
that delay is recognized one day at a time.CMP is an algorithm for
scheduling a set of project activities.
(iv)
Define cohesion and coupling?
Cohesion:
• Cohesion is the indication of relationship within the module.
• Cohesion shows the modules relative functional strength.
• Cohesion is a degree to which module focuses on single thing.
• Cohesion is the inter-module concept.
• Cohesion is the kind of natural extension of data hiding.
For example: Class having all members visible with a package having
default visibility.
Coupling:

• Coupling is the indication of relationship between the module.


• Cohesion shows the relative independence among the module.
• Cohesion is a degree to which module is connected to other
module.
• Cohesion is the inter-module concept.
• In coupling make private fields private methods and non-public
classes provide loose coupling.
Diagram of Cohesion and coupling:
(v)
Write down the formula to calculate the “Cyclometic
Complexity”?
Cyclometic Complexity is the source code complexity measurement
that is being populated to numbered coding errors.it is calculated by
developing a “Control Flow Graph” of the code that measures the
number of linear independent paths through a program module.
Lower the program Cyclometic Complexity lower the risk to modify
and easier to understand it can represented using this formula :
Cyclometic Complexity=E-N+P
Where:
E=Number of edges in flow graph
N= Number of nodes in flow graph
P= Number of edges that has exit point
Cyclometic Complexity:

Example:
If A=0 then
If B>C then
A=B
Else
A=C
End if
End if
Below diagram show that has seven node and eight edges.
Cyclometic Complexity=8-7+2=3
Flow Graph:
Q2:Long Question (10*3)=30

Q3:Explain the method in detail to calculate the project cost by


using CoCoMo?
Definition:
CoCoMo 81 was the first version of CoCoMo.It was model
around Software practices of 1980’s.It has been found on average it
is able to produce estimates that are within 20% of the actual values
and 68% of the time.
It has three different models.
1. Basic model
2. Intermediate model
3. Advanced model
Calculate the project cost by using CoCoMo:

1.Basic model:
This model would be applied early in project
development.It will provide a roughly estimate early on that should be
refined later on with one on other model.
2.Intermediate model:
This model would be used after you have more
detailed requirements for project.
3.Advanced model:
when your design is complete, you can apply this
method to further refines your estimate.
Modes: Within each of these models there are also three modes.
Calculate the project cost by using CoCoMo:

Modes:
1.Organic
2.Embedded
3.Semi-detached
1. Organic P
It belongs to small & simple software projects which are handled by a small team with
good domain knowledge and few rigid requirements.
Example: Small data processing or Inventory management system.
2. Semidetached
It is an intermediate (in terms of size and complexity) project, where the team having
mixed experience (both experience & inexperience resources) to deals with
rigid/nonrigid requirements.
Example: Banking software or Traffic light control software.
Calculate the project cost by using CoCoMo:

3. Embedded
This project having a high level of complexity with a large team size by
considering all sets of parameters (software, hardware and operational).
Example: Banking software or Traffic light control software.
Equation used:
PM=a(KOSI)b^k EAF
TDEV=C(PM)d
Where:
PM is the efforts in persons month
Calculate the project cost by using CoCoMo

EAF is the effort adjustment factor.


TDEV is the schedule time.
KOSI is the NO. of lines of code.
a, b , c & d are constant variables.

PROJECT
a b c d
TYPE
Organic 2.4 1.05 2.5 0.38

Semidetached 3 1.12 2.5 0.35

Embedded 3.6 1.2 2.5 0.32


Calculate the project cost by using CoCoMo:

Cost drivers:
The EAF is used to tailor your estimation based on condition of the
development environment. For the intermediate there are 15
different cost drivers that can be used to calculate your EAF.
They are grouped into four categories:
• Project attributes . Personal attributes

• Computer attributes . Product attributes


Each of these cost drivers is related on a scale very low to extra
high depending on how that cost drivers will effect your
development. These rating are based on statistical analysis of
historical data collected from 83 projects.
Q4: Difference btween Software testing and debugging
and explain debugging teachniques any two?
Parameters Testing Debugging
Basics It is the process using which we It is the process using which
find errors and bugs. we correct the bugs that we
found during the testing
process.
Code Failure We can identify the failure of We use this process to provide
any implemented code using this the code failure with an
process. absolution.
Errors Errors get displayed in this Errors get deducted and
process. dissolved in this process.
Performer A tester performs testing on any Either a developer or a
given software or application. programmer performs this step
of debugging in an application
or software.
Design Knowledge One does not need any design Design knowledge is a
Insiders and Outsiders Both- insiders and outsiders can Only an insider can perform
perform testing. debugging. No outsider can
perform it on the intended
software.
Mode of Operation The process of testing can be both- The process of debugging must
automated as well as manual. always be manual since we are
fixing the available errors and
bugs. We cannot debug a system/
software/ application on auto-
pilot.
Basis of Operation The process of testing is based on The process of debugging is based
various levels of testing- system on various types of bugs present in
testing, integration testing, unit a system.
testing, etc.
SDLC It is a stage of SDLC (Software It’s not at all an aspect of the
Development Life Cycle). SDLC. It rather occurs as a
consequence of the process of
testing.
Moment of Initiation This process can begin after we This process can begin after the
Software Debugging Techniques:

• To perform the debugging process easily and efficiently, it is necessary to follow some techniques. The
most commonly used debugging strategies are,

•Debugging by brute force


•Induction strategy
•Deduction strategy
•Backtracking strategy and
•Debugging by testing.

Debugging by brute force is the most commonly used technique. This is done by taking memory dumps
of the program which contains a large amount of information with intermediate values and analyzing them,
but analyzing the information and finding the bugs leads to a waste of time and effort.
Induction strategy includes the Location of relevant data, the Organization of data, the Devising
hypothesis (provides possible causes of errors), and the Proving hypothesis.
Deduction strategy includes Identification of possible causes of bugs or hypothesis Elimination of
possible causes using the information Refining of the hypothesis( analyzing one-by-one)
The backtracking strategy is used to locate errors in small programs. When an error occurs, the program is
traced one step backward during the evaluation of values to find the cause of bug or error.
Q4: Draw a zero level(context level)and level 1 DFD for a simple
calculator having four functions (add,subtract,multiply and
divide)?

• Context level DFD:

Calcul-
USER Input data -ate
system

Calculated result
Level 1 DFD:

Digital
USER Input data conversio
n

Mul
subtra Divi
Add tipl
ct de
y

END result
DAC

You might also like