0% found this document useful (0 votes)
10 views25 pages

Unit1 Rough Notes

The document provides an overview of software, the software development process, and various methodologies such as Agile, DevOps, Scrum, and Waterfall. It outlines the definitions, advantages, and disadvantages of each methodology, emphasizing the importance of structured planning and customer involvement in software development. Additionally, it highlights the differences between software processes and methodologies, illustrating how they contribute to successful software projects.

Uploaded by

D.M.Kalai Selvi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views25 pages

Unit1 Rough Notes

The document provides an overview of software, the software development process, and various methodologies such as Agile, DevOps, Scrum, and Waterfall. It outlines the definitions, advantages, and disadvantages of each methodology, emphasizing the importance of structured planning and customer involvement in software development. Additionally, it highlights the differences between software processes and methodologies, illustrating how they contribute to successful software projects.

Uploaded by

D.M.Kalai Selvi
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 25

Software:

Software is a
set of instructions, data, or programs that tell a
computer how to operate and perform specific tasks
What is Software Process?
The software process is a set of steps or a set of activities that are used
during the development of software. And if we perform all the steps
accordingly then the expected result can be produced that is going to be
efficient and provides value to the customer. For example, if we want to
develop software successfully we should follow a set of rules or the activities
such as Planning, Requirement Gathering, Design, Implementation, Testing,
and Deployment. By following these steps we can ensure that the software
will be developed efficiently and with high quality.
The software development methodology is a framework that is used to
structure, plan, and control the process development of an information
system. In this kind of development methodology, the only concern of
software development process is that it does not involve any technical aspect
but demands proper planning for the software development lifecycle by the
development organization.
What is Methodology?
Whenever we build software or a project we have to go through different
software phases commonly known as the software development life cycle,
during this process depending on the software requirement we use different
approaches for the successful completion of the project and these
approaches are called methodology. There are different methodologies
like agile, waterfall, spiral methodology, etc.
Difference Between Software Process and
Methodology
Activity Process Methodology

The software process is a set of


It is a way to solve a
steps or a set of activities that are
Definition particular problem in a
used during the development of
structured way.
software.

A Process consists of all the steps


Its focus is more on the
from the start to the completion of
Focus particular phase during the
the project that are needed during
development.
the development.

There are different types of The methodology is


processes available and can be predefined so it has low
Flexibility
used according to the requirements scope for changes in the
of the user. predefined methodology.

An example of a software process


One example of methodology
Example is SDLC(Software Development
is agile.
Life cycle).

1. 12 Different Software Development


Methodologies
1.1 Agile Software Development Methodology
Agile Software Development methodology is one of the best software
development approaches that is used to design a disciplined software
management process which also allows some frequent alteration in the
development project. This is a type of software development methodology
that is one conceptual framework for undertaking various software
engineering projects. Agile Development is used to minimize risk by
developing software in short time boxes which are called iterations that
generally last for one week to one month.
Advantages of Agile Development Methodology
 Customer satisfaction by rapid, continuous delivery of useful software.
 Human interaction is emphasized rather than process and development tools.
Customers, developers and testers constantly interact with each other.
 Agile methodology has an adaptive approach that is able to respond to the
changing requirements of the clients.
 Direct communication and constant feedback from customer representatives
leave no space for any guesswork in the system.
Disadvantages of Agile Development Methodology
 In the case of some software deliverables, especially the large ones, it is
difficult to assess the effort required at the beginning of the software
development life cycle.
 Agile focuses on working software rather than documentation, hence it may
result in a lack of documentation.
 The project can easily get taken off track if the customer representative is not
clear what final outcome that they want.
 Only senior programmers are capable of taking the kind of decisions required
during the development process. Hence it has no place for newbie
programmers unless combined with experienced resources.
1.2 DevOps Methodology

DevOps is a popular term gaining a lot of attention among all the software
development methodologies because of the unconditional benefits it offers to
its customers. The siloed process of Development and Operations is not the
same as the inception of DevOps. These two departments are functioning
together as a single team for all processes in the entire life-cycle. This works
concurrently for all businesses. The continuous integration and continuous
delivery model allow development and operational teams to perform
everything simultaneously in development, quality assurance, security, and
other operations.

Now businesses are turning more towards DevOps as an agile and lean
approach that enables a crisp collaboration between all the stages of the
development life cycle.

Advantages of DevOps
 Faster Process Multiple ongoing processes work simultaneously which
makes the process faster and easier for businesses to process on time. By
adapting to changes in the market, DevOps enables businesses to grow
efficiently and drive definite business results.
 Offers Rapid Deliveries Microservices and Continuous delivery are some
elements of DevOps that offer business continuity and recent updates rapidly.
DevOps allows businesses to continuously innovate and improve products for
a better software product.
 Reliability With increasing changes in the product and infrastructure, the
