Overview of Software Development Methodologies
Overview of Software Development Methodologies
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.
A methodology defines a global strategy to tackle the project. Among the elements
that are part of a methodology can be highlighted:
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 philosophy, with the focus or focuses of the development process
of the software.
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.
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:
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]
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.
7
Characteristics:
Advantages:
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.
KANBAN
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.
. 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.
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
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 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
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
. 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.
12
3. Planning
4. Design
5. Implementation
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.
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.
14
DIFFERENCES BETWEEN METHODOLOGIES
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
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