CHAPTER 03: METHODOLOGY

 3.1 Agile Software development methodology.

Agile Software development methodology refers to software development dependent on iterative turn of events. Agile methods break undertakings into more modest emphasis, or parts don't legitimately include long haul arranging. The venture degree and prerequisites are set down toward the start of the advancement cycle. Plans concerning the quantity of emphasis, the length, and the extent of every process are characterized ahead of time. 

Every cycle is considered as a brief timeframe "outline" in the Agile cycle model, which commonly keeps going from one to about a month. The division of the whole venture into more modest parts assists with limiting the undertaking hazard and with decreasing the general task conveyance time prerequisites. Every emphasis includes a group working through a full programming improvement life cycle, including arranging, necessities investigation, plan, coding, and testing before a working item is shown to the customer.

3.1.1 Why Used Agile

Reasons to use the agile model are:

Adaptive Approach

Agile uses an adaptive approach where there is no point by point arranging, and there is clearness on future undertakings just regarding what highlights should be created. There is a highlight driven turn of events, and the group adjusts to the changing item necessities progressively. The item is often tried, through the delivery emphasizes, limiting the danger of any significant disappointments in the future.

Requirement analysis and planning 

Predictive methods entirely rely upon the necessary investigation and arranging done at the start of the cycle. Any progressions to be consolidated experience a severe change control the board and prioritization.

Customer Interaction: 

Customer Interaction is the foundation of this Agile methodology, and open correspondence with the least documentation are the regular highlights of the Agile development climate. The agile groups work in close cooperation with one another and are frequently situated in a similar geological area.

3.1.2 Agile Software development methodology Life Cycle  

This project has gone through all stages of the Agile model to reach its accomplishment.

Phase 1: Requirements: 

Before a Product Owner can even start designing a project, they need to create the initial documentation that will list the initial requirements. They are:

The result of the project is going to achieve. In this case Menstrual Tracker Application with the integration of the donation system.

The features that it will support. For example, in this case, Tracking women's Menstrual cycle, managing women's data pool, donations of menstrual hygiene goods.

The features that it will not initially support. 

Phase 2: Software Design

During the first iteration, the Product Owner/ stakeholders assemble their development team and introduce the requirements created during the previous stage. The section then discusses how to tackle these requirements and proposes the tools needed to achieve the best result. 

For this project, design, implementation language, libraries, and framework are being discussed with the assessor and supervisor and are also approved by them.

During this stage, the designers create a rough mock-up or prototype of the UI. Further iterations are spent refining the initial design and reworking it to suit the new features.

Phase 3. Development and Coding

The development phase is about writing code and converting design documentation into the existing software within the software development process. This stage is generally the longest as it is the backbone of the whole process. 

Phase 4. Integration and Testing

This stage is spent on ensuring that the product is bug-free and viable with everything else that the designers have composed previously. The Quality Assurance group directs a progression of tests to guarantee the code is perfect and the business objectives of the arrangement are met.

Phase 5. Implementation and Deployment

The application is sent on the servers and gave to the clients either for the demo or the genuine use. Further cycles update the all-around introduced programming, presenting new highlights and settling bugs.

Phase 6. Review

When all past advancement stages are finished, the Product Owner accumulates the Development Team by and by and audits the advancement made towards finalizing the prerequisites. The group presents their thoughts toward settling the issues that emerged during the last stages, and the Product Owner contemplates their suggestions. 


A short time later, the Agile software development lifecycle stages start once again, either with another cycle or by pushing toward the following location.

3.2 Rapid Application Development :  

Keeping in mind the nature and requirements of the project, I have used the 'Rapid Application Development (RAD)' Methodology to complete my project.

Rapid application development is a form of agile software development methodology that uses minimal planning in favour of rapid prototyping. A prototype is a working model that is practically equal to a segment of the item.

Rapid Application Development centers around social event client necessities through workshops or center gatherings, early testing of the models by the client utilizing iterative idea, reuse of the current models (segments), nonstop incorporation, and quick conveyance. 

RAD model disperses the investigation, plan, incorporate, and test stages with a progression of short, iterative advancement cycles. RAD is an improvement model that appeared once engineers understood the conventional cascade model of advancement wasn't extremely viable. RAD is a development model that appeared once engineers understood the customary cascade model of improvement wasn't compelling.

3.2.1 Why used RAD

For fast and rapid development of a project, the developer needs methodology like RAD. Some key reasons to use RAD methodology in my project are:

Encouragement of code reuse:

Which implies less manual coding, less space for blunders, and more limited testing times.

Rapid development:

Quick iterations that decrease advancement time and accelerate conveyance.

Flexibility and adaptability:

Enhanced flexibility and adaptability as developers can make changes quickly during the development process.

Risk management: 

Better risk management as stakeholders can discuss and address code vulnerabilities while keeping development processes going.

Customer satisfaction:

Expanded consumer loyalty because of the significant level of cooperation and coordination between partners (designers, customers, and end clients).