developed products are robust and secure with a competitive advantage
against all the peers.
 Collaboration This is a collaborative platform pillared on strong parameters of
accountability and ownership. Both the development teams and operations
team are in sync with all activities of the development lifecycle to deliver faster
and effective products.
Disadvantages of Devops
 DevOps demands Cultural change Yes, this is true if you adopt DevOps in
your business, it demands cultural change and business needs to restart their
processes in order to grow efficiently.
 Organizational Upgradation is another important factor for companies to
upgrade their business from conventional methods to dividing into
multidisciplinary tasks that will allow them to use multiple skills at the same
time.
 Speed and security is not something that is achieved all the time using
DevOps. For some critical software engineering projects, there are companies
that may not assure both in a single stage and you may need to consider a
separate plan for security at every stage of your DevOps workflow.
1.3 Scrum Development Methodology
You can apply the Scrum Development Methodology in nearly all types of
projects. For companies where the requirements are highly emerging and
rapid changes are easily adhered to, we use this type of development method.
The Scrum software development model begins with brief planning, meeting,
and concludes with a final review. Businesses can accelerate the
development of software using this method that allows a series of iterations in
a single go. It is one of the best software development methodologies
because it easily brings slowest progressing projects on track.
Advantages of Scrum Development
 Use Scrum Development for fast-moving, cutting-edge developments, rapid
codes, and testing mistakes that can be easily rectified.
 In this methodology, decision-making is entirely in the hands of the teams.
 This methodology enables projects with the business requirements
documentation and other signs that contribute to success.
 Enterprises can control the Project development steps visible in this method
with emphasis on frequent updating of the progress.
 A daily meeting easily helps the developer to make it possible to measure
individual productivity. This leads to the improvement in the productivity of
each of the team members.
 Due to short sprints and constant feedback, it becomes easier to cope with
the changes.
 It is easier to deliver a quality product at a scheduled time.
Disadvantages of Scrum Development
 As one of the leading causes of scope creep is Agile Scrum thus there is no
definite end date, the project management stakeholders will be tempted to
keep demanding that new functionality be delivered.
 You should keep the estimation of project costs and time accurate if not then
this kind of development model will suffer.
 It is good for small, fast-moving projects but not suitable for large complex
projects.
 This methodology needs experienced team members only. If the team
consists of people who are novices, the project cannot be completed within an
exact time frame.
 Scrum works well for project management when the Scrum Master trusts the
team they are managing. If they practice too strict control over the team
members, it can be extremely frustrating for them, leading to demoralization
and the failure of the project.
 Project quality manager is hard to implement and quantify unless the test
team is able to conduct regression testing after each sprint.

1.4 Waterfall Model


The Waterfall Methodology is one of the most popular software development
methodologies. Most businesses consider this life cycle model as a classic
style of software development. This model clarifies the software development
process in a linear sequential flow. In any phase of the development cycle,
you should always cross-check that the earlier phase is completed. This
traditional software development method is a rigid linear model. This
development approach does not define the process to go back to the previous
phase to handle changes in requirements.
Advantages of the Waterfall Model
 Waterfall model is very simple and easy to understand and uses methodology.
That is why it is beneficial for the beginner or novice developer.
 It is easy to manage the projects because of the rigidity of the model.
Moreover, each phase has specific deliverables and an individual review
process.
 Waterfall development methodology saves a significant amount of time at all
the phases processed and completed at a given time.
 The requirements are very well understood/defined in the waterfall method.
Also, it works effectively for smaller projects.
 You can easily do the testing that refers to the defined scenarios in the earlier
functional specification.
Disadvantages of Waterfall Model
 If the requirements are precise and are available up-front, then the waterfall
development method can only be used.
 Waterfall method is not applicable to projects that demand continuous
maintenance.
 The main drawback of this method is that once an application is in the testing
stage, it is not advisable to go back and do any amendments changes for
completed software, it may cause a lot of problems.
 There is no possibility that we can to develop any working software until it
reaches the last stage of the cycle
 You cannot include the client’s valuable feedback within the ongoing
development phase.
 In waterfall development method, there is no option to know the end result of
the entire project
 Make your requirements well-defined and clear or else this model is not
suitable. It is effective for long and ongoing projects.
 In waterfall methodology, Documentation occupies a lot of time for developers
and testers.
1.5 Prototype Methodology

The Prototype Methodology is the software development process that


allows developers to create only the prototype of the solution to demonstrate
its functionality to the clients. Make all the necessary modifications before
developing the actual application using this methodology. The best feature of
this software development methodology is that it solves a plethora of issues
that often occur in a traditional waterfall model.
Advantages of Prototype Model
 Show the prototype to the client to have a clear understanding and complete
