The initial phase of rigorous scrutiny of requirements and system helps in saving time later in the development phase
The requirement of resource is minimal and testing is done after each phase has been completed.
Disadvantages:
Lack of flexibility
Dependence phase
2. V Model
The development and test execution activities are carried out side by side in the downhill and uphill shape. Also, testing starts at the unit level and spreads towards the integration of the entire system.
Advantages:
Easy to use since testing activities like planning and testing designing are done before coding.
This model enhances the chances of success and save time.
Defects are mostly found at an early stage and downward flow of defects is generally avoided.
Disadvantages:
It is rigid model
Software is developed during the implementation phase, so early prototypes of the product are not available.
Need to update the document, if there are changes in the midway.
3. Agile Model
requirements and solutions evolve through collaboration between various cross-functional teams. It is also known as an iterative and incremental model. Testing model focus on process adaptability and customer satisfaction by rapid delivery of working software product and by breaking the product in to small incremental builds.
Advantages:
Ensure customer satisfaction
Flexible model
Develop software quickly and adapt to changing requirements regularly
Disadvantages:
Difficult to assess the effort required at the beginning of the cycle for large and complex software
Project may go off track if the customer is not clear about the goals
4. Spiral Model
Similar to Agile, but with more emphasis on risk analysis
Phase include: planning, risk analysis, engineering, and evaluation
Need to gather the requirements and perform the risk assessment at the base level and every upper spiral builds on it
Advantages:
Suitable for complex and large system
Software is produced early in the cycle
Disadvantages:
Costly and requires highly specialized expertise in risk analysis
Does not work well in small or simple projects
5. Iterative Model
Does not need a full list of requirements before beginning the project. The development process starts with the requirements of the functional part, which can be expanded later
Process is repetitive and allows new versions of the product for every cycle. Every iteration includes the development of a separate component of the system which is added to the functional developed earlier.
Advantages:
Easier to control the risks as high-risk tasks are completed first
Progress is easily measurable
Problems and risks defined within one iteration can be prevented in the next sprints.
Disadvantages:
Requires more resources the the waterfall model
Difficult to manage
Risks may not be completely determined even at the final stage of the project
User should be able to register and login account in the application
User can scroll and see the photos or videos endlessly
Like, comment, and share the post
User can upload content into the account
User can send a gift to the creator
Content creator can get incentive on the posts that get require amount of view, like or share
2. System Design:
Authentication: User should be able to authenticate via create an account in our system or third party application like google or facebook authentication.
Endlessly post: We should implement a pagination for content page so that user can view the content smoothly and endlessly scroll in this application.
Interaction: Authenticated user can like, comment, or share the content, and the creator should be able to know the like count, comment, and who share the post.
Upload contents: Creator can upload the post every time, and those posts will be store in the services like Amazon S3, and other services to support as well.
Gift & Incentive: User can send a gift as a money or token to favorite creator or content that they like to support their content. And the creator can also get incentive from our system if the view reach 1 million or so on.
3. Implementation:
We want to implement this application on mobile, so that user can download the application from play store or app store. We are going to use Flutter this implementation.
For collaboration and code sharing, we are going to use a service like Git and Github.
1. Waterfall Model
Advantages:
Disadvantages:
2. V Model
The development and test execution activities are carried out side by side in the downhill and uphill shape. Also, testing starts at the unit level and spreads towards the integration of the entire system.
Advantages:
Disadvantages:
3. Agile Model
requirements and solutions evolve through collaboration between various cross-functional teams. It is also known as an iterative and incremental model. Testing model focus on process adaptability and customer satisfaction by rapid delivery of working software product and by breaking the product in to small incremental builds.
Advantages:
Disadvantages:
4. Spiral Model
Advantages:
Disadvantages:
5. Iterative Model
Advantages:
Disadvantages: