Analysis of Adaptive Methodologies for FFSL System Development

Verified

Added on  2020/05/08

|14
|2699
|109
Report
AI Summary
This report provides a comprehensive overview of adaptive methodologies in software development, focusing on Scrum, Extreme Programming (XP), and the Unified Process (UP). It details the principles, advantages, and disadvantages of each methodology, comparing their suitability for different project scenarios. The report includes a recommendation for the proposed FFSL information system, suggesting the Scrum approach due to its flexibility in handling evolving requirements. Supporting the analysis are an event table, model class diagram, design class diagram, and use case diagram, enhancing the practical understanding of the methodologies. The report also touches upon Human-Computer Interaction (HCI) principles and concludes with a memorandum summarizing the key findings. It is a valuable resource for understanding agile software development practices.
Document Page
Student name
title
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Contents
1 Adaptive methodologies......................................................................................................................2
1.1 Scrum...........................................................................................................................................3
1.1.1 Advantages of scrum...........................................................................................................4
1.1.2 Disadvantages of scrum.......................................................................................................4
1.2 Extreme programming (XP).........................................................................................................4
1.2.1 Advantages of Extreme programming.................................................................................4
1.2.2 Disadvantages of Extreme programming.............................................................................4
1.3 Unified process (UP)....................................................................................................................4
1.3.1 Advantages of UP.................................................................................................................5
1.3.2 Disadvantages of UP............................................................................................................5
2 Recommendation................................................................................................................................5
3 Event table...........................................................................................................................................6
4 Model class diagram............................................................................................................................7
5 Design class diagram............................................................................................................................8
6 Use diagram.........................................................................................................................................9
7 Use case description............................................................................................................................9
References.................................................................................................................................................11
Document Page
1 Adaptive methodologies
A system development methodology is a standard recognized process followed by an organization to
carry out all steps that are required in the design of a system, implementation and maintenance of the
information system after it has been deployed for use by the end users. Software development
methodologies can now be classified as predictive (old) methodologies and adaptive methodologies.
Software development methodologies must meet the following three principles;
Support the design of the information system for it to meet the specified business need
Support development of the information system to meet the specified design.
Support the deployment of the information system in a production environment.
In addition to the three principles mentioned above, the software development methodology used to
develop an information system must be able to support maintenance of the information system
together with all its artifacts.
Adaptive methodologies are methodologies that are considered to be agile in nature. Examples of
adaptive methodologies are;
Scrum
Extreme programming (XP)
The unified process (UP)
The basic concept behind agile approach is iteration. Adaptive methodologies follow the following
principles;
Interactions and individuals over tools and processes.
A fully working software over a very comprehensive documentation detailing how the system
should function.
Continuous collaboration with the customer over negotiations of contracts with the customer.
Responding to changes in requirements over following a laid out plan.
Customer satisfaction by ensuring the software is developed rapidly to ensure a delivery of a
useful software.
Delivery of the software on a frequent basis preferably delivery in weeks over longer periods like
months or even years.
The progress of the software is measured by the working of the software.
Ability to welcome and incorporate changes in requirements even at the final stages of the
development life cycle.
Continuous and effective communication between the business or client and the team of
developers developing the software system.
Face-to-face conversations to achieve very effective communication.
The project is built around a group of motivated individuals who are trusted with the system.
Emphasis on the technical bits of the information system and the overall design of the system
Simplicity
Self-organization of the development team.
Ability to regularly adapt to changing software circumstances.
Document Page
Adaptive methodologies follow a tactical or iterative approach to develop a software by mainly focusing
on the abilities of the development team working on the software to deliver the software in small
increments to the client. Adaptive methodologies mainly used where;
The functionality required is not mission critical
Organizations that have a good percentage of experienced developers
Dynamic business environments where changes in requirements happen regularly.
Constantly changing organizations.
Here are three adaptive methodologies considered for this report;
1.1 Scrum
Scrum methodology is an adaptive methodology that follows the basic concepts of adaptive or agile
general approach of developing software’s. Scrum can mainly be described as a framework rather than a
methodology that emphasizes on an iterative approach for developing the software, team work among
the team of developers and accountability while achieving the well-defined set of goals. In scrum, every
team members plays a special role in the overall development of the project. All the stakeholders even
the client is a part of the team. The roles in scrum include;
Product owner- this is the team member in charge of liaising with the development team and
the team of developers. He is responsible of ensuring expectations raised by the customer reach
the development team and are agreed upon.
Scrum master- the role of the scrum master is to ensure all the practices of the scrum approach
are followed. The scrum master is the facilitator.
Scrum development team- this is the team of that works in sprints to deliver the software
increments
The scrum framework encourages teams to work with what they have and perform continuous
evaluation to determine what is working and what is not working. This is achieved through various
events;
Daily scrums- these are short meetings that happen every day and usually at a designated place
while standing. They are called standup meetings where the team members review the review
the work of the previous day and discuss what is expected on the current day.
Sprint planning meeting- A meeting aimed at setting the goals to achieve increments
Sprint review- this review is aimed at showing the completed increments
Sprint retrospective-this meeting is held after the end of a sprint where reflection on the sprint
process takes place for the just completed sprint.
Product backlog- this is what remains on the to do list. Product backlog is usually refined during
the backlog refinement process.
Sprint backlog- list of tasks that should be completed before the product backlog is delivered to
the client.
Product increment- an accomplishment of a sprint.
Burn-down- this a visual representation of remaining work that is yet to be comleted,
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
1.1.1 Advantages of scrum
Scrum is very suitable for projects that are highly dynamic and a lot of requirements changes are
expected at any stage of the development lifecycle.
Scrum provides clarity on the development of the system through frequent meetings that are
held by the team members
Scrum emphasizes on inclusion of all team members by assigning of roles. This makes the
development team more effective.
Scrum emphasizes on delivery of a good working product to the customer as the customer is
involved during the development process.
1.1.2 Disadvantages of scrum
Scrum requires a highly skilled and experienced team of developers
Scrum is not suitable for large teams or large organizations
Scrum puts a lot of trust on an individual by assigning different roles to different team members
thus failure of a team member could heavily impact on the project (Chandana, 2017).
1.2 Extreme programming (XP)
Extreme programming is a framework developed from adaptive methodologies that emphasizes on
customer satisfaction (Pierce, 2016). XP is flexible and can incorporate any requirement changes that
might occur during the initial or the latter stages of the development life cycle. XP works through
continuous and effective communication between the development team, keeping the design of the
information system easy and ensuring that constant feedback is provided throughout the development
life cycle.
Extreme programming is best suited for projects that require to be developed in a dynamic business
environment with the user expecting the project to be delivered on a strict timeline.
1.2.1 Advantages of Extreme programming
XP is very suitable for project with strict timelines and highly changing requirements
Maintenance of an information system developed using XP is straight forward as the approach
emphasizes on the overall design of the design.
1.2.2 Disadvantages of Extreme programming
Emphasis on design rather than the code may not result to a fully working software if testing is
not done comprehensively
Does not emphasize on documentation
1.3 Unified process (UP)
Unified process is a framework developed from agile methodology that emphasizes on developing the
software in increments through four phases (Alhir, 2002). The four phases are;
Inception phase- initial stage where the scope of the system is defined
Elaboration phase- All the constraints necessary for the project to take place are defined at this
stage. This constraints include; time constraints, resources constraints
Construction phase- this is the implementation phase for the information system
Transition phase- Deployment of the complete information system
Document Page
Unified process emphasizes on good and detailed documentation thus its suitable for highly dynamic
projects requiring a lot of documentation.
1.3.1 Advantages of UP
Unified process emphasizes on feedback for all stakeholders thus its able to show the progress
of the project
Unified process emphasizes quality documentation which is essential for a good software
Unified process can be used in business which are highly dynamic because requirements are
constantly changing
1.3.2 Disadvantages of UP
Emphasizes too much on documentation which is costly and time consuming
Complex framework to adapt. Best suited for a team with a huge number of experts.
2 Recommendation
The proposed FFS information system can be developed using Scrum approach. This is because the
requirements defining by the case study are not very clear thus this project has a fuzzy and requires a
highly dynamic framework like scrum which can be able to incorporate changes in any stage of the
development life cycle.
Document Page
3 Event table
Event Event
Type
Trigger Source Activity/Use Case System
Response/
Output
Destination
Customer wants
to fill application
external New
customer
registration
customer Fill application Application
sent waiting
approval
Customer
The system
notifies the
management
team of an item
that is running
low in stock
internal Stock
reminder
System View stock Item below
stock limit
manager
A sales person
wants to order
items
external Order
items
Salesperson Order items Order sent
waiting
approval
Salesperson
A salesperson
checks in to a
store
External Store check
in
salesperson Check in Check in
recorded
salesperson
A
salesperson,staff
logins to the
system
external login Salesperson,
staff
login Session
granted
Salesperson,
staff
A customer
manager wants
to review a
customer
application
external Application
review
Customer
manager
Review application Application
approved or
application
declined
Customer
manager
The manager
wants to assign
a sales person to
an area
External Assigning
of
salesperson
to an area
manager Assign salesperson
to an area
Salesperson
assigned
successfully
manager
Manager wants
to generate
reports
external Report
generation
manager Generate report Report
generated
successfully
manager
A salesperson
records a sale
External Sale
recording
salesperson Record sale Sale
recorded
successfully
salesperson
The purchasing
manager want
to process a new
order from a
salesperson
External Order
processing
Purchasing
manager
Process order Order
processed
successfully
Purchasing
manager
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
4 Model class diagram
Figure 1: Model class diagram.
Document Page
5 Design class diagram
Figure 2: Design class diagram
Document Page
6 Use diagram
Figure 3: Use case diagram
7 Use case description
Use Case ID: UC-1
Use Case Name: Create customer
Created By: Author Last Updated By: Author
Date Created: 10/13/2017 Date Last Updated: 10/13/2017
Actors: Customer manager
tabler-icon-diamond-filled.svg

