It-3003 (Se) - CS Mid Sept 2023
It-3003 (Se) - CS Mid Sept 2023
Semester:5
Semester: 4th
Subject
Sub & Name:-
Code: Software
OS & CSEngineering,
- 2009 IT-3003
Branch (s): - CS&E/IT/CSSE/CSCE
Branch (s): CSE, IT, CSSE, CSCE
d) What is the difference between the functional and the non-functional requirements of a
system? Identify at least two functional requirements of online Railway Reservation
System.
th
Semester:5
Semester: 4th
Subject
Sub & Name:-
Code: Software
OS & CSEngineering,
- 2009 IT-3003
Branch (s): - CS&E/IT/CSSE/CSCE
Branch (s): CSE, IT, CSSE, CSCE
e) What do you mean by project size? What are the popular metrics to measure project size?
Accurate estimation of the problem size is fundamental to satisfactory estimation of
effort, time duration and cost of a software project. In order to be able to accurately
estimate the project size, some important metrics should be defined in terms of which the
project size can be expressed. The size of a problem is obviously not the number of bytes
that the source code occupies. It is neither the byte size of the executable code. The
project size is a measure of the problem complexity in terms of the effort and time
required to develop the product.
Length (LOC)
Functionality
Complexity
2. (a). Briefly explain the important differences and similarities between the incremental and evolutionary
models of SDLCs.
In the Evolutionary model, the complete cycle of activities is repeated for each version, whereas
in the Incremental model, the User Requirements Definition, System Requirements Definition,
and System Design/Architecture activities are factored out of the sequence of incremental
deliveries and occur only once, at the outset of the project. This distinction is important. It
means that the sum of all increments represents the totality of a single system. It means that the
sum of all increments represents the totality of a single system, which must be analyzed and
designed once at the start of the project. Thereafter, the physical increments are individually
designed, tested, and delivered at successive points in time.
The aspect of requirements analysis and design once at the start of the project is not present in
the evolutionary model in which the coupling between successive versions is much looser.
Indeed, in the evolutionary model, compatibility between successive versions, although
desirable, is by no means assured. In the incremental model, on the other hand, compatibility
between successive increments is de rigueur. [ 5
Marks ]
(b). What do you understand by the problems of overspecification, inconsistent requirements,
and noise in an SRS document? Explain each of these with suitable examples. [ 5 Marks ]
Over specification
It occurs when the analyst tries to address the "how to" aspects in the SRS document. It limits
the imagination of the developers/designers to come up with a a good solution. For example,
in a movie database application, you don’t need to specify how the movies are stored in the
database, and which algorithm you’re using to fetch them.
Noise
Noise refers to the presence of material not directly relevant to the software development
process. It is hardly of any use to the software developers and would unnecessarily clutter the
SRS document, diverting the attention from the crucial points. For example, In the register customer
th
Semester:5
Semester: 4th
Subject
Sub & Name:-
Code: Software
OS & CSEngineering,
- 2009 IT-3003
Branch (s): - CS&E/IT/CSSE/CSCE
Branch (s): CSE, IT, CSSE, CSCE
function, information like, who mans the customer registration department and at what time
do they work, etc., are considered as noise.
Inconsistent
Parts of the requirements negate information in other requirements. Example: One customer says
turn off heater and open water shower when temperature > 100 C. Another customer says
turn off heater and turn ON cooler when temperature > 100 C
3. (a). “According to the COCOMO model, if the size of a software is increased by two times, the
time to develop the product usually increases by less than two times”, justfy your answer.
When the size of the product increases two times, the time to develop does not double but rises
moderately.
The development time versus the product size in KLOC is plotted in fig. From fig it can be
observed that the development time is a sub linear function of the size of the product, i.e. when
the size of the product increases by two times, the time to develop the product does not double
but rises moderately. This can be explained by the fact that for larger products, a larger number
of activities which can be carried out concurrently can be identified. The parallel activities can
be carried out simultaneously by the engineers. This reduces the time to complete the project.
Further, from fig, it can be observed that the development time is roughly the same for all three
categories of products. For example, a 60 KLOC program can be developed in approximately 18
months, regardless of whether it is of organic, semidetached, or embedded type.
[ 5 Marks ]
(b). Calculate Function point for an upcoming online healthcare website project which has the
following function and feature details -
Number of User Inputs: 40, Number of User outputs: 20, Number of user enquiries: 20. The
data will be stored and retrieved from the patient file, medicine details file and order derails
(transaction) file. The application has two external interfaces for the payment.
th
Semester:5
Semester: 4th
Subject
Sub & Name:-
Code: Software
OS & CSEngineering,
- 2009 IT-3003
Branch (s): - CS&E/IT/CSSE/CSCE
Branch (s): CSE, IT, CSSE, CSCE
From the above details, 20 user inputs are simple and remaining inputs are complex. All
outputs are complex. 10 user enquiries are simple searches and hence, can be considered to be
as simple. Remaining enquiries are complex. All data-structures/logical files are complex. Both
the interfaces are simple. All 14 influencing parameters have moderate impact. Hence, Degree of
influence is 42. [ 5 Marks ]
To calculate the Function Point (FP) for the upcoming online healthcare website project using
the Function Point Analysis method, you can follow these steps:
Rounded to the nearest whole number, the adjusted function points (AFP) for the project is
approximately 350.
th
Semester:5
Semester: 4th
Subject
Sub & Name:-
Code: Software
OS & CSEngineering,
- 2009 IT-3003
Branch (s): - CS&E/IT/CSSE/CSCE
Branch (s): CSE, IT, CSSE, CSCE
4. (a). Consider a software project development scenario that consists of the activities namely A, B, C, D, E, F,
G, H, I, and J. The duration, in weeks, of the activities is 10, 6, 7, 5, 9, 8, 4, 12, 7, and 9 respectively.
While doing the analysis, the team observed that activities A, D, and G can be started in parallel.
Activity B can be started after the completion of activity A. Again, activities C can be started only when
B and D gets over. Activities E can start only if the activity C is complete. After the completion of
activity E, the team can start activity F and H. When activity G is complete the team can initiate the
work on activities H and I. After the completion of activity I, activity J can be initiated. Do the
following for the above discussed scenario:
(b). What are the appropriate circumstances for using the RAD model? Discuss the strength and
weakness of the RAD model. Also, compare the RAD model with the Spiral model. [ 5 Marks ]
Project decisions: can be made by a small number of people who are available and co-located
Project team: very small (six people)
Project technical architecture: defined and clear and the key technology components are well
known
th
Semester:5
Semester: 4th
Subject
Sub & Name:-
Code: Software
OS & CSEngineering,
- 2009 IT-3003
Branch (s): - CS&E/IT/CSSE/CSCE
Branch (s): CSE, IT, CSSE, CSCE
Project Technical requirements: are reasonable and well within the capability of the technology
being used.
RAD Strengths:
Reduced cycle time and improved productivity with fewer people means lower costs
RAD Weaknesses:
th
Semester:5
Semester: 4th
Subject
Sub & Name:-
Code: Software
OS & CSEngineering,
- 2009 IT-3003
Branch (s): - CS&E/IT/CSSE/CSCE
Branch (s): CSE, IT, CSSE, CSCE
5 (a). Assume that the development of a software project requires a large number of team members ,and a lot of
innovations. The requirements are not stable and hence, lots of risks are associated with the project. The
size of the project has been estimated to be 20,100 source lines of code. Assume that the average salary
of software engineers be Rs. 40,000/- per month. Calculate the following:
[ 5 Marks ]
There seems to be a two-front answer to the above questions, as there exists two different
scenarios:
(i) first on the basis of the number of lines of code, and (ii) the second on the basis of keywords
like “ large number of team
members”, “ lot of innovations”, and “ lots of risks are associated”. In view of the above
scenarios:
(i) the first case can be classified into organic Basic COCOMO (in between 2-50 KLOC, in
question we have 20.1 KLOC)
(ii) for the second case, we land into the embedded Basic COCOMO.
Accordingly, we calculate the values based on both the cases.
Effort required to develop the software product = 2.4 (KLOC) 1.05PM = 2.4(20.1)1.05= 56.04 PM
Development time = 2.5 (Effort)0.38 Months= 2.5 (56.04)0.38 Months= 11.54 Months
Productivity = (Size / Effort) = (20.1/56.04) KLOC/PM = 0.3586 KLOC/PM
Effort required to develop the software product = 3.6 (KLOC) 1.20PM= 3.6(20.1)1.20= 131.86
PM
Development time = 2.5 (Effort)0.32 Months= 2.5 (131.86)0.32 Months= 11.92 Months
Productivity = (Size / Effort) = (20.1/131.86) KLOC/PM = 0.1524 KLOC/PM
(b). What do you understand by the principles of abstraction and decomposition? Why are these two
principles considered important in software engineering? Explain the problems that these two
principles target to solve? Support your answer using suitable examples. [ 5 Marks ]
Abstraction:
It refers to the construction of a simpler version of a problem by ignoring the details. The
principle of constructing an abstraction is popularly known as modeling .
It is the simplification of a problem by focusing on only one aspect of the problem while
omitting all other aspects. When using the principle of abstraction to understand a complex
problem, we focus our attention on only one or two specific aspects of the problem and ignore
the rest.
Decomposition:
Decomposition is a process of breaking down. It will be breaking down functions into smaller
parts. It is another important principle of software engineering to handle problem complexity.
This principle is profusely made use of by several software engineering techniques to contain the
exponential growth of the perceived problem complexity. The decomposition principle is
popularly is says the divide and conquer principle.
Functional Decomposition:
It is a term that engineers use to describe a set of steps in which they break down the overall
function of a device, system, or process into its smaller parts.