0% found this document useful (0 votes)
11 views16 pages

Overview of Software Development Methodologies

This document describes different software development methodologies. It defines methodology as a set of techniques and methods to approach the activities of a project's life cycle in a homogeneous way. It then describes four main methodologies: the waterfall model, the spiral model, the prototyping methodology, and rapid application development. Each one is characterized by its approach, phases, and advantages for different types of projects.

Translated by

ScribdTranslations
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)
11 views16 pages

Overview of Software Development Methodologies

This document describes different software development methodologies. It defines methodology as a set of techniques and methods to approach the activities of a project's life cycle in a homogeneous way. It then describes four main methodologies: the waterfall model, the spiral model, the prototyping methodology, and rapid application development. Each one is characterized by its approach, phases, and advantages for different types of projects.

Translated by

ScribdTranslations
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

TECHNOLOGICAL UNIVERSITY OF THE ANDES

PROFESSIONAL SCHOOL OF SYSTEMS AND COMPUTER ENGINEERING

Analysis and Design of Information Systems

Luis Enrique Zegarra Ramirez

THEME: SOFTWARE METHODOLOGIES

MELIZA CORINA VILCA CCANAHUIRE

CUSCO-PERU

2021

1
SOFTWARE METHODOLOGIES

DEFINITION OF METHODOLOGY
A methodology is an integrated set of techniques and methods that allows for an approach to address in a way
homogeneous and open each of the activities of the life cycle of a development project. It is
a detailed and comprehensive software process. (Various authors).
The methodologies are based on a combination of generic process models. They define
artifacts, roles, and activities, along with recommended practices and techniques. The methodology for the
Software development is a systematic way of carrying out, managing, and administering a project to
carry it out with high chances of success. A methodology for software development
understand the processes to be followed systematically to conceive, implement and maintain a
software product from the moment the need for the product arises until we achieve the objective by
which was created.

If this applies to software engineering, we can highlight that a methodology:

Optimize the software process and product.


Methods that guide in the planning and development of software.
Define what to do, how and when throughout the development and maintenance of a
project.

A methodology defines a global strategy to tackle the project. Among the elements
that are part of a methodology can be highlighted:

tasks to be performed in each phase or stage.


Products: Input/Output of each phase, documents.
Procedures and tools: support for carrying out each task.
Evaluation criteria: of the process and of the product. To know if the objectives have been achieved.

SOFTWARE DEFINITION
Software is the logical and intangible equipment of a computer system, which includes the
set of the logical components necessary to make the execution of tasks possible
specific, as opposed to physical components that are called hardware.
In other words, it is the set of software programs, procedures, rules,
documentation and associated data, which are part of the operations of a system of
computing. (Various authors).

2
WHAT IS A SOFTWARE DEVELOPMENT METHODOLOGY?
A software development methodology is a framework used to structure,
plan and control the information systems development process. A wide variety of
these frameworks have evolved over the years, each with its own strengths and
weaknesses. A system development methodology does not have to be necessarily suitable
to use it in all projects. Each of the available methodologies is more suitable for
specific types of projects, based on technical, organizational, and project considerations
and of team.

A software development methodology consists of:

A software development philosophy, with the focus or focuses of the development process
of the software.

Multiple tools, models, and methods to assist in the development process


software.

TYPES OF SOFTWARE DEVELOPMENT METHODOLOGIES

1. WATERFALL MODEL
If you have ever ventured into the world of Software Development, you have surely come across
at some point with the waterfall model. If not, it is worth noting that in this model each
stage represents a unit of development with a small break in the middle. Therefore, each
the next stage begins as soon as the previous one has concluded, and those breaks are used
for confirmations from the client side. Additionally, this is considered as the method
traditional way of explaining the software development process in software engineering, so
It is currently seen as outdated. However, it is still applied to projects with
clear goals and requirements that demand up to 100 hours of development, especially considering
that this approach allows businesses to get rid of unnecessary paperwork, regular meetings
that consume a lot of time and delays in their business processes. This is why this is a
great option for small projects where all aspects ofdevelopment process of
softwarethey are known in advance, but a bad solution for complicated projects, since they
it is about a quite inflexible model.

The phases of software development in the waterfall model:


1. Requirements Analysis.
2. System Design
3. Program Design
4. Coding
5. Execution of Tests

3
6. Verification
7. Maintenance.

