Assignment No: - 1
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.
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
a) V(G) = P + 1
Where P = No. of Predicate Node
=5+1
=6
Figure: Data Flow Graph of Bubble Sort
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
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.
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
𝑉
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: -
Min+Value 2 2 1901