Search code examples
taskproject-managementuse-caserequirementswaterfall

Waterfall model


Im thinking about using the waterfall model as my main development methodology for my CS exam. I have experience working with Unified Process, and agile methodolgies such as SCRUM and XP. All of these have clear and structured way to collect either tasks, use cases or user stories. But i cant seem to find the equvilent for the waterfall model.

So my question is, does the waterfall model have any specific way to collect your 'use cases/user stories (or whatever you may call them) - or should i borrow some from ex. UP, and work with use cases?


Solution

  • Waterfall, Unified Process and agile approaches differ in the way the activities are organised:

    • all of them need somehow to cover the full spectrum of software development activities such as to gather requirements, design the system, implement its features and test the result and deliver it.
    • each of them package and combine these activities differently: agile for example favors small iterations that combine all these activities to deliver a software increment, until everything's done. At the other extreme, waterfall separates these activities one after the other, with a delivery in the end and iteration (back to implementation or back to requirements) only if there's a significant problem.

    When carrying out these activities, you may use a set of practices that help you to achieve more effectively the result. Practice sometimes emerge in the context of a method, but can often be generalized to be used in other contexts. For example:

    In a Waterfall context, requirements are written up-front. This works well only if the requirements are very well known and do not change very often. In the case of a study project, you may well be in such a situation.

    Nowadays, this kind of requirements are documented using the IEEE standard of Software Requirement Statements (SRS). Frequently, the functional part of this document is structured according to use-cases (not necessarily use-case diagrams). Moreover modern use-cases, the so-called Use-case 2.0, evolved into a more agile practice which allow to gather "user-stories" (user narratives) to make use-case slices that gradually enrich a use-case. This approach is in fact very similar to user-story mapping (which defines a high level narrative line) that decomposes a narrative line into detailed user-stories.

    So yes, you can borrow any of those techniques, except that waterfall requires everything to be ready upfront. Since use-cases can be used both in waterfall (traditional use-cases) or agile (use-case 2.0), it's certainly a good base in your context. For a school work, an SRS structured according to use-cases would certainly make good impression. However, if you want a task oriented approach, and if all the requirements are not yet clear, I'd really advise to go for use-case 2.0 or user-story mapping, and avoid waterfall.