2. SPIRAL MODEL
While the waterfall methodology offers an orderly structure for development
software, the demands for reduced time to market make its sequential steps
inappropriate.
The next evolutionary step from the cascade is where the various steps for multiple are carried out.
deliveries or transfers. The latest evolution of falling water is the spiral, taking advantage of the fact
that development projects work better when they are incremental and iterative.
The spiral methodology reflects the relationship of tasks with rapid prototypes, greater parallelism and
concurrency in the design and construction activities. The spiral method must still be
methodically planned, with tasks and deliverables identified for each step in the spiral.

4
3. PROTOTYPE METHODOLOGY
It is a specialized development procedure that allows developers the possibility of
I can only provide a sample of the resolution to validate its functional essence before the
clients, and make the fundamental changes before creating the final authentic solution. From
In fact, the best part of this methodology is that it tends to solve a set of problems of
diversification that occurs with the waterfall method.

In addition to this, the great advantage of opting for this approach is that it provides a clear idea about the process.
software functionality, reduces the risk of failure in a software feature and assists well in the
requirements gathering and in the general analysis.
The stages of software development that you will have to go through, in case you use the
prototype methodology.
Planning
2. Modeling
3. Development of the Prototype
4. Development
5. Delivery and Feedback
6. Communication with the Client
7. Delivery of the Final Product
Characteristics:
It is a less formal method of development.
The prototype is a technique to understand the specifications.
A prototype can be eliminated.
A prototype can become part of the final product.

Advantages:
Useful when requirements are changing.
When the application is not well understood.
When the user does not want to commit to the requirements.
When you want to test an architecture or technology.
When speed in development is required.

5
4. RAPID APPLICATION DEVELOPMENT (RAD-Rapid Application Development)
With the aim of providing quick results, this is an approach that is intended to
provide an excellent development process with the help of other approaches, but also,
is designed to increase the viability of the entire software development process for
highlight the participation of an active user.

That said, some of the advantages to highlight of this type of development are the following:

It makes the entire development process effortless.


Assist the client in conducting quick reviews.
Encourage customer feedback for improvement.

Phases of RAD

Management modeling: the flow of information between management functions is modeled from
form that responds to the following questions: What information drives the process of
management? What information is generated? Who generates it? Where does the information go?
Who prosecuted her?

Data modeling: the flow of information defined as part of the modeling phase
Management is refined as a set of data objects necessary to support the business.
The characteristics (called attributes) of each of the objects and the relationships are defined.
among these objects.

Process modeling: the data objects defined in the data modeling phase
they are transformed to achieve the necessary flow of information to implement a
management function. Process descriptions are created to add, modify, delete,
to recover a data object. It is the communication between objects.

6
Application generation: The DRA assumes the use of fourth generation techniques.
Instead of creating software with third-generation programming languages, the process
DRA works to reuse components from existing programs (when it is
possible) or to create reusable components (when necessary). In all cases, it
they use
automated tools to facilitate software development.

Delivery tests: As the DRA process emphasizes reuse, it has already been verified.
many of the components of the programs. This reduces testing time. Without
embargo, all new components must be tested and all must be exercised
detailed interfaces.

[Link]

Incremental and iterative development is also an essential part of a type of programming.


known as Extreme Programming and the other rapid software development frameworks.

It allows building the project in incremental stages where each stage adds functionality.
These stages consist of requirements, design, coding, testing, and delivery. Allows
deliver the customer a product faster compared to the waterfall model.

The iterative or incremental model has several software development phases.


1. Initialization
2. Iteration Periods
3. Checklist

7
Characteristics:

Reduce risks as it provides visibility on the progress of new versions.


Provide feedback through the displayed functionality.
It allows to tackle the greatest risks from the start.
Partial implementations can be made if there is enough functionality.
Testing and integration are constant.
Progress can be measured in short periods of time.
It becomes easier to accommodate changes by shortening the size of increments.
It is possible to plan based on the functionality that is wanted to be delivered first.
Due to its versatility, it requires careful planning at both the administrative level and
technician.

Advantages:

The solution is gradually improved through multiple iterations,


It increases the understanding of the problem and the solution through refinements.
successive.

Customers do not wait until the end of development to use the system. They can start.
to use it from the first increase.

Customers can clarify any requirements they do not have clear as they review the deliveries.
of the system.

It reduces the risk of failure of the entire project, as it can be distributed in each
increase.

The most important parts of the system are delivered first, so more are carried out.
tests in these modules reduce the risk of failures.

