0% found this document useful (0 votes)
39 views10 pages

Assignment No: - 1

The Y-model is a software development life cycle model that emphasizes reuse of components. It separates development into two branches - one for developing reusable components (development for reuse) and one for reusing existing components (development with reuse). The model supports both types of development and includes phases like domain engineering, framework development, component assembly, testing, and archiving reusable components. The Spiral model is a risk-driven iterative model where each phase begins with planning, risk analysis, engineering, and evaluation. It is suitable for large, risky projects where requirements are unclear. Software maintenance includes corrective, adaptive, perfective and preventive maintenance to fix bugs, adapt to new environments, improve functionality, and prevent future issues.

Uploaded by

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

Assignment No: - 1

The Y-model is a software development life cycle model that emphasizes reuse of components. It separates development into two branches - one for developing reusable components (development for reuse) and one for reusing existing components (development with reuse). The model supports both types of development and includes phases like domain engineering, framework development, component assembly, testing, and archiving reusable components. The Spiral model is a risk-driven iterative model where each phase begins with planning, risk analysis, engineering, and evaluation. It is suitable for large, risky projects where requirements are unclear. Software maintenance includes corrective, adaptive, perfective and preventive maintenance to fix bugs, adapt to new environments, improve functionality, and prevent future issues.

Uploaded by

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

Assignment No: - 1

Ques:1. Describe any two of the following Software Life Cycle Model
Spiral Model, Waterfall Model, X Model, Y Model
Ans:1.
a) Y-Model
Independent work carried out in software reusability, object-orientation, and software architecture has
reached a point at which many activities can be integrated to yield a new coherent approach to product
line integration. Traditional software life-cycle models do not encourage reusability within their phases.
Hence, a software life-cycle model that emphasizes the importance of incorporating COTSs during
software development for the production of multiple products is in demand.
The Y-model as taken in Figure 1 has been proposed as a feasible solution. Our approach focuses on
a collection of components within a particular application domain, and encourages reuse of components
from reusable libraries within that application domain.
• Component reuse involves both "development with reuse" and "development for reuse".
• Our approach addresses the mechanisms used when components are retrieved from and
catalogued into a reusable library of core assets.
• Initially, the software engineer identifies potentially reusable components from existing reusable
libraries of core assets.
• The components are then selected, adapted and reused through composition, generalization
and specialization mechanisms. At the end of software development, there may be many new
reusable components need to be validated, classified and stored as core assets.
Based on available experience, the use of the Y-model appears to cover the likely phases of large
software development and enforces software reuse.
• This model supports “development with reuse” through component assembly, as well as
“development for reuse” through component cataloguing, so that in the future, such components
can be reused in other systems in the same software family.
• Y model was proposed in 2005 by Luiz Fernando Capretz. Considering the concept of
reusability, Y model separate the development of components. This model allows iteration and
overlapping of stages.
• Although the main phases may overlap each other and iteration is allowed.
The planned phases are:
▪ domain engineering,
▪ frame working,
▪ assembly,
▪ archiving,
▪ system analysis,
▪ Design,
▪ implementation,
▪ testing,
▪ deployment and
▪ maintenance.
➔ The model resembles the letter Y in English from where the name Y model came in existence.

The reusability within this life cycle is smoother and more effective than within the traditional models
because it integrates at its core, the concern for reuse and the mechanisms to achieve it.
o There is an upper layer that shows the component templates and a lower layer that consists
of run-time objects that depicts the behavior of a particular software system.
o The development of a component should therefore be with generality and reuse in mind
placing perhaps less emphasis on satisfying the specific needs of an application that is being
developed.
◆ The model has three branches showing the main phases of development. Various phases
are shown in Fig.1.
At intersection of three branches is the assembly phase. Assembly of reusable components can be
done after domain engineering and frame working where reusable components and their
interrelationships are identified in terms of application vocabulary.
Parallel to domain engineering, system analysis and design phases are carried out. The results of
system analysis and designing phase are useful for adapting the selected components according to
the system design requirements.
Next step is to assemble and implement the system that is composed of various reusable
components glued together in a framework. Component testing and system testing is also an
important phase to assure quality of final product.
b) Spiral-Model: -