Paraphrase This Document

Need a fresh take? Get an instant paraphrase of this document with our AI Paraphraser
Document Page
Description: Customer manager approves an application sent by a customer
Trigger: Application approval
Preconditions: Customer manager must be logged in
Postconditions: Application is approved
Normal Flow: 1. manager logs in
2. manager views application
3. manager approves application
4. System changes the status of the application and sends a
notification to the customer.
Alternative Flows: The customer manager rejects the application
Go back to step 4
Exceptions:
Includes: Viewing applications
Priority: High
Frequency of Use: Not Regular
Business Rules: A new customer sends an application which must be approved by
the customer manager
Special Requirements: The form is validated so that the data sent is correct
Assumptions: A customer is a potential customer until the application is
approved
Notes and Issues: A customer manager is delegated management team member who
deals with the applications
Document Page
References
Adell , L. (2013, April 11). Benefits & Pitfalls of using Scrum software development methodology.
Retrieved October 14, 2017, http://www.belatrixsf.com/blog/benefits-pitfalls-of-using-scrum-
software-development-methodology/
Chandana. (2017, August 11). Scrum Project Management – Pros and Cons. Retrieved October 14, 2017,
https://www.simplilearn.com/scrum-project-management-article
Faucheux , M. (2012, March 18). Scrum Methodology: Coordinating Teams to Produce Quality Products.
Retrieved October 14, 2017, from http://www.brighthubpm.com/agile/2042-scrum-
methodology-coordinating-teams-to-produce-quality-products/
Rouse , M. (2005, Spetember). HCI (human-computer interaction). Retrieved October 14, 2017, from
http://searchsoftwarequality.techtarget.com/definition/HCI-human-computer-interaction
Pierce , W. (2016, May 21). Disadvantages and Advantages of Extreme Programming. Retrieved October
14, 2017, from https://atlaz.io/blog/disadvantages-and-advantages-of-extreme-programming/
Alhir , S. (2012). Understanding the Unified Process (UP). Retrieved October 14, 2017, from
http://www.methodsandtools.com/archive/archive.php?id=32
chevron_up_icon
1 out of 14
circle_padding
hide_on_mobile
zoom_out_icon
[object Object]