8
AGILE SOFTWARE DEVELOPMENT METHODOLOGIES
Agile software development methodologies are the most widely used today due to their
high flexibility and agility. The work teams that use them are much more productive and
efficient, as they know what they have to do at each moment. In addition, the methodology allows
adapt the software to the needs that arise along the way, which makes it easier to build
most functional applications.

they are based on the incremental methodology, in which new features are added in each development cycle
new features to the final application. However, the cycles are much shorter and faster,
so small functionalities are being added instead of big changes.

The main agile methodologies are:

KANBAN

Continuing with agile methodologies, we come across Kanban. It is a


Japanese methodology, which consists of labeling each one with cards
processes that must be carried out, it has also been referred to as "A system of
"high effectiveness and productivity production." In fact, companies like the brand of
Toyota cars were one of the first to implement it to accelerate processes.
production.

The word Kanban, in Japanese, means 'visual cards' and it is precisely what it is.
They manage it. Some handle it with virtual cards or by simulating that
Cards can be seen, however a proper way to do it is with physical cards.
that the team can see and feel to have greater effectiveness.
9
One of the main advantages of Kanban is that, in addition to being an Agile methodology,
It is also very easy to use and implement, especially because the work team will join.
and they will start to work together on different aspects of the development. Let's see now, which ones
these are the basic principles of the Kanban methodology.

Principles of the Kanban method

. Quality guaranteed
. Reduction of waste
. Continuous improvement

. Flexibility

SCRUM
It is also an incremental methodology that divides requirements and tasks in a similar way.
a Kanban. It iterates over short and fixed time blocks (between two and four weeks) to
achieve a complete result in each iteration.

The stages are:

Iteration planning (planning sprint)


Execution (sprint)
daily meeting
results demonstration (sprint review).

Each iteration through these stages is also called a sprint. The Scrum methodology is
quite friendly and promotes teamwork at all times, with the
the purpose of achieving the objectives in a quick manner.

Fundamentals of Scrum

The incremental development of project requirements in short time blocks


and fixed (iterations of a calendar month and up to two weeks, if needed).
The prioritization of requirements by customer value and development cost in each
iteration.
Quality of people.
Goodbye to Sequential and Cascade
Communication is Fundamental
The empirical control of the project.
The enhancement of the team.
The systematization of collaboration and communication both among the team and as
with the client.

10
UNIFIED SOFTWARE DEVELOPMENT PROCESS
Unified Process (UP) is a software development methodology that
it is based on well-defined components and interfaces, along with the Unified Language
Modeling (UML) is the most widely used standard methodology for analysis,
implementation and documentation of object-oriented systems.

It is a process that can be specialized for a wide variety of software systems, in


different areas of application, different types of organizations, different levels of
aptitude and different project sizes. RUP is not a system with firmly defined steps.
established, but a set of methodologies adaptable to the context and needs of
each organization.

It is the result of several years of development and practical use in which techniques have been unified.
of development, through UML, and work of many methodologies used by the
clients. The version that has been standardized was launched in 1998 and was known in its early days
as Rational Unified Process 5.0, hence the initials by which it is identified.
development process.

Main Elements

As RUP is a process, in its modeling it defines its main elements as:

. Workers: define the behavior and responsibilities (role) of an individual,


group of individuals, automated system or machine, that work together
as a team. They carry out activities and own items.
. Activities: it is a task that has a clear purpose, it is carried out by a
worker and manipulates elements.
. Artifacts: tangible products of the project that are produced, modified and
used by the activities. They can be models, elements within the model,
source code and executables.
. Activity flow: sequence of activities carried out by workers and that
produce an observable value result.

Main Characteristics of RUP

Unifies the best elements of previous methodologies.


Prepared to develop large and complex projects.
3. Object-Oriented.
4. Use UML as a visual representation language.

LEAN
It is set up for small highly skilled development teams to create
any task in a short time. The most important assets are the people and their

11
commitment, thus relegating time and costs to a secondary position. Learning, the
Quick reactions and empowering the team are essential.

Lean Principles

Eliminate waste

2. Expand learning

3. Decide as late as possible

React as quickly as possible

5. Empower the team

6. Create the integrity

7. See the whole set

FEATURE DRIVEN DEVELOPMENT (FDD)


