0% found this document useful (0 votes)
3 views

CSC408_Session_04

The document outlines various software development research methodologies, including Agile, Scrum, Waterfall, Prototype, Feature Driven Development, Rapid Application Development, Spiral, Dynamic Systems Development, Extreme Programming, and Joint Application Development. Each methodology is described with its advantages and disadvantages, emphasizing aspects such as customer involvement, risk management, and project adaptability. The document serves as a comprehensive guide for understanding different approaches to software development processes.

Uploaded by

samw90524
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)
3 views

CSC408_Session_04

The document outlines various software development research methodologies, including Agile, Scrum, Waterfall, Prototype, Feature Driven Development, Rapid Application Development, Spiral, Dynamic Systems Development, Extreme Programming, and Joint Application Development. Each methodology is described with its advantages and disadvantages, emphasizing aspects such as customer involvement, risk management, and project adaptability. The document serves as a comprehensive guide for understanding different approaches to software development processes.

Uploaded by

samw90524
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
You are on page 1/ 17

CSC408 RESEARCH METHODS

SESSION 4: RESEAERCH METHODOLOGY


SOFTWARE DEVELOPMENT RESEARCH METHODOLOGY
WEB APPLICATION RESEARCH METHODOLOGY
IOT RESEARCH METHODOLOGY

SOFTWARE DEVELOPMENT RESEARCH METHODOLOGY


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.

1. Agile Software Development Methodology


2. Scrum Development Methodology
3. Waterfall Model
4. Prototype Methodology
5. Feature Driven Development
6. Rapid Application Development (RAD)
7. Spiral Model
8. Dynamic Systems Development Model Methodology
9. Extreme Programming Methodology
10. Joint Application Development Methodology
11. Lean Development Methodology

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.

Page 1 of 17
 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.

The steps involved in Agile methodology is as follows;

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. The
steps involved in Scrum methodology is captured below.

Page 2 of 17
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.

Page 3 of 17
 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.

Waterfall Model

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

Page 4 of 17
 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.

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. The steps involved in prototype method is captured below;

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.

Page 5 of 17
 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.

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. The steps
involved in feature driven development method is captured below.

Page 6 of 17
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.

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.

Page 7 of 17
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.

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.

Page 8 of 17
 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.

Dynamic Systems Development Model Methodology

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.

Page 9 of 17
 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.

Extreme Programming Methodology

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.

Page 10 of 17
 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.

Joint Application Development Methodology

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

Page 11 of 17
 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.

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.

Page 12 of 17
 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.

WEB APPLICATION DEVELOPMENT METHODOLOGY

Web application development needs thorough planning, the right framework, and reliable
architecture. However, it would be best to consider all the aspects of the development lifecycle for
your web application projects. So, here is a comprehensive guide on types of web apps, best
frameworks, stages, and cost of web application development for your projects.

Devops Web Application development 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. Processes involved in DevOps is captured below.

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.

Page 13 of 17
 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.

Joint Application Development (JAD)


Imagine an online retail company developing a listing website to manage online merchants. The
usual way to coordinate the requirements gathering could be through a series of uncoordinated
one-on-one meetings among different individuals and teams, documentation by the project
sponsors and perhaps through phone calls and emails. This approaching of defining and
interpreting business requirements into deliverable actions is somewhat unorganised with potential
for huge redundancies and inefficiencies that may lead to schedule and cost overruns. To improve
systems development requirements, the concept of joint application development (JAD) was
designed. The JAD approach is to bring together technology experts, business representatives
and key project stakeholders through a series of workshops and sessions in order to define the
requirements from the perspective of business ideas and technology implementation. In order to
add centralized coordination to the process, JAD workshops or sessions are managed by facilitators
whose role is to identify the objectives of the agenda and to drive the entire session in agreement
with other key players of the project.

Advantages

JAD as a system development process has changed the way requirements are gathered and systems
are designed, and it comes with several advantages over the legacy approaches, as highlighted
below:

• Improved delivery time: Due to the coordinated approach of bringing professionals and subject-
matter experts together to deliberate in a structured and organized manner through JAD sessions,
valuable time is saved and the overall design and delivery schedules are improved. The

Page 14 of 17
unnecessary communication and actors are not involved in the discussion that thoroughly reviews
the business goals and formulates requirements that can be promptly delivered by the technology
team.

• Cost reduction: The accelerated analysis of the requirements as well as speedy design and
efficient delivery ultimately leads to cost savings for the organization.

• Better understanding: Even though product direction is often identified and suggested by business
executives, the careful selection of participants of the JAD sessions ensures that professionals can
interact and provide better understanding of the objectives and goals relative to their skills and
knowledge. This ultimately removes any ambiguities related to final goals, objectives and
expectations from the deliverables. This is largely possible because the coordination by the
facilitators ensure that every participant contributes to the session, thereby increasing the overall
value of the JAD process.

OTHER WEB APPLICATION RESEARCH DEVELOPMENT METHODOLOGY


INCLUDES,’

1. AGILE
2. LEAN
3. SCRUM

THE LISTED WEB APPLICATION RESEARCH DEV HAS BEEN DISCUSSED ALREADY
IN THE SOFTWARE DEVELOPMENT METHODOLOGY SECTION ABOVE.

IOT RESEARCH METHODOLOGY


The processes utilize to conduct IoT research project is captured below.

Page 15 of 17
Step 1: Purpose & Requirements Specification
The first step in IoT system design methodology is to define the purpose and requirements of the
system. In this step, the system purpose, behavior and requirements (such as data collection
requirements, data analysis requirements, system management requirements, data privacy and
security requirements, user interface requirements) are captured.
Step 2: Process Specification
The second step in the IoT design methodology is to define the process specification. In this step,
the use cases of the IoT system are formally described based on and derived from the purpose
and requirement specifications.
Step 3: Domain Model Specification
The third step in the IoT design methodology is to define the Domain Model. The domain model
describes the main concepts, entities and objects in the domain of IoT system to be designed.
Domain model defines the attributes of the objects and relationships between objects. Domain
model provides an abstract representation of the concepts, objects and entities in the IoT domain,
independent of any specific technology or platform. With the domain model, the IoT
system designers can get an understanding of the IoT domain for which the system is to be
designed.
Step 4: Information Model Specification
The fourth step in the IoT design methodology is to define the Information Model. Information
Model defines the structure of all the information in the IoT system, for example, attributes of
Virtual Entities, relations, etc. Information model does not describe the specifics of how the
information is represented or stored. To define the information model, we first list the Virtual
Entities defined in the Domain Model. Information model adds more details to the Virtual
Entities by defining their attributes and relations.
Step 5: Service Specifications
The fifth step in the IoT design methodology is to define the service specifications. Service
specifications define the services in the IoT system, service types, service inputs/output, service
endpoints, service schedules, service preconditions and service effects.
Step 6: IoT Level Specification
The sixth step in the IoT design methodology is to define the IoT level for the system. In
Chapter-1, we defined five IoT deployment levels.

Step 7: Functional View Specification


The seventh step in the IoT design methodology is to define the Functional View. The Functional
View (FV) defines the functions of the IoT systems grouped into various Functional Groups
(FGs). Each Functional Group either provides functionalities for interacting with instances of
concepts defined in the Domain Model or provides information related to these concepts.

Step 8: Operational View Specification


The eighth step in the IoT design methodology is to define the Operational View Specifications.

Page 16 of 17
In this step, various options pertaining to the IoT system deployment and operation are defined,
such as, service hosting options, storage options, device options, application hosting options, etc.

Step 9: Device & Component Integration


The ninth step in the IoT design methodology is the integration of the devices and components.

Step 10: Application Development


The final step in the IoT design methodology is to develop the IoT application.

Page 17 of 17

You might also like