Spiral Model is a combination of a waterfall model and iterative model. Each phase in spiral model
begins with a design goal and ends with the client reviewing the progress. The spiral model was first
mentioned by Barry Boehm in his 1986 paper.
The development team in Spiral-SDLC model starts with a small set of requirements and goes
through each development phase for those set of requirements. The software engineering team adds
functionality for the additional requirement in every-increasing spirals until the application is ready for
the production phase.
It’s a risk-driven model which means that the overall success of a project highly depends on the
risk’s analysis phase. Risk analysis requires specific expertise on every iteration. Thus, to review and
analyze the project from time to time, special skills are needed.
At a first sight, it may seem like this model is complicated and clumsy, and there are no reasons to
consider this approach as one of your options. But, like any other SDLC models, this one, besides its
disadvantages, has its unique strong sides.
For example, there’s a possibility to add some additional functionality at the last stages of software
product development. Since risk monitoring and regular expertise are core characteristics of this
approach, the overall project becomes more transparent.

Spiral Model Phases

Spiral Activities performed during phase


Model
Phases

Planning •• It includes estimating the cost, schedule and resources for the iteration. It also
involves understanding the system requirements for continuous communication
between the system analyst and the customer

Risk •• Identification of potential risk is done while risk mitigation strategy is planned and
Analysis finalized

Engineering •• It includes testing, coding and deploying software at the customer site

Evaluation •• Evaluation of software by the customer. Also, includes identifying and monitoring
risks such as schedule slippage and cost overrun
When to use Spiral Methodology

▪ When project is large


▪ When releases are required to be frequent
▪ When creation of a prototype is applicable
▪ When risk and costs evaluation is important
▪ For medium to high-risk projects
▪ When requirements are unclear and complex
▪ When changes may require at any time
▪ When long term project commitment is not feasible due to changes in economic priorities

Figure:2 Spiral Model


Ques:2. Calculate the Cyclomatic Complexity with the help of data flow graph for by writing
source code in any language for Bubble Sort.
Ans:2.
0. #include <stdio.h>
1. int main()
2. {
3. int a[100],number,I,j,temp;
4. printf(“\n Please Enter the total no. element”);
5. scanf(“%d”,&number);
6. printf(“\n Please Enter the Array element”);
7. for(i=0;i<number; i++)
8. scanf(“%d”,&a[i]);
9. for(i=0;i<number-1;i++)
10. {
11. For(j=0;j<number-i-1;j++)
12. {
13. If(a[j]>a[j+1])
14. {
15. Temp =a[j];
16. a[j] =a[j+1];
17. a[j+1] =temp;
18. }
19. }
20. }
21. printf(“\n List stored in Ascending Order”);
22. for(i=0;i<number;i++)
23. {
24. printf(“%d /t”,a[i]);
25. }
26. printf(“\n”);
27. return 0;
28. }

a) V(G) = P + 1
Where P = No. of Predicate Node
=5+1
=6
Figure: Data Flow Graph of Bubble Sort

b) Number of Region = No. of closed cycles


=6

c) V(G) = E – N + P
where E = Total no. of Edges, N = Total no. of Nodes, P = connected component
= 17 – 12 + 1
=5+1
=6

So, the cyclomatic complexity is 6


Ques:3. Describe maintenance and explain various type of software maintenance.
Ans:3. Software Maintenance is the process of modifying a software product after it has been delivered
to the customer. The main purpose of software maintenance is to modify and update software
application after delivery to correct faults and to improve performance.
Need for Maintenance –
Software Maintenance must be performed in order to:
• Correct faults.
• Improve the design.
• Implement enhancements.
• Interface with other systems.
• Accommodate programs so that different hardware, software, system features, and
telecommunications facilities can be used.
• Migrate legacy software.
• Retire software.

Categories of Software Maintenance –


Maintenance can be divided into the following:
1. Corrective maintenance: -Corrective maintenance of a software product may be essential
either to rectify some bugs observed while the system is in use, or to enhance the performance
of the system.