The agile methodology FDD, which stands for Feature Driven Development, was
driven by Jeff de Luca and Meter Coad in the 1980s. Like the other methodologies
adaptable, it focuses on short iterations that deliver tangible functionality. This
The approach does not emphasize the gathering of requirements but rather on how they are carried out.
design and construction phases. However, it was designed to work with others.
software development activities and does not require the use of any model of
specific process. It emphasizes quality aspects throughout the process and includes
a permanent monitoring of the project's progress. Unlike other methodologies, FDD
it promises to be convenient for the development of critical systems and is oriented towards teams
of larger jobs, with more people than those to which they are normally applied
other methodologies like Scrum. Clearly defines tangible deliveries and ways to
evaluation of project progress. It does not emphasize the acquisition of requirements
except in how the design and construction phases are carried out. FDD is based on a very cycle
short iteration, never exceeding two weeks, in which analysis and development
they are aimed at fulfilling a list of features that the software must have
develop

A Feature must meet the following characteristics:

. It should be simple and inexpensive to develop, taking between one and ten days.
. It must provide value to the customer and be relevant to their business.
. It must be expressible in terms of action, result, and object.

The methodology follows five iterative phases:

1. Development/Modification of a Global Model


2. Creation/Modification of the Features list

12
3. Planning
4. Design
5. Implementation

ADAPTIVE SOFTWARE DEVELOPMENT (ASD)


This methodology is based on the idea that customer needs are always
changes during the project development and after its delivery.
This technique was developed by Jim Highsmith and Sam Bayer in the early 90s. The
the novelty of this methodology is that it is not actually a development methodology
software, but a method/technique, through which to instill an adaptive culture to the
a company to adapt to change and not fight against it. In it, there is no life cycle.
static (plan-design-build), but instead offers an iterative life cycle, where each
the cycle can be modified while another is being executed (speculate collaborate-learn).

The objectives of this methodology are:


1. Raise awareness in the organization that it must expect change and uncertainty
and not order and stability.
2. Develop iterative change management processes.
3. Facilitate collaboration and interaction among people at the level
interpersonal, cultural, and structural.
4. Define a rapid application development strategy, but with rigor.
and discipline.

Its main characteristics are:

Iterative.
2. Oriented towards software components rather than tasks.
3. Tolerant to changes.
4. Guided by the risks.
5. The review of the components serves to learn from mistakes and return to
start the development cycle.

XP OR EXTREME PROGRAMMING METHODOLOGY


This methodology is possibly the most prominent of the agile methodologies and this
due to its great ability to adapt to any unforeseen event that arises. Because
the idea is not to maintain certain requirements from the moment the project is being developed, but rather
that during the process, these change or evolve gradually without
complications. Basically, the creators of this XP methodology consider that it is
better to adapt to the requirements that arise in the process than to start with
requirements and develop a project based on that.

13
It is the combination of the other methodologies, only that they are used according to
and as necessary, that is why it is considered the most outstanding of the methodologies
agile. So it's time to get into details and let's see what the values are that
they conform to the XP programming methodology.

Values of the XP Methodology


Communication
Simplicity
Feedback
Courage
Respect

Characteristics that make up the XP methodology

. Iterative and incremental development type.


. Unit Tests.
. Teamwork
. Someone from the team works with the client
. Error Correction.
. Restructuring of the Code
. The Code belongs to everyone
. Simple code is the key

14
DIFFERENCES BETWEEN METHODOLOGIES

AGILE METHODOLOGIES TRADITIONAL METHODOLOGIES

There is no traditional contract or at least it is


There is a pre-established contract
quite flexible

Internally imposed (by the team) Externally imposed

Few roles More roles

Few artifacts more artifacts

They are prepared for changes during the


They are not very flexible to changes
project

Much more controlled process, with numerous


Less controlled process, with few principles
standards

There is no traditional contract or at least it is


There is a pre-established contract.
quite flexible

The client interacts with the team only through


The client is an active part of the development process.
delivery meetings

Small groups, 10 members or less, and large and possibly distributed groups
working in the same place where everyone has tasks assigned to each participant
knowledge about the entire specific development process

The architecture of software is essential and


Less emphasis on software architecture
express through models

15
It is worth noting:

Delaying decisions in a software project allows for enhancing the product's value.
both for the client and for the team or company that develops.
In order for a development group to adopt an agile methodology, they must have experience.
working with traditional methodologies, since experience is what predominates in
the crucial milestones of the project, it must also have the capacity to be self-teams
managed, highly motivated and with great innovation.
Agile methodologies allow for cost reduction and provide flexibility to projects.
software where uncertainty is present.
The use of traditional methodologies is essential at the start in a development team.
software.
Agile methodologies should be applied in projects where there is a lot of uncertainty.
where the environment is volatile, where the requirements are not known with certainty, while
Traditional methodologies force the client to make decisions at the beginning of the project.

16

You might also like