‘feel’ of the functionality developed in the software. It ensures a greater level
of customer satisfaction and comfort.
 Identify the scope of the refinement and accordingly accommodate new
changes in the given requirements.
 Significantly reduce the risk of failure using this method and identify the
potential risks at an early stage and moderation steps can be taken quickly.
 The communication between the software development team and the client
makes a very good and conducive environment during a project.
 It helps in requirement gathering and requirement analysis when there is a
lack of required documents.
Disadvantages of Prototype Model
 Prototyping is usually done at the cost of the developer, so it should be done
using minimal resources otherwise the organization’s development cost
stretches too much.
 Customers sometimes demand the actual product to be delivered soon after
seeing an early prototype.
 The clients have too much involvement which is not always aligned with the
software developer.
 It does not appreciate too many modifications in the project as it easily
disturbs the existing workflow of the entire software development process.
 Customers may not be satisfied or interested in the product after seeing the
initial prototype.
1.6 Feature Driven Development
Feature Driven Development is an iterative approach out of all the software
methodologies, intended for use by large teams working on a project using
object-oriented technology. This type of model is good for organizations that
are transitioning from a phase-based approach to an iterative approach.
Feature Driven methodology is also known as an FDD methodology.
Advantages of FDD Methodology
 With Feature Driven Development model, Progress tracking of the project
happens by a feature that is a focused approach.
 It allow multiple teams to work simultaneously. Which, in turn, reduces the
time.
 FDD Helps to move larger size projects and obtain repeatable success.
 The simple five processes help to bring work done in a short time and easiest
manner.
 This type of model is built on set standards for the software development
industry, so it helps easy development and industry-recognized best practices.
Disadvantages of FDD Methodology
 Not an ideal methodology for smaller projects, so it is not good for an
individual software developer.
 High dependency on the main developer means the person should be fully
equipped for an act as coordinator, lead designer, and mentor.
 No written documentation is provided to clients in this methodology, so they
are not able to get proof for their software.
1.7 Rapid Application Development (RAD)
Rapid Application Development (RAD) is an effective methodology that
provides much quicker development and higher-quality results than those
achieved with the other software development methodologies. It is designed in
such a way that it easily takes the maximum advantage of the software
development. The main objective of rapid application development
methodology is to accelerate the entire software development process. The
goal is easily achievable because it allows active user participation in the
development process.
Advantages of the RAD model
 Rapid Application development model helps to reduce the risk and required
efforts on the part of the software developer.
 Additionally, this model also helps the clients to take quick reviews for the
project.
 This methodology encourages customer feedback which always provides
improvement scope for any software development project.
 As a result of prototyping in nature, there is a possibility of lesser defects.
 Each phase in RAD delivers the highest priority functionality to the client.
Disadvantages RAD model
 This model depends on the strong team and individual performances for
clearly identifying the exact requirement of the business.
 It only works on systems that can be modularized can be built using this
methodology.
 This approach demands highly skilled developers and a designer’s team
which may not be possible for every organization.
 This method is not applicable for the developer to use in small budget projects
as the cost of modeling and automated code generation is very high.
 Progress and problems accustomed are hard to track as such there is no
documentation to demonstrate what has been done.
1.8 Spiral Model
The Spiral Model is a sophisticated model that focuses on the early
identification and reduction of project risks. In this software development
methodology, developers start on a small scale then explores the risks
involved in the project, make a plan to handle the risks, and finally decides
whether to take the next step of the project to do the next iteration of the
spiral. The success of any Spiral Lifecycle Model depends on the reliable,
attentive, and knowledgeable management of the project.
Advantages of Spiral Model
 The high amount of risk analysis being done hence, avoidance of possible risk
is certainly reduced with this model.
 This model is good for large size and critical projects.
 In the spiral model, additional functionality can be added at a later date.
 Development is fast and features are added systematically in this model.
 It is more suited for high-risk projects, where business needs may differ from
time to time basis.
Disadvantages of Spiral Model
 It is certainly a costly model to use in terms of development.
 The success of the entire project is dependent on the risk analysis phase
thus, failure in this phase may damage the entire project.
 It is not appropriate for low-risk projects.
 The big risk of this methodology is that it may continue indefinitely and never
finish.
 Documentation is more as it has intermediate phases.
1.9 Dynamic Systems Development Model Methodology
Dynamic Systems Development Model is a software development
methodology originally based on the Rapid Application Development
methodology. This is an iterative and incremental approach that emphasizes
continuous user involvement. Its main aim is to deliver software systems on
time and within budget. This model simply works on the philosophy that
nothing is developed perfectly in the first attempt and considers it an ever-
changing process.
Advantages of Dynamic Systems Development Model
 Users are highly involved in the development of the system so, they are more