2. Adaptive maintenance: -This includes modifications and updations when the customers need
the product to run on new platforms, on new operating systems, or when they need the product
to interface with new hardware and software.

3. Perfective maintenance: A software product needs maintenance to support the new features
that the users want or to change different types of functionalities of the system according to the
customer demands.

4. Preventive maintenance: This type of maintenance includes modifications and updations to


prevent future problems of the software. It goals to attend problems, which are not significant at
this moment but may cause serious issues in future.

Maintenance Activities
Ques:4. In module implementation of project, there are 13 unique operators, 9 unique operands,
35 total operators, 23 total operands appearing in the module implementation. Calculate its
Halsted efforts.
Ans:4. Given that: -
There are 13 unique operators (𝑛1 )
There are 9 unique operands (𝑛2 )
35 total operators (𝑁1 )
23 total operands (𝑁2 )

1. Program length(N) = 𝑁1 + 𝑁2
= 35+23
= 58

2. Program Vocabulary(n) = 𝑛1 + 𝑛2
= 13 + 9
= 22

3. Volume(V) = N*𝑙𝑜𝑔2 (n)


= 58*𝑙𝑜𝑔2 (22)
≅ 58*4.4594
≅ 258.647

𝑉
4. Effort(E) = x𝑛2
2
258.647
= x 𝑛2
2

= 129.323 x 23
≅ 2974.42
• Hence the Halsted efforts is approximately equal to 2974.42 having 13 unique operators, 9
unique operands,35 total operators, 23 total operands.
• Program length(N)= 58
• Program Vocabulary(n)= 22
• Volume(V)= 258.647(approx.)
Ques:5. A program determines the next date in the calendar. Its input is entered in the form of
<ddmmyyyy> with the following range 1< mm <12, 1< dd <31 and 1900< yyyy <2025.
Its output would be the next date or it will display “Invalid date”. Design test case for this
program using Boundary Value Checking and Robust Testing.
Ans:5.
a) Test cases using BVC: -
Since where are three variable, month, day and year, the total no. of test cases will be 4n+1=13.
The set of boundary value is shown: -

Month Day Year

Min Value 1 1 1900

Min+Value 2 2 1901

Max Value 12 31 2025

Max − Value 11 30 2024

Nominal Value 6 15 1962

Using these values test case can be designed: -

Test Case Id Month Day Year Expected O/P


1 1 15 1962 16-1-1962
2 2 15 1962 16-2-1962
3 11 15 1962 16-11-1962
4 12 15 1962 16-12-1962
5 6 1 1962 2-1-1962
6 6 2 1962 3-2-1962
7 6 30 1962 1-7-1962
8 6 31 1962 Invalid I/P
9 6 15 1900 16-6-1900
10 6 15 1901 16-6-1901
11 6 15 2024 16-6-2024
12 6 15 2025 16-6-2025
13 6 15 1962 16-6-1962
• Test cases using Robust testing: -
The total no. of test cases will be 6n+1=19. The set Boundary Values is shown below: -

Month Day Year


Min−Value 0 0 1899
Min Value 1 1 1900
Min+Value 2 2 1901
Max − Value 12 31 2024
Max Value 11 30 2025
Max + Value 13 32 2026
Nominal Value 6 15 1962

Using these values, test cases can be designed: -

Test Case Id Month Day Year Expected O/P


1 0 15 1962 Invalid Date
2 1 15 1962 16-1-1962
3 2 15 1962 16-2-1962
4 11 15 1962 16-11-1962
5 12 15 1962 16-12-1962
6 13 15 1962 Invalid Date
7 6 0 1962 Invalid Date
8 6 1 1962 2-6-1962
9 6 2 1962 3-6-1962
10 6 30 1962 1-7-1962
11 6 31 1962 Invalid Date
12 6 32 1962 Invalid Date
13 6 15 1899 Invalid Date
14 6 15 1900 16-6-1900
15 6 15 1901 16-6-1901
16 6 15 2024 16-6-2024
17 6 15 2025 16-6-2025
18 6 15 2026 Invalid Date
19 6 15 1962 16-6-1962

You might also like