Download as pdf or txt
Download as pdf or txt
You are on page 1of 5

PRINCIPLES OF SOFTWARE

ENGINEERING-ASSIGNMENT

20VV1A1221

H. Vamshi Gangadhar
ASSIGNMENT 2

1 What is a Model?

Model is form of description often adopted in software development. They are abstractions
used to represent and communicate what is important, devoid of unnecessary detail, and to
help developers deal with the complexity of the problem being investigated or the solution
being developed.

Software models are ways of expressing a software design. Usually some sort of abstract
language or pictures are used to express the software design. For object-oriented software,
an object modeling language such as UML is used to develop and express the software
design.Choosing right model for developing of the software product or application is very
important. Based on the model the development and testing processes are carried out.

The software development models are the various processes or methodologies that are being
selected for the development of the project depending on the project’s aims and goals. There
are many development life cycle models that have been developed in order to achieve different
required objectives. The models specify the various stages of the process and the order in
which they are carried out.

Figure 1: model
ASSIGNMENT 3

2 Why develop a Model ? That is, how does construct-


ing a model help?

Purpose of Modeling

1.Modeling is widely used in science and engineering to provide abstractions of a system at


some level of precision and detail. The model is then analyzed in order to obtain a better
understanding of the system being developed.

2.Models are representations that can aid in defining, analyzing, and communicating a set of
concepts. System models are specifically developed to support analysis, specification, design,
verification, and validation of a system, as well as to communicate certain information.

Advantages of Modeling

1. It improves the productivity of the development team

2. It reduces the number of defects in the final code

3. It improves the understandability of the system (which btw, eases the integration of new
team members)

4. It increases the decomposition and modularization of the system

5. It facilitates the system’s evolution and maintenance

6. It facilitates the reuse of parts of the system in new projects

7. It helps to document the entire system.

8. It helps to make templates for the construction in the system.

9. It helps in the visualization of the system.

10. Modeling is entirely accepted by the engineering technique.


ASSIGNMENT 4

3 Examples of Models

1. Waterfall Model

The classical waterfall model is the basic software development life cycle model.This model
considers that one phase can be started after the completion of the previous phase. That is
the output of one phase will be the input to the next phase. Thus the development process
can be considered as a sequential flow in the waterfall. Here the phases do not overlap with
each other.

2. RAD Model

RAD Model or Rapid Application Development model is a software development process


based on prototyping without any specific planning. In RAD model, there is less attention
paid to the planning and more priority is given to the development tasks. It targets at
developing software in a short span of time.

3. Spiral Model

Spiral model is one of the most important Software Development Life Cycle models, which
provides support for Risk Handling. In its diagrammatic representation, it looks like a spiral
with many loops. The exact number of loops of the spiral is unknown and can vary from
project to project. Each loop of the spiral is called a Phase of the software development
process.

4. V-Model

The V-model, where process executes in a sequential manner in V-shape. It is also known
as Verification and Validation model. It is based on the association of a testing phase for
each corresponding development stage. Development of each step directly associated with
the testing phase. The next phase starts only after completion of the previous phase i.e. for
each development activity, there is a testing activity corresponding to it.

5. Prototype Model

Prototyping is defined as the process of developing a working replication of a product or


system that has to be engineered. It offers a small scale facsimile of the end product and is
used for obtaining customer feedback.It is a software development model in which prototype
is built, tested, and reworked until an acceptable prototype is achieved.
ASSIGNMENT 5

6. Agile Model

The meaning of Agile is swift or versatile.”Agile process model” refers to a software devel-
opment approach based on iterative development. Agile methods break tasks into smaller
iterations, or parts do not directly involve long term planning.

7. Iterative Incremental Model

In an Iterative Incremental model, initially, a partial implementation of a total system is


constructed so that it will be in a deliverable state. Increased functionality is added. Defects,
if any, from the prior delivery are fixed and the working product is delivered. The process is
repeated until the entire product development is completed.

Figure 2: examples of models

You might also like