Software Assignment
Software Assignment
ASSIGNMENT – 1
1. What Is Software Crisis and what are the reasons behind it? Discuss.
Ans: In computing science “ Software crisis” means difficulty of writing useful and efficient
computer programs in the required time.
The reasons behind it are:
a. lack of proper communication between user and developers.
b. increase in size of software
c. increase in cost as well as complexity of developing a software
d. project management problem
e. lack of proper understanding of the problem
5. Discuss about the Software Development Life Cycle? Why is it important to adhere to any
life cycle model while developing a large software product?
Ans: A software development life cycle (SDLC) model is a conceptual framework describing all
activities in a software development project from planning to maintenance. This process is
associated with several models, each including a variety of tasks and activities.
It is important to adhere to any life cycle model while developing a large software product because
of following reasons:
7. What is Software Engineering? What are the responsibilities and challenges of Software
Engineers?
Ans: Software Engineering is an engineering branch related to the evolution of software product
using well-defined scientific principles, techniques, and procedures.
Responsibilities of software Engineers are:
a) Developing and directing software system validation and testing methods.
b) Directing our software programming initiatives
c) Overseeing the development of documentation.
d) Working closely with clients and cross-functional departments to communicate project statuses
and proposals.
e) Analysing data to effectively coordinate the installation of new systems or the modification of
existing systems.
f) Managing the software development life cycle.
g) Monitoring system performance.
h) Testing new software and fixing bugs.
Similarly, some challenges for software Engineers are:-
i. Rapid technology advancement.
ii. Increasing customer demands.
iii. Time limitations.
iv. Limited infrastructure/resources.
v. Conflicts with software testing teams.
9. List the advantages of using waterfall model over build and fix model.
Ans: The advantages of waterfall model over build and fix model are:-
• Cost of waterfall model is lower than the build and fix model.
• Maintenance is more easier in waterfall model than the build and fix model.
• Waterfall model is more planned structure while build and fix model is unplanned structure.
• Resultant product is often satisfying using waterfall model than that of build and fix model.
• Documentation is produced in waterfall model while no Documentation is produced in the
build and fix model.
10. Software costs are increasing as hardware costs continue to decline. Discuss
Ans: In the recent years, hardware technologies has made great advances. A simple and well
understood tasks are encoded in the hardware while least understood task are encoded in the
software. Hence, the demand of software is increasing and the size of software application is also
increasing. This problem has often resulted into the “software crisis”.
The graph showing the cost of hardware and software is:-
11. Adding manpower to a late software project makes it later. Discuss
Ans: This is Brooks’ law. It states that, “When a person is added to a project team, and the project is
• An increase in staff drives communication overhead, including the number and variety of
communication channels.
14. Write the characteristics of Prototype model. Discuss the different types of prototypes and
depict a scenario, for each type of prototype.
Ans: Prototype model is a Software Development model in which a prototype is built, test, and then
reworked when needed until an acceptable prototype is achieved.
The characteristics of prototype model are:-
(a) The customers get to see the partial product early in the life cycle. This ensures a greater
level of customer satisfaction and comfort.
(b) New requirements can be easily accommodated as there is scope for refinement.
(c) Missing functionalities can be easily figured out.
(d) Errors can be detected much earlier thereby saving a lot of effort and cost, besides
enhancing the quality of the software.
(e) The developed prototype can be reused by the developer for more complicated projects
in the future.
(f) Flexibility in design.
The types of prototyping model are:-
Rapid Throwaway Prototype:
Rapid throwaway is based on the preliminary requirement. It is quickly developed to show how the
requirement will look visually. The customer's feedback helps drives changes to the requirement,
and the prototype is again created until the requirement is baselined.
In this method, a developed prototype will be discarded and will not be a part of the ultimately
accepted prototype. This technique is useful for exploring ideas and getting instant feedback for
customer requirements.
Evolutionary Prototyping:
Here, the prototype developed is incrementally refined based on customer's feedback until it is
finally accepted. It helps you to save time as well as effort. That's because developing a prototype
from scratch for every interaction of the process can sometimes be very frustrating.
This model is helpful for a project which uses a new technology that is not well understood. It is
also used for a complex project where every functionality must be checked once. It is helpful when
the requirement is not stable or not understood clearly at the initial stage.
Incremental Prototyping:
In incremental Prototyping, the final product is decimated into different small prototypes and
developed individually. Eventually, the different prototypes are merged into a single product. This
method is helpful to reduce the feedback time between the user and the application development
team.
Extreme Prototyping:
Extreme prototyping method is mostly used for web development. It is consists of three sequential
phases.
1.Basic prototype with all the existing page is present in the HTML format.
2.You can simulate data process using a prototype services layer.
3.The services are implemented and integrated into the final prototype.
15. Explain the spiral model of software development. What are the limitations of such
model?
Ans: 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 development team in Spiral-SDLC model starts with a small set of requirement 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 is regarded as the Meta model because it subsumes all the other SDLC models. For example, a
single loop spiral actually represents the Iterative waterfall model. The spiral model incorporates the
stepwise approach of the classical waterfall model. The spiral model uses the approach of
Prototyping Model by building a prototype at the start of each phase as a risk handling technique.
Also, the spiral model can be considered as supporting the evolutionary model – the iterations along
the spiral can be considered as evolutionary levels through which the complete system is built.