likely to get a grip on the software development project.
 In a dynamic systems model, the basic functionality is delivered quickly, with
more functionality being delivered at frequent intervals.
 This method provides easy access by developers to end-users.
 In this kind of development, approach projects are delivered on time and
within a specific budget.
Disadvantages of Dynamic Systems Development Model
 The first thing is that DSDM is costly to implement, as it requires users and
developers both to be trained to employ it effectively. It may not be suitable for
small organizations or one-time projects.
 It is a relatively new model, therefore, it is not very common and easy to
understand.
 Dynamic systems model Requires significant user involvement.
 This model Involves the progressive development of project requirements.

1.10 Extreme Programming Methodology


Extreme Programming is an agile software engineering methodology. This
methodology, which is shortly known as XP methodology, is mainly used for
creating software within a very unstable environment. It allows greater
flexibility within the modeling process. The main goal of this XP model is to
lower the cost of software requirements. It is quite common in the XP model
that the cost of changing the requirements at later stages in the project can be
very high.
Advantages of Extreme Programming Methodology
 The main advantage of Extreme Programming is that this methodology allows
software development companies to save costs and time required for project
realization. Time savings are available because of the fact that XP focuses on
the timely delivery of final products. Extreme Programming teams save lots of
money because they don’t use too much documentation. They usually solve
problems through discussions inside of the team.
 Extreme programming methodologies emphasize customer involvement.
 This model helps to establish rational plans and schedules and to get the
developers personally committed to their schedules which are surely a big
advantage in the XP model.
 This model is consistent with most modern development methods so,
developers are able to produce quality software.
Disadvantages of Extreme Programming Methodology
 Some specialists say that Extreme Programming is focused on the code
rather than on design. That may be a problem because good design is
extremely important for software applications. It helps sell them in the
software market. Additionally, in XP projects the defect documentation is not
always good. Lack of defect documentation may lead to the occurrence of
similar bugs in the future.
 This methodology is only as effective as the people involved, Agile does not
solve this issue.
 This kind of software development model requires meetings at frequent
intervals at enormous expense to customers.
 It requires too many development changes which are very difficult to adopt
every time for the software developer.
 In this methodology, it tends to be impossible to know exact estimates of work
effort needed to provide a quote, because at the starting of the project nobody
is aware of the entire scope and requirements of the project.
1.11 Joint Application Development Methodology
Joint Application Development (JAD) is a requirements-definition and user-
interface development methodology in which end-users, clients, and
developers attend intense off-site meetings to work out and finalize software
systems. This methodology aims to involve the client in the design and
development of an application. JAD sessions easily accomplish targeted goals
with a series of collaborative workshops. The main focus of this model is to
resolve the business problem rather than technical details. Thus it is most
suitable for developing business systems.
Advantages JAD Methodology
 This methodology allows for the simultaneous gathering and consolidating of
large amounts of information. The collaboration between the company and the
clients lowers all risks.
 This software development mode effectively produces large amounts of high-
quality information in a short period of time. It reduces the costs and time
needed for project development.
 With the proper assistance of the organizer, the differences are immediately
resolved in this method.
 This model provides a forum to explore multiple points of view regarding a
topic.
 Well-defined requirements improve system quality.
Disadvantages of JAD Methodology
 JAD methodology takes a large amount of time as it requires significant
planning and scheduling effort on the part of the project development team.
 It requires significant investor commitment in terms of time and effort.
 This approach requires trained and experienced personnel for the effective
implementation of the entire project.
 Different opinions within the team make it difficult to align goals and maintain
focus.
1.12 Lean Development Methodology
Lean Development Methodology focuses on the creation of easily
changeable software. This Software Development model is more strategically
focused than any other type of agile methodology. The goal of this
methodology is to develop software in one-third of the time, with a limited
budget, and a very less amount of required workflow.
Advantages of Lean Development Methodology
 The early elimination of the overall efficiency of the development process
certainly helps to speeds up the process of entire software development which
surely reduces the cost of the project.
 Delivering the product early is a definite advantage. It means that the
development team can deliver more functionality in a shorter period of time,
hence enabling more software projects to be delivered.
 Empowerment of the development team helps in developing the decision-
making ability of the team members which creates more motivation among
team members.
Disadvantages of Lean Development Methodology
 Success in software development depends on how disciplined the team
members are and how to advance their technical skills.
 The role of a business analyst is vital to ensure the business requirements
documentation is understood properly. If any organization doesn’t have a
person with the right business analyst then this method may not be useful for
them.
 In this development model, great flexibility is given to the developer which is
surely great, but too much of it will quickly lead to a development team that
lost focus on its original objectives thus, it hearts the flow of the entire project
development work.

You might also like