You are on page 1of 8

NAME: SABIN KHADKA

SYSTEM ID: 2017006101


ROLL NO: 170101184
B.TECH, CSE – A (G2)
SOFTWARE ENGINEERING 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

2. Discuss Spiral Model and its merits and demerits.


Ans: The spiral model is regarded as the meta model. It consists of 4 major steps which are
describes below:
a. The Planning Phase:
In this first phase requirements are established, in the shape of Business Requirement
Specifications ‘BRS’ and System Requirement Specifications ‘SRS’. The developers will try to
understand the objectives of the product and consider design options looking at any constraints such
as costs, technology, and timescales.
b. The Risk Analysis:
This phase focuses on identifying and evaluating risk, and considering alternative solutions. The
development team will try to find implementation approaches that deal with any constraints, as well
as operational and technical issues.
c. The Engineering Phase:
This is the phase where software is developed and tested, using Waterfall or incremental
development processes. Because of the successive cycles and appraisals of the end product, the
software can be said to ‘evolve’ throughout the overall project.
d. The Evaluation Phase:
In the evaluation phase, the current project output is reviewed and evaluated before the project
moves on to the next spiral. Any critical issues will be identified here, and the necessary steps will
be taken to deal with them.

3. What is important- Software Process or Product? Comment.


Ans: Both process and product are important. Every customers want a good product. No one will
entertain the product having technical flaws. Every product should meet their objectives. And a
proper product needs a proper process for its development. Without a proper process we cannot
obtain a proper product. So, both- software process and product are important.

4. “Well Begun is half done”. Explain in terms of software development.


Ans: Error at the beginning, though quite small, bears the same ratio to the errors in the other parts.
Hence, in the long run, it bear a significant error. A software with a proper plan and execution in the
beginning has high possibility of making a proper product. Moreover, a good start give any
developers an extra boost of confidence.
An initial problem in developing any product can certainly hamper its final product. A bad start
always demotivate a developers. So we can say that “well begun is half done”.

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:

a. It gives proper direction for the project.


b. It can help company to avoid heavy loss.
c. Potential problems are identified immediately.
d. It helps to deliver a good product through a good process.
e. Customer satisfaction is met.
f. It defines who does what, when and how in a company.

6. Why is difficult to improve the software Process? Comment.


Ans: Software process improvement is the biggest hurdle for any software developer. It is the main
factor that is responsible for producing the best quality of software that is maintainable. So it is very
important to choose a perfect software process. Some reasons for why it is difficult to improve the
software process are:-
a. Not enough time
There is forever a shortage of time because upper management is always demanding more software
of higher quality in minimum possible time. An unrealistic schedule occasionally leaves insufficient
time to do the essential project work.
b. Lack of knowledge
Several software developers aren’t aware of the best practices of the industry. In fact, best practices
obtainable in literature aren’t being used widely in software development.
c. Wrong motivations
The process enhancement initiatives are taken for wrong reasons like sometimes contractor is
demanding achievement of CMM or occasionally senior management is directing the organization
to achieve CMM without a clear explanation why improvement was needed and its benefits.
d. Insufficient commitments
The software enhancement fails due to a lack of true commitment. Management sets no outlook
from the development community regarding process improvement.

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.

8. Compare Evolutionary Development model with Iterative Enhancement Model.


Ans: Iterative Enhancement Model: This model has the similar phases as the waterfall model, but
with fewer restrictions. In general the phases occur in the same order as in the waterfall model but
these may be conducted in several cycles. A utilizable product is released at the end of the each
cycle with each release providing additional functionality.
Evolutionary Development Model: Evolutionary development model bear a resemblance to
iterative enhancement model. The similar phases as defined for the waterfall model occur here in a
cyclical fashion. This model is different from iterative enhancement model in the sense that this
doesn't require an useable product at the end of each cycle. In evolutionary development
requirements are implemented by category rather than by priority.

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

already late, the project time is longer, rather than shorter.

This is due to the following two reasons:-


• "Ramp up" time, which is required by new project members for productivity because of the
complex nature of software projects are complex. This takes existing resources (personnel)
away from active development and places them in training roles.

• An increase in staff drives communication overhead, including the number and variety of
communication channels.

12. Discuss Process Improving Learning Curve.


Ans:
This is the process improving graph. During initial state and improvement state we can see the
productivity is same. When we start learning then the curve decrease and there occurs one state
where we should not quit.
The process improvement is the hectic process because of following reasons:-
a) Not enough time.
b) Lack of commitment\
c) lack of knowledge
d) Wrong motivation.

13. Define Measure, Metric and Measurement with example.


Ans: Software Measurement: A software measurement is a quantifiable dimension, attribute, or
amount of any aspect of a software program, product, or process. It is the raw data which are
associated with various elements of the software process and product.
Metrics: Metrics (or indicators) are computed from measures. They are quantifiable indices used to
compare software products, processes, or projects or to predict their outcomes. With metrics, we
can: • Monitor requirements, • Predict development resources, • Track development progress, and •
Understand maintenance costs.

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.

The limitation of Spiral model are:-


➢Complex: The Spiral Model is much more complex than other SDLC models.
➢Expensive: Spiral Model is not suitable for small projects as it is expensive.
➢Too much dependable on Risk Analysis: The successful completion of the project is very much
dependent on Risk Analysis. Without very highly experienced expertise, it is going to be a failure to
develop a project using this model.
➢Difficulty in time management: As the number of phases is unknown at the start of the project,
so time estimation is very difficult.

You might also like