A few software development methodologies
Software development is a process by which an individual or a team uses a programming language to build the software. It includes the programming code, the functions that were developed of software. In addition, software development is also known as software design. There are many methods of software development. However, this document only refers to several software development methods such as Rapid Application Development (RAD), Agile, Waterfall.
Firstly, “RAD is a popular software development methodology employing various tools and techniques to quickly produce minimally-coded software applications” - (Techopedia). RAD is a software development method that focuses on creating prototypes quickly and repeatedly. RAD divides the components of the project into separate sections and each of these separate parts will be implemented independently. The RAD application development process will ensure that all prototype are executed concurrently without loss of waiting time. Once the workflow is completed, small prototypes will be merged into a complete project.
Secondly, “Agile software development (Agile) is a collection of software development methodologies that promote adaptive planning, evolutionary development and delivery, continuous improvement, and a time-boxed period of time to complete a body of work” - (Aha.io) . Agile is a flexible way to make the product as fast as possible, as soon as possible, and as an improvement (in some respects) when placed next to the product. The old model is the "Waterfall" or "CMMI" model. Agile application in the project will help meet the changes from the customer quickly but always ensure the progress of work.
Finally, the waterfall model is the process tissue in the first software development introduced. It is the earliest SDLC approach applied in software development. “It is also referred to as a linear-sequential life cycle model” (Tutorialspoint). This model describes the process of software development in a circular fashion. This is a simple model, and easy to apply. In this model, each stage needs to be completed before another stage is started. The stages in the waterfall model must be in the correct order and should not overlap. “The classic Software Development Life Cycle (SDLC) model is a linear sequential model that begins with requirements definition and ends with regular system operation and maintenance. The most common illustration of the SDLC model is the waterfall model.” (GALIN, 2014) Waterfall model is a most common model in Software Development Life Cycle. The waterfall model. (GALIN, 2014)
There are seven-phase process, as follows: Requirements definition. In SDLC, the functions of the software system need to be clearly defined by the customer and indicate their requirements for the system. The information that must be provided by the customer is clear and complete, which will help to establish, distribute and develop more effectively.
Analysis. This process is mainly used to analyze customer requirements and provide suggestions for customers. From the analyzed information, it will be possible to create modules of the software system.
Design. This phase includes the design of the foundation of the software system. It defines processing routines, architecture models, databases, and software structures.
Coding. In this stage, from the design that was built earlier, the programmer will convert it to the code. Codes that perform quality assurance activities include: integration tests, inspection and unit tests.
System tests. This phase is started when the code for the software is finished. The goal of this stage is to find the most likely errors of the software. System testing will be performed by the developer before delivery to the customer's hands. In addition, customers are also frequently involved in system testing with developers.
Installation and conversion. Once the system has passed the test and is approved, it will be installed for the user to use. If a new system is installed to replace an old one, it needs to be processed to ensure that customer activity is not interrupted during the transfer.
Regular operation and maintenance. Software will usually start working when the installation and conversion process is complete. However, during system operation the system may experience problems and it should be maintained regularly. Maintenance includes bug fixes and upgrades to meet new requirements, improving software compatibility.
At each stage of the waterfall model, developers and customers will jointly evaluate the results. If customer requirements are met then customers will accept and think about the next development or not. However, if not accepted by the customer as a result of bad results, customers may request a revision, and require the developer to return to the previous stage.
There are some advantages of Waterfall model. It’s easy to use and manage. The Waterfall model follows the stages sequentially, so it is understandable and easy to apply. For projects that apply the waterfall model, members do not need training before starting work on the project. It’s a disciplined model. Each phase in the Waterfall model is progressing and finishing, thus facilitating management of work progress with stakeholders. It’s need high demand for documentation. Waterfall requires documentation for each stage, thus ensuring better understanding of the requirements and logic of the program.
In addition, there are some disadvantages of Waterfall models. Applying the waterfall model will take a long time and cost a lot of money. Waterfall is a way to develop "self-neck" because it requires everything from spec, features to quality, to a high level, resulting in the need to create documents in huge numbers. Moreover, technical documents tend to be difficult to understand for end users. Before embarking on a job, the first thing to do is to thoroughly study development notes or design requirements. No flexibility, can not be changed after the decision.
Based on the above mentioned requirements, the waterfall model is very suitable for this project. Therefore, the waterfall model will be applied during the development of this project.
Currently, software development is greatly supported by new technologies. Most prominent today is the cloud computing technology. It has outstanding features along with easy-to-use features. Typically Google Firebase, which allows easy use of modern services. Helps programmers develop products more easily. In addition, the NoSQL database was born to solve the problem of RDBMS. NoSQL is now widely used by many developers for storage solutions in place of RDBMS. In addition, SQLite has gradually become obsolete, and instead of the new mobile databases. Realm database is believed to be used by many organizations and corporations for offline data storage solutions on mobile devices.
- Aha.io. (n.d.). Agile Development. Retrieved from Aha: https://www.aha.io/roadmapping/guide/agile-development
- Techopedia. (n.d.). Rapid Application Development. Retrieved from Techopedia: https://www.techopedia.com/definition/3982/rapid-application-development-rad
- Tutorialspoint. (n.d.). SDLC - Waterfall Model. Retrieved from Tutorialspoint: https://www.tutorialspoint.com/sdlc/sdlc_waterfall_model.htm
- GALIN, D. (2014). Software Quality Assurance From Theory to Implementation. PEARSON.