3.2.2 Stages of RAD model:

RAD follows four main phases.

Stage 1: Requirements planning:

During this progression, stakeholders sit together to characterize and finish venture prerequisites, for example, venture objectives, desires, timetables, and financial plan. It likewise comprises of the whole organized arrangement portraying the necessary information, techniques to acquire it, and afterwards handling it to frame the last refined model. It includes the utilization of different procedures utilized in prerequisites elicitation like conceptualizing, task investigation, structure examination, client situations.

Tasks are done during this stage:

To complete this stage, the problem statement has been gathered by observation, data gathering from articles, meetings, and discussion of periods with women and schoolgirls. Research has been done on current existing systems to check whether they are focusing on the gathered problem statement. 

After the problem statement is finalized, Project Requirements have been finalized by clearly jotting them down. The aims, goals, and objectives of the proposed solution have been discussed and finalized. When it comes to requirement gathering, it is also needed to find risk factors in the project along with their solution and methods to avoid them throughout project development.

After finalizing the requirement, approval from stakeholders is needed to move further. In this case, the proposed solution has been presented to the project supervisor and assessor to seek their support and ensure their satisfaction. 

Stage 2: Prototyping

This is where the actual development takes place through various prototype iterations. After gathering requirements, the settings goals of project developers create prototypes with different features and functions as fast as they can. These prototypes are then shown to the clients, who decide what they like and what they don't.

Often, these models are immediately made to work, to flaunt specific highlights, without appropriate clean. This is ordinary, and the result is just made during the finish stage, where the customer and designer can both concede to the eventual outcome. Tasks are done during this stage:

During this stage, the design of the system is finalized by refining the scope and objective of the proposed solution. To do so, meetings had been conducted with the assessor and supervisor. This is done to make sure that the final design of the system would be accurate and can be developed within a given time frame.

Deliverables of system and functionalities of the system were identified, including features and functionalities that must be done in different deliverables. Necessary diagrams were prepared to enhance the clarity of system requirements. Moreover, system prototypes and deliverables were designed by the developer. This design includes screen objects, layouts, and the overall design of the system is well defined and clear in this stage.

The design and prototype of the system are analyzed to find any missing functionality or feature in the system. Also, ensuring that if there are bugs in the prototype, those bugs would be fixed and encountered efficiently and timely. Finally, complete system design is presented to the user, as in this case user is a supervisor, so the prototype was presented to supervisor to review and checking and to get the approval of the design from him.

The strategy of implementing the system is being selected after many reviews and revisions of prototypes. Then implementation plan is made this planning included Cost, Time and Effort Estimation. Implementation is divided into multiple small tasks each task had time duration. To keep track of time and deadlines, the Gantt chart was written and updated when needed. The overall plan of implementation strategy was flexible so that any change in project scope, requirement or functionality can be encountered and considered easily.


Approval from assessor is needed to go in the next phase once design and prototype are finalized. He approved plan and strategy and allowed to continue and follow implement strategy.

Stage 3: Rapid construction

In this phase, refinement of the prototype and delivery takes place. It includes the actual use of powerful automated tools to transform the prototype into the final working product since all bugs and errors were identified prior in the prototyping stage, so it is easy for a developer to construct final working product rapidly. All the required modifications and enhancements are too done in this phase.

Tasks are done during this stage:

In this stage, the database is designed according to system requirements. The database used for this project is a real-time Firebase database hosting service.

Now the system is developed. Coding is done based on diagrams achieved in the design phase. After implementing the proposed solution, it was tested.

For testing, necessary test data were gathered to be used during acceptance testing. The test plan was prepared to define test strategy, test objectives, test methodology and test cases as well. Along with the test plan, other vital documents were written, including software requirement specification after revisions and reviews by system developers and supervisor documents were approved by the supervisor.

To conduct testing of the system, the environment was set up to test software in the user environment. Multiple and different tests were conducted on the design and its components so that no functionality or feature remain unverified or untested.

Phase 4: Cutover

The last stage where all the independent developed modules are move to the live production and launch. It incorporates information transformation, testing, and changeover to the new framework, just as client preparing. All last changes are made while the coders and customers keep on searching for bugs in the framework.

Tasks are done during this stage:

User training is done to users and stakeholders before system is put into production.  Training meetings and Programs for users are led to guarantee that they know how to use application and to ensure that they are operating system without any difficulty.

After successful Design, Implementation, Testing, User pieces of training, the system is being installed in the user's devices. Also, web hosting of the web application is done in this stage, and the .apk file of the mobile application is prepared.

After agreements between user and developer for acceptance of the final product, system acceptance is declared as successful as the project is accepted and delivered in a given period. 

Conclusion: In a nutshell, if steps are not taken the period poverty in Malaysia could worsen even further, and by then it would be even harder to combat the problem. So, the initiative of the system would be to improve the current exposure of period poverty in Malaysia while also integrating the data collection of women in need in Malaysia. The expected product would be a system that could track period and could also store the data of women in